1
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
COMPUTER NETWORKING
Chương I: Gii thiu
I. Internet gì?
Hàng triu các thiết b máy tính đưc kết ni:
Hosts = h thng đu cui
Chy ng dng mng
Các liên kết truyn thông:
Cáp quang, cáp đng, radio, v tinh
Tc đ truyn: ng thông (bandwidth)
Chuyn mch i: chuyn tiếp i tin (khi d liu)
Thiết b đnh tuyến (routers ) thiết b chuyn mch (switches)
Internet: “mng of các mng”
Các nhà cung cp dch v mng (ISPs) đưc kết ni vi nhau.
Các giao thc điu khin gi, nhn thông tin
d: TCP, IP, HTTP, Skype, 802.11
Các chun Internet
RFC: Request for comments
IETF: Internet Engineering Task Force
s h tng cung cp các dch v cho các ng dng:
Web, VoIP, email, games, thương mi đin t, mng hi,
Cung cp giao din lp trình cho các ng dng
Cái c (hooks) cho phép gi nhn các chương trình ng dng đ “kết
ni” vi Internet
Cung cp các la chn dch v, tương t như dch v u chính.
Giao thc đnh nghĩa đnh dng, th t các thông đip đưc gi nhn gia
các thc th mng, các hành đng đưc thc hin trên vic truyn nhn
thông đip
II. Mng biên
Mng biên (network edge):
t mng đu cui (end-system, host): PC, đin thoi, máy ch, máy tính
nhúng
2
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Mng truy cp (access network): đưng truyn, thiết b kết ni (router,
switch, hub,…)
Chc năng ca host (end-system):
Nhn data t tng ng dng (application) ri chia nh thành các packets,
chiu dài L bits
Truyn packet trong mng vi tc đ truyn R
Tc đ truyn ca đưng link, còn đưc gi kh năng/công sut ca
đưng link, còn đưc gi ng thông ca đưng link
Đ tr truyn gói
(
packet
)
=
Chiu dài gói
(
bits
)
Băng thông đưng link
(
bps
)
=
L
R
III. Mng lõi
i các b đnh tuyến (router) đưc kết ni vi nhau.
Hai chc năng chính ca mng lõi:
Routing: xác đnh đưng đi t ngun đến đích đưc thc hin bi các i
tin
Fowarding: chuyn các packet t đu vào ca b đnh tuyến đến đu ra
thích hp ca b đnh tuyến đó
Chuyn mch i
Host chia nh d liu t tng ng dng thành các packet
Chuyn tiếp các i t b đnh tuyến này đến b đnh tuyến tiếp theo trên
đưng đi t ngun ti đích
Mi packet đưc truyn vi công sut ln nht ca đưng truyn
Đ tr hàng đi, s mt mát: nếu tc đ đến ca đưng link cao hơn tc đ
truyn ca đưng link trong 1 khong thi gian
Các packet s xếp ng đi đưc truyn ti to ra đ tr hàng đi
Các packet th b b (mt) nếu b nh hàng đi (b nh đm) đy
Chuyn mch kênh: 2 đim đu cui mun trao đi thông tin s thiết lp 1 kênh
truyn riêng (circuit) vi ng thông đưc cp phát dành riêng cho c 2 cho ti
khi truyn tin kết thúc
nh không đưc chia s n s rnh ri lúc không truyn tin
Ghép kênh: gi d liu ca nhiu kênh khác nhau trên mt đưng truyn vt lý
Phân kênh: phân d liu đưc truyn trên đưng truyn vt lý vào các kênh
ơng ng chuyn cho đúng đích
Ghép kênh theo thi gian (TDM): mi kết ni s dng tài nguyên trong
thi gian đưc phân.
3
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Ghép kênh theo tn s (FDM): mi kết ni s dng 1 ng tn tín hiu
riêng
Chuyn mch gói
Chuyn mch kênh
Ưu đim:
Băng thông đưc s dng tt
hơn do không b gii hn trên 1 kênh
riêng
Li đưng truyn không làm
chm tr do nhiu đưng truyn
khác nhau
Nhiu ni th s dng
chung mt đưng truyn
Nhưc đim:
Đ tr truyn ln
D xy ra mt i tin nếu dung
ng ln
Ưu đim:
Tc đ truyn ng thông c
đnh
Không thi gian ch ti các
nút chuyn tiếp
th s dng lâu dài
Cht ng n đnh, không b
mt gói
Nhưc đim:
Nhiu kênh thì ng thông càng
nh
Ch mt kênh truyn đưc s
dng ti mt thi đim
nh truyn s duy trì cho đến
khi 2 bên ngt kết ni th lãng
phí ng thông nếu không truyn d
liu
Thi gian thiết lp nh truyn
quá lâu
4
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
IV. Đ tr, thông lưng trong mng
4 ngun gây ra chm tr i tin
d
proc
: x lý ti nút
o Kim tra các bits li
o Xác đnh đưng ra
o Thông thưng < ms
d
queue
: đ tr xếp hàng
o Thi gian đi ti đưng ra
o Ph thuc vào mc đ tc nghn ca b đnh tuyến
d
trans
: đ tr do truyn
o L: chiu dài i tin (bits)
o R: ng thông (bps)
o d
trans
= L/R
d
prop
: tr do lan truyn
o d: đ dài đưng truyn vt lý
o s: tc đ lan truyn trong môi trưng
o d
prop
= d/s
R: ng thông đưng link (bps)
L: đ dài i tin (bits)
a: t l trung bình i tin đến
ng đ lưu thông = La/R
La/R ~ 0: tr trung bình nh
La/R -> 1: tr trung bình ln
La/R > 1: nhiu “vic” đến hơn kh năng phc v, tr trung bình hn!
Thông lưng: tc đ(bits/time unit) các bit đưc truyn gia ni gi
nhn
Tc thi: tc đ ti 1 thi đim
Trung bình: tc đ trong khong thi gian
5
TỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
V. Các lp giao thc
Application: h tr các ng dng mng FTP, SMTP,
HTTP,….
Transport: chuyn d liu t tiến trình này đến tiến trình
kia (process-process) TCP, UDP,…
Network: định tuyến nhng gói d liu t ngun tới đích
IP, các giao thức định tuyến,…
Link: chuyn d liu gia các thành phn mng lân cn
Ethernet, 802.111 (WiFi), PPP,…
Physical: bits “trên đường dây”
Mô hình ISO/OSI
Presentation: cho phép các ng dng gii thích ý nghĩa của
d liu, ví d mã hóa, nén, những quy ước chuyên bit
Session: s đồng b hóa, kh năng chịu li, phc hi s trao
đổi d liu
6
TỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
Chương II: Tầng Application
I. Các nguyên lý ca các ng dng mng
Các kiến trúc ng dng:
- Kiến trúc Client Server
- Kiến trúc P2P (Peer to peer)
Client Server
P2P
- Luôn hoạt động
- Địa ch IP c định
- Trung tâm phc v lưu trữ
d liu
- Không có server
- Giao tiếp vi server
- Có th kết ni không liên tc
- Có th dùng địa ch IP động
- Không giao tiếp trc tiếp vi
các client khác
- Các h thống đầu cui giao tiếp trc
tiếp vi nhau
- Các peer yêu cu dch v t các peer
khác cung cp dch v ngược li t các
peer khác
=> Có kh năng tự m rng
- Các peer được kết ni không liên tc và
có th thay đổi địa ch IP
- Qun lí phc tp
7
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Các tiến trình liên lc:
Tiến trình (Process) chương trình chy trong mt host.
Trong cùng mt host, hai tiến trình giao tiếp vi nhau bng cách s dng truyn
thông liên tiến trình (inter-process communication) đưc đnh nghĩa bi h điu hành.
Các tiến trình trong các host khác nhau truyn thông vi nhau bi trao đi các
thông đip (message).
Client, Server:
Tiến trình Client: tiến trình khi to truyn thông.
Tiến trình Server: tiến trình ch đi đ đưc liên lc.
Chú ý: Các ng dng vi kiến trúc P2P c tiến trình client tiến trình server.
Sockets:
- Socket là giao din lp trình ng dng mng đưc ng đ truyn và nhn
d liu trên Internet. Gia hai chương trình chy trên mng cn mt liên kết giao
tiếp 2 chiu (two-way communication) đ kết ni 2 tiến trình trò chuyn vi nhau.
Đim cui (endpoint) ca liên kết này đưc gi socket.
=> Socket ơng t mt cng ra vào.
Các tiến trình s dng socket gi dch v ca tng giao vn đ trao đi thông
đip:
Đ nhn thông đip, tiến trình phi đnh danh (identifier) - bao gm đa ch
IP s cng (port number).
Thiết b host device đa ch IP 32-bit duy nht.
Mt s Port tng Application:
8
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Protocol
Port number
Protocol
Port number
FTP
20
HTTP
80
SSH
22
Telnet
23
DNS
53
HTTPS
443
LPD
515
TFTP
69
SMTP
25
NFS
2049
Các dch v giao thc Transport Internet
Dch v TCP:
Reliable transport (truyn ti tin cy) gia tiến trình gi nhn.
Flow control (điu khin lung): ngưi gi s không áp đo ni nhn.
Congestion control (điu khin tc nghn): điu tiết ni gi khi mng quá ti.
Connection-oriented (hưng kết ni): thiết lp đưc yêu cu gia tiến trình
client server.
d các giao thc TCP: FTP data, FPT control (port 21), Telnet, HTTPS, POP3
(port 110), SMTP,
Dch v UDP:
Truyn ti d liu không tin cy gia tiến trình gi nhn.
Không h tr: đ tin cy, điu khin lung, điu khin tc nghn, đm bo
thông lưng, bo mt thiết lp kết ni.
d các giao thc UDP: RIP (port 520), TFTP, SNMP (port 161),…
Chú ý: các giao thc DNS, HTTP, SSH ng chung c 2 dch v TCP UDP.
So sánh gia 2 dch v:
+Ging nhau: Đu các giao thc mng TCP/IP, chc năng kết ni các y
tính vi nhau, th gi d liu cho nhau.
9
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
+Khác nhau:
TCP
UDP
ng kết ni
Thưng ng cho mng WAN
Đ tin cy cao
Gi d liu dng lung byte
Không cho phép mt gói tin
Đm bo vic truyn d liu
sp xếp th t các i tin
Tc đ truyn thp n UDP
ng không kết ni
Thưng ng cho mng LAN
Đ tin cy thp
Gi đi Datagram
Cho phép mt gói tin
Không đm bo vic truyn d liu
Không sp xếp th t các i tin
Tc đ truyn cao
II. Web HTTP
Web page: mt tp hp các văn bn, hình nh, tp tin (gi chung các đi
ng objects) thích hp vi World Wide Web đưc thc thi trình duyt web.
Mi đi ng có th đưc đnh danh đa ch bi mt URL.
HTTP (Hypertext Transfer Protocol): giao thc web tng Application
hình Client / Server:
- Client: trình duyt yêu cu nhn (s dng giao thc HTTP), hin th các
đi ng ca web.
- Server: Web server gi (s dng giao thc HTTP) c đi ng đ đáp ng
u cu ca Client
- RTT (Round Trip Time): khong thi gian (tính bng ms) đ mt gói tin nh
đi t Client đến Server quay ngưc tr li.
Các kết ni HTTP
HTTP không bn vng
(Nonpersistent HTTP)
HTTP bn vng
(Persistent HTTP)
Ch ti đa mt đi ng đưc gi qua
kết ni TCP. Kết ni sau đó s b đóng.
Ti nhiu đi ng yêu cu nhiu kết ni
Nhiu đi ng th gi qua mt kết
ni TCP gia Client Server.
HTTP/1.0 (RFC 1945)
HTTP/1.1 (RFC 2616)
Thi gian đáp ng
Thi gian đáp ng
10
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Mt RTT đ khi to kết ni TCP.
Mt RTT cho yêu cu HTTP vài byte
đu tiên ca đáp ng HTTP đưc tr v.
Thi gian truyn file
Thi gian đáp ng HTTP không bn vng
= 2RTT + thi gian truyn file.
Persistent without
pipelining
Client ch gi
request khi đã nhn
response trưc.
1 RTT cho 1 đi
ng đưc quan
tâm.
Persistent with
pipelining
Client gi request
liên tc đến các đi
ng đưc quan
tâm.
th 1 RTT cho
tt c các đi ng
đưc quan tâm.
Các phương thc:
GET
POST
HEAD
Các phương thc:
GET
POST
HEAD
PUT
DELETE
HTTP Cookie: d liu đưc gi t server ti trình duyt ca ni ng
(Trng thái User-server). Trình duyt s lưu tr cookie này gi li theo mi HTTP
request v cho cùng server đó
V bn, cookie ng đ nói cho server biết các request đến t mt trình
duyt.
Do HTTP stateless, mi request đến server đu ging nhau, nên server không
th phân bit request đưc gi đến t mt client đã thc hin request trưc đó hay
t mt client mi.
Gm 4 thành phn:
1) Cookie header line ca thông đip đáp ng HTTP
2) Cookie header line trong thông đip đáp ng HTTP kế tiếp
3) File cookie đưc lưu tr trên host ca ni ng, đưc qun bi trình
duyt ca ni s dng
4) s d liu back-end ti Website
Mt s ng dng: s cp phép, gi mua hàng, các khuyến cáo, trng thái
phn làm vic ca user (Web email).
11
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Các trng thái đáp ng HTTP
- trng thái xut hin trong ng đu tiên trong thông đip đáp ng t
server ti client.
- Mt s trng thái thưng gp:
200 OK u cu thành công, đi ng đưc yêu cu sau trong thông
đip y.
301 Moved Permanently Đi ng đưc yêu cu đã di chuyn, v trí mi
đưc xác đnh sau trong thông đip y.
400 Bad Request Thông đip yêu cu không đưc hiu bi server.
404 Not Found Tài liu đưc yêu cu không m thy trên server này.
505 HTTP Version Not Supported y ch không h tr phn bn giao
thc HTTP.
Web caches (proxy server)
Mc tiêu:
- Đáp ng yêu cu ca client không cn liên quan đến server gc (server
cha đi ng mà client cn)
- Gim thi gian đáp ng cho yêu cu ca client.
- Gim lưu ng trên đưng link truy cp ca mt t chc.
12
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
III. Email
Gm ba thành phn chính: user agents, mail servers, SMTP
User agent (c nhân ni ng):
Son tho, sa đi, đc các thông đip email.
Các thông đip đi đến đưc lưu trên server.
d: Outlook, Thunderbird,
Mail servers:
- Hp thư (mailbox) cha thông đip đến user.
- Hàng thông đip (message queue) ca các thông đip mail ra ngoài (chun
b gi).
- Giao thc SMTP gia các mail server đ gi các thông đip email.
+ Client: gi mail đến server.
+ “Server”: nhn mail t server.
SMTP [RFC 2821], port 25 (Simple Mail Transfer Protocol)
- S dng TCP đ truyn thông đip email mt cách tin cy t client đến
server.
- Truyn trc tiếp: server gi đến server nhn
- 3 giai đon truyn:
+ Thiết lp kết ni
+ Truyn thông đip
+ Đóng kết ni
- Tương tác lnh/ phn hi ơng t HTTP, FTP:
+ Lnh: văn bn ASCII
+ Phn hi: mã cm trng thái
- Thông đip phi dng mã ASCII 7 bit
=> SMTP ng kết ni bn vng, yêu cu thông đip phi dng ASCII 7 bit,
ng CRLF đ xác đnh kết thúc thông đip
13
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
So nh SMTP HTTP
Ging nhau: đu ơng tác lnh/phn hi, các trng thái dng ASCII.
Khác nhau:
SMTP
HTTP
Đy
o
Nhiu đi ng đưc gi trong thông
đip nhiu phn
Mi đi ng đưc đóng i trong
thông đip phn hi ca nó
Các giao thc truy cp mail
SMTP: truyn/lưu tr mail vào server ni nhn => gi mail
Giao thc truy cp mail: truy cp mail t server ngưi nhn => nhn mail
IV. DNS
DNS (Domain Name System): h thng phân gii tên min, chuyn đi các
tên min website sang đa ch IP dng s nc li.
Ta đã biết rng các thiết b ni ng truy cp vào host device thông qua đa
ch IP 32-bit cng Port. Nhưng chúng thưng khó nh n so vi vic truy cp
thông qua tên, d “Google.com”. thế ta cn dch v th dch nc t tên min
ra đa ch IP ơng ng ngưc li.
Phân gii tên min:
- Truy vn lp: server đưc liên lc s tr li vi tên server đã liên lc.
- Truy vn đ quy: đy trách nhim phân gii tên cho name server đã đưc
tiếp c.
=> Tải nặng tại các tầng trên ca h thng phân cấp
Các dch v DNS:
- Dch n host ra đa ch IP
- Bí danh host
- Bí danh mail server
- Phân phi ti
14
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Các DNS thm quyn:
- DNS server ca riêng t chc cung cp các n host thm quyn đ ánh
x đa ch IP cho các host đưc đt n ca t chc đó.
- th đưc duy trì bi t chc hoc nhà cung cp dch v.
- DNS name server cc b:
- Không hoàn toàn theo cu trúc phân cp.
- Mi ISP (nhà cung cp dch v Internet) mt server cc b.
- Khi mt host to mt truy vn DNS, truy vn s đưc gi đến DNS server
cc b ca nó.
DNS caching, cp nht các record:
- Mt khi name server hc cách ánh x, nó s caches ánh x đó.
=> Các mc cache s biến mt sau mt vài ln TTL (time to live, thi gian tn
ti ca mt bn ghi (record) cu hình tên min đưc nh bi mt máy ch DNS trung
gian.)
=> TLD servers thưng đưc cache trong các name server cc b.
=> Các name server gc không thưng xuyên đưc truy cp.
- Các mc đưc cache có th hết hn s dng.
=> Nếu tên host thay đi đa ch IP, th không đưc biết đến trên Internet
cho đến khi tt c TTL hết hn.
- chế cp nht/thông o đưc đ xut bi chun IETF
Các DNS record:
Đnh dng RR: (name, value, type, ttl)
1. Type A lưu authoritative (mp3.zing.vn, ...)
- name: tên host
- value: đa ch IP
2. Type NS lưu TLD (Zing.vn, ...)
- name: tên min
- value: tên host ca name server thm quyn cho tên min này
3. Type CNAME lưu TLD, cha tên min tht, (www.ibm.com is really
servereast.backup2.ibm.com)
15
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
- name: danh ca mt s “tên chun”
- value: tên chun
4. Type MX lưu TLD ng cho mail (mail.bar.foo.com,...)
- value: tên ca mail server đưc liên kết vi name
Nhưc đim ca DNS:
- Nếu đim tp trung b hng, toàn b h thng s tê lit.
- S ng yêu cu phc v ti đim tp trung rt ln.
- Chi phí bo trì h thng rt ln.
- Khó khc phc khi xy ra s c, d b tn công.
V. Lp trình socket vi UDP TCP
Hai loi socket cho 2 dch v transport:
- UDP: datagram không đáng tin cy
- TCP: tin cy, byte đưc đnh ng ng
Lp trình socket vi UDP
UDP: không “kết ni” gia client server
- Không bt tay trưc khi gi d liu
- Bên gi ch đa ch IP đích s port cho mi packet
- Bên nhn ly đa ch IP s port ca ni gi t packet đưc nhn
=> D liu đưc truyn th b mt hoc đưc nhn không th t
Lp trình socket vi TCP
TCP: client phi tiếp c vi server
- Tiến trình server phi đưc chy trưc
- Server phi to socket đ mi client đến liên lc
- To socket TCP, xác đnh đa ch IP, s port ca tiến trình server
- Khi client to socket: client TCP thiết lp kết ni đến server TCP
- Khi đã tiếp c vi client: server TCP to socket mi cho tiến trình server đ
truyn thông vi client đó
=> TCP cung cp vic truyn các byte tin cy theo th t gia c client
server
16
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
Chương 3: Tng Transport
I. c dch v tng vn chuyn
- Cung cấp truyền thông logic giữa các tiến trình ứng dụng đang chạy trên các host
khác nhau
- Các giao thức (protocol) chạy trên các h thng đầu cuối
Phía gi: chia nh các thông đip (message) ng dng thành các segments, sau đó
chuyn các segments này cho tng Mng
Phía nhn: tái kết hp các segments thành các thông đip (message), các thông
đip y đưc chuyn n tng ng dng
- Giao thức tầng Vận chuyn dành cho các ứng dụng: TCP UDP
- Quan h giữa Tầng Vận chuyn tầng Mạng:
Tng Mng: truyn thông logic gia các host
Tng Vn chuyn: truyn thông logic gia các tiến trình. Da trên dch v tng
mng
- So nh giao thức TCP UDP:
17
TNG ĐI HC NG NGH THÔNG TIN ĐHQG-HCM
BAN HC TP NG NGH PHN MM
II. Multiplexing demultiplexing
1. Multiplexing
Tại bên gửi
Xử dữ liu từ nhiều socket, thêm thông tin header về tầng Vận chuyn vào
segment (đưc sdụng sau cho demultiplexing)
2. Demultiplexing
Tại bên nhận: Sử dụng thông tin trong header để chuyn segment vừa nhận vào
đúng socket
Host nhận các i dữ liu (datagram) IP. Mỗi i dữ liu địa chỉ IP ngun
đích. Mỗi i dữ liu mang một segment tầng Vận chuyn. Mi segment s
port ngun đích
Host dùng các địa chỉ IP s port để gởi segment đến socket thích hp
3. Demultiplexing không kết ni
Khi host nhận segment UDP: Kiểm tra s port đích trong segment. Đưa segment
UDP đến socket s port đó
Các i dữ liu IP với cùng s port đích, nhưng khác địa chỉ IP ngun và/hoặc khác
s port ngun s đưc chuyn đến cùng socket tại máy đích
4. demultiplexing ng kết ni
Socket TCP đưc xác đnh bi 4 yếu t: Đa ch IP ngun; S port ngun; Đa ch IP
đích; S port đích
Demux: nơi nhn ng tt c 4 giá tr trên đ điu hưng segment đến socket
thích hp
Host server th h tr nhiu socket TCP đng thi: Mi socket đưc xác đnh
bi b 4 ca nó
Các web server có các socket khác nhau cho mi kết ni t client
* HTTP không bn vng s có socket khác nhau cho mi yêu cu
III. Vn chuyn phi kết ni UDP
UDP (RFC 768): đơn giản, không rườm một giao thức thuc Transport
Các segment của UDP: bị mất, vận chuyn không theo thtự
Connectionless(phi kết ni): không bắt tay giữa bên nhận bên gửi; mỗi segment
đưc xử độc lập
Ứng dụng của UDP: DNS, SNMP... Các ứng dng đa phương tiện trực tuyến chịu
mất mát data nhưng cần tốc độ như live video, stream...
UDP segment header

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
COMPUTER NETWORKING
Chương I: Giới thiệu I. Internet là gì?
❖ Hàng triệu các thiết bị máy tính được kết nối:
• Hosts = hệ thống đầu cuối
• Chạy ứng dụng mạng
❖ Các liên kết truyền thông:
• Cáp quang, cáp đồng, radio, vệ tinh
• Tốc độ truyền: băng thông (bandwidth)
❖ Chuyển mạch gói: chuyển tiếp gói tin (khối dữ liệu)
• Thiết bị định tuyến (routers ) và thiết bị chuyển mạch (switches)
❖ Internet: “mạng of các mạng”
• Các nhà cung cấp dịch vụ mạng (ISPs) được kết nối với nhau.
❖ Các giao thức điều khiển gửi, nhận thông tin
• Ví dụ: TCP, IP, HTTP, Skype, 802.11 ❖ Các chuẩn Internet • RFC: Request for comments
• IETF: Internet Engineering Task Force
❖ Cơ sở hạ tầng cung cấp các dịch vụ cho các ứng dụng:
• Web, VoIP, email, games, thương mại điện tử, mạng xã hội, …
❖ Cung cấp giao diện lập trình cho các ứng dụng
• Cái móc (hooks) cho phép gửi và nhận các chương trình ứng dụng để “kết nối” với Internet
• Cung cấp các lựa chọn dịch vụ, tương tự như dịch vụ bưu chính.
❖ Giao thức định nghĩa định dạng, thứ tự các thông điệp được gởi và nhận giữa
các thực thể mạng, và các hành động được thực hiện trên việc truyền và nhận thông điệp II. Mạng biên
❖ Mạng biên (network edge):
• Nút mạng đầu cuối (end-system, host): PC, điện thoại, máy chủ, máy tính nhúng 1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
• Mạng truy cập (access network): đường truyền, thiết bị kết nối (router, switch, hub,…)
❖ Chức năng của host (end-system):
• Nhận data từ tầng ứng dụng (application) rồi chia nhỏ thành các packets, chiều dài là L bits
• Truyền packet trong mạng với tốc độ truyền R
• Tốc độ truyền của đường link, còn được gọi là khả năng/công suất của
đường link, còn được gọi là băng thông của đường link Chiều dài gói (bits) L
Độ trễ truyền gói (packet) = =
Băng thông đường link(bps) R III. Mạng lõi
❖ Lưới các bộ định tuyến (router) được kết nối với nhau.
❖ Hai chức năng chính của mạng lõi:
• Routing: xác định đường đi từ nguồn đến đích được thực hiện bởi các gói tin
• Fowarding: chuyển các packet từ đầu vào của bộ định tuyến đến đầu ra
thích hợp của bộ định tuyến đó ❖ Chuyển mạch gói
• Host chia nhỏ dữ liệu từ tầng ứng dụng thành các packet
• Chuyển tiếp các gói từ bộ định tuyến này đến bộ định tuyến tiếp theo trên
đường đi từ nguồn tới đích
• Mỗi packet được truyền với công suất lớn nhất của đường truyền
❖ Độ trễ hàng đợi, sự mất mát: nếu tốc độ đến của đường link cao hơn tốc độ
truyền của đường link trong 1 khoảng thời gian
❖ Các packet sẽ xếp hàng và đợi được truyền tải tạo ra độ trễ hàng đợi
❖ Các packet có thể bị bỏ (mất) nếu bộ nhớ hàng đợi (bộ nhớ đệm) đầy
❖ Chuyển mạch kênh: 2 điểm đầu cuối muốn trao đổi thông tin sẽ thiết lập 1 kênh
truyền riêng (circuit) với băng thông được cấp phát dành riêng cho cả 2 cho tới khi truyền tin kết thúc
• Kênh không được chia sẽ nên sẽ rảnh rỗi lúc không truyền tin
❖ Ghép kênh: gửi dữ liệu của nhiều kênh khác nhau trên một đường truyền vật lý
❖ Phân kênh: phân dữ liệu được truyền trên đường truyền vật lý vào các kênh
tương ứng và chuyền cho đúng đích
• Ghép kênh theo thời gian (TDM): mỗi kết nối sử dụng tài nguyên trong thời gian được phân. 2
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
• Ghép kênh theo tần số (FDM): mỗi kết nối sử dụng 1 băng tần tín hiệu riêng Chuyển mạch gói Chuyển mạch kênh Ưu điểm: Ưu điểm:
Băng thông được sử dụng tốt
Tốc độ truyền và băng thông cố
hơn do không bị giới hạn trên 1 kênh định riêng
Không có thời gian chờ tại các
Lỗi đường truyền không làm nút chuyển tiếp
chậm trễ do có nhiều đường truyền
Có thể sử dụng lâu dài khác nhau
Chất lượng ổn định, không bị
Nhiều người có thể sử dụng mất gói
chung một đường truyền ❖ Nhược điểm: Nhược điểm: Độ trễ truyền lớn
Nhiều kênh thì băng thông càng
Dễ xảy ra mất gói tin nếu dung nhỏ lượng lớn
Chỉ một kênh truyền được sử
dụng tại một thời điểm
Kênh truyền sẽ duy trì cho đến
khi 2 bên ngắt kết nối và có thể lãng
phí băng thông nếu không truyền dữ liệu
Thời gian thiết lập kênh truyền quá lâu 3
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
IV. Độ trễ, thông lượng trong mạng
❖ 4 nguồn gây ra chậm trễ gói tin
dproc: xử lý tại nút o Kiểm tra các bits lỗi o Xác định đường ra o Thông thường < ms
dqueue: độ trễ xếp hàng
o Thời gian đợi tại đường ra
o Phụ thuộc vào mức độ tắc nghẽn của bộ định tuyến
dtrans: độ trễ do truyền
o L: chiều dài gói tin (bits) o R: băng thông (bps) o dtrans = L/R
dprop: trễ do lan truyền
o d: độ dài đường truyền vật lý
o s: tốc độ lan truyền trong môi trường o dprop= d/s
R: băng thông đường link (bps) L: độ dài gói tin (bits)
a: tỷ lệ trung bình gói tin đến
Cường độ lưu thông = La/R
• La/R ~ 0: trễ trung bình nhỏ
• La/R -> 1: trễ trung bình lớn
• La/R > 1: nhiều “việc” đến hơn khả năng phục vụ, trễ trung bình vô hạn!
❖ Thông lượng: tốc độ(bits/time unit) mà các bit được truyền giữa người gởi và nhận
• Tức thời: tốc độ tại 1 thời điểm
• Trung bình: tốc độ trong khoảng thời gian 4
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
V. Các lớp giao thức
Application: hỗ trợ các ứng dụng mạng FTP, SMTP, HTTP,….
Transport: chuyển dữ liệu từ tiến trình này đến tiến trình
kia (process-process) TCP, UDP,…
Network: định tuyến những gói dữ liệu từ nguồn tới đích
IP, các giao thức định tuyến,…
Link: chuyển dữ liệu giữa các thành phần mạng lân cận
Ethernet, 802.111 (WiFi), PPP,…
Physical: bits “trên đường dây” ❖ Mô hình ISO/OSI
Presentation: cho phép các ứng dụng giải thích ý nghĩa của
dữ liệu, ví dụ mã hóa, nén, những quy ước chuyên biệt
Session: sự đồng bộ hóa, khả năng chịu lỗi, phục hồi sự trao đổi dữ liệu 5
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Chương II: Tầng Application I.
Các nguyên lý của các ứng dụng mạng
Các kiến trúc ứng dụng:
- Kiến trúc Client – Server
- Kiến trúc P2P (Peer to peer) Client – Server P2P Server - Luôn hoạt động - Không có server
- Địa chỉ IP cố định
- Trung tâm phục vụ và lưu trữ dữ liệu Client - Giao tiếp với server
- Các hệ thống đầu cuối giao tiếp trực
- Có thể kết nối không liên tục tiếp với nhau
- Có thể dùng địa chỉ IP động
- Các peer yêu cầu dịch vụ từ các peer
- Không giao tiếp trực tiếp với khác và cung cấp dịch vụ ngược lại từ các các client khác peer khác
=> Có khả năng tự mở rộng
- Các peer được kết nối không liên tục và
có thể thay đổi địa chỉ IP - Quản lí phức tạp 6
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Các tiến trình liên lạc:
Tiến trình (Process) là chương trình chạy trong một host.
Trong cùng một host, hai tiến trình giao tiếp với nhau bằng cách sử dụng truyền
thông liên tiến trình (inter-process communication) được định nghĩa bởi hệ điều hành.
Các tiến trình trong các host khác nhau truyền thông với nhau bởi trao đổi các thông điệp (message). Client, Server:
Tiến trình Client: tiến trình khởi tạo truyền thông.
Tiến trình Server: tiến trình chờ đợi để được liên lạc.
Chú ý: Các ứng dụng với kiến trúc P2P có cả tiến trình client và tiến trình server. Sockets:
- Socket là giao diện lập trình ứng dụng mạng được dùng để truyền và nhận
dữ liệu trên Internet. Giữa hai chương trình chạy trên mạng cần có một liên kết giao
tiếp 2 chiều (two-way communication) để kết nối 2 tiến trình trò chuyện với nhau.
Điểm cuối (endpoint) của liên kết này được gọi là socket.
=> Socket tương tự một cổng ra vào.
Các tiến trình sử dụng socket gọi dịch vụ của tầng giao vận để trao đổi thông điệp:
Để nhận thông điệp, tiến trình phải có định danh (identifier) - bao gồm địa chỉ
IP và số cổng (port number).
Thiết bị host device có địa chỉ IP 32-bit duy nhất.
Một số Port tầng Application: 7
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM Protocol Port number Protocol Port number FTP 20 HTTP 80 SSH 22 Telnet 23 DNS 53 HTTPS 443 LPD 515 TFTP 69 SMTP 25 NFS 2049
❖ Các dịch vụ giao thức Transport Internet • Dịch vụ TCP:
Reliable transport (truyền tải tin cậy) giữa tiến trình gửi và nhận.
Flow control (điều khiển luồng): người gửi sẽ không áp đảo người nhận.
Congestion control (điều khiển tắc nghẽn): điều tiết người gửi khi mạng quá tải.
Connection-oriented (hướng kết nối): thiết lập được yêu cầu giữa tiến trình client và server.
Ví dụ các giao thức TCP: FTP data, FPT control (port 21), Telnet, HTTPS, POP3 (port 110), SMTP, … • Dịch vụ UDP:
Truyền tải dữ liệu không tin cậy giữa tiến trình gửi và nhận.
Không hỗ trợ: độ tin cậy, điều khiển luồng, điều khiển tắc nghẽn, đảm bảo
thông lượng, bảo mật và thiết lập kết nối.
Ví dụ các giao thức UDP: RIP (port 520), TFTP, SNMP (port 161),…
Chú ý: các giao thức DNS, HTTP, SSH dùng chung cả 2 dịch vụ TCP và UDP.
❖ So sánh giữa 2 dịch vụ:
+Giống nhau: Đều là các giao thức mạng TCP/IP, có chức năng kết nối các máy
tính với nhau, có thể gửi dữ liệu cho nhau. 8
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM +Khác nhau: TCP UDP Hướng kết nối Hướng không kết nối
Thường dùng cho mạng WAN
Thường dùng cho mạng LAN Độ tin cậy cao Độ tin cậy thấp
Gửi dữ liệu dạng luồng byte Gửi đi Datagram
Không cho phép mất gói tin Cho phép mất gói tin
Đảm bảo việc truyền dữ liệu
Không đảm bảo việc truyền dữ liệu
Có sắp xếp thứ tự các gói tin
Không sắp xếp thứ tự các gói tin
Tốc độ truyền thấp hơn UDP Tốc độ truyền cao II. Web và HTTP
Web page: là một tập hợp các văn bản, hình ảnh, tệp tin (gọi chung là các đối
tượng – objects) thích hợp với World Wide Web và được thực thi ở trình duyệt web.
Mỗi đối tượng có thể được định danh địa chỉ bởi một URL.
HTTP (Hypertext Transfer Protocol): là giao thức web ở tầng Application Mô hình Client / Server:
- Client: trình duyệt yêu cầu và nhận (sử dụng giao thức HTTP), hiển thị các đối tượng của web.
- Server: Web server gửi (sử dụng giao thức HTTP) các đối tượng để đáp ứng yêu cầu của Client
- RTT (Round Trip Time): khoảng thời gian (tính bằng ms) để một gói tin nhỏ
đi từ Client đến Server và quay ngược trở lại. Các kết nối HTTP
HTTP không bền vững HTTP bền vững (Nonpersistent HTTP) (Persistent HTTP)
Chỉ tối đa một đối tượng được gửi qua Nhiều đối tượng có thể gửi qua một kết
kết nối TCP. Kết nối sau đó sẽ bị đóng.
nối TCP giữa Client và Server.
Tải nhiều đối tượng yêu cầu nhiều kết nối HTTP/1.0 (RFC 1945) HTTP/1.1 (RFC 2616) Thời gian đáp ứng Thời gian đáp ứng 9
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM Persistent without Persistent with
Một RTT để khởi tạo kết nối TCP. pipelining pipelining
Một RTT cho yêu cầu HTTP và vài byte
đầu tiên của đáp ứng HTTP được trả về. Client chỉ gửi Client gửi request Thời gian truyền file
request khi đã nhận liên tục đến các đối
Thời gian đáp ứng HTTP không bền vững response trước. tượng được quan
= 2RTT + thời gian truyền file. 1 RTT cho 1 đối tâm.
tượng được quan Có thể 1 RTT cho tâm.
tất cả các đối tượng được quan tâm. Các phương thức: Các phương thức: GET GET POST POST HEAD HEAD PUT DELETE
HTTP Cookie: là dữ liệu được gửi từ server tới trình duyệt của người dùng
(Trạng thái User-server). Trình duyệt sẽ lưu trữ cookie này và gửi lại theo mỗi HTTP
request về cho cùng server đó
Về cơ bản, cookie dùng để nói cho server biết các request đến từ một trình duyệt.
Do HTTP là stateless, mọi request đến server đều giống nhau, nên server không
thể phân biệt request được gửi đến là từ một client đã thực hiện request trước đó hay từ một client mới. Gồm 4 thành phần:
1) Cookie header line của thông điệp đáp ứng HTTP
2) Cookie header line trong thông điệp đáp ứng HTTP kế tiếp
3) File cookie được lưu trữ trên host của người dùng, được quản lý bởi trình
duyệt của người sử dụng
4) Cơ sở dữ liệu back-end tại Website
Một số ứng dụng: sự cấp phép, giỏ mua hàng, các khuyến cáo, trạng thái
phiên làm việc của user (Web email). 10
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Các mã trạng thái đáp ứng HTTP
- Mã trạng thái xuất hiện trong dòng đầu tiên trong thông điệp đáp ứng từ server tới client.
- Một số mã trạng thái thường gặp:
200 OK – Yêu cầu thành công, đối tượng được yêu cầu sau ở trong thông điệp này.
301 Moved Permanently – Đối tượng được yêu cầu đã di chuyển, vị trí mới
được xác định sau trong thông điệp này.
400 Bad Request – Thông điệp yêu cầu không được hiểu bởi server.
404 Not Found – Tài liệu được yêu cầu không tìm thấy trên server này.
505 HTTP Version Not Supported – Máy chủ không hỗ trợ phiên bản giao thức HTTP. Web caches (proxy server) Mục tiêu:
- Đáp ứng yêu cầu của client mà không cần liên quan đến server gốc (server
chứa đối tượng mà client cần)
- Giảm thời gian đáp ứng cho yêu cầu của client.
- Giảm lưu lượng trên đường link truy cập của một tổ chức. 11
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM III. Email
Gồm ba thành phần chính: user agents, mail servers, SMTP
User agent (tác nhân người dùng):
Soạn thảo, sửa đổi, đọc các thông điệp email.
Các thông điệp đi và đến được lưu trên server.
Ví dụ: Outlook, Thunderbird, … Mail servers:
- Hộp thư (mailbox) chứa thông điệp đến user.
- Hàng thông điệp (message queue) của các thông điệp mail ra ngoài (chuẩn bị gửi).
- Giao thức SMTP giữa các mail server để gửi các thông điệp email.
+ Client: gửi mail đến server.
+ “Server”: nhận mail từ server.
SMTP [RFC 2821], port 25 (Simple Mail Transfer Protocol)
- Sử dụng TCP để truyền thông điệp email một cách tin cậy từ client đến server.
- Truyền trực tiếp: server gửi đến server nhận - 3 giai đoạn truyền: + Thiết lập kết nối + Truyền thông điệp + Đóng kết nối
- Tương tác lệnh/ phản hồi tương tự HTTP, FTP: + Lệnh: văn bản ASCII
+ Phản hồi: mã và cụm trạng thái
- Thông điệp phải ở dạng mã ASCII 7 bit
=> SMTP dùng kết nối bền vững, yêu cầu thông điệp phải ở dạng ASCII 7 bit,
dùng CRLF để xác định kết thúc thông điệp 12
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM So sánh SMTP và HTTP
Giống nhau: đều có tương tác lệnh/phản hồi, các mã trạng thái dạng ASCII. Khác nhau: SMTP HTTP Đẩy Kéo
Nhiều đối tượng được gửi trong thông Mỗi đối tượng được đóng gói trong điệp nhiều phần
thông điệp phản hồi của nó
Các giao thức truy cập mail
SMTP: truyền/lưu trữ mail vào server người nhận => gửi mail
Giao thức truy cập mail: truy cập mail từ server người nhận => nhận mail IV. DNS
DNS (Domain Name System): hệ thống phân giải tên miền, chuyển đổi các
tên miền website sang địa chỉ IP dạng số và ngược lại.
Ta đã biết rằng các thiết bị người dùng truy cập vào host device thông qua địa
chỉ IP 32-bit và cổng Port. Nhưng chúng thường khó nhớ hơn so với việc truy cập
thông qua tên, ví dụ “Google.com”. Vì thế ta cần dịch vụ có thể dịch ngược từ tên miền
ra địa chỉ IP tương ứng và ngược lại.
Phân giải tên miền:
- Truy vấn lặp: server được liên lạc sẽ trả lời với tên server đã liên lạc.
- Truy vấn đệ quy: đẩy trách nhiệm phân giải tên cho name server đã được tiếp xúc.
=> Tải nặng tại các tầng trên của hệ thống phân cấp Các dịch vụ DNS:
- Dịch tên host ra địa chỉ IP - Bí danh host - Bí danh mail server - Phân phối tải 13
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Các DNS có thẩm quyền:
- DNS server của riêng tổ chức cung cấp các tên host có thẩm quyền để ánh
xạ địa chỉ IP cho các host được đặt tên của tổ chức đó.
- Có thể được duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ. - DNS name server cục bộ:
- Không hoàn toàn theo cấu trúc phân cấp.
- Mỗi ISP (nhà cung cấp dịch vụ Internet) có một server cục bộ.
- Khi một host tạo một truy vấn DNS, truy vấn sẽ được gởi đến DNS server cục bộ của nó.
DNS caching, cập nhật các record:
- Một khi name server học cách ánh xạ, nó sẽ caches ánh xạ đó.
=> Các mục cache sẽ biến mất sau một vài lần TTL (time to live, là thời gian tồn
tại của một bản ghi (record) cấu hình tên miền được nhớ bởi một máy chủ DNS trung gian.)
=> TLD servers thường được cache trong các name server cục bộ.
=> Các name server gốc không thường xuyên được truy cập.
- Các mục được cache có thể hết hạn sử dụng.
=> Nếu tên host thay đổi địa chỉ IP, có thể không được biết đến trên Internet
cho đến khi tất cả TTL hết hạn.
- Cơ chế cập nhật/thông báo được đề xuất bởi chuẩn IETF Các DNS record:
Định dạng RR: (name, value, type, ttl)
1. Type A lưu ở authoritative (mp3.zing.vn, ...) - name: tên host - value: địa chỉ IP
2. Type NS lưu ở TLD (Zing.vn, ...) - name: tên miền
- value: tên host của name server có thẩm quyền cho tên miền này
3. Type CNAME lưu ở TLD, chứa tên miền thật, (www.ibm.com is really servereast.backup2.ibm.com) 14
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
- name: bí danh của một số “tên chuẩn” - value: tên chuẩn
4. Type MX lưu ở TLD dùng cho mail (mail.bar.foo.com,...)
- value: tên của mail server được liên kết với name
Nhược điểm của DNS:
- Nếu điểm tập trung bị hỏng, toàn bộ hệ thống sẽ tê liệt.
- Số lượng yêu cầu phục vụ tại điểm tập trung rất lớn.
- Chi phí bảo trì hệ thống rất lớn.
- Khó khắc phục khi xảy ra sự cố, dễ bị tấn công.
V. Lập trình socket với UDP và TCP
Hai loại socket cho 2 dịch vụ transport:
- UDP: datagram không đáng tin cậy
- TCP: tin cậy, byte được định hướng dòng
Lập trình socket với UDP
UDP: không “kết nối” giữa client và server
- Không bắt tay trước khi gửi dữ liệu
- Bên gửi chỉ rõ địa chỉ IP đích và số port cho mỗi packet
- Bên nhận lấy địa chỉ IP và số port của người gửi từ packet được nhận
=> Dữ liệu được truyền có thể bị mất hoặc được nhận không thứ tự
Lập trình socket với TCP
TCP: client phải tiếp xúc với server
- Tiến trình server phải được chạy trước
- Server phải tạo socket để mời client đến liên lạc
- Tạo socket TCP, xác định địa chỉ IP, số port của tiến trình server
- Khi client tạo socket: client TCP thiết lập kết nối đến server TCP
- Khi đã tiếp xúc với client: server TCP tạo socket mới cho tiến trình server để
truyền thông với client đó
=> TCP cung cấp việc truyền các byte tin cậy và theo thứ tự giữa các client và server 15
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
Chương 3: Tầng Transport
I. Các dịch vụ tầng vận chuyển
- Cung cấp truyền thông logic giữa các tiến trình ứng dụng đang chạy trên các host khác nhau
- Các giao thức (protocol) chạy trên các hệ thống đầu cuối
• Phía gửi: chia nhỏ các thông điệp (message) ứng dụng thành các segments, sau đó
chuyển các segments này cho tầng Mạng
• Phía nhận: tái kết hợp các segments thành các thông điệp (message), các thông
điệp này được chuyển lên tầng Ứng dụng
- Giao thức tầng Vận chuyển dành cho các ứng dụng: TCP và UDP
- Quan hệ giữa Tầng Vận chuyển và tầng Mạng:
• Tầng Mạng: truyền thông logic giữa các host
• Tầng Vận chuyển: truyền thông logic giữa các tiến trình. Dựa trên dịch vụ tầng mạng
- So sánh giao thức TCP và UDP: 16
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
II. Multiplexing và demultiplexing 1. Multiplexing − Tại bên gửi
− Xử lý dữ liệu từ nhiều socket, thêm thông tin header về tầng Vận chuyển vào
segment (được sử dụng sau cho demultiplexing) 2. Demultiplexing
− Tại bên nhận: Sử dụng thông tin trong header để chuyển segment vừa nhận vào đúng socket
− Host nhận các gói dữ liệu (datagram) IP. Mỗi gói dữ liệu có địa chỉ IP nguồn và
đích. Mỗi gói dữ liệu mang một segment tầng Vận chuyển. Mỗi segment có số port nguồn và đích
− Host dùng các địa chỉ IP và số port để gởi segment đến socket thích hợp
3. Demultiplexing không kết nối
− Khi host nhận segment UDP: Kiểm tra số port đích trong segment. Đưa segment
UDP đến socket có số port đó
− Các gói dữ liệu IP với cùng số port đích, nhưng khác địa chỉ IP nguồn và/hoặc khác
số port nguồn sẽ được chuyển đến cùng socket tại máy đích
4. demultiplexing hướng kết nối
− Socket TCP được xác định bởi 4 yếu tố: Địa chỉ IP nguồn; Số port nguồn; Địa chỉ IP đích; Số port đích
Demux: nơi nhận dùng tất cả 4 giá trị trên để điều hướng segment đến socket thích hợp
− Host server có thể hỗ trợ nhiều socket TCP đồng thời: Mỗi socket được xác định bởi bộ 4 của nó
− Các web server có các socket khác nhau cho mỗi kết nối từ client
* HTTP không bền vững sẽ có socket khác nhau cho mỗi yêu cầu
III. Vận chuyển phi kết nối UDP
− UDP (RFC 768): đơn giản, không rườm rà là một giao thức thuộc Transport
− Các segment của UDP: bị mất, vận chuyển không theo thứ tự
− Connectionless(phi kết nối): không bắt tay giữa bên nhận và bên gửi; mỗi segment
được xử lí độc lập
− Ứng dụng của UDP: DNS, SNMP... Các ứng dụng đa phương tiện trực tuyến chịu
mất mát data nhưng cần tốc độ như live video, stream... − UDP segment header 17