0% found this document useful (0 votes)
253 views215 pages

Tailieuxanh Mang May Tinh NXB Dai Hoc Quoc Gia Phan 1 6058

Uploaded by

thanhnhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
253 views215 pages

Tailieuxanh Mang May Tinh NXB Dai Hoc Quoc Gia Phan 1 6058

Uploaded by

thanhnhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 215

TKUJNG DAI HOC CONG NGHE - DHQGHN

HO DAG PHOONG

i^CSl
W [n»H^ r^HA XUAT BAN OAI HOC QUOC Q A hlA NOT
HO DAC PHUONG

MANG MAY TINH

N H A XUAT BAN DAI HOC QUOC GiA HA NO!


Muc luc
CHUONG 1 - GIOl THIEU CHUNG 7

1 MANG TRUYEN THONG VA CONG NGHE MANG 7


1.1 Giei'i thieu chung 7
1.2 Mang may tinh - 9
1.3. Phan loai mang may tinh 13
1.4 Dia chi mang, dinh tuyen, tinh tin cay, linh lien tac va an ninh mang 23
1.5 Chuan mang —25
2 MO HINH OSI - 26
2.1 Mo hinh 27
2.2 Chirc nang cac tang 32
2.3 Bo giao thuc TCP/IP - Mo hinh Internet 43
3 PHUONG PHAP TIER CAN- 44

CHU^ONG 2 - TANG U N G D V N G 45

2.1 GIAO THU'C TANG ITNG DUNG 45


2.1.1 Giao thuc tang ungdyng 46
2.1.2 Cac yeu cau ciia ung dung 51
2.1.3 Dich v\i cua cac giao thuc giao van Internet 53
2.1.4 Mpt so umg dyng pho bien 56
2. 2 WORLD WIDE WEB: HIT? 57
2.2.1 T6ng quan ve HTTP 58
2.2.2 Ket noi lien tuc va khong hen tuc (persistent / nonpersistent) 61
2.2.3 Khuon dang thong diep HTTP 63
2.2.4 Tuong tac giOra nguexi diing Hrver-server 67
2.2.5 GET CO dieu kien (Conditional GET) 69
2.2.6 Web cache 71
2.2.7 Web dong 73
2.3 TRUYEN FILE (FILE TRANSFER) FTP 82
2.3.1 Cac lenh FTP (FTP Commands) 84
2.4 - THU TIN DIEN TU" (E-mail) TREN INTERNET 85
2.4.1 SMTP 87
2.4.2 So sanh SMTP vai HTTP 90
2.4.3 Khuon dang thu va chuan MIME 91
2.4.4 Giao thuc truy nhap mail. 97
2. 5 DICH VU TEN MIEN - DNS. !02
2.5.1 Cac dich vu cua DNS -103
2.5.2 Co che hoat dong ciia DNS 105
2.5.3 Ban ghi DNS - 112
2.5.4 Thong diep DNS --i- ; 13
2.6 CAC UNG DUNG THEO KIEN TRUC NGANG HANG 115
2.6.1 Nhan tin luc thi 117
2.6.6. Kien true He thong MSN. 121
2.6.3 Kien tnic chia se file ngang hang Gnutella 128
2.7 LAP TRINH SOCKET 134
2.7.1 Cac ham thao tac tren Socket 135
2.7.2 Vi du mot chuong trinh cHent/server don gian 138
2.7.3 Web server don gian 140

CHU'CfNG 3 - TANG GIAO VAN 148

3.1 DICH VU VA NGUYEN T A C CUA T A N G GIAO VAN — -148


3.1.1 Quan h$ giiJa t4ng giao van va ting mang 150
3.1.2 T6ng quan ve tang giao van trong Internet. -< 152
3.2 DICH VU DON KENH, PHAN KENH 153
3.3 UDP - GIAO THirC KHONG HUC)NG NOI 158
3.3.1 Cau tnic UDP segment 162
3.3.2 UDP checksum 4. 162
3.4 CAC NGUYEN TAC TRUYEN D C LIEU TIN CAY 164
3.4.1 Xay dumg giao thuc truygn du lieu tin cay 165
3.4.2 Giao thuc tmyen diJ lieu tin cay lien tuc (Pipeline) 175
3.4.3 Go-back-N (GBN) 173
3.4.4 Giao thirc lap lai c6 lira chon (Selective Repeat) 184
3.5 TCP - GIAO THLTC GIAO VAN HUCiNG NOI 189
3.5.1 KSt n6i TCP 190
3.5.2 Cau tnic TCP Segment 193
3.5.3 S6 thu tu va So bien nhan -I95
3.5.4 Telnet: Mot vi du ve s6 thu tu va so bien nhan 196
3.5.5 Tmyen du lieu tin cay — 199
3.5.6 l.iem soat luu lugng 205
3.5.7 Quan ly kgl n6i TCP 207
3.6 KBM SOAT TAC NGMFN TRONG TCP 211

CHU'OfNG 4 - TANG MANG 216

4.1 CAC M 6 HINH DICH VU CUA T A N G MANG 216


4.1.1 !46 hinh djch vu mang - 218
4.1.2 Ngu6n goc ciia dich vu chuySn mach goi va chuyen mach ao. 223
4.2 CAC NGUYEN LY DINH TUYEN 224
4.2.1. rhuat loan dinh tuyen link slate. 227
4.2.2. rhuat loan Distance vector. 231
4.3 DNIH TUYEN PHAN cAP 236
4.4 nvTERNET PTOTOCOL -— 238
4.4.1 Dja chi IPv4 240
4.4.2 ChuySn datagram tir nguon tai dich: vin dS dia chi va dinh tuyen 248
4.4.3 JQiuon dang goi du lieu IP 251
4.4.4 ?'han manh (Fragmentation) va Hop nhk (Reassembly) goi tin IP 254
4.4.5 Giao thijrc kiim soat 16i ICMP (Internet Control Message Protocol) 258
4.5 D NH TUYEN TREN INTERNET 259
4.5.1 Djnh tuyin trong mpt miSn (Intra-AS routing) (Djnh tuySn ngi mien) 260
4.5.2 Djnh tuy6n giua cic mign (Inter-AS routing) (Dinh tuyen lien miSn) 264
4.6 CKU TAO CUA THIET BI DINH TUYEN (ROUTER) 264
4.6.1 36ng vao (Input port) 266
4.6.2 ;<.gt c4u chuyin (Switching fabric) 268
4.6.3 36ng ra (Output port) 270
4.6.4 [iang dgi o router 270
4.7IIv6 273
4.7.1 Dinh dang goi tin IPv6 273
4.7.2 ChuySn tir IPv4 sang IPv6 276
4.8 CJ CHE DICH CHUYEN DIA CHI (NAT) 279
4.9 KIEM S O A T TAG N G H E N 285
4.9.1 Cac nguyen ly Kiem soat tSc nghen. 286
4.9.2 Chinh sach ngSn chan tSc nghen 289
4.9.3 Kiem soat tSc nghen trong mach ao 290
4.9.4 Kiem soat tic nghen trong mang chuyen mach goi. 292
4.9.5 cat tki 293
CHU'OfNG 5 -TANG LIEN KET D C LIEU 295

5.1 cAc KHAI N I E M CHUNG, DICH VU CUA T A N G DATALINK 295


5.1.1 NhOng dich vu ciia tang lien kk du lieu 296
5.1.2 Bo dieu hepp (Adapter) 300
5.2 KY THUAT P H A T H I E N VA SLTA L 6 1 — 302
5.2.1 Kiem tra tinh chin le 304
5.2.2 Phuomg phap tinh long kiem tra (checksum) — -306
5.2.3 Kilm tra du thira vong (CRC) -306
5.2.4 Sua 161 bang ma Hamming -309
5.3. GIAO THLTC DA TRUY CAP vA MANG CUC B O -313
5.3.1 Giao thuc phan chia kenh tmyen (channel partitioning) -317
5.3.2 Giao thuc truy cap ngau nhien (random access) -318
5.3.3 Giao thuc truy cap l4n lugt (Taking - turns) -326
5.3.4 Mang cue bo LAN (Local Area Network) 327
5.4 DIA CHI LAN VA ARP -328
5.4.1 Dja chi LAN -329
5.4.2. Giao thuc giai ma dja chi (ARP) -331
5.5. ETHERNET -336
5.5.1 Nhung khai niem co ban ciia Ethernet -338
5.2.2 CSMA/CD: Giao thuc da truy cap cua Ethernet -342
5.5.3 Nhung cong nghe Ethernet -345
5.6 HUB, BRIDGE VA SWITCH -349
5.6.1 Hub 349
5.6.2 Bridge 351
5.6.3. Switch 360
5.8. MANG LAN KHONG DAY 363
5.8.1 Gicyi thieu chung 363
5.8.2 Lejp giao thuc IEEE 802.11 366
5.8.3 Mot s6 \kn de hay gap doi vai mang khong day 369
5.9. PPP - GIAO THirC DIEM NOI DIEM 371
5.9.1 Khuon dang goi gO lieu (Frame PPP) 373
5.9.2 Giao thirc dieu khien duong truySn PPP (LCP) va kiem soat mang 375
5.10 MANG RIENG Ao (VPN) 378
5.10.1 Cac mang rieng ao tmyen thong 378
5.10.2 Mo phong gia day din (Pseudowire Emulation Overview) 381
TAX LIEU THAM KHAO 387
Chirtfng 1
GIOI THIEU CHUNG

1.1 MANG TRUYEN THONG VA CONG NGHE MANG

1.1.1 Gioi thieu chung

Truyen thong may tinh (computer communications) la qua trinh


truy^n dir lieu tir thik hi nay sang Ihiet bj khac. Truac day chiing ta thucrng
hi6u thilt hi la may tinh, nhung ngay nay thiet hi (end-system, device)
khong chi dem thuin la may tinh ma bao gom nhigu chiing loai thiet hi khac,
vi du dien thoai di dong, may tinh PAM,... (Xem Hinh 1.1). S6 lugng cac
kilu thiat hi CO kha nang lay thong tin tir Internet ngay cang tang. Mot tiJ
pho bien c6 nghla tucmg tu nhu vay la truyen du lieu. Mac dii hai cum tir
nay c6 th6 sir dung thay thI cho nhau, mot so nguai coi thuat ngO: dir lieu
(data) chi bao g6m nhimg sir kien don gian va tho (chua dugc xu ly), va sur
dung thuat ngu thong tin (information) dk chi viec t6 chuc nhimg su kien
nay thanh dang thong tin c6 nghla d6i vai con nguai.
Hinh 1.1 C^c t h i l t bj c6 kh§ n i n g k i t n6i Internet

Khai niem mang (networking) chi khai niem kk noi cac thiet hi lai
vc?i nhau nhSm muc dich chia se thong tin. Khai niem mang lien quan den
nhieu van de, bao g6m:
Giao thii-c truyen thong (protocol): mo ta nhiing nguyen tSc ma tit
ca cac thanh phan mang can tuan thu dk c6 thI trao doi dugc vai nhau;
Topo (mo hinh ghep noi mang/hinh trang mang): mo ta each thirc
noi cac thiet hi vai nhau.
Dja chi: mo ta each thuc djnh vi mot d6i tugng tren mang.
Djnh tuyen (routing): mo ta each thuc dij lieu truyen tir thiet hi nay
sang thiet hi khac tren mang.
Tinh tin cay (reliability): giai quyet tinh toan ven ciia dir lieu, dam
bao dir lieu nhan dugc chinh xac nhu dir lieu gui di.
Kha nang lien tac (interoperability): chi muc do cac s^n pham
phan mem va phSn cung cua cac hang san xuk khac nhau c6 thS lam viec
Cling nhau.
An ninh (security): dam bao an loan hoac bao ve tat ca cac thanh
phan ciia mang.
Chuan (standard): thilt lap cac quy tac va luat le cu the can phai
tuan theo.
Tren thuc te, khai niem mang xuk hien a nhieu kieu ung dung khac
nhau. Vi du, trong cong nghiep giai tri, cac cong ty truyen thanh, truySn
hinh, va cong ty cap deu c6 nhimg mang doc lap rieng cua minh vai nhieu
tram phat. Thong qua nhiing mang nay, cac chuong trinh tin tuc, the thao,
dien anh, phim truyen... dugc diing chung giira cac tram phat. Mang truyen
thong ra doi scTm nhit va pho bien nhat la mang dien thoai. Khi noi den
mang dien thoai, nguai ta muon nhac den he thong dien thoai kieu cQ (plain
old telephone system - POTS) hoac mang dien thoai chuyen mach cong
cong (PSTN - public switched telephone network). Mang PSTN mo ta he
thong dien thoai truyen thong dua tren tin hieu tuong tu dugc su dung dk
truyen tieng noi. Mot mang truyen thong kha quen thugc ngay nay la mang
may tinh Internet - la mot tap hgp cac mang, hay mang mang.

1.1.2 Mang may tinh

Mang bao g6m nhidu tli^nh phan, cac thanh phan dugc noi vai nhau
theo mot each thuc nao do va ciing su dung chung mot ngon ngii:
Cac thilt bj dau cuoi (end system) ket noi v(7i nhau tao thanh mang
CO the la cac may tinh (computer) hoac cac thiet bi khac. Ngay cang c6
nhieu loai thiet bi c6 kha nang ket noi vao mang may tinh nhu dien thoai di
dong, PDA, ti vi...
Moi truong truyen (media) thuc hien viec truyen dan, cac tin hieu vat
ly. Moi truong truyen c6 the la cac loai day dan (cap), song (doi ve^i cac
mang khong day).
Giao thuc (protocol) la quy tac quy dinh each thuc trao doi dir lieu
gi&a cac thuc the.
Noi chung, ba khai niem tren dua den mot djnh nghTa chuan ve
mang may tinh nhu sau:
Mang may tinh la tap hgp cac may tinh va cac thi6t bi phu trg khac
sur dung chung mot nhom giao thuc de chia se tai nguyen thong qua cac
phuong tien truyen thong mang.
Cac thanh phan mang: thiet hi, niit, may tinh
Theo nghia chung nhit, thuat ngir thiet bj (device) chi bit cu mot
thuc the phan cirng nao, chSng ban cac thilt bj dhu cu6i, may in, may tinh,
hoac mot thiet bi phan cung dac biet lien quan d6n mang, vi du may chu
(server), repeater (bg lap), bridge (chu), switch, router (bg dinh tuyin), va rk
nhieu thiet bj dac biet khac. Tat ca cac kilu thiSt bi nay se dugc thao luan
chi tiet a cac chuong sau.

Noi chung c6 nhilu phuomg phap gan cho thiet bj mang mot djnh
danh duy nhat, thuong thi thiet bi dugc chinh hang san xuat gin mot so nhan
dang duy nhat. Viec nay tuang tu nhu viec in s6 seri tren tivi hoac cac d6
diing dien tu khac. Vi du moi card Ethernet dugc hang san xuat gan cho mot
dia chi duy nhk - dia chi nay khong trimg vai hk ky card Ethernet nao khac.
Khi mo ta cac thanh phan mang, c4n phan biet giira khai niem thilt
bi (device) va may tinh (computer). Ngu xet a khia canh thiet bi may tinh
thuong dugc goi la host (hoac server) hay tram lam viec (workstation) (cung
con dugc goi la desktop hay client). Thuat ngir nay thuong dung de chi
nhijng he thong may tinh c6 cai dat he dilu hanh rieng cua minh (vi du
Windows, UNIX). Vi vay workstation c6 thi la may tinh ca nhan nhu may
Apple Macintosh, hoac bat cu may tinh hg Intel nao (thuong dugc goi la
IBM-PC); cung c6 the la mot workstation d6 hga (vi du cac workstation d6
hga dugc san xuat bai Sun Microsystems, Silicon Graphics, IBM, Hewlett-
Packard, Compaq Computer Corporation), mot superminicomputer nhu
Compaq's VAX hay mot he thong IBM AS/400, mot super-microcomputer
nhu Compaq's Alpha; hoac c6 thi la mot may tinh Ion (mainframe) nhu
IBM ES-9000.
Phu-ong tien va cac giao thirc truyen thong mang
De chia se thong tin va sir dung dich vu tren mang, cac thanh phlin
cua mang phai c6 kha nang truyen thong dugc vol nhau. D8 dap ung dugc
yeu cau nay, chiing ta phai xet tai hai tieu chi cu thi ciia mang: kha nang

10
lien kit (connectivity) va ngon ngir (language). Kha nang lien ket chi duong
truyin hoac kit n6i vat ly giua cac thanh phan; ngon ngir chi mot bang tir
virng ciing cac quy tic Iruyin thong ma cac thanh phan phai tuan thii.
Phu-ong tien truyen thong (media)
Moi truong vat ly sir dung de kit noi cac thanh phan ciia mang
thuong dugc goi la moi truong truyin thong (medium, media). Moi truong
truyen thong mang dugc chia thanh hai loai: cap (cable) va khong day
(wireless). Vi du, cap truyin thong c6 thi la cap xoin doi (twisted-pair), cap
dong true (coaxial), va cap sgi quang (fiber-optic cable)... Truyen thong
khong day c6 thi la song radio (g6m song cue ngin hay viec truyin thong
qua ve tinh), buc xa hong ngoai. Cac moi truong truyin thong mang dugc
thao luan chi tilt trong chuong 5.

Hinh 1.2 Moi truceng truyfen: Scj-i cap quang

Giao thirc (Protocols). Ngon ngir dugc su dung bai cac thuc the
mang goi la giao thuc truyen thong mang. Cac ben tmyin thong "hieu nhau"
do giao thirc dinh nghTa mot ngon iigii chung giOa cac thanh phan mang. Tir
y nghTa khai quat nay c6 the hilu giao thurc truyen thong mang la cac thii
tuc, quy tic hoac cac dac ta chinh thuc da dugc chap nhan nham xac dinh
hanh vi va ngon ngu trao doi giira cac ben. Noi chung trong cugc song hang
ngay, chiing ta cung ap dung nhihig quy tic nao do. Vi du, khi di den nhung
noi doi hoi tinh trang trong, mgi nguai phai tuan theo nhixng nghi thuc dac
biet vl an mac (vi du nam gicDfi phai mac ao vet c6 that caravat). Nhung khi
din cac quan an hinh dan thi khong c4n an mac trang trong nhu vay. Trong
mang va truyin thong may tinh, giao thuc mang la ban dac ta chinh thuc quy
dinh each thuc "xu sir" cua cac thuc thi tham gia truyin thong. 6 day khai

11
niem thuc thi bao gom ca thilt bi phhn cung cung nhu tiln trinh phan mim.
Giao thuc mang cQng djnh nghTa khuon dang dir lieu dugc trao d6i giua cac
ben. Noi mot each ngan ggn, giao thuc mang dinh nghTa bang tir vung va
cac quy tic ap dung truyin thong dCr lieu.

Khong CO moi truong truyin, khong thi trao doi thong tin giua cac
thuc the mang; khong c6 ngon ngu chung, khong thi hieu dugc nhau. Vi
vay, ducmg truyen cung d p moi truong dk thuc hien truyin thong, trong khi
do ngon ngir chung dam bao hai ben truyin thong hilu dugc nhau. Dilu nay
ciing giong nhu cugc noi chuyen dien thoai giira mot nguai chi noi dugc
tieng Y vc^i mot ngudi chi noi dugc tilng Nga. NIU khong c6 duong dien
thoai (duong truyin mang) cho cugc noi chuyen thi hai nguai khong thi noi
chuyen dugc vcji nhau (khong thi trao d6i du lieu). Da c6 duong dien thoai
roi, liic nay hai nguai c6 thi noi va nghe thiy gigng noi ciia nhau (truyen dir
lieu dugc thuc; hien) nhung hg khong giao tilp dugc ve^i nhau vi khong ai
h-ong so hg hieu dugc ngon ngir ciia nguai kia - hg noi chuyen bing hai thu
tieng khac nhau.

Vi du TCP/IP la mot giao thuc mang quen thugc - mot trong nhung
giao thuc ciia bo giao thuc TCP/IP (Transmission Control Protocol/Internet
Protocol) TCP/IP dugc coi la xuong sing cua Internet. Tuy ten ggi TCP/IP
chi gom hai giao thuc cu thi la TCP va IP nhung thuong dugc su dung dk
chi nhom gom nhilu giao thuc khac ngoai TCP va IP. Tap hgp cac giao thi^c
nay dugc ggi la bg giao thuc TCP/IP. Co thi kl din mot so giao thuc trong
bg giao thirc TCP/IP nhu FTP (Transfer Protocol) dinh nghTa each chuyin
file; HTTP (the Hypertext Transport Protocol) dugc diing cho World Wide
Web (WWW), dinh nghTa each cac server can phai truyin cac tai lieu (trang
Web) toi cac client (Web browser) nhu thi nao. Ngoai ra cung phai kl den
ba giao thirc dugc sir dung cho thu dien tir (email) la Post Office Protocol
(POP), Simple Mail Transfer Protocol (SMTP) va Internet Mail Access
Protocol (IMAP). Ngay nay cac mang sir dung rat nhieu giao thuc khac nhau
tir don gian din phu:c tap. Co thi noi cac giao thuc la "keo dan" rang huge
mang may tinh lai v6i nhau bai vi chiing djnh nghTa each thuc hien cac hoat
dong cu thi.

Mot s6 bo giao thuc khac c6 thi kl din la AppleTalk - bg giao thuc


mang cua cong ty Apple Computer, diu tien chi sir dung cho cac may tinh
Macintosh, khong thi phuc vu cho cac he dieu hanh khac; bo giao thuc cua
He dilu hanh Windows 2000 cua Microsoft; DECnet ciia Digital
Equipment Corporation (hien gie:' la Compad) - su dung giao thirc mang
Digital Network Architecture (DNA). DECnet dugc thiet ke cho cac may
VAX hoac Alpha chay daai he dilu hanh Open-VMS, hoac cho cac he
thong DEC diing he dilu hanh DEC truejc day, vi du nhu RSX-1IM, RT-11,
RSTS/E cung nhu mot s6 he dilu hanh ph6 biln khac nhu MS-DOS,
Windows, va mot vai biln the ciia Unix. Mang may tinh doi khi cung dugc
dat ten theo giao thirc chung diing. Vi du, mot mang gom cac thiet bi ho trg
Apple Talk thuong dugc ggi la mot mang Apple Talk. Tuong tu, mang
TCP/IP la mang ciia cac thiet bi dugc lien ket vai nhau va sir dung bg giao
thirc TCP/IP de truyen thong.

1.1.3. Phan loai mang may tinh

Co rat nhieu kilu mang may tinh khac nhau. Viec phan loai chiing
thuong dua tren cac dac cSilm chung. Vi du, mang may tinh thucmg dugc
phan loai theo viing dia ly (dien boat dong) (vi du: mang cue bg, mang dien
rgng,...); theo topo (mo hinh ghep noi mang) (vi du: dilm-diem (point-to-
point) hay broadcast); hoac theo kieu duong truyen thong ma mang su dung
va each chuyen diJ lieu di (vi du mang chuyen mach ao, hay chuyin mach goi).

10Mbps
ex 100 Mbps

SWITCH
HUB
>^ Q—
100Mbps
or lGbps

Acoss Po*i« - fi M|t «au ciia tic


',' thi«tl>|HU8,
Clio inana swrrcH.

Hinh 1.3 Mpt m^ng LAN d a n gian

13
Phan loai mang theo dien hoat dong

Neu phan loai theo dien hoat dong, mang may tinh c6 thi dugc phan
chia thanh:
Mang cue bg (Local Area Network - LAN);
Mang dien rgng (Wide Area network - WAN);
Mang do thi (Metropolitan Area network - MAN);
Mang toan ciu (Global Area network - GAN);
Mang ca nhan (Personal Area network - PAN);
Mang luu trir (Storage Area Network -SAN).

Mang cue bo (LAN) lien kit cac tai nguyen may tinh trong mot
viing dia ly c6 kich thuac ban chi. Do c6 thi la mot phong, vai phong trong
mot toa nha, hoac vai toa nha trong mot khu nha. Cum tu "kich thue^c han
che" khong dugc xac dinh cu thi nen mot s6 ngudi xac dinh pham vi ciia
mang LAN bang each dinh ban kinh nim trong khoang vai chuc met din vai
km. IEEE (Institute of Electrical and Electronics Engineers) xac dinh ban
kinh ciia mang LAN nho hon 10km. Vi du vl mot so cong nghe mang LAN:
Ethemet/802.3, Token Ring, mang FDDI (Fiber Distributed Data Interface).

Mang di^n rgng (WAN) lien kit cdc tai nguyen may tinh trong mot
viing dia ly rgng (c6 ban kinh tren 100km) nhu thj xa, th^nh pho, tinh/bang,
quoc gia. Co the coi mang WAN gom nhieu mang LAN khac nhau. Vi du
mot so cong nghe mang WAN: ISDN (Integrated Services Data Network),
fi-ame relay, SMDS (Switched Multimegabit Data Service) va ATM
(Asynchronous Transfer Mode).

14
Toronto

Hinh 1. 4 M^ng WAN - Icdt hc^'p cua nhidu m^ng LAN qua cac router

Mot so nguai phan biet ky ban giira mang LAN va WAN. Do vay
xuat hien phan loai Mang do thi (MAN). MAN lien ket cac tai nguyen may
tinh trong mot thanh pho. Gia su c6 mot cong ty kinh doanh c6 nhieu toa
nha trong tinh/thanh pho. Moi toa nha c6 mot mang LAN rieng, nhirng mang
LAN nay dugc ket noi vai nhau, ket qua ta c6 mot mang MAN vi tat ca cac
toa nha la o trong cimg mot tinh/thanh ph6. Nhin chung, MAN dugc dimg
de chi cac mang c6 dien hoat dong iem ban LAN nhung nho ban WAN.

Hinh 1. 5 M^ng MAN - k4t hgp n h i l u m^ng LAN trong mpt khu v y ^ dja ly

Mot loai mang nCra la Mang ca nhan (PAN), chi mang may tinh nho
sir dung trong gia dinh. Gia may tinh ngay cang re lam cho so gia dinh c6

15
nhieu may tinh ngay cang tang nhanh, dan den nhu ciu xuat hien mang PAN
vi nguoi ta nhan ra uu diem ciia viec ket noi cac may tinh trong gia dinh. Vi
du, CO the noi cac may tinh trong nha den ciing mot may in, khong c§n phai
mua may in cho m6i may tinh. PAN cung cho phep ca gia dinh sir dung mot
may lam file server chua tat ca phan mem img dung va dir lieu nguai diing;
CO the truy cap den server nay tir bat cu may nao noi voi mang gia dinh.
PAN cung giiip cac thanh vien trong gia dinh tmy cap din bat cir tai nguyen
nao dugc dimg chung Uong gia dinh tir cac vi tri khac nhau trong nha.

Mang toan cau (GAN) la mang ciia cac mang WAN, trai rgng tren
pham. vi toan cau. Vi du, nhieu cong ty xuyen qu6c gia hoat dong tren nhilu
nuoc tren the gioi. Viec ket noi mang cua cac cong ty con lai ve7i nhau tao
thanh mang GAN. Mang toan ciu Intemet ciing la mot mang GAN dac biet.
Phan loai mang theo mo hinh ghep noi
Mot each khac dl phan loai mang la theo topo - mo hinh ghep nil
mang, hay con ggi la hinh trang mang. Topo mang gan giong nhu ban do
duong pho. No mo ta chi tilt each thirc kit nli cac thanh phan chinh cua
mang (cac niit) va cac duong truyen. Co thi so sanh topo mang \6\ ban thiet
ke ciia mot ngoi nha, trong do he thong dien, suoi, dilu h6a, va nuac dugc
tich hgp vai nhau trong mgt thiet kl chung nhit, hoan chinh. Co 3 chien
luge kit noi tong quat: dilm-dilm (point-to-point), broadcast (dilm-nhieu
dilm) va multidrop (da chSng).
Mo hinh diim-diem (point-to-point)
Mang point-to-point gom nhilu niit, moi nut chi c6 thi lien lac vcDri
niit lien ke qua duong lien kit true tilp. Mang point-to-point c6 thi bao gom
hang ngan niit, mSi nut noi true tilp ve^i mot so niit nao do. Neu mot nut can
lien lac vai nut khong liln kl, no huge phai lien lac gidn tilp thong qua
chuoi cac nut khac. Dau tien, niit nguin chuyin thong diep ioi nut liln ke
\6i minh. Sau do thong diep nay se dugc chuyen tuan tu qua day cdc niit
lien ke nhau cho den khi den dugc nut dich. Viec chuyin dir lieu thong qua
niit lien ke den mot nut khac thuong dugc ggi la bridging hoac routing (dinh
tuyen) - tiiy thugc vao ky thuat truyen tin (bridging dugc thao luan trong
chuong 5; routing dugc thao luan trong chuong 4). Co mot so topo mang
dua tren mo hinh point-to-point. Xet hai dang topo mang point-to-point phi
bien: star (hinh sao) va tree (dang cay).

16
Star (Hinh sao)
Dac diem chinh cua mang hinh sao la c6 mcjt hub xir ly trung tam
- hub nay la trung tam truyen tin cho tat ca cac nut. Ciu hinh mang hinh sao
dan gian dugc minh hga trong hinh 1.6. De cac nut c6 thi truyin thong cho
nhau, lat ca d& lieu phai dugc chuyen qua hub. Do do khi hub ngimg hoat
dong Ihi toan bg mang sup do. Hinh 1.6 minh hga mot mang lOBASE-T
(mot dang Ethernet), gom cac niit dugc noi true tilp vai mot Ethemet switch
thong qua mot cap xoin doi trin (UTP - unshielded twisted-pair cable).
(Mang 1OBASE-T, switched Ethemet va cap UTP dugc thao luan chi det
trong chuong 5).

I
^

•iCTi

Hinh 1. 6 C^c thifit bj n6i vko mgt HUB duy nhSL Mo hinh sao

Tree (Cay)

Mo hinh cay la mo hinh phan cap, gim mot nut glc hoac mot hub
noi den cac niit muc hai hoac hub mire hai. Cac thilt bi d muc hai lai dugc
noi den cac thiet hi a muc ba, muc ba dugc noi din cac thilt bj o mure bon...
Mang hinh cay don gian dugc minh hga tren hinh 1.7. Kiln tnic mang IEEE
802.12, hay con ggi la lOOVG-AnyLAN, ap dung mo hinh nay trong do cac
hub dugc sap thanh ting tao thanh mo hinh phan cip. Mo hinh cay dugc
minh hga trong hinh 1.7.
DA! HOC QMOC GlA
TRUNG TAM THONC: ; i"IN
17
\I~M./.^ •loo3^Z
tXit\ HUB

i»«N tm

Hinh 1. 7 Mo hinh cay

Mo Am^ diem - nhi&u diem (Broadcast)


Mo hinh nay gom cac niit dimg chung mot kenh tmyen thong. Khac
vc7i mo hinh diem - diem, du- lieu tir mc3t may gui di se dugc truyin din tit
ca cac nut tham gia kenh fruyin dimg chung. Cac may se kilm tra xem lieu
chting CO phai la dich den cua thong diep nhan dugc hay khong bing each
kilm tra dia chi din (desfination address) cua thong diep. (Khai niem dia chi
se dugc thao luan trong phin tilp theo). Cac may khong phai la dich cua
thong diep se bo qua thong diep. Chi c6 nut dich ciia thong diep me^i tilp
nhan thong diep. Dieu nay cung tuong tu nhu mot lop hgc gom nhilu sinh
vien va mot giao vien. NIU giao vien dua ra mot cau hoi, tit ca sinh vien diu
nghe thay cau hoi nhung chi sinh vien dugc giao vien chi djnh moi tra Ioi
cau hoi nay. Moi truong diing chung a day chinh la khong khi, cau hoi cua
giao vien la mot dang thong diep, Ian tmyIn hong khong khi va den tai tat
ca cac sinh vien (cac niit).

18
Mc) hinh diem - nhieu diem ce> iriot sci dang tt)pn pho bie}n. do la bus
va ring, (^ac he theing truyen lliong vc tinh cung du.; tren rnei hinh diem -
nliicu diem.

Bus

Meiil cau hinh bus dien hinh dugc minh hoa trong hinh 1.8. Ro rang
lopo dang bus thugc mo hinh diem - nhieu diem: cac niil mang dugc noi den
cimg mgl kenh tmyen. Vi du dien hinh ve mang c6 topo dang bus la mang
Ethemet dong true (xem chuong 5).

BUS iiittig cinntg

Hinh 1.8 M?ng Ethemet vcyi Bus dung chung

Ring

Trong cau hinh ring, tat ca cac nut dugc noi den mot vong - moi
tmang tmyIn thong diing chung. Trong topo dang ring truyin thong, thong
diep dugc tmyen Ian lugt qua cac niit tren vong. Phu thugc vao cong nghe
sir dung, huong truyen c6 thi thuan hay nghich chieu kim dong ho. Chii y
ring mac dii dir lieu dugc chuyen tir nut ng den niit kia, ring van khong phai
la mot topo thugc mo hinh diem - diem vi cac niit dimg chung mot kenh
truyen. Vi vay, vl mat logic, trong topo dang ring tat ca cac niit dimg chung
mot kenh tmyIn, nhung vl mat vat ly, viec truyen thong thugc mo hinh
diem - diem. Truong hgp nay cung giong nhu topo dang bus va tat ca cac he
thing diem - nhilu dilm khac, mang dang ring can mot so phuong phap de
quan ly viec truy cap vong dong thoi.

19
dp

Hinh 1.9 M^ing FDDI c6 topo d^ng Ring

Ve tinh
Trong he thong truyen thong ve tinh, viec tmyIn dir lieu tir mot ang-
ten tren mat dat din ve tinh thuong la mo hinh dilm-dilm. Tuy nhien, tit ca
cac nut nam trong mang deu c6 the nhan dugc dir lieu tir ve tinh tmyIn
xuong - ve tinh phat ejuang ba xuong mot hoac nhilu tram tren mat dat. Do
do, cac he thong truyen thong ve tinh dugc xip vao mo hinh dilm - nhilu
diem (broadcast). Vi du, rit nhilu truong hgc cir My c6 kha nang nhan tin tir
ve tinh. Bat cu chuong trinh giao due nao dugc phat quang ba qua he thong
V? tinh dIu dugc cac truong hgc thu dugc bing each dieu chinh thilt bj nhan
den mot tin so thich hgp. Mang ve tinh dugc minh hga tren hinh 1.10.

Hinh 1.10 V? tinh va cac khu vyc phu song

20
Trong mo hinh diem - nhieu diem c6 rat nhieu kieu truyen thong
diep khac nhau:
unicast - chi c6 mot Ihiet bj nhan thong diep.
multicast - mot nhom thiet bi nhan thong diep. Chinh tang network
cua thill bi nhan se kiem tra xem Ihiet bi nhan do c6 nam trong nhom nhan
thong diep khong.
broadcast - tit ca cac thiet bi trong mang nhan thong diep. Thong
diep broadcast la mot thong diep multicast dac biet.
Mot dac dilm khac ciia mo hinh diem - nhieu diem la khai niem
tranh chap (contention). Do tit ca cac niit cimg dimg chung mot kenh truyen,
chiing phai "tranh nhau" kenh tmyIn khi c6 nhu cau giri giCr lieu. Do vay
mang dua tren mo hinh broadcast can giai quyet van de nhieu niit muon
tmyIn diJ" lieu tai ciing mot thcji diem. Rat nhieu giao thirc dugc dua ra de
giai quylt tranh chip giCra cac niit va se dugc trinh bay trong chuong 5.
Phan loai mang theo kieu chuyen

Ngoai viec phan loai theo dien boat dong va topo, mang con dugc
phan loai theo kilu truyin thong ma chiing sir dung, ciing wax each d& lieu
dugc truyin di. Hai phan loai dien hinh la mang chuyen mach ao (virtual
circuit-switched) va mang chuyen goi (packet-switched).

Trong mang chuyen rnach do (circuit-switched), phai thiet lap mach


vat ly giira niit nguon va dic^h truac khi chuyen dir lieu thuc su. Mach nay
ton tai trong suit thai gian chuyin dir lieu. Mang dien thoai cong cong la
mot vi du vl mang chuyen niach ao. Khi ggi dien thoai, mot duong truyen
vat ly true tilp dugc thiet lap giira may dien thoai cua nguai ggi va may dien
thoai cua nguai nhan. Duong truyin nay la mot kit noi dilm - diem, lien ket
cac bg chuyin mach (switch) trong cac tong dai cua cong ty dien thoai lai
vai nhau. Sau khi da dugc thilt lap, duong tmyIn chi danh rieng de truyen
dir lieu cho cugc ggi hien thoi. Sau khi tmyen xong dir lieu (cugc ggi ket
thiic), mach dugc giai phong va c6 thi dugc cap phat cho cugc ggi khac.
Nhu vay, chuyin mach lam tang kha nang chia se duong truyen (link) vi
ciing mot mach c6 the dugc sir dung cho nhieu qua trinh tmyen khac nhau,
mac diu khong cimg mot thoi diem.

21
<llMtMll»il«

Hinh 1.11 Mang dien the?! - chuyen mach ao

Trong mang chuyen goi (packet-switched network), thong diep diu


tien dugc chia thanh nhimg don vj nho hon ggi la goi (packet), sau nhung
packet Ian lugt dugc giri toi nut nhan qua mang \isa\ cac thilt bi chuyin
mach tmng gian (switch). Packet la mot don vi dir lieu nho nhat c6 thi
tmyen tren mang. Moi packet mang thong tin vl dia chi nut nhan ciing so
thir tu ciia minh. Khi packet din thilt bi tmng gian, thilt bi nay can cir vao
dia chi dich cua packet dl quyet djnh xem se chuyin packet di theo hu(m%
nao de den dugc thilt bi ke tilp. Do ciu hinh ciia toan bg he thong c6 thi
thay doi nen cac packet cua ciing mot thong diep c6 thi din dich theo nhijng
tuyen duong khac nhau. Dilu nay cung gilng nhu viec giri thu. Khi nhan
dugc thu, buu cue se can cir vao dia chi ngudi nhan dl chuyin dkn noi thich
hgp. Mang loan cau Intemet hien nay ap dung cong nghe chuyin mach goi nay.

Hinh 1.12 M^ng chuyen mach goi - cac go! tin di theo nhidu t u y i n dud-ng
khac nhau tO A d i n B

22
1.1.4 Dia chi mang, dinh tuyen, tinh tin cay, tinh lien tac va
an ninh mang

Khai niem mang may tinh lien quan din nhieu yeu to, trong do c6
dia chi, dinh tuyin, tinh tin cay, tinh lien tac, va an ninh mang. Phan duoi
day trinh bay ngan ggn ve nhung yeu to nay.

Dja chi (Address)

Khai niem dia chi lien quan din viec gan cho moi nut mang mot dia
chi duy nhit - cho phep cac thilt bi khac dinh vi dugc no. Dilu nay giong
nhu dia chi cua mot ngoi nha - ten pho se chi cho biet khu vuc can di den, so
nha xac dinh chinh xac nha cin din. Mot vi du khac la he thong dien thoai.
Moi dien thoai c6 ma vimg va mot so (dia chi). Ma viing cung cap thong tin
vl vi tri vung cua dien thoai, con s6 dien thoai la so xac dinh duy nhat may
dien thoai trong vimg. He thong cac thilt bi chuyin mach trong cong ty dien
thoai dugc lap trinh dl tao nen mot kenh tmyIn giira hai thilt bi. Vl thuc
chit ma viing lai dugc phan cip thanh ma quoc gia va ma khu vuc.

Routing - Dinh tuyen

Djnh tuyIn xac djnh tuyIn duong ma dir lieu se di qua trong qua
trinh chuyin tir niit nhan den nut giri. Chirc nang dinh tuyIn dugc thuc hien
bai mot thilt bj phin cimg c:lac biet: router (thilt bi dinh tuyIn). Viec lyai
chgn tuyIn duong tot nhit phai dua tren mot tieu chuan cu the - dugc ggi la
do do (metric). Cac do do dinh tuyIn phi biln la: khoang each, so chang
(hop) va bang thong.

Tinh tin cay

Tinh tin cay chi tinh toan ven dir lieu - dam bao dir lieu nhan dugc
gilng bet dijr lieu giri di. Mang may tinh khong phai la he thing khong c6
Ioi. Trong thuc tl, Ioi c6 thi xuit hien tren tit ca cac moi tmang tmyln. Vi
vay can phai thilt kl sao cho he thong c6 kha nang xir ly iSi. Mot trong
nhimg phuong phap diln hinh la them thong tin du thira vao dir lieu chuyen
di sao cho phia nhan phat hien dugc Ioi (nlu c6). Khi phat hien ra 16i, phia

23

;lbii
nhan c6 the: (1) yeu ciu fruyin lai dir lieu bi 16i, hoac (2) kilm tra xem dij
lieu dung la gi va sira lai dir lieu bi Ioi. Cach thu nhit la sira Ioi bing each
yeu cau truyin lai, each thir hai la tu sira Ioi. D I sira dugc Ioi, phai do lim
Ioi. Viec tu sira 16i noi chung kho thuc hien. Hau hit cac mang ngay nay diu
dugc thiet ke c6 kha nang phat hien Ioi (error detection). Co hai each dl phat
hien Ioi thong dung la kilm tra bit chin/le va ma du thira vong (CRC ~
Cyclic Redundancy Check). Hai ky thuat nay dugc trinh bay trong chuong 5.

Tinh Hen tac (interoperability)

Tinh lien tac (interoperability) chi kha nang cac san phim (phan
cimg va phan mem) cua cac hang san xuit khac nhau c6 thi giao tilp dugc
voi nhau trong mang. Trong thoi ki hoang kim cua cac mang doc quyin (ciia
tu nhan, hang san xuat, hoac mot t l chirc), khong can phai quan tam din
tinh hen tac, miln la cac thanh phin cau thanh mang diu la san phim va
giao thirc ciia cimg mot hang san xuat. Khi hang san xuit thu ba phat triln
ung dung c6 tinh nang dugc cai tiln hon img dung cua hang san xuit doc
quyen, hang san xuat thu ba phai dugc su ding y cua nha san xuit deic
quyen - tuc la hang san xuat thu ba phai tra phi ban quy In. Ngay nay, voi bg
giao thirc "mcj" TCP/IP, cac hang san xuit - nhirng ngudi vilt va ban cac
img dung dua tren TCP/IP dugc tu do lam nhimg dilu hg muon, khong phai
lo ngai ve viec vi pham ban quyln. Hiu hit cac hang san xuit may tinh deu
CO gang dl san pham cua minh tuong thich voi san phim ciia hang san xuat
khac.

An ninh

An ninh mang chi viec bao ve mgi thu trong mang, bao gim du lieu,
phuong tien truyin thong va cac thilt bi. An ninh mang con bao glm cac
chuc nang quan tri, cac cong cu ky thuat va thilt bi nhu cac san phim ma
hoa, c;ac san pham kilm soat truy cap mang (vi du: tuong lira firewall - thilt
bj phan cimg dac biet bao ve mang voi thi gioi ben ngoai). An ninh mang
cung bao gom viec dinh ra nhimg chinh sach su dung tai nguyen mang, kilm
ha xem tai nguyen mang c6 dugc sir dung phii hgp voi chinh sach da dinh
tnrcjc hay khong, quy djnh va kilm tra chi nhimg ngucri c6 dii quyln moi
dugc sir dung cac tai nguyen do...

24
1.1.5 Chuan mang

Chuan mang dinh nghTa cac giao tiep phan cimg. giao thirc truyen
Ihong, kien true mang... Chuan mang thiet lap nhirng quy tac hay cac quy
uoc cu the ma cac ben tham gia tmyen thong can tuan thii. Chiing lam tang
kha nang giao tiep giira san pham phan cirng va phan mem ciia cac hang san
xuat khac nhau. Chuan dugc xay dung thong qua cac to chirc chuan hoa.
Nhirng t l chirc nay dugc chia thanh bon loai chinh: (a) quoc gia, (b) viing,
(c) quoc te va (d) nganh/hiep hoi thuong mai/hiep hoi nghe. Thanh vien ciia
to chirc chuan thuong la dai dien ciia chinh phu, vien nghien cuu va hang
san xuat. Qua trinh xay dung chuan phai dam bao dugc tinh thong nhat, vi
vay thuong keo dai, doi khi phai mat nhieu nam moi cho ra dofi dugc mot
chuin chinh thuc. Qua trinh nay cung hi anh huong beji cac yeu to khac nhu
kinh te, chinh tri.

Chuan chinh thii-c (De jure standard)

Chuin chinh thirc dugc cong nhan boi nhung to chuc chuan hoa
chuyen nghiep. Vi du, nhiing giao thuc ve modem dugc xay dung bdi Hiep
hoi truyin thong quoc te (International Telecommunications Union - ITU),
hay chuin EIA/TIA-568 dimg cho Commercial Building Telecommunications
Wiring dugc xay dung hai Electronic Idustries Association - EIA va
TelecommunicaUons Inustries Association - TIA, hoac cac chuan cho mang
cue bg dugc xay dung bcM Institute for Electrical and Electronic Engineers -
IEEE. (Cac chuan nay se dugc trinh bay chi tiet trong cac chuong sau).

Chuan thu-c te (De facto standard)


Chuin thuc tl la chuan ton tai trong thuc te chu khong phai do cac to
chuc chuan hoa xay dung nen. Chung dugc phat trien thong qua su chap
nhan ciia toan nganh doi voi chuan nao do cua mot hang nha san xuat cu the.
Vi du mot chuin thuc te la Network File System (NFS) - giao thirc chia se
file cua hang Sun Microsystems. Sun da cong khai dac ta cua giao thirc nay,
do do nhung nha san xuit khac c6 the tu do trien khai. Ket qua NFS dugc sir
dung rgng rai va dugc coi nhu mot chuan thuc te. Hien tai, NFS dugc cai dat
tren rit nhilu he thing UNIX khac nhau (Sun, IBM, Silicon Gracphics,
Compaq, va HP), cung nhu cac he thong dua tren Macintosh va Intel. Mot
chuan thuc te khac la Java - ngon ngir lap trinh Web dugc phat trien boi
hang Sun Microsystems.

25
Chuan rieng ciia hang

Chuan ciia hang quy dinh nhung yeu ciu cu thi ciia mot nha san
xuat nao do. Nhung dac ta nay khong dugc cong khai, chi dugc tuan theo va
chap nhan boi chinh hang san xuit dl nghi ra no. Trong thoi ki diu ciia
mang, cac chuin ciia hang thing tri. Mac diu ngay nay nhung chuan nhu
vay khong con dugc tan thanh nira song chiing van ton tai rit nhilu. Dugc
biet den nhieu nhit phai kl din cac chuin ciia IBM (vi du: SNA - kiln triic
he thong mang ciia IBM, giao thirc IPX ciia Novell - dua tren giao thirc XNS
cua Xerox). Chuan rieng cua hang tr6i huge khach hang vao giai phap ciia
mot nha san xuat cu thi, lam cho hg gap kho khan khi sir dung san phim
(phan cimg hoac phan mem) cua cac hang san xuit khac.

Chuan hiep hoi

Chuan hiep hoi tuong tu nhu chuin chinh thirc theo nghTa chiing la
san pham ciia qua trinh chuin hoa. Dilm khac nhau la qua trinh lap kl hoach
va chuan hoa nhiing chuan nay khong chiu su quan ly cua cac t l chirc chuin
hoa chuyen nghiep. Thay vao do, dac ta cho cac chuin dugc thilt kl va thoa
thuan boi nhom cac nha san xuit thanh lap nen hiep hoi, vc^i mot muc dich
cu the: dat dugc muc tieu chung. Nliung nha san xuit nay cam kit h i trg cho
cac chuin dugc phat trien bc!yi hiep hoi, va phat triln nhung san phim tuan
theo chuan nay. Vi du vl cac chuin hiep hoi nhu Fast Ethemet,
Asynchronous Transfer Mode (ATM Fomm) hay Gigabit Ethemet.

1.2 M O H I N H OSI

To chirc ISO (Intemafional Standards Organization) dugc thanh lap


nam 1971 voi muc dich xay dung cac tieu chuin quic tl. Mot trong cac
chuin ISO djnh nghTa cac mat cua truyin thong mang la mo hinh OSI -
Open Systems Interconnection (Mo hinh lien kit giij-a cac he thing mo).
Day la mo hinh cho phep bit cu hai he thong nao (cho dii khac nhau) c6 thi
huyen thong voi nhau ma khong cin quan tam din kiln true ben dueji ciia
chiing. Cac giao thuc ciia rieng mot hang san xuit thuong ngan ngira viec
tmyen thong giira hai he thing khong ciing mot kilu. Mo hinh OSI ra ddi

26
voi muc clich cho phep hai he thong bat ki tmyen thong voi nhau ma khong
can ihay (Jc5i bat cir phan cirng hoac phan mem nao ben duoi. Mo hinh OSI
khong phai la mgl giao ihirc; no la mot mo hinh de nhan biel va thiel ke mot
kiln tnic mang linh dong, vung chac va c6 kha nang lien tac. Chii y ISO la
ten tl chirc; OSI la mot mo hinh.

1.2.1 Mo hinh

M6 hinh OSI dugc phan ting ve?i muc dich thiet ke cac he thong
mang cho phep tit ca cac kieu he thong may tinh khac nhau c6 the tmyen
thong vai nhau. Mo hinh gom 7 ting rieng biet nhung c6 lien quan den
nhau, moi ting djnh ngliTa mot phin ciia qua trinh tmyln thong tin tren
mang. NliQng quy tic co ban ciia mo hinh OSI la nin tang co ban de nghien
cim chi tiet tmyen thong dir lieu.
Thuc ra trong cugc sing, chiing ta gap kha nhilu vi du ve viec phan
ting. Gia sir ngudi A vilt thu giri cho ngudi B. Sau khi vilt thu xong, A cho
thu vao phong bi, dan kin, ghi dia chi cua B, dan tern va nhet hire thu vao
hop thu a buu dien. Giira A va B, don vi dir lieu trao doi la cac la thu. Buc
thu CO thi xem la dir lieu thuc sir trong khi phong bi thu co thi xem la mot
loai fieu dl chua cac thong tin dilu khiln. He thong buu dien (bao gom
nhilu buu cue - la cac tram h-ung gian ma hue thu se di qua) chiu trach
nhiem chuyin hue thu te?! dia chi cua B. Vol vi du nay ting dudi (he thong
bun dic}n) se cung cip dich vu chuyen thu cho ting tren (A va B). A va B chi
quan tam din noi dung buc thu, khuon dang thu, ngon ngir viet trong thu...
ma kheing cin quan tam din lam thi nao dl thu co the chuyen tdi B. Day
chinh la uu dilm cua viec phan ting: ting tren sir dung dich vu cua tang
dirdi nhung khong cin quan tam den each thirc thuc hien dich vu do.

Kien true phan tang


Mo hinh OSI gim 7 ting (Hinh 1.13):
Tang vat ly (Physical layer)
Ting lien kit dir lieu (Datalink layer)
Ting mang (Network layer)

27
Tang giao van (Transport layer)
Tang phien (Session layer)
Tang trinh dien (Presentation layer)
Tang img dung (Application layer).

Application

'Presfntatten'^,

Session

Transport

Hinh 1.13 Bay ting trong mo hinh OSI

LICH SU MO HINH 7 TANG

Phin l^n c6ng vi$c thiet ke m6 hinh OSI c:tij'c;yc thi/c hi^n bai hai nhd nghifen ci>u
Mike Canepa v^ Charlie Bachman tgi c6ng ty Honeywell Information Systems. Myc tigu
cua nh6m nghien cij-u n^y 1^ phSt tri^n mOt h$ th6ng nguySn m3u cung mOt ban V.k
hoach ph^t trien san pham. Ni>a eJ4u th§p ni6n 70, nh6m tSp trung v^o ihi^t k^ ccr %b dCr
li^u c6 h6 trp' truy cSp tu- xa - v^ do eJ6 c4n tdci mOt kiln trijc truyen th6ng phan t^n
nhu-ng c6 ciu triJc. Sau khi ce3 nhu-ng nghi§n ciJ-u v4 kiln true mang SNA cua IBM cSc
giao thi>c cJe xuit cho mgng ARPANET, nhom cJa ph^t trien kiln true h^ thing phSn t^n
(DSA - Distributee^ Systems Architecture) - tiln thdn cua m6 hinh 7 ting ngSy nay

Trong khi^c36, Qa quan chuin hoa Anh qu6c c3e nghi To chtec chuin qu6c t l (ISO)
ban hdnh mpt^kieri true chung cho truyen th6ng phan tan. Theo y6u ciu nSy, ISO thanh
lap tilu ban Kit noi cac H$ thong mo (Open Systems Interconnection - OSI) va y§u d u
Ca quan chuin h6a Hoa Ky (ANSI) cJu'a ra mejt (5e xuit cho phi6n hpp cJlu ti6n cua OSI.
Bachman va Canepa tham dy nhOng phi6n hpp diu tiSn M6\ ANSI va eJS trinh bay
m6 hinh bay ting cua minh va ngay lap tu-c m6 hinh nay cJifc^e lya ehpn cJl d l xuit eho
tilu ban OSI. vao thang 3/1978, khi tilu ban OSI hpp tgi Washington, Bachman da trinh
bay m6 hinh cua minh. V6i m$t %^ nhit tri cao, tilu ban da chip nh^n kiln triJc phan
ting nay dap cj-ng dly diJ phin Id-n cac y6u ciu va cci kha nSng ma rOng d l th6a man
cae y6u ciu mdi. Phi§n ban dau tien cua m6 hinh nay du'pc c6ng bo vao thang 3/1978.
Phi6n ban k l tilp (v^i mOt vai chinh si>a) cdng b6 vao thang 6/1979 va tilp tgc cJu-ac
chinh si>a thSm.

28
Hinh 1.14 minh hga moi quan h<? giira cac tang khi thong diep dugc
giri lir Ihilt bi A din thilt hi B. Khi di lir A din B, ihong diep co the di qua
nhilu niit trung gian khac. Nhirng niil trung gian nay thuong chi lien quan
din 3 ting diu ciia mo hinh OSI. Khi phat triln mo hinh, cac nha thilt ke da
phan tich qua trinh tmyln dir lieu ra nhirng chirc nang co ban nhat, va nhom
nhirng chirc nang co muc dich (sir dung) lien quan den nhau vao cac nhom
rieng - ccm ggi la ting (layer). Moi ling deu co chirc nang, nhiem vu xac
dinh. Bing each xac dinh va khoanh viing cac chuc nang trong mo hinh, nha
thilt kl da dua ra mot kiln triic dat dugc ca tinh toan dien va linh hoat. Quan
trgng nhit, mo hinh OSI tao ra tinh trong suit hoan toan giira hai he thong
khong tuang thich vdi nhau.

t I Application I
j A^ilication
3
gM III ^ i

1 7-6 imerfacre f~ I 7-6 interface

5I
PfcsentaiicMi
1 6-5 interface
Scs.^ion
?
I
1~3-4imerfaeef~
•* I Traii.spon ^
,"1 4'3iotgriiage H

Hinh 1.13 Mo hinh OSI

Cac tien trinh ngang hang (peer-to-peer)


Tai thilt bi dau cull, moi ting sir dung cac dich vu do tang ben dudi
cung cip. Vi du, ting 3 sir dung cac dich vu do tang 2 cung cap va den lucjt

29
minh lai cung cap djch vu cho ting 4. Giira cac may tinh, ting N tren mgi
thiet bi giao tiep vdi ting N tren thilt bi khac. Viec giao tilp nay dugc tiln
hanh theo cac quy tic va quy udc da dugc thoa thuan trudc-ggi la giao thirc.

Tai ting vat ly, truyin thong dien ra true tilp: A giri mot lulng bit
den B dudi dang tin hieu. Tuy nhien tai cac ting cao hon tren may .\, dir lieu
dugc chuyin din xuing cac ting ben dudi, din may B va tilp tuc di nguc^c
len cac tang cao hon (cua B). M6i ting trong may giri (A) them cac thong tin
cua minh vao thong diep nhan dugc tir phia tren roi sau do chuyen toan bg
goi dir lieu xuong ting phia dudi. Cac thong tin dugc them vao nay - dugc
ggi la header (tieu dl chen tmdc) va trailer (tieu dl chen sau) - la cac thong
tin dieu khiln dugc them vao diu hay cuoi goi dir lieu. Header dugc the;m
vao thong diep tai moi ting 6, 5, 4, 3, va 2; frailer dugc them vao tai ting 2.

Tai tang 1, g6i dir lieu dugc chuyin thanh dang tin hieu co thi
tmyen di tdi may nhan. Tai thilt bi nhan, cac tieu dl dugc liy ra din din
trong qua trinh chuyin dir lieu len tren. Vi du, ting 2 loai bd cac tieu dl ciia
tang 2 va chuyin phin con lai (dir lieu) cho ting 3. Ting 3 loai bd cac tieu
de tang 3 v^ chuyen phan dir lieu cho ting 4...

L7 data

L7 dluTf H6
a 1.7 ibica H6

L 6 cJala H5 14 data TZh


i H5

1.5 data H4l l-.Sdala H4

t.4 dala 1113 1.4 data LH3

T2 I..^ data m \m L3data 1^


oioinioioioi loioicxxwoiexxx)

M6< ttir<>tH) t r u y « «
O l O I O I O l O I O I lOlOltXKKKllCXXX)

^*iaB^ a
Hinh 1.14 DO li^u dipcp-c chuyen dpc theo cac t i n g di .xu6ng phia du-o-i

30
Giao dien giii-a cac tang
Tren ciing mot may linh, hai tang ke nhau trao doi dir lieu vdi nhau
qua cac giao dien (interface). Giao dien dinh nghTa each thirc va khuon dang
dir lieu trao ddi giCra hai ting kl nhau tren cimg mot thiet bj. Dinh nghTa giao
dien giira cac ting mgl each ro rang cho phep thay doi each thirc trien khai
tai m<3t tang ma khong anh hudng den cac tang khac.
Trong thuat ngQ mang, ngudi ta thuong ggi giao dien giira cac tang
la dilm tmy cap dich vu (Service Access Point - SAP) vi tang fren yeu cau
dich vu ciia tang dudi thong qua giao dien.
To chuc cac tang
Co thi chia bay ting vao ba nhom. Nhom tang ho trg mang gom ba
ting: vat ly, lien kit dir lieu va mang chiu trach nhiem ve cac mat lien quan
din khia canh vat ly khi truyin dir lieu tir thilt bi nay sang thiet bi khac (vi
du: dac ta dien, cac kit nli vat ly, dinh dia chi vat ly, dinh thai gian tmyen
va tinh tin cay). Ting phien, trinh diln, va img dung thugc nhom ting bd trg
ngudi diing; chiing tao ra kha nang lien tac giira cac he thong phan mem
khac nhau. Ting 4 - tang giao van dam bao viec chuyen dir lieu dau eudi
(end-to-end) tin cay, trong khi ting 2 dam bao viec tmyen dir lieu tin cay
tren mc)t dudng tmyln vat ly rieng le. Noi chung, cae ting tren cua mo hinh
OSI thuong dugc triln kliai qua phin mem trong khi nhom cac ting dudi
dugc triln khai bing su kit hgp cua ca phin cung Ian phin mem. Tang vat
ly hiu nhu dugc triln khai bdi phan cimg.
Hinh 1.15 mo ta tong quan cae tang trong md hinh OSI. Trong hinh
ve, (dir lieu) L7 la dan vi dir lieu tai ting 7, (dir lieu) L6 la don vi dir lieu tai
ting 6,... Trong thuat ngir mang ngudi ta ggi Li la don vi dii- lieu giao thirc
tang i (iPDU - Protocol Data Unit). Dii vdi ting thu i+1, dir lieu tang i
tmyln cho dugc ggi la dcm vi dG lieu dich vu (service data unit - SAP). Noi
chung PDU chua SAP va mot so thong tin tieu de khac. Qua trinh dugc bit
diu tai ting 7 (ting img dung), sau do chuyin xuIng cac ting dudi. Tai moi
ting ngoai trir ting 7 va ting 1, header dugc chen them vao don vi dir lieu.
Tai ting 2, ngoai header, frailer cung dugc them vao don vj dir lieu. Khi di
qua ting vat ly (ting 1), don vi dir lieu (da dinh khuon dang) dugc chuyen
thanh tin hieu vat ly va tmyen di qua moi truong vat ly.

31
Tai noi nhan, tin hieu vat ly den tang 1 va dugc chuyin ngugc lai
thanh chudi bit. Cac don vi dir lieu sau dd se dugc chuyin din tir ting 1 len
cac ting tren trong md hinh OSI. Tai mdi ting, cac header va trailer dugc
them vao khdi dir lieu d ting tuong img ben may giri dugc liy ra. Khi din
tang 7, thong diep da d dang dir lieu phii hgp va img dung cd thi sir dung.

1.2.2 Chirc nang cac tang

Trong phan nay, chiing ta se md ta chi tilt chuc nSng ciia timg ting
frong mo hinh OSI.
Tang vat ly
Tangfeik^c»li»j T ^ ISn k^ dO g$u
r L2 <}ata [ i L2 dau I

i inioincooonflio | ioininnf)0(yv-in|
Twig V A T L Y
TMHJ V A T L Y

wmmikM
Mmma»...M....m/;mm&.
M6i trirdna trtiyen
Hinh 1.15 Vj tri, vai tr6 ciia ting v | t ly

Tang vat ly thuc hien cac chirc nang cin thilt dl tmyen lulng bit dir
lieu di qua moi tmdng vat ly. No giai quylt nhung van dl lien quan din dac
diem ky thuat ve ca va dien giira card ghep nli (interface) vdi moi tmdng
tmyen dan. No cung xac djnh cac thii tuc, chuc nang ma thilt bj vat ly va
thiet bj giao tiep cin phai tuan thu. Hinh 1.16 minh hga moi quan he giira
tang vat ly vdi moi tmdng tmyln dan va ting lien kit dir lieu.
Trong vi du chuyen thu, ting vat ly lien quan din cdng nghe chuyin
thu, chang ban la xe dap, may bay, tau hda, tau thiiy... dimg chuyen chd cac
tiii thu. Tang lien ket dir lieu chuyen la thu cho ting vat ly va hy vgng ting
vat ly chuyen la thu sang phia ben kia eiia kenh tmyen.

32
Tang vat ly lien quan den:

Oiic diem vat ly ciia moi trirotig (thiet bi) giao tiep va truyen
thong: Tang vat ly xac dinh dac diem/dac tinh giao dien giira thiet bi va mdi
truong tmyen dan. No cung xac dinh kieu mdi trudng tmyen dan ihdng tin
(xem chucrng 5).

Bieu dien bit: Dir lieu ting vat ly la ludng bit lien tuc (cac chudi 0
va 1). DQ truyin di, bit phai dugc ma hda thanh tin hieu dien hoac quang.
Tang vat ly \ac dinh phucDng thirc ma hda (cac bit 0 va 1 dugc chuyen thanh
tin hieu nhu the nao).

Toe do dir lieu: Toe do tmyen dan - so bit dugc giri di trong mot
don vi thdi gian. Ndi each khac, tang vat ly xac dinh khoang thoi gian de
tmyen di mot bit.

Dong bo hoa cac bit: May giri va nhan phai dugc dong bg hda d
muc bit. Ndi each khac, dong bd ciia may giri va nhan phai dugc ddng bg hda.

Cau hinh dircmg truyen: Tang vat ly lien quan den viec ket ndi cac
thilt bi vao moi tmdng tmyln thong. Trong cau hinh diem-diem (point-to-
point), hai thilt bi dugc nli vdi nhau qua mot dudng truyen rieng. Trong cau
hinh dilm-nhieu dilm (multipoint), mot dudng truyen dugc nhieu thiet bi
diing chung.

Topo (Mo hhih ghep noi) vat ly: Topo vat ly xac djnh each ndi cac
thilt bi vdi nhau dl tao thanh mang. Cd thi sir dung topo dang ludi (mesh
topology) (moi thilt bi dugc nli vdi tit ca cac thilt bj con lai), topo dang sao
(star topology) (moi thilt bi dugc noi vdi mot thiet bi tmng tam), topo dang
vong (ring topology) (moi thilt bi dugc noi vdi mot thilt bj ben canh, ciJ
nhu vay tao thanh vong), hay topo dang bus (moi thiet bi dugc ndi den mot
dudng truyen chung).

Che do truyen dan: Ting vat ly xac djnh hudng truyen diJ lieu giira
hai thiet bi: don cdng (simplex), ban song cong (half-duplex), hay song cong
(Hill-duplex). Trong chi do don cdng, mot thilt bi chi cd the giri hoac nhan
dir lieu. Chi do don cdng la tmyln thong mot chilu. Trong chi do ban song
cdng, thilt bi cd thi giri va nhan dir lieu, nhung khong phai tai ciing mot thdi

33
diem. Trong che do song cdng, thiet bi cd the nhan va giri du lieu tai cimg
mot thdi diem.
Tang lien ket dir lieu
Nhiem vu cua tang lien ket dir lieu la tmyen thong giira hai niit noi
true tiep vdi nhau. No bien tang vat ly khong tin cay thanh dudng truyen tin
cay cho tang mang ben fren. Hinh 1.17 minh hga mdi quan he giira ting lien
ket dir lieu vdi tang mang va ting vat ly.
TangMAUO TMiflMAIIG

L3daU L3daia

^
TingL
Ktiofl
•n 112 rrmnc Rainc
t TangLKM

R2 1
1 t 1

I
lOlOIIXXKlOOOlO
1
lOIOIOOOOOOOIO
1 1

Tana VAT LY Tina VAT LY

Hinh 1.16 Vj tri, vai tro cua t i n g lien k i t du> lif u

Tang lien ket dir lieu chiu trach nhiem:


Framing - Dong goi dir lieu: Ting lien kit dir lieu chia lulng bit
nhan dugc tir ting mang thanh cac dcm vi dir lieu ggi la frame.
Djnh dja chi vat ly: Neu goi dir lieu dugc chuyin din thilt bj khac
frong mang, tang lien ket du* lieu them vao tieu dl ciia frame dia chi vat ly
ciia noi nhan (dia chi dich) va cd the dja chi vat ly ciia noi gijri (dja chi
nguon). Neu goi dir lieu dugc chuyen din cac thilt bi ben ngoai mang, dja
chi nhan se la dia chi ctia thiet bi tmng gian kit nli mang ra ben ngoai.
Kiem soat liru liroTng: Neu toe do nhan dir lieu nhd hem toe do giri
dir lieu, ting lien ket du- lieu phai thuc hien ky thuat kilm soat luu lugng dl
ngan ngira tinh frang qua tai tai noi nhan.
Kiem soat Ioi: Ting lien ket dir lieu lam tang tinh tin cay cua ting
vat ly bang each sir dung ky thuat phat hien va tmyln lai cae frame bj Idi

34
hoac bi mat. Nd cung sir dung ky thuat xir ly cac frame triing lap. Kiem soat
Idi ihirdng dugc thuc hien bang each them mot trailer vao phan cudi cua frame.
Kiem soat truy cap: Khi nhieu thiet bj dung chung dudng truyen,
cac giao thirc d tang lien ket dii' lieu se quyet dinh thiet bi nao dugc quyen
sir dung dudng truyen tai mot thdi diem xac dinh.
Trong hinh 1.18, niit cd dia chi vat ly 10 giri frame den nut cd dia chi
vat h 87. Hai niit nay dugc noi vdi nhau qua dudng truyen dimg chung. O
ting lien kit dir lieu, header cua frame chira cae dia chi vat ly. Phin con lai
ciia header chura cac thong tin cin thilt cho ting lien kit du- lieu. Trailer
thuoTig chtjra cac bit du thira de kilm soat Idi.

a n n n H
Trailer

Hinh 1.17 Vf dg vd dja chi cua t i n g lien k i t dCr l i f u

Hay xet tilp vi du chuyin thu. Sau khi thu thap thu tai horn thu,
nhan vien buu chinh thuc hien viec phan loai thu ra hai nhom: nhom thu
nhit gdm cac thu giri tdi dia chi nam trong vimg do buu cue quan ly, nhom
thtj hai chuyin ra phia ngoai. Ddi vdi nhom thij hai, nhan vien buu cue dat
tit c£ thu trong mot tiii thu lc5n va chuyin cho buu cue cap cao hon. Cac tiii
thir c6 the xem la cac "frame". Han the nija, dja chi fren tiii thu se cho phep
tiii thu dugc chuyen den buu cue cap cao thich hcjp.
Tang mang
Tang mang chiu trach nhiem chuyin goi dur lieu tir noi gui den noi
nhan goi du- lieu cd thi phai di qua nhieu mang (cac chang tmng gian).
Ting lien kit dxi lieu thuc hien tmyln goi dir lieu giira hai thilt bi frong cimg
mot nang, con ting mang dam bao goi dir lieu se dugc chuyin tir noi giri
din Cling noi nhan.

35
Neu hai thiet bj nam tren cimg mot mdi tmdng tmyen thi rd rang
khong can tang mang. Tuy nhien, neu hai thiet bi d tren hai mang khac nhau,
va giu-a chiing cd nhieu thiet bi ket ndi tmng gian thi can phai cd tang mang
de thuc hien viec chuyen d& lieu tir nguon den dich. Hinh 1.19 minh hga
mdi quan he giira ting mang vdi tang giao van va lien ket dir lieu.

Tang GIAO VAlt TaiHi C^IAO VAll

L4daca t4claca

1
Tang
MAUG
I 1 H.3 Packet Packet
'%•

T 1 H.? TawHl

1
MAIK

t
I ,
L3da»
1
L3data
1'———"--'

Tano LIEIIK^ Dir u ^ TMkd LIEU K^T W LI$U

Hinh 1.18 Vj tri t i n g m^ng

Tang mang cd nhiem vu:


Djnh dja chi logic: Dia chi vat ly cua ting lien kit dir lieu chi giai
quyet dugc van de dinh dia chi cue bd tren mot mang nhd. Nlu goi dir lieu
dugc chuyin sang mang khac, can cd he thing dia chi khac dl phan biet
giu-a he thong gui va he thdng nhan. Ting mang bl sung them tieu dk - cd
chua dia chi logic ciia thiet hi nhan va thiet bj giii vao mdi gdi dir lieu giri di.
Djnh tuyen: Khi mang hoac cac niit rieng re nli vdi nhau tao thanh
mot lien mang (mang ciia cac mang), cac thiet bi kit nli tmng gian (router
hoac gateway) phai xac djnh tuyIn dudng (dinh tuyIn) cho gdi dir lieu dl
chiing den dugc dich.
Gia su trong Hinh 1.18, dir lieu dugc giri tu nut cd dia chi mang A
vdi dja chi vat ly 10 trong mot mang cue bg tdi niit ed dja chi mang P vdi
dia chi vat ly 95 trong mang cue bd khac. Do hai thilt bj thugc hai mang
khac nhau, chiing ta khong thi chi sir dung dja chi vat ly vi dja chi vat ly chi
cd tac dung trong mang cue bg. Cai chung ta cin d day la mot dja chi toan

36
the dl cd ihl chuyin packe; giira cac mang khac nhau. Dia chi logic cd dac
diem nay. Gdi dir lieu lai Cng mang chira dia chi logic - dja chi nay khong
thay ddi khi packet di lir nci giri din noi nhan (A va P). Dja chi logic khong
thay ddi khi gdi du lieu di tir mang nay sang mang khac; ngugc lai dja chi
vat ly thay ddi khi packet di lir mang nay sang mang khac. Trong hinh ve, R
la router - kilu thilt bi nay se dugc md ta ky trong chuong 3.

Hinh 1.19 Vi dy v§ dja chi tSng m^ng

Cac buu cue se cung cip dich vu gilng vdi ting mang. Trong mdi
buu cue sg cd mot "bang djnh tuyIn" cho phep buu ta xac djnh noi can
chuyin tilp buc thu din. Buc thu se dugc chuyin den tram kl tiep (buu eye
hay dja chi nhan) nhd vao djch vu cua ting lien kit dir lieu. Ro rang rang thu
dugc chuyen tren cac chang cd thi bing nhung phuong thuc hoan toan khac
nhau (bing d to, may bay...). Dilm khac biet duy nhit giu-a mang buu chinh
va mang may tinh la topo cua mang buu chinh gan nhu khdng thay ddi theo
thdi gian, do vay viec djnh tuyen gan nhu la "tinh".

37
Tang giao van
Tang giao van chiu trach nhiem chuyin toan bd thdng dicjp tir noi
giri den noi nhan. Tang mang chuyin tung gdi du lieu rieng le tir noi giri din
noi nhan ma khdng quan tam din quan he giira cac gdi dii- lieu. Tang mang
xu ly moi gdi dir lieu mot each doc lap ma khdng quan tam cac gdi cd thugc
vao ciing mot thdng diep hay khdng. Ndi each khac, ting giao van dam bao
giri thdng diep den noi nhan mot each toan ven. Hinh 1.21 minh hga mdi
quan he cua ting giao van vdi ting mang va ting phien.
TangPHBI T«t0PH»l

L5data

. J L ^ 1 ^^ Tait0
CilAOVAll

TaiHlMAIIG TaogMAllG

Hinh 1. 20 Quan h? gi&a t i n g giao v^n, t i n g phien v^ t i n g m^ing

Tang giao van tao ra mot ket nli logic giiia hai cong diu cudi: tit ca
cac gdi dii- lieu ciia ciing mot thdng diep dugc tmyen theo dudng kit noi dd.
Co ba giai doan cua kit ndi: thilt lap kit noi, tmyln dir lieu, giai phdng kit
ndi. Do phai tmyln tit ca cac gdi dir lieu tren mot kit ndi, ting giao van con
phai kilm soat thu tu tmyln, luu lugng, phat hien va sua Idi.
Ting giao van chju trach nhiem:
Dja chi cong (port number): Cac may tinh thuong chay nhilu
chuong trinh tai cimg mot thdi diem. Vi vay viec chuyin thdng diep khdng
chi la tmyen dir lieu tir mot may tinh nay den mot may tinh khac ma phai
chuyen thdng diep tir tiln trinh cu thi tren may tinh nay din tiln trinh cu thi
tren may tinh khac. Header dugc them vao tai ting giao van phai chiira thdng
tin ve mot kilu dja chi - dja chi cong hay dja chi tiln frinb. Sau khi tang
mang chuyin gdi dir lieu tdi thilt bj nhan, ting giao van d phia nhan phai
chuyen toan bd thdng diep din diing tiln trinh nhan.

38
Phan manh va tai hop nhat: Moi thdng diep dugc chia thanh cac
doan (segment) nhd, dugc tmyln ddc lap vdi nhau. Moi segment co mot sd
thir tu cho phep ting giao van phia nhan ghep cac segment lai thanh thdng
diep hoan chinh hay phat hien segment nao bi mat trong khi tmyen.
Kilm soat ket noi: Ting giao van cd thi hudng ndi hoac khdng
hudng noi. Thuc thi giao van khdng hudng noi xir ly segment nhu mot gdi
dir lieu ddc lap va chuyen nd din ting giao van ciia may nhan. Mot tang giao
van hudng noi thuc hien kit noi vdi ting giao van ciia may nhan trudc, sau
dd mdi chuyin cac gdi dii lieu di. Sau khi tit ca dir lieu dugc chuyen di, ket
nli dugc giai phdng.
Kiem soat luu lu-g-ng: Giong nhu ting lien kit dG lieii, tang giao
van chju trach nhiem kilm soat luu lugng. Tuy nhien, viec kiem soat luu
lugng dugc thuc hien d thilt bj diu cudi chir khdng phai tren mot dudng
tmyen vat ly.
Kiem soat Ioi: Giong ting lien kit dir lieu, ting giao van chju trach
nhiem kilm soat Ioi. Tuy nhien viec kilm soat Idi d ting nay dugc thuc Wen
tai cac thilt bj diu culi chir khdng phai tren dudng truyin frnng gian. Tang
giao van d phia giri dam bao ring toan bd thdng diep din ting giao van phia
nhan la khdng bj Ioi (hdng, mit, du thira). Viec khic phuc Idi thudng dugc
thuc hien bing each yeu ciu tmyln lai.

n
Taiig GUO VAll 1 Data 1 J Ic
Data i "

Hinh 1. 21 Vi dy v l ting giao v|n

39
Hinh 1.20 minh hga ting giao van. Dir lieu din tir cac ting tnin cd
dja chi cdng la j (ciia img dung giri) va k (ciia img dung nhan). Do kich
thude dir lieu Ion hon kha nang xir ly cua ting mang, dir lieu dugc chia
thanh hai gdi nhd, moi gdi dir lieu vin chira dja chi cing j va k. Tilp theo,
tai tang m p g , dja chi mang (A va P) dugc them vao moi packet. Cac gdi dir
lieu cd the di theo cac tuyIn dudng khac nhau, din noi nhan co thi khdng
theo diing thir tu. Hai gdi dir lieu dugc chuyin din ting mang ciia noi nhan,
tai day header cua ting mang dugc liy ra khdi gdi dir lieu. Hai gdi dir lieu
tiep tuc duc^c chuyin len ting giao van, tai day chung dugc ghep lai dl
chuyen len ting tren.

He thdng buu cue khdng cd ting giao van. Trong vi du chuyin thu,
tang giao van se ^dugc triln khai d ngudi gijri va ngudi nhan thu. Gia sii A
giri thu cho B moi ngay mot la thu. He thong buu cue cd thi lam mit, hay
gui tre mot la thu nao dd. B cd thi phat hien ra dilu dd nlu A ghi ngay
thang vilt thu trong moi la thu. NIU B khdng nhan thu ciia mot ngay nao dd
trong mgt khoang thdi gian tuong doi dai, B cd thi cho ring thu dd bj mit
va yeu ciu A giri lai. Ndi chung day se la co chi boat ddng cua ting giao van.
T a n g phien

Cac djch vu cua ba ting diu (vat ly, lien kit dir lieu, va mang) chua
du de hai tien frinh tren hai thilt bj cd thi hnyln thdng. Ting phien ddng vai
trd "kiem soat vien" hoi thoai (dialog) cua mang vdi nhiem vu thilt lap, duy
tri va ddng bd hda tinh lien tac giii-a hai ben.

UScteUi
L6data
:——-1
4
^ 'I /e
'I
_i_
Tanfl / 11 —rr JT
^ Tatig / I I \
PH»I I I
PHBI
H.5
H5
syn

i • syn

CSdata
syn syn -^•syn

ijSdala
syn

Tang OAO VAll


T ^ GIAO VAll

Hinh 1. 22 Vai tro cua t i n g phien

40
Tiing phien chiu trach nhiem ve:

Kiem soat hoi thoai: Tang phien cho phep hai thuc the (tien trinh)
cimg tham gia vao mgt cugc hc3i thoai. Nd cho phep truyen thdng giira hai
lien trinh dugc thuc hien hoac theo che do ban song cdng hoac song cdng.
Vi du, hgi thoai gifra mgt thiet hi dau eudi vdi mgt mainframe cd the theo
kieu ban song cdng.

Ddng bd hda: Tang phien cho phep mgt tien trinh them cac mdc
(trong thuat ngir mang ggi la diem dong ho - synchronization point) vao
ludng dir lieu. Vi du, nlu he thong cin giri di mgt file cd 2000 trang, cii sau
100 trang nen chen them cac dilm dong bd dl dam bao rang viec nhan timg
cum 100 trang dugc thuc hien ddc lap. Trong trudng hgp nay neu nhu cd Idi
khi dang truyin di trang 523, viec truyin lai se dugc bat dau tir trang 501,
khdng cin phai truyin lai cae trang tir 1 din 500. Hinh 1.23 minh hga mdi
quan he giira tang phien va tang trinh dien.

Trong mgt cdng ty nao dd cd hai thu ky - mgt ngudi chuyen nhan
thu va mgt ngudi chuyen giri thu. Hai ngudi thu ky nay ddng vai fro tang
giao van. Ngudi thu ky tmdng phu trach ca hai thu ky nay ddng vai frd tang
phien.

T a n g trinh dien
Ting trinh dien thuc hien bilu dien cu phap va ngij nghTa cac thdng
tin dugc trao ddi giira hai he thdng.

•Sound •Graphics
•Video ;:, ^^•yisuaJIiiiagiK.
>4Pe3 - 11*9 [S«i TIFF

Hinh 1. 23 Nhi#m vu ctia t i n g trinh d i l n

Tang trinh dien cd nhiem vu:


Phien djch (Translation): Tiln trinh fren hai thilt bj trao ddi cac
thong tin dudi dang chudi ki tu, so,... Cac thdng tin nay sau dd dugc chuyen

V 41
thanh chuoi bit trudc khi tmyln. Do cac he thong may tinh khac nhau sir
dung cac he thdng ma hda khac nhau, ting trinh diln chju trach nhiem
chuyen ddi giira cac each ma hda khac nhau. Ting trinh diln tai phia giri
chuyen thdng tin theo khuon dang ciia minh thanh thdng tin theo khuon
dang chung. Tang trinh dien tai may nhan se chuyin thdng tin frong khuon
dang chung thanh thdng tin theo khudn dang ciia may nhan.
Ma hoa: He thdng phai cd kha nang dam bao tinh bi mat khi chuyen
nhirng thdng tin quan frgng. Do vay phia giri se biln doi thdng tin ban dau
thanh mgt dang khac va giri nd den phia nhan - day la cdng viec ma hoa.
Phia nhan thuc hien qua trinh ngugc lai biln thdng diep nhan dugc thanh
dang ban diu. Qua trinh nay dugc ggi la giai ma.

Usernanie: Jen
Password: bee

Hinh 1. 24 Ma hoa dir li#u

Nen: Nen dii- lieu lam giam sd lugng bit fren dudng tmyln. Nen dir
lieu ngay cang trd nen quan trgng, dac biet trong viec truyin cac dii lieu da
phuong tien am thanh, hinh anh.

Tang img dung

Tang img dung cho phep ngudi diing (con ngudi hay phin mem)
tmy cap vao mang bang each cung cap giao dien ngudi sir dung, ho trg cac
djch vu nhu gui thu dien tu, tmy cap va chuyin file tir xa, quan ly CSDL
dimg chung va mgt sd djch vu khac ve thdng tin.
Hinh 1.26 minh hga mdi quan he giiia ting ung dung vdi ngudi dimg
va vdi ting trinh diln. Cd rat nhieu ung dung cd sSn, d day chi dl cap din 3
iimg dung: X.400 (djch vu xu ly thdng diep), X.500 (djch vu thu muc), va
djch vu tmy cap, chuyin va quan ly file (FTAM). Ngudi dimg frong vi du
dudi day diing X.400 dl giJri di mgt thdng diep dien tir. Chu y ring ting img
dung se tao ra dir lieu thuc su chu khdng co cac thdng tin heu de.

42
!H»»»i s» (Knig
f. •HivoC a * <liinii

~K\ ^
X.5CX) 1 j ITAM 1 X,400 1
T*iy inw DVtO 1
i
1

1.7 dau
Tang TMW Dl£ll
T^HHI TRilM Di£il

Hinh 1. 25 Ting irng di^ng

Ting img dung cung cap cac djch vu:


Thiet bj dau cuoi ao ciia mang: Thilt bj diu cudi ao la phien ban
phin mIm cua thilt bj diu cuoi vat ly, cho phep ngudi dimg dang nhap vao
mgt may tir xa.
Quan ly, truy cap va chuyen file: l/ng dung cho phep ngudi diing
tmy cap file (dl vilt hoac dgc dii: lieu), liy file, quan ly hoac kilm soat cac
filefrenmay tinh khac.
Cac djch vu khac: Ung dung thu tin dien tir cho phep hai ngudi frao
ddi thu dien tir vdi nhau, img dung Web cho phep ngudi sir dung xem frang
Web dugc luu frtr fren cac server... Sd lugng cac ung dung mang tang len
rat nhanh.

1.2.3 Bo giao thirc TCP/IP - Mo hinh Internet


OS! TCP/IP NetWare

Application

Presentation Application
Session

Transport TCP UDP

Network IR ARR ICMP

Data Link Network


Physical Interface

Hinh 1.26 DSi chi§u mo hinh OSI, mo hinh Internet v& NetWare

43
Bd giao thirc TCP/IP (dugc sir dung tren Internet) ra ddi trudc khi cd
md hinh OSI. Cac tang trong bd giao thirc TCP/IP khdng gilng hel cac ting
trong md hinh OSI. Bg giao thirc TCP/IP cd 5 ting: vat ly, lien kit dir lieju,
mang, giao van va irng dung. Bon tang dau tien cung cip cac chuin vat ly,
giao tiep mang, lien mang va chirc nang giao van tuong img vdi 4 ting dau
tien trong md hinh OSI. Tuy nhien 3 ting tren ciing trong md hinh OSI dugc
nhap thanh ting ung dung frong md hinh Intemet (Hinh 1.27).
_^TCP/IP la giao thii-c phan cap, dugc tao thanh bdi cae module dgc
lap, mdi module cung cip mgt chirc nang nhit djnh, hiy nhien cac module
nay khdng nhat thiet phai ddc lap vdi nhau. Md hinh OSI xac djnh rd chuc
nang nao thugc ve ting nao; trong khi dd cac ting ciia bd giao thuc TCP/IP
chira cac giao thirc tuong ddi ddc lap vdi nhau, nhung cac giao thiic nay van
cd the ket hgp vdi nhau tiiy thugc nhu ciu he thong. Thuat ngir "phan cip"
mang nghTa mdi giao thirc d tang tren dugc ho trg bdi mgt hoac nhilu giao
thiic d ting dudi.
Tai tang giao van, md hinh Intemet cd hai giao thirc: Transmission
Confrol Protocol (TCP) va User Datagram Protocol (UDP). Tai ting mang la
giao thirc Internetworking Protocol, thudng dugc ggi la IP.

loionioioiooioooolor i^ysii3t
l>
Hinh 1. 27 Du li#u di tCr tren xudng trong mo hinh INTERNET

1.3 PHirONG PHAP TIEP CAN


Trong giao trinh nay chiing ta se gidi thieu vl cac cdng nghe mang
theo each tiep can cac ting tir tren xudng. Diu tien chiing ta se hgc vl ting
ung dung, giao van, mang va eudi ciing la lien kit dir lieu. Chiing ta se sir
dung md hinh Intemet lam trong tam.

44
Chuong 2
TANG UNG DUNG

2.1 GIAO THlTC TANG iTNG DUNG

Su phong phu ciia cac ung dung mang chinh la ddng lire phat trien
ciia mang may tinh. Cd le nlu khdng cd chiing thi cung se khdng cd cac giao
thirc mang. Trong hon ba muoi nam qua, cd nhieu phat minh dot pha trong
viec phat triln cac ling dung mang. Bit diu tir thap nien 80, nhiing ling dung
dcm gian tuong tac vdi ngudi diing qua chi do lenh (text-based) da trd nen
phi biln nhu truy cap may tinh tir xa (telnet), thu dien tir (email), truyen file
(ftp), nhdm thdng tin (newsgroup), va frd chuyen tir xa (chat). Hien nay,
nhung img dung da phuong tien phirc tap hon nhu World Wide Web, dien
thoai trirc tuyen, bdi thao tir xa, chia se file... da ngay cangfrdnen quen thugc.
Mac dii chuong trinh img dung mang cd nhieu loai khac nhau, ed the
cd nhilu thanh phin tuong tac vdi nhau, nhung "Idi" cua chung la phin
nilm. Phin mIm irng dung mang dugc cai dat phan tan tren cac thiet bj dau
cuoi (end-system) nhu may tinh, dien thoai di ddng... Vi du, vdi Web, cd
hai phin mIm tuang tac vdi nhau: phin mIm trinh duyet trong may tinh cua
ngudi dimg (PC, Mac, hay tram lam viec) va phin mIm Web server.
Trong thuat ngir he dilu hanh, viec kit noi dugc thuc hien giira cac
tien trinh (process) chir khdng phai giira cac chuong trinh phin mIm. Tiln
trinh la mot chuong trinh chay tren thilt bj diu cuoi. Khi cac tiln trinh chay
fren cimg mgt thilt bj, chiing se kit ndi, frao doi dir lieu vdi nhau thdng qua
CO chi tmyln thdng lien bin trinh (interprocess communication). Chinh he
dilu hanh ciia thilt bj se kilm soat co chi nay. Trong cuon sach nay chiing

45
ta khdng quan tam den each thirc tien trinh fren cimg mgt may tinh kk nli
vdi nhau nhu the nao, ma chi quan tam den viec ket noi giu-a cac tiln trinh
fren nhung thiet bj khac nhau (va cd thi tren nhimg he dilu hanh khac
nhau). Viec ket ndi nhu vay se dugc thuc hien bing each trao doi thdng diep
qua mang may tinh. Tien trinh gui se tao va giri thdng diep qua mang, tiln
trinh nhan se nhan thdng diep (message) va cd the phan hoi lai bing each
giri mgt thdng diep tra Idi (xem Hinh 2.1). U'ng dung mang cd cae giao thirc
dinh nghTa khudn dang, thii tu trao ddi cac thdng diep cQng nhu hanh vi ciia
moi ben khi nhan dugc thdng diep.

Ting ung dung la noi dan gian nhat dl bit diu nghien cuu ve giao
thuc. Chiing ta se lam quen vdi mgt vai ung dung cung nhu cdc giao thii-c
giii-a chiing. Dieu nay giiip ta hilu rd ban vl giao thiirc.

2.1.1 Giao thirc tang irng dung

Can phan biet ung dung mang va giao thiic ting ung dung. Giao
thirc tang ung dung chi la mgt phin (cho dii la phin quan trgng) ciia img
dung mang. Vi du Web - ung dung mang cho phep ngudi dung liy cac ddi
tueyng tir Web server bao gom nhieu thanh phin, nhu tieu chuin djnh dang
van ban (HTML), trinh duyet Web (Netscape Navigator hay Microsoft
Intemet Explorer), Web server (Apache, Microsoft, va Netscape server), va
giao thirc ting ung dung. Giao thirc ting ting dung ciia Web-HTTP
(HyperText Transfer Protocol [RFC 2616]), djnh nghTa each thiic chuyin
thdng diep giira Web client (trinh duyet) va Web server. Nhu vay HTTP chi
la mgt phan ctia irng dung Web. Mgt vi du khac la ung dung thu dien tu.
Thu dien tir cung cd nhieu thanh phan, bao gom mail server ed chirc nang
nhu mgt hdm thu, mail reader cho phep ngudi diing dgc va giri thu, chuin
djnh nghTa cau true ciia thu dien tir va giao thuc tang ung dung dinh nghTa
each thiic chuyen thdng diep giira mail server va mail reader, ciing nhu y
nghTa ciia mgt sd tmdng trong thu (vi du cac tieu dl thu: ngudi nhan, ngudi
gijri...). Giao thuc ting ling dung cho thu dien tir la SMTP (Simple Mail
Transfer Protocol [RFC 821]). Do dd, SMTP chi la mgt phan (cho dii quan
frgng) cua ung dung thu dien tir.

46
Hinh 2.1 Cac irng dyng tren m^ng

Nhu da ndi d fren, giao thirc ting iing dung djnh nghTa each thiirc
tmyln thdng diep giij-a cac tiln trinh ung dung chay tren cac thiet bj khac
nhau. Nd xac djnh:
Kilu thdng diep trao doi, vi du nhu thdng diep yeu cau hay thdng
diep tra Idi.
Cii phap cua thdng diep, vi du cac tmdng trong thdng diep cung nhu
each xac djnh chiing.
Y nghTa cua cac tmdng.
Qui tic xac djnh khi nao va nhu thi nao tiln trinh gui va fra Idi
thdng diep.

47
Nhieu giao thirc tang ung dung dugc dac ta trong cac RFC. Vi du,
dac ta ciia HTTP la HTTP RFC. Neu ngudi thilt kl trinh duyet tuan theo cac
qui tac ciia HTTP RFC, trinh duyet se cd the lay dugc trang Web tir bit ky
Web server nao tuan theo cac qui tic HTTP RFC.
Mo hinh Khach hang / Ngiroi phuc vu (Client/Server)
Giao thirc img dung mang thudng chia ra hai phin hay hai phia, phia
client va phia server (Xem Hinh 2.2). Phia client frong thilt bj nay lien lac
vdi phia server trong thiet bj khac. Vi du, trinh duyet Web la phia client, va
Web server la phia server cua HTTP. Trong ung dung thu dien tir, mail
server giri thu la phia client va mail server nhan thu la phia server ciia SMTP.
CBant

3 •

.
1
i.
Appibatbn
Transjwrt
Network
Link
Ptysical

Senfit

( # 3 (§^

Hinh 2.2 Tu'O'ng t^c client/seiver

48
Trong nhilu img dung, may tinh se thuc hien ca phan client va phan
server ciia irng dung. Vi du xet phien lam viec Telnet giira may A va may B.
(Telnet la ung dung dang nhap tir xa). NIU may A bit diu frudc (cd nghTa la
ngudi diing d may A dang nhap vao may B), khi dd may A chay phia client
va may B chay phia server cua img dung. Mat khac, neu may B bat dau
tmdc thi may B chay phia client cua img dung. Mgt vi du khac, FTP - dugc
dimg dl fruyin file giii-a hai may. Sau khi thilt lap phien lam viec FTP giira
hai may tinh, mdi may deu cd thi tmyln file tdi may kia trong suit phien
lam viec. Tuy nhien giong nhu hiu hit cac img dung mang, mdy nao bit dau
tmdc dugc coi la client. Hon nira, may tinh ed thi chay ca phia client va
server tai cimg mgt thdi dilm. Vi du, mail server chay phia client cua SMTP
khi gui thu va chay phia server cua SMTP khi nhan thu.
Truyen thong giu-a cac tien trinh
U'ng dung bao gom hai tien trinh fren hai thilt bj khac nhau va lien
lac vdi nhau qua mang. Hai tiln trinh lien lac vdi nhau bing each gui va
nhan thdng diep qua socket ciia chiing. Socket cd thi xem nhu "cira" cua
tien trinh vi tiln hinh nhan va giri thdng diep thdng qua "cira". Khi muon
giri thdng diep tdi tiln trinh khac, tiln trinh diy thdng diep can gui qua
"cira" vdi gia djnh ring thuc thi giao van nim ben kia "cira" se chuyen
thdng diep din "cira" ciia tien trinh nhan.

Controlled by Controlled by
a|:^lication * I applicatton
develqja * ^ develops-
Controlled by TCR iNilh Controlled by
operating Inlemet buRers, operating
sy^em variables sy^em
Host or senrer Hostorsenrar

Hinh 2.3 Tl§n trinh irng dyng, socket v& giao thi>c giao v$n

Hinh 2.3 minh hoa tmyln thdng qua socket giiJ-a hai tien trinh fren
Intemet. (Ting giao van fren hinh 2.3 la TCP, mac du d day cd the sir dung
giao thuc khac nhu UDP). Qua hinh ve ta thiy socket la giao di?n giiSra tang
img dung va ting giao van trong may tinh. Nd dugc xem la API (giao dien
lap trinh ung dung) giira ung dung va mang. Ngudi thiet ke img dung kiem

49
soat mgi khia canh phia ben tren socket - la ting img dung - nhung chi cd
kha nang kiem soat rut it ting giao van phia dudi socket. Vdi ting giao van,
ngudi lap trinh img dung chi cd till kilm soat dugc: (1) chgn giao thirc giao
van nao va (2) xac djnh mgt vai tham sd d ting giao van nhu do Idn bd dem
va kich thude tdi da ciia gdi tin. Khi ngudi lap trinh lira chgn giao thirc giao
van nao, img dung dugc tao ra sir dung ting giao van ling vdi giao thirc dd.
Chiing ta se xem xet ti mi vl socket trong phin sau.
Dia chi tien trinh

D I gui thdng diep cho tiln trinh fren may tinh khac thi tiln trinh giri
phai xac djnh dugc tiln trinh nhan. Tiln trinh dugc xac djnh qua hai phin:
(1) ten hay dja chi ciia may tinh, va (2) djnh danh xac dinh tiln trinh tren
may tinh nhan.

Dau tien chting ta hay xet dja chi may tinh. Trong ung dung Intemet,
may tinh dugc xac djnh qua dja chi IP. Dja chi IP se dugc hgc trong chuong
4. Bay gid chung ta chi cin bill dja chi IP la mgt so 32 bit dimg dl xac djnh
duy nhit mgt thilt bj (chinh xac hon, nd xac dinh duy nhit giao dien
(interface) ciia thilt bj kit noi vao Intemet). Vi dja chi IP ciia thilt bj mang
tinh xac djnh duy nhit, nen viec phan phii dja chi IP dugc quan ly chat che.
Mang ATM cd mgt chuin dja chi khac. ITU-T liy sd dien thoai lam dja chi,
ggi la dja chi E.164 [ITU 1997] sii dung fren mang ATM.

Ngoai dja chi thilt bj nhan, phia gui phai them vao thdng tin giiip
phia nhan chuyin tilp thdng diep cho tiln trinh phii hgp (vi frong may tinh
nhan cd thi cd nhieu tien trinh dong thdi hoat dgng). Thdng tin nay la cdng
phia nhan (destination port). Cac giao thuc ting img dung phi biln deu
dugc gan so hieu cong (port number) la mgt so cu the. Vi du, tien trinh Web
server (giao thirc HTTP) sir dung cIng 80. Tiln trinh mail server (giao thiic
SMTP) sur dung cong 25. Danh sach cac cIng cho tit ca giao thirc thudng
gap tren Intemet dugc liet ke frong RFC 1700. Khi xay dung img dung
mang mdi thi ung dung dd phai dugc dang ki mgt sd hieu cong mdi.
ChiroTig trinh giao tiep ngu-oi diing (user agent)
Tmdc khi bit dau trinh bay cac giao thuc ting ung dung, chiing ta
phai ndi tdi khai niem user agent. User agent la giao dien giQ-a ngudi dimg

50
va img dung mang. Vi du trong img dung Web, user agent la chuong trinh
trinh duyet nhu Netscape Navigator hay Microsoft Intemet Explorer. Trinh
du\et cho phep ngudi dimg xem frang Web, duyet tren Web, cung cip dir
lieu vao cac form, tuong tac vdi Java... Trinh duyet la phia client frong giao
thiic HTTP. Do dd khi kich boat, trinh duyet la tiln trinh cung cip giao dien
cho ngudi diing, thay mat ngudi dimg nhan va giii thdng diep qua socket,
biln thj thdng diep fra Idi cho ngudi diing xem (ching ban dien djch cac ma
HTML). Trong img dung thu dien tir, user agent la mail reader, cho phep
ngudi diing soan va dgc thu. Mgt so phin mIm mail reader (nhu Eudora,
Netscape Messenger, Microsoft Outiook) vdi he giao tiep do hoa cd thi chay
tren PC, Mac. Mail reader chay tren PC la phia client cua giao thiic ting img
dung SMTP khi giri thu va phia client ciia giao thirc lay thu (P0P3 hoac
IMAP (xem phin 2.4)), khi nhan thu tir mail server.

2.1.2 Cac yeu cau ciia irng dung

Socket la giao dien giiJa tien trinh iimg dung va thuc the giao van.
U'ng dung giri thdng diep qua "cira". 0 sau canh cira thuc thi giao van co
trach nhiem chuyin thdng diep qua mang may tinh tdi "cira" tiln trinh nhan.
Nhilu kilu mang, kl ca Intemet, cd nhieu kilu giao thirc giao van khac
nhau. Khi thilt kl ung dung, ban phai lira chgn mgt giao thiic giao van cd
sin nao dd. Ban thuc hien lua chgn nay nhu thi nao? Dau tien can nghien
ciiru cdc djch vu dugc cac giao thiic giao van cung cap, va sau dd sS chgn
giao thirc dap ung day dii nhat cac yeu cau ciia minh. Dieu nay tucmg ti^ nhu
viec chgn tau hoa hay may bay dk di chuyin giira hai thanh pho (nhu Ha Ngi
va Hul). Ban phai chgn mgt trong hai phuong tien v^ moi phuong tien cung
cip mgt djch vu khac nhau. (Vi du, tau hoa gia re frong khi may bay tiet
kiem thdi gian).
Ung dung ddi hdi dich vu gi cua giao thuc giao van? Vl dai the
chiing ta cd thi phan loai theo ba nhdm: mit mat dir lieu, b§ng thdng, va thdi
gian.
Mat mat du- lieu (Data loss)
Mgt so ung dung nhu thu dien tir, tmyen file, tmy cap tir xa, tmyln
cac doi tugng Web, va ung dung tai chinh ddi hdi du lieu phai dugc tmyen

51
chinh xac va day du, tire la khdng dugc mit dir lieu. Dac biet, mit mat file
du- lieu hoac dir lieu trong cac giao djch tai chinh cd thi gay nen hau qua
nghiem frgng. Tuy nhien mgt sd img dung khac nhu ung dung da phuong
tien (real-time audio/video hay stored audio/video) chip nhan mit mat dir
lieu. Trong cac umg dung kilu nay, mit mat dir lieu cd thi gay nen mgt si
nhieu trong da lieu da phuong tien - nhung dilu nay cd thi chip nhan dugc
frong gidi ban nao dd. Anh hudng do mit mat dir lieu tdi chit lugng ling
dung cung nhu si lugng cho phep cac gdi dir lieu bj mit phu thugc vao
chinh ling dung va phuong phap ma hoa.
Bang thong (bandwith)

De boat ddng hieu qua, mgt sd img dung phai truyin dir lieu vdi mgt
toe do nhit djnh. Vi du, ling dung ggi dien thoai qua Intemet (Intemet
telephony) ma hoa am thanh vdi toe do 32Kbs, thi sau dd dir lieu tao ra phai
dugc chuyin tdi img dung nhan vdi toe do tren. NIU khdng cd dii bang
thdng can thilt, img dung cin phai ma hoa am thanh vdi toe do khac hay
phai ket thuc - bdi vi nlu khdng dii bang thdng thi img dung khdng thi dap
img yeu ciu ngudi su dung. Nhimg ung dung da phuong tien hien nay la
ling dung phu thugc vao bang thdng (bandwidth sensitive), nhung trong
tuong lai ung dung da phuong tien se su dung cac ky thuat ma hoa thich
nghi dl ma hoa tic do cho phii hgp vdi dai tin hien cd.
Thoi gian (timing)

Nhung img dung thdi gian thuc (real-time) mang tinh chat tuong tac,
nhu Intemet telephone, hdi thao qua dien thoai, hay cac trd choi nhieu ngudi
tham gia ciing mgt liic (multiplayer game) yeu ciu nhung rang bugc chSt che
ve thdi gian trong viec trao dii diJ lifu. Vi dy, nhung ung dung nay ddi hdi
do tre (delay) tir tiln trinh gui din tiln trinh nhan khdng vugt qua vai trSm
phan nghin giay. Do tri Idn trong ung dung Internet telephony khiln cugc
dam thoai bj diirt doan giira chimg. Trong frd choi nhieu ngudi cimg tham
gia hay trong mdi tmdng tuong tac ao, do tre tir liic dua ra yeu ciu cho den
klii nhan dugc kit qua phan ung tir mdi tmdng (vi du, tir mgt ngudi choi
kliac) Idn se lam giam tinh chan thuc ciia frd choi. Doi vdi ling dung khdng
tinh den yeu td thdi gian thuc, ngudi ta vin mong mudn cd mgt do tri thap,
song khdng cd rang huge chat che doi vdi do tri.

52
Hinh 2.4 torn tit cac ylu td nhu do tin cay, bang thdng, va cac ddi
hdi vl thcri gian ciia mgt sd img dung Internet pho bien. Hinh 2.4 chi phac
hoa mgl vai ddi hdi quan trgng ciia nhirng irng dung Internet nay. U day
chung ta khdng cd diy dii cac phan loai hoan chinh, nhung cung dii de nhan
bill mgt vai dac trung quan trgng nhat de phan loai ung dung.

LTngdung Mit mdt dip li#u BSngtdn Thd"! gian

File transfer Khong Elastic Khong

E-mai! Khong Elastic Khong

Web Documents Khong Elastic (few Kbps) Khong

Real-time Chap nh§n mat Audio: Few Kbps Cd: 100$ of


Audio/Video mat -1Mb msec
Video: 10Kb-5Mb

Stored Chap nhan mat Same as Above Cd: Few


Audio/Video mat Seconds

Interactive Chap nh$n mat Few Kbps-10Kb Cd: 100s of


games mat msec

Financial Khong Elastic Cd ho$c Khdng


Applications

Hinh 2.4 Cac yeu cSu cho mpt s6 u'ng dyng

2.1.3 Dich vu cua cac giao thurc giao van Internet


Intemet (va ndi chung TCP/IP) cung cip hai giao thirc giao van cho
ting img dung: UDP va TCP. Khi xay dung img dung cho Internet, mgt
frong nhijng quylt djnh diu tien ma nha thilt kl phai dua ra la sir dung UDP
hay TCP. Moi giao thiic cung cip mgt kilu phuc vu khac nhau cho img dung.
TCP
Dac trung ciia giao thiic TCP la huong kit noi va cung cip djch vu
fruyen dii- lieu tin cay. Khi sir dung giao thirc giao van TCP, img dung se
nhan dugc ca hai loai djch vu nay.

53
Dich vu hir&ng noi (connection oriented)
TCP client va TCP server trao ddi cac thdng tin dilu khiln vdi nhau
trudc khi truyin dir lieu img dung. Qua trinh "bit tay" giira client va server
nhu vay cho phep ca hai ben sin sang xir ly cac gdi dir lieu. Sau qua trinh
nay, xuit hien mgt dudng kit noi TCP (TCP connection) glQ-a socket ciia hai
tien trinh. Day la ket noi hai chieu (song cong - full duplex) vi cho phep
hai tien trinh cd the dong thdi giri va nhan thdng diep. Khi img dung kit
thiic viec giri thdng diep, nd ddng kit nli lai. Djch vu nay chi la huckig kit
ndi chu khdng phai mach ao (virtual circuit) bdi vi hai tiln trinh dugc kit
ndi mgt each Idng leo. Trong chuong 3, chiing ta se thao luan chi tilt vl djch
vu hudng noi va each thuc hien chung.
Dfch vu giao van tin cay
Tiln tiinh giri cd thi sir dung TCP de truyin dir lieu chinh xac va
diing thir tu. Giri di mgt lulng byte qua socket, tiln trinh ling dung cd thi tin
tudng TCP se chuyin lulng byte nay din socket nhan, khdng bj Idi hay
triing lap byte.
TCP cung cd CO chi kilm soat tic nghen, co chi nay dap img cho ca
Intemet chii khdng phai cho hai tiln trinh tmyln thdng vdi nhau. Ky thuat
kilm soat tic nghen ciia TCP la giam toe do giri dir lieu ciia moi tiln trinh
(client hay server) khi mang bj tic nghen. Dac biet, nhu chiing ta se thiy
frong chuong 3, co chi kilm soat tic nghen ciia TCP cd ging gidi han moi
ket ndi TCP de chia se cdng bing bang thdng giu-a cac tiln trinh.
Gidi han toe do tmyen cd thi khdng thoa man vdi cac img dung
audio va video theo thdi gian thuc, nhung img dung ddi hdi phai cd mgt
bang thdng toi thilu. Hon nira, ling dung thdi gian thuc chap nhan mat mat
du- lieu va khdng thuc sir cin din mgt djch vu giao van tin cay hoan toan. Vi
cac ly do dd, cac ling dyng thdi gian thuc thudng chay tren nen UDP.
Bay gid chiing ta trinh bay mgt so djch vu ma TCP khong cung cap.
Thiir nhat, TCP khdng bao dam mgt toe do tmyen toi thilu. Tien trinh gui
khdng dugc phep tmyen vdi bat ky toe do nao nd dl nghi, toe dg nay dugc
kiem soat bdi ca chi kilm soat tic nghen ciia TCP. Ddi khi co che nay khien
tien trinh gui phai gui vdi toe do trung binh tuong doi thip. Thu hai, TCP
khdng dua ra bat ky su bao dam nao ve do tre. Khi tiln trinh giri chuyin dir
lieu cho socket TCP, dir lieu cuoi ciing se din dugc socket nhan nhung TCP

54
khong bao dam dir lieu sau bao lau mai tdi dugc dich. Vdi nhirng quan sat
tren mdi trucmg Internet thuc, cd thi phai chd vai giay tham chi din vai phut
dl TCP giri Ihanh cdng mgt thdng diep (vi du mgt trang Web HTML tir Web
server din Web client). Ndi tdm lai, TCP bao dam viec truyin tit ca dir lieu
mgt each chinh xac, nhung khdng bao dam ve tdc do truyen va do tre.

Dich vu UDP
UDP la giao thirc giao van kha don gian vdi md hinh phuc vu tdi
thieu. UDP khdng hudng noi, nghTa la khdng cd giai doan "bit tay" trudc
khi hai tiln trinh bit diu frao doi dii- lieu. UDP khdng cung cap djch vu
tmyln tin cay. Khi tiln trinh giri chuyin thdng diep qua cdng UDP, UDP
khdng dam bao thdng diep se din dugc cdng tien trinh nhan. Hon nira, cac
thdng diep din dich cd thi khdng dung thir tu.
Mat khac, UDP khdng cd co chi kilm soat tic nghen, vi vay tien
trinh giri cd thi diy dir lieu ra cdng UDP vdi tie do bit ki. Mac dii khdng
phai tit ca dir lieu diu tdi dugc dich, nhung phin Ion dii- lieu cd thi tdi dugc.
U'ng dung thdi gian thuc thudng lira chgn UDP d ting giao van. Gidng TCP,
UDP klidng bao dam ve do tri.
Hinh 2.5 frinh bay cac giao thirc giao van ciia cac irng dung mang
pho biln. Thu dien tir, fruy cap tir xa, Web, va tmyln file sir dung TCP do
TCP cung cip djch vu truyin diir lieu tin cay, bao dam ring mgi dir lieu se
tdi duoc dich.

tfng dyng Giao thu>c u'ng dyng Giao thipc giao v | n

Thu di^n tu- SMTP [RFC 821] TCP

Truy cap tii" xa Telnet [RFC 854] TCP

Web HTTP [RFC 2068] TCP

Truyen file FTP [RFC 959] TCP

Remote File Server NFS UDP ho$c TCP

Streaming Multimedia Giao thCfc rieng, khong cong UDP ho$c TCP
bo (vi du Real Nehworks)

Oi^n thoai Intemet Giao thipc rieng, khong cong Thudng la UDP
bo (vi du Vocaltec)

Hinh 2.5 Cac irng dyng ph6 bi§n va giao thipc giao v f n tu-o-ng ipng

55
Chiing ta cung thiy rang dien thoai qua Intemet chay tren nIn UDP.
Mdi phia ciia ung dung nay cin gui dir lieu qua mang vdi tdc do tdi thilu
nao dd (Xem Hinh 2.5). Hon nira, img dung dien thoai qua Intemet chip
nhan mat mat dir lieu, vi thi chiing khdng can dich vu tmyln tin cay ciia
TCP.

Nhu da luu y frudc, TCP va UDP diu khdng bao dam vl thdi gian.
Dieu nay cd nghTa la ung dung cd rang huge vl thdi gian khdng thi chay
fren mang ngay nay? Cau fra Idi chic chin la khdng - Intemet da cd mgt kl
hoach cho ling dung kilu nayfrongnhilu nam tdi.

2.1.4 Mot so irng dung pho bien

Cac kieu ung dung mang ngay cang da dang va phong phii. Chiing ta
se tap trung nghien ciiu mgt so img dung quan trgng thudng gap. Trong
chucTng nay chiing ta se trinh bay kha chi tilt bin img dung phd biln: Web,
tmyen file, thu dien tir va djch vu ten miln (DNS). Web la img dung diu
tien la vi Web cue ky pho biln va giao thirc ting ling dung ciia nd - HTTP,
tuong ddi don gian va minh hoa nhilu dac trung ca ban cua giao thirc. Sau
dd la img dung tmyln file, bdi vi img dung nay cd nhilu dac dilm trai
ngugc vdi HTTP. Chiing ta cung se nghien cim thu dien tir, mgt trong nhimg
img dung xuat hien diu tien va thdng dung nhit cua Intemet. Thu dien tir
ngay nay sir dung nhieu giao thirc ting img dung. Web, tmyen file, va thu
dien tii deu yeu ciu djch vu tmyln tin cay, khdng cd yeu ciu rang bugc thdi
gian va yeu ciu ve bang tiidng. Do vay ba img dung nay sir dung TCP d ting
giao van. Lfng dung thir tu la DNS (Domain Name System) cung cip dich
vu chi din. Ngudi diing khdng tuong tac true tiep vdi DNS ma yeu ciu djch
vu DNS gian tiep thdng qua img dung khac (vi du Web, tmyen file, va thu
dien tii). DNS minh hoa each thirc friln khai mgt co sd dir lieu phan tan fren
mang. Ca bon ung dung fren khdng cd yeu ciu chat che vl thdi gian. Cac
ung dung yeu cau ve thdi gian dugc trinh bay frong chuong 6.

56
Trong l$clle sir Cuoc chicn trinh duyet

Thang 4/1994, Marc Andreesen, chuyen vien may tinh (ngu'O'i sau nay tgo
ra trinh duy^t Mosaic tai tru'dng dai h(?c Illinois bang Urbana) ciing vo'l Jim Clark
- ngu'O'i sang lap cong ty Silicon Graphic (la cuu giao su Stanford) sang l$p tap
(Joan truyen thong Nestcape. Nestcape sau do tuyen dung nhieu ngu-d-i trong
nhom dl/ an Mosaic a truong dgi hQc Illinois va cho ra dai phien ban Beta cua
trinh duy^t Nivigator 1.0 vao thang 10 nim 1994. Trong nhOng nam sau,
Nestcape da cai tien dang l<:e trinh duy^t cua minh, phat trien phin mem Web
server, commerce server, mail server, proxy server, mail reader va nhieu san
phim phan mem ung dgng l<hac. Netscape la mpt trong nhung c6ng ty Iclnh
doanh tren Internet doi moi va thanh cong nhit trong gi&a thgp nien 90. Thang
1 nam 1995, Barl<sdale tra thanh tong giam doc cua Nestcape va vao th^ng 8,
Nestcape b i t d i u ban co phieu cua minh tren thi truang .

Microsoft khai dau tuang doi chgm trong ITnh vi/c Internet l<hi dua ra trinh
duy$t dau tien cua minh - Internet Explorer 1.0 vao thang 8 nSm 1995. Internet
Explorer cong kenh va chay cham nhung Microsoft da dau tu Ian vao dSy de
den nam 1997, Microsoft va Nestcape tra thanh "ky phung djch thu" cgnh tranh
thj truang trinh duy$t. Ngay 11 thang 6 nam 1997, Nestcape cong bo phien ban
trinh duyet 4.0 va v^o ngay 30 thang 10 Microsoft dua ra trinh duy$t phien ban
4.0. Tai thai diem d6, kh6 co the x^c djnh chat lup'ng cua trinh duy#t n^o tot
han va Microsoft - vai si,i' thong trj cua he dieu hanh VVindows lien tgc gi^jih
them dup'c nhieu thj phan. Vao nam 1997, Nestcape mac phai mpt so sai lam
nghiem trpng trong d6 co vi$c d i u tu rat Idn vao trinh duy$t h5 trp' JAVA. Trong
suot nam 1998, Nescape tiep tgc d4 mit thj phin trinh duyet Web vS ca c i c san
phim khac. Cuoi nSm 1998 American Online da mua lai Netscape. Marc
Andreesen va cac cpng sg' ban d i u rai bo Netscape.

2.2 WORLD WIDE WEB: HTTP

Cho din nhirng nam 1990, Intemet chi dugc sir dung trong cac co
quan nghien cuu, trudng dai hgc vdi cac djch vu don gian nhu tmy cap tir
xa, fruyin file, nhan va giri thu dien tir. Mac dii nhirng img dung nay da (va
van) cue ky phd biln - nhung vl co ban Intemet van chi dugc biet tdi trong
cdng ddng nghien cim. Vao diu thap nien 90, ung dung quan trgng nhat cua
Intemet - World Wide Web xuit hien, va nhanh chdng dugc mgi ngudi chap
nhan. Nd thay ddi each thiic tuong tac giira con ngudi va mdi trudng lam
viec. Chinh dilu nay da giiip dua Intemet tir mgt trong rat nhieu mang thdng
tin (vi du mang true tuyIn Prodigy, American Online hay CompuServe, he

57
thing thdng tin quoc gia: Minitee/Tranpac d Phap, Private X25, Rrame
Relay) thanh mgt mang thing nhit duy nhit.

Ljch sii phat trien cua cdng nghe viin thdng anh hudng Idn din xa
hdi loai ngudi. Cdng nghe diu tien la dien thoai - dugc phat minh vao nam
1870. Dien thoai cho phep hai ngudi ndi chuyen true tilp ma khdng cin d
frong cimg mgt vimg. Nd cd nhung anh hudng ca tit Ian xiu din xa hdi.
Cdng nghe tiep theo la tmyen thanh, truyin hinh - ra ddi vao nhijng nam
1920-1930. Nd giiip con ngudi thu nhan mgt lugng thdng tin rat Idn bing
am thanh va hinh anh, va tac ddng Idn din xa hdi. Cd le cong nghe thir ba
lam thay ddi cugc sing va cdng viec ciia con ngudi chinh la Web. Sire Idi
cudn ciia Web ddi vdi con ngudi la d chd Web hoat ddng theo yeu ciu (on
demand). NghTa la cd thi nhan dugc thdng tin cin thilt vao cac thdi dilm
can thiet. Dilu nay khac so vdi cdng nghe quang ba (truyin thanh, truyin
hinh) chi phat di nhung ndi dung cd sin tai nhiing thdi dilm djnh trudc.
Ngoai ra Web cd nhieu dac dilm ly thii khac. Ai cung cd thi de dang frd
thanh cac nha xuat ban; cac sieu lien kit va cac cdng cu tim kilm giiip ta tim
kiem qua nhilu trang Web. Cac hinh anh do hoa va boat hinh "khuay ddng"
thj giae. Cac thanh phan khac nhu: Form, Java applet, Active X cho phep
tuong tac tdi cac Website khac.

2.2.1 Tong quan ve HTTP

Hyper Text Transfer Protocol (HTTP) - giao thirc ting img dung ciia
Web - la frai tim ciia Web. HTTP dugc triln khai tren ca hai phia client va
server. Cac tiln trinh client va server fren cac he thong diu cuoi khac nhau
giao tiep vdi nhau thdng qua viec trao ddi cac thdng diep HTTP. HTTP quy
djnh cau tnic thdng diep cung nhu each thurc trao doi thdng diep giira client
va server Tmdc khi ndi vl HTFP, chiing ta hay ndi lai cac thuat ngir ve Web.
Trang Web (Webpage - hay cdn ggi la mgt tap tin) chiia cac doi
tugng (Object). Don gian doi tugng chi la mgt file nhu file HTML, file anh
JPEG, file anh GIF, file Java applet, mgt doan am thanh... Doi tugng dugc
xac djnh qua dja chi URL. Trang Web chiia mgt file HTML co sd va tham

58
chilu din cac ddi tugng khac. Vi du mgt trang Web chiia mgt file HTML
van ban va 5 doi tugng anh JPEG, khi dd trang Web cd 6 ddi tugng: 1 file
van ban HTML va 5 file anh. File HTML co sd nay tham chieu den cac ddi
tugng khac thdng qua dja chi URL. Mdi dja chi URL cd hai thanh phan: ten
ciia may chu va vj tri ciia ddi tugng tren may chu. Day la mgt dja chi URL
www. someschool. edu/somedepartment/picture. gif

www.someschool.edu la ten may chu va somedepartment/picture.gif la dudng


dan ddi tugng.
Trinh duyet (Browser) - chuong trinh giao tiep ngudi dimg cua ung
dung Web cho phep hien thj trang Web. Browser la phia client ciia giao thirc
HTTP. Hien nay cd rat nhieu phan mem trinh duyet nhung phd bien nhat la
Nestcape Communication va Microsoft Intemet Explorer. Web server luu
giii cac ddi tugng Web va dugc xac djnh qua dja chi URL. Phan mem Web
server la phia server ciia giao thiic HTTP. Mgt sd phan mem Web server phd
bien la Apache, Microsoft Intemet Information Server va Nestcape
Enterprise Server.

Explorer ^ty-p

^^,,,-.'--1^^;;..------'^ Server

Wd? serve*

Moc funning
Ndvigotor

Hinh 2.6. Tuwng tiic client/server

HTTP xac djnh each thiic trinh duyet yeu cau trang Web tir Web
server cung nhu each thirc server giri trang Web dugc yeu cau tdi trinh

59
duyet. Dudi day chiing ta se ndi ro hon vl qua trinh trao dii giira client va
server. Hinh 2.6 minh hga qua trinh nay. Khi ngudi diing yeu ciu mgt ddi
tugng (vi du kich chudt vao mgt sieu lien kit), browser se giri thdng diep
HTTP tdi server yeu cau ddi tugng do. Server nhan dugc yeu ciu va fra Idi
bang each giri lai mgt thdng diep tra Idi chura doi tugng dugc yeu ciu. Cho
tdi nhiing nam 1997, phin Idn cac trinh duyet Web va Web server tuan thii
phien ban HTTP 1.0 (dac ta trong RFC 1945). Tir nam 1998 mgt si browser
va Web server sir dung phien ban 1.1 theo khuyin nghj RFC 2616. Phien
ban mdi nay tuong thich vdi phien ban 1.0, nghla la Web server diing phien
ban 1.1 cd the "ndi chuyen" dugc vdi trinh duyet sii dung phien ban 1.0 va
ngugc lai.

Ca phien ban 1.0 va 1.1 diu sir dung TCP lam giao thiic d ting giao
van phia dudi. HTTP client khdi tao mgt kit ndi TCP tdi HTTP server. Sau
khi thiet lap dugc kit ndi, ca tien trinh browser va Web server diu tmy cap
tdi TCP thdng qua socket. Nhu da ndi d phin 2.1, socket la "cira" gifra tiln
trinh ung dung va thuc thi TCP. Client giri thdng diep yeu ciu qua socket.
Server nhan thdng diep yeu ciu nay va giri thdng diep tra Idi qua socket. Sau
khi giri thdng diep qua socket thi thdng diep nim ngoai tim "kilm soat" ciia
client va chinh thuc the TCP chju frach nhiem chuyin nd sang phia ben kia.
Trong phan 2.1 chiing ta thay ring TCP cung cip djch vu truyin tin cay cho
HTTP, nhu vay thdng diep ciia tien trinh client se dugc chuyin tai nguyen
ven din server va ngugc lai. Din day ta da thay dugc uu dilm ciia kiln tnic
phan ting. HTTP khdng giai quylt viec mit mat dir lieu ma viec nay lii frach
nhiem cua TCP va cac ting ben dudi.

TCP sti dung co che tranh tac nghen, ca chi nay se dugc nghien cuu
chi tiet d chuong 3. 6 day chiing ta chi cin bilt ring khi kit ndi TCP mdi
khdi tao co che nay ddi hdi toe do tmyln dir lieu tuong ddi thip nhimg se
tang nhanh khi tren mang khdng cd tic nghen. Giai doan bit dau vdi toe do
thap ggi la giai doan bit diu cham (slow start).
Mgt chii y quan trgng la server giri cac doi tugng dugc yeu cau cho
client ma khdng ghi lai bit ky mgt thdng tin nao vl trang thai ciia client.
Neu client yeu ciu lai ciing mgt doi tugng thi server se khdng thi fra Idi cho
client ring ddi tugng dd vira dugc giri cho client, server se giri lai cho client
doi tugng dd nhu thi nd khdng bilt viec giri lin tmdc. HTTP server khdng
nhd cac thdng tin vl client, vi thi HTTP dugc ggi la giao thurc khdng trang thai.

60
2.2.2 Ket noi lien tuc va khong lien tuc (persistent /
nonpersistent)

HTTP ho trg ca hai each ket ndi lien tuc va khdng lien tuc. HTTP
3.0 sir dung ket ndi khdng lien luc. Che do mac djnh ciia HTTP 1.1 la ket
ndi lien tuc
Ket noi khong lien tuc (nonpersistent)
Ta hay xet cac budc client thuc hien de yeu cau trang Web tir server
trong trudng hgp sir dung ket ndi khdng lien tuc. Gia sii trang Web cd chira
mgt file HTML co sd va 10 file anh JPEG, ddng thdi ca 11 ddi tugng nay
ciing d tren mgt server, dja chi ciia file HTML nay la:
www. someschool. edu/somedepartment/home. index

Cac budc thuc hien nhu sau:


HTIT client khdi tao mgt ket ndi TCP tdi server cd dja chi la
www.someschool.edu. Cdng 80 la cdng dugc HTTP server sir dung de
"lang nghe" cac yeu cau lay trang Web tir client thdng qua giao thirc HTTP.
HTTP client giri thdng diep yeu cau qua socket tdi thuc the TCP da
dugc ket ndi d budc trudc. Thdng diep bao gdm dudng dan
somedepartment/home.index (y nghTa thdng diep se dugc giai thich d dudi).
HTTP server nh^n dugc thdng diep yeu cau tir socket, lay ddi tugng
somedepartment/home.index frong bg nhd ciia minh (d cimg hoac RAM),
dat doi tugng nay vao trong mgt thdng diep tra Idi va giri di qua socket.
HTTP server yeu cau thuc thi TCP ket thuc kit ndi (nhung nd
khdng ddng lai thuc su cho den khi client nhan dugc thdng diep).
HTTP client nhan dugc thdng diep tra Idi, ket noi dugc ddng lai.
Thdng diep chi ra ring nd chiia mgt ddi tugng la file HTML. Client se lay
file dd ra tir thdng diep tra Idi. File HTML tham chieu den 10 ddi tugng anh
JPEG.
4 budc dau dugc lap lai cho mdi doi tugng anh dugc tham chilu
frong file HTML.

61
Khi nhan dugc thdng diep tra Idi cd chura trang Web, browser se
hien thj trang Web. Cac browser khac nhau thi cd the cd cac each hien thi
khac nhau ddi vdi ciing mgt trang Web. HTTP khdng anh hudng gi ddi vdi
each hien thj trang Web ciia client. Cac dac ta trong HTTP chi djnh nghTa
giao thirc tmyen thdng giira tien trinh client va server ma thdi.
Cac budc d tren sir dung each ket ndi khdng lien tuc vi sau khi giri di
mgt ddi tugng thi server se ddng ket ndi TCP lai, ket ndi khdng dugc sir
dung de lay cac ddi lugng khac. Luu y rang mdi ket ndi TCP chuyen duy
nhat mgt thdng diep yeu cau va mgt thdng diep tra Idi, nhu vay trong vi du
tren, client yeu cau toan bd ddi tugng tren trang Web thi se cd the cd tdi 11
ket ndi TCP dugc thiet lap.

Trong vi du tren, chiing ta khdng he ndi den viec client nhan dugc
10 file anh JPEG qua 10 lien ket TCP rieng re hay mgt sd file dugc nhan qua
ciing mgt ket ndi. Tren thuc te, ngudi diing cd thi cau hinh cho trinh duyet
dieu khien miic do song song ciia cac ket ndi. Che do mac djnh ciia trinh
duyet thudng la tu 5 den 10 ket ndi TCP song song va moi kit ndi kilm soat
mgt cap thdng diep yeu cau / tra Idi. Nhung neu ngudi dimg khdng thich thi
cd the dat sd ket ndi song song tdi da la 1, trong trudng hgp nay 10 ket noi
dugc thiet lap rieng le. Trong chuong sau chiing ta se thay rang each ket ndi
song song lam giam thdi gian nhan dugc kit qua tir client.
Ket noi lien tuc
Cd mgt vai nhugc diem trong ket ndi khdng lien hic: Thii nhat, khi
ket noi mdi dugc tao ra, phia client va server phai tao ra viing dem TCP
(buffer) cung nhu luu giir cac bien TCP. Dieu nay chinh la ganh nang cho
server khi cd nhieu client cimg yeu cau mgt liic.
Vdi each ket ndi lien tuc, server khdng ddng lien kit TCP sau khi
giri thdng diep tra Idi. Cac thdng diep yeu cau va tra Idi sau dd (giita cimg
mgt client va server) dugc giri qua cimg mgt ket ndi. Trong yi du tren, toan
bd ddi tugng trong trang Web (mgt file HTML va 10 file anh JPEG) dugc
tmyen ndi tiep nhau tren cimg mgt ket ndi TCP. Ngoai ra, cd the cac trang
Web khac fren ciing server cd the dugc tmyen qua mgt ket ndi TCP. Thdng
thudng thi HTTP server ddng lien ket khi lien ket khdng dugc sir dung trong
mgt khoang thdi gian nao dd.

62
Che do lam viec mac dinh cua phien ban HTTP 1.1 la giri lien tuc.
Trong trudng hgp nay, HTTP client giri yeu cau khi nhan dugc mgt tham
chieu (vi du mgl sieu lien ket, hay tham chieu den file anh) vi vay client cd
the gui cac yeu cau lien tiep. Khi nhan dugc yeu cau thi server se giri cac ddi
tugng ndi tiep nhau.

2.2.3 Khuon dang thong diep HTTP

Cac dac ta HTTP 1.0 (RFC 1945) va HTTP 1.1 (RFC 2016) dac ta
khudn dang thdng diep HTTP. Cd hai kieu khudn dang HTTP: thdng diep
yeu cau va thdng diep tra Idi.
Thong diep yeu cau HTTP (HTTP request message)
Mgt thdng diep yeu cau thudng cd dang sau:
GET/somedir. page, html HTTP/1.1
Host^ www. sprneschool. edu
Connectior»:«lose
User-agent:Mozzilla /4.0
Accept- language:Fr
(extra carry return line feed)

Trudc
-de bet
nit ta thay ring thdng diep diia
diigc viet bang ma ASCII - vi the
bat ky may tinh thdng thudng nao cung cd thi dgc dugc. Thii hai, thdng diep
gdm 5 ddng va mdi ddng deu ket thiic bdi cap ky tu dac biet Carriage Retum
(CR=13h) va Line Feed (LF=10h). Tren thurc te mgt thdng diep cd the cd
nhieu ddng ban. Ddng dau tien ciia thdng diep dugc ggi la ddng yeu cSu
(request line), cac ddng sau ggi la tieu d§ (header). Ddng yeu cau ed 3
trucmg: trudng method, trudng dja chi URL va trudng phien ban HTTP.
Trudng method nhan mgt trong ba gia trj: GET, POST va HEAD. Phin Idn
cac yeu cau sir dung phuong thirc GET. Phuong thiic nay dugc trinh duyet
sir dung de yeu cau ddi tugng cd dja chi URL. Trong vi du tren thi trinh
duyet yeu ciu ddi tugng somedir/page.html. Tmdng phien ban xac djnh
phien ban giao thiic HTTP (trong vi du la 1.1).

63
Bay gid hay xet cac tmdng trong tieu de. Host: www.someschool.edu
la dja chi cua may tinh cd chira ddi tugng dugc yeu cau. Y nghTa ciia trudng
Connection: close la trinh duyet yeu cau server khdng sir dung each ket ndi
lien tuc va yeu cau server ddng ket ndi lai sau khi da giri di ddi tugng dugc
yeu cau. Mac dii chent su dung phien ban HTTP 1.1 nhung lai khdng sir
dung ket ndi lien tuc. Trudng User-agent xac djnh phan mem trinh duyet
ciia ngudi sir dung. Phan mem trinh duyet d day la Mozzilla, mgt san pham
CLia hang Nestcape. Trudng nay rat quan trgng vi server cd the giri cac ban
khac nhau cua cimg mgt ddi tugng den cac trinh duyet khac nhau (cac ban
doi tugng nay deu dugc xac dinh qua ciing mgt dia chi URL duy nhat). Cuoi
ciing la trudng Accept language, trong vi du nay ngudi sir dung yeu cau ban
tieng Phap cua doi tugng - neu server cd ban nay. Trong trudng hgp khdng
cd thi server giri di ban mac dinh.
Hinh 2.7 minh hoa khudn dang chung cua thdng diep yeu cau.

melhod sp URl sp Version cr If R©


Request fine

heoder field nome vobe Cf If



Header

• lines

heoder field name volue Cf If

a If

Entity
Body

Hinh 2.7 Khudn d^ng thong dif p ydu cdu

Khudn dang tong quat ciia thdng diep cd them tmdng Entity Body
sau cac ddng tieu de. Tmdng nay khdng dugc sir dung trong phuong thiirc
GET nhung dugc sir dung trong phuong thirc POST. HTTP client sir dung
phuong thiirc POST khi ngudi diing dien vao mgt form - vi du khi mudn tim
kiem qua may tim kiem Google. Vdi phuong thiic POST ngudi dung van
yeu cau trang Web nhung ndi dung cu the phu thugc vao ndi dung diln trong
form. NIU gia trj ciia trudng method la POST thi phan entity body se chiia
ndi dung ma ngudi diing dien vao form. Phuong thiic HEAD ciing tuong tu

64
nhu phuong thirc POST. Khi nhan dugc yeu cau vdi phuong thirc POST,
server si! giri lai thdng diep HTTP tra Idi nhung khdng giri ddi tugng dugc
yeu cau. Thudng ngudi ta sir dung phuong thirc HEAD de go Idi.
Thong diep tra Ioi (HTTP response massage)
Sau day la mgt vi du ve thdng diep tra Idi, thdng diep nay cd the la
fra Idi cho thdng diep yeu cau tren.
HTTP/1.1 200 OK
Connection:close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server Apache/1. 3. 0 (unix)
Last modified:Mon, 22 Jun 1998 09:23:24 GMT
Connect lenght:6821
Connect type:text/html

(data data )
Thdng diep tren gdm cd 3 phan: Ddng dau tien la dong trgng thai
(status line), 6 ddng tieu de va cudi cimg la phin than (Entity body) chiia
ddi tugng dugc yeu cau (la phan data data...). Ddng trang thai cd 3 tmdng:
trudng phien ban ciia giao thtic, ma frang thai va trudng trang thai thdng
diep tra Idi. Trong vi du nay thi ddng frang thai cho biet server su dung
phien ban HTTP 1.1 va trang thai la sin sang (server da nhan dugc yeu cau
va giri ddi tugng dugc yeu cau).

versKjn sp status code sp phrose a If Sic

header field nome volue a If



Header

• lines

header field name • vidxie a If


a If

Em
Enlity
Body

Hinh 2.8 Khuon d^ng thong dif p tri liri

65
Trudng Connection: close bao cho client biet server se ddng ket ndi
sau khi giri di thdng diep. Trudng Date: cho biet thdi gian khi server tao ra
thdng diep va giri di, chu y rang day khdng phai la thdi gian khi ddi tugng
dugc tao ra hay Ian cudi ciing ddi tugng dugc cap nhat. Dd la thdi diem ma
server tim thay ddi tugng trong he thdng file cua minh, chen ddi tugng vao
thdng diep tra Idi va giri di. Trudng Server cho biet thdng diep tra Idi nay
dugc tao ra tir phan mem Web server Apache, y nghTa ciia nd gidng vdi
trudng User agent trong thdng diep yeu cau. Trudng Last modified la thdi
gian culi ciing ddi tugng dugc cap nhat. Ta se nghien cuu ki hon vl trudng
nay nhung chii y ring nd cd vai frd quan frgng ddi vdi ca client va Web
cache (proxy server). Content lenght: cho biet do dai cua ddi tugng dugc
giri. Content type xac djnh kieu cua ddi tugng la file van ban HTML (kieu
cua ddi tugng dugc dat d day chu khdng phai trong phan md rgng ciia ten file).

Chii y khi nhan dugc mgt thdng diep yeu cau HTTP 1.0, server ciing
se khdng sir dung ket ndi lien tuc ngay ca khi server dung phien ban 1.1.
Server se ddng ket ndi ngay sau khi giii ddi tugng. Dieu nay can thiet vi
client sir dung phien ban HTTP 1.0 se chd server ddng ket ndi lai.

Khudn dang chung ciia mgt thdng diep tra Idi dugc minh hoa tren
Hinh 2.8. Khudn dang nay tuong thich vdi vi du tren. Tuy nhien can phai
ndi them ve ma trang thai (status code) va y nghTa cua chiing. Ma trang thai
ciing vdi cum tir di sau cho biet ket qua dap ung yeu cau. Sau day la mgt vai
gia trj thdng dung va y nghTa eiia chiing:
200 OK: Yeu cau dugc dap img va dii lieu dugc yeu ciu nim trong
thdng diep.
301 Moved permanetly: cho biet ddi tugng da dugc chuyen va dja chi
URL mdi cua ddi tugng dugc dat trong trudng Location: ciia thdng diep tra
Idi, phan mem tai client se tu ddng lay ddi tugng tai dia chi URL mdi (day la
hien tugng redirection thudng gap khi duyet Web).
400 Bad Request: server khdng hieu dugc yeu ciu tir client
404 Not found: ddi tugng khdng cdn dugc luu tren server
505 HTTP version not support: server khdng bd trg giao thiirc cua client

Trong phan nay chiing ta da trinh bay mgt sd tmdng trong tieu de
ciia thdng diep HTTP. HTTP (dac biet la ban 1.1) dinh nghTa rat nhilu

66
truing cd the dugc browser, Web server va Web cache chen vao trong thdng
diep. O tren chiing ta mdi de cap den mgl phan nhd, chi tiet cd the xem trong
cac dac ta ciia HTTP.
Lam the nao de trinh duyet cung nhu server biet dugc phai chen
truong nao vao tieu de thdng diep? Thdng diep yeu cau phu thugc vao chirc
nang trinh duyet cung nhu phien ban HTTP (HTTP 1.0 khdng the tao ra
thdng diep kieu HTTP 1.1). Ngudi sir dung ed the djnh cau hinh cho trinh duyet.

2.2.4 Tuo"ng tac giira nguoi diing va Hrver-server

Nhu da ndi fren, HTTP server khdng luu giir trang thai. Dieu nay
don gian hoa kien true va lam tang hieu suat^hoat ddng ciia server. Tuy
nhien server mudn phan biet ngudi dimg khdng chi vi mudn ban che sir truy
cap ma cdn vi mudn phuc vu theo djnh danh ngudi diing. HTTP cd 2 co che
de server phfin biet ngudi dimg: Authentication va cookies.
Authentication (Kiem chiing)
Nhieu server yeu cau ngudi diing phai cung cap ten (usemame) va
mat khau (password) de ed the truy cap dugc vao tai nguyen tren may chii.
Yeu cau nay dugc ggi la kilm chimg. HTTP cd cac ma frang thai va trudng
de thuc hien qua trinh kilm chimg. Gia sir client yeu cau mgt ddi tugng tir
ser\'er va server yeu cau client cung cap ten va m.at khau. Dau tien client van
giri mgt thdng diep yeu cau thdng thudng. Server se tra Idi vdi thdng diep cd
phin than rong va tmdng ma trang thai la 401 Authentication required.
Trong thdng diep tra Idi nay cd tmdng www-Authenticate: xac djnh phuong
thirc kiem chung ma ngudi diing phai thuc hien, thdng thudng la dua ten va
mat khau. Nhan dugc thdng diep nay, client yeu cau ngudi diing cung cap
ten va mat khiu. Sau dd, client se giri lai thdng diep yeu cau cd trudng
Authoziration: frong tieu dl, tmdng nay chiia ten va mat khau cua ngudi diing.
Sau khi nhan dugc ddi tugng diu tien, client tiep tuc giri ten va mat
khiu trong cac thdng diep kl tilp (thudng thi cho din khi ngudi diing ddng
trinh duyet lai. Khi trinh duyet cdn md, ten va mat khau dugc luu lai trong

67
cache de ngudi dimg khdng phai danh lai nira). Theo each nay server cd the
phan biet cac ngudi diing khac nhau. HTTP phan biet ngudi diing kha Idng
leo va khdng khd de vugt qua. Chimg ta se nghien ciru them ve van de bao
mat va so dd xac nhan ngudi diing trong chuong sau.
Cookie
Cookie la ky thuat khac dugc sir dung de ghi lai dau vlt ciia ngudi
tmy cap. Nd dugc dac ta trong RFC 2109. Vi du lin dau tien ngudi dimg
tmy cap vao mgt server nao dd cd sir dung cookie. Thdng diep tra Idi ciia
server cd trudng Set-cookies: trong tieu de, ciing vdi mgt chudi ky tu do
Web server tao ra.
Vi du Set-cookies:1678453. Khi nhan dugc thdng diep tra Idi, client
xac djnh dugc trudng Set-cookies va chudi ky tu di kem, trinh duyet se
them mgt ddng vao cudi file cookie (la mgt file dac biet nam fren may
client). Ddng nay thudng la ddng chua ten may chu va chudi ky tu cookie.
Gia sir mgt tuan sau, client giri thdng diep yeu cau den server, client se tu
ddng chen trudng Cookies: trong tieu de ciia thdng diep yeu cau vdi gia trj
la chudi gia trj cookie luu trong file cookie. Trong vi du tren, tieu de chiia
trudng cookies la Cookie; 1678453. Theo each nay, server khdng xac djnh
dugc ten ciia ngudi diing (user name) nhung xac djnh dugc user nay chinh la
ngudi da tmy cap mgt tuan tmdc dd.
Web server sir dung cookie cho nhieu muc dich:
Neu server yeu cau kiem chiing nhung khdng mudn ddi hdi ngudi
dimg dang nhap qua ten va mat khau thi cd the su dung cookie cho mdi Ian
ngudi dimg tmy cap vao server.
Server sir dung cookie neu mudn ghi nhd cac boat ddng cua ngudi
dimg, phuc vu muc dich quang cao.
Neu user mua hang fren mang (mua mgt dTa CD ching ban) thi
server su dung cookie de ghi lai nhCmg gi ma user da mua. Dd chinh la cac
cira hang ao.
Su dung cookie gay khd khan cho ngudi dimg khdng cd may co djnh
ma tmy cap vao server tir nhieu may khac nhau. Server se coi dd la nhiing
ngudi dimg phan biet.

68
2.2.5 GET CO dieu kien (Conditional GET)

Luu giir lai cac ddi tugng da timg dugc lay, Web cache cd the lam
giam thdi gian chd tir khi giri yeu cau den khi nhan ddi tugng va lam giam
luu lugng thdng tin tmyen tren Intemet. Web cache dugc trien khai tren
trinh duyet hay cac cache server. Chung ta se nghien ciru network cache d
phan sau. Trong phan nay ta chi quan tam den cache tai trinh duyet.

Mac dii Web cache lam giam thdi gian chd nhan ddi tugng nhung
van de nay sinh la ban sao ciia ddi tugng dugc luu giii- tren client cd the da
"cQ", ndi each khac ddi tugng tren server cd the da thay ddi tir khi client lay
ddi tugng do ve. Tuy nhien HTTP cd co che cho phep sir dung cache trong
khi van dam bao ddi tugng trong cache chua bj "cii". Co che nay chinh la
GET CO di§u kien (conditional GET). Mgt thdng diep HTTP dugc ggi la cd
dieu kien neu: (1) thdng diep sir dung phuong thirc GET va (2) thdng diep
cd trudng If-modified-since trong tieu de. Vi du, trinh duyet yeu cau mgt ddi
tugng tir server ma trong cache ciia nd chua cd:

GET /fruit/banana.gif HTTP/1. 0


User-agent:Mozilla/4. 0

Sau dd server giri thdng diep tra Idi kem vdi ddi tugng

HTTP/1.0 200 OK
Date: wed 12 aug 1998 15:38:29
Server : Apache/1. 3. 0 (Unix)
Last-modified: mon, 22 jun 1998 09:23:24
Content-type:image/gif
(data data )

Trinh duyet hien thj ddi tugng ddng thdi luu lai ddi tugng trong
cache cue bd cimg vdi thdi gian frong tmdng Last-modified kem theo ddi tugng.

Mgt tuan sau, ngudi sii dung lai yeu ciu doi tugng nay va ddi tugng
van cdn dugc luu tren cache. Nhung fren server ddi tugng cd the da bj thay
ddi trong thdi gian mgt tuan nen trinh duyet phai thuc hien kiem tra bang
each gui mgt thdng diep GET cd dieu kien, cu the browser giri di:

69
GET/fruit/kiwi, gif HTTP/1.0
User-agent: Mozilla 14. 0
If-modified-since: Mon, 22 Jun 1998 09:23:24

Chii y gia trj trudng If-modified-since: la gia frj cua trudng Last-
modified: trong tieu de ma server da giri cho client tuan trudc. Thdng diep
GET cd dieu kien yeu cau server chi giri ddi tugng cho client neu nhu ddi
tugng dd bj thay ddi sau thdi gian dugc chi ra tren. Gia sir ddi tugng dd
khdng thay ddi gi tir 9 gid 23 phiit 24 giay ngay 22 thang 6 nam 1998 thi
server se giri cho client thdng diep:
HTTP /1.0 304 Not modified
Date : wed, 19 Aug 1998 15:39:29
Server: Apache / 1 . 3. 0 (Unix)
(empty entity body)

Thdng diep tra Idi nay khdng kem theo ddi tugng. Viec giri kem doi
tugng chi lam lang phi dudng truyen va lam tang thdi gian client phai chd de
nhan dugc ddi tugng, dac biet khi ddi tugng cd kich thude Idn. Gia trj
trudng trang thai la 304 Not modified bao cho client biet ddi tugng ma client
luu trong cache gidng ddi tugng gdc tai server, do dd client cd the sir dung
lai ddi tugng nay.

Origin sewer

Origin server

Hinh 2.9 Client yeu cdu d6i tu'Q'ng thdng qua cache

70
2.2.6 Web cache

Web caciie (proxy server) la thLPC the dap ung yeu cSu t u client. May tinh lam
nhi#m vy Web cache c6 6 dia rieng \xru trO ban sao cac d6i tu'<?'ng da tung du-p-c
yeu cSu. Nhu minh h09 tren

Hinh 2.9, ngudi sir dung cd ihl ciu hinh trinh duyet sao cho tat ca
cac yeu ciu diu dugc giri din Webcache trudc (viec nay tuong ddi dcm gian
vdi cac trinh duyet ciia Microsoft va Nescape). Khi do tit ca yeu cau cua
frinh duyet vl mgt ddi tugng nao dd se dugc chuyin din Webcache trudc.
Gia sir trinh duyet yeu ciu doi tugng la mgt file anh cd dia chi la
http://www.someschool.edu/campus.gif
• Trinh duyet khdi tao mgt kit noi TCP tdi Webcache va gui yeu
cau tdi Webcache
• Webcache se kilm tra va tim ddi tugng, nlu tim dugc thi
Webcache se giri doi tugng cho client qua ket ndi TCP da dugc
thiet lap.
• N I U Webcache khdng cd doi tugng do thi nd se khdi tao mgt kel
noi tdi server that chira ddi tugng, d day la
www.someschool.edu. Sau dd Webcache gii'i thdng diep yeu
ciu tdi cho server nay thdng qua kit ndi TCP vira khdi t p . Sau
khi nhan dugc yeu ciu tir Webcache, server se giri lai ddi tugng
cho Webcache
• Khi nhan dugc doi tugng, Webcache se luu lai ban sao ciia ddi
tugng va giri doi tugng trong thdng diep HTIT tra Idi cho may
client (thdng qua kit noi TCP da dugc thilt lap tmdc dd).

Nhu vay Webcache vira la client vira la server. Webcache ddng vai
trd server khi nhan yeu ciu va fra Idi, ddng vai trd client khi giri yeu cau va
nhan thdng diep tra Idi.
Webcache dugc sir dung rgng rai vi ba nguyen nhan sau: Webcache
lam giam thdi gian client phai dgi. Trong tmdng hgp cache cd ddi tugng
dugc yeu ciu thi doi tugng nay se ngay lap tiie dugc chuyin cho client. Thii
hai, Webcache lam giam tai mang. Bing each giam tai dudng tmyen ra
mang Intemet, co quan khdng cin phai nang cip dudng fruyin va giam chi

71
phi. Webcache lam giam lugng thdng tin Web frao ddi tren Internet, do dd
tang hieu suat hoat ddng cua tit ca cac ting dung. Nam 1998, theo thing ke
ban 75% thdng tin dugc truyen tren mang la ling dung Web, vi vay giam tai
Web cai thien dang kl hieu suit toan bd Intemet. Thir ba, mang Internet vdi
nhieu Webcache giiip cho viec nhanh chdng phat tan thdng tin - tham chi
ngay cho nhimg nha cung cip thdng tin cd tdc do server cham hay toe do kit
ndi cham. Nlu mgt nha cung cip cd mgt ndi dung cin phi biln thi ndi dung
nay ngay lap tiic dugc chuyin din cac Webcache va yeu ciu ciia ngudi dimg
tir mgi noi dugc dap ung nhanh chdng.
Cache lien hop (Cooperative caching)
Cd the ket hgp nhilu Webcache dat d cac vj tri khac nhau tren mang
nham nang cao hieu suit ting thi. Vi du, cache ciia mgt co quan cd thi dugc
cau hinh sao cho cac yeu cau ctia nd dugc giri tdi cache cua nha cung cip
djch vu Intemet cip quoc gia (backbone ISP). Khi dd nlu cache ciia ca quan
khdng cd ddi tugng dugc yeu ciu thi nd se giri thdng diep yeu cau HTTP
den cache ciia ISP. Cache d ISP se tim doi tugng trong he thong luj trij ciia
minh hoac tai chinh server ed luu giir ddi tugng. Sau dd nd se gui doi tugng
trong thdng diep tra Idi HTTP tdi cache ciia co quan. Cache ciia co quan lai
giri ddi tugng tdi trinh duyet yeu ciu. Mdi lin ddi tugng khi qua cache diu
dugc sao chep lai trong cache.

Hinh 2.10 NLANR caching

72
Mdi vi du vl he thing cache lien hgp la he thing cache NLANR. He
thing nay co nhilu may lam nhiem vu Webcache d My. cung cap djch vp
cho cac Webcache ciia cac to chii-c va cac khu vuc tren loan the gidi. Md
hinh phim cip ciia he thing nay dugc md la trong Hinh 2.10. Cache nay lay
ddi tugng tir cache khac bing each kit hgp sir dung giao thirc HTTP va ICP
(Inlemet Caching Protocol). ICP la giao thirc d ting irng dung cho phep
cache nhanh chdng xac djnh mgt cache khac cd ddi tugng nao dd hay khdng,
va nlu cd thi cache cd thi sir dung giao thirc HTTP dl liy doi tugng ve. ICP
dugc sir dung rgng rai fren rit nhilu he thing cache lien hgp.

Mgt kilu lien hgp khac la cum cache (cache cluster), thudng dat tren
cimg mgt mang LAN. Cache dugc thay thi bdi cum cache khi mgt cache
duy nhit khdng dap img hieu qua trong trudng hgp qua nhieu yeu cau hay
khi dung lugng thilt bj nhd ban chi. Tuy nhien khi trinh duyet yeu cau mgt
doi tugng thi vin dl niy sinh la yeu ciu dugc giri din cache nao trong cum
cache. Vin dl nay cd thi dugc giai quylt bing each tim kilm theo ham bam
(hash muting). Don gian nhat, trinh duyet thuc hien phep "bam" tren dja chi
URL, trinh duyet se can cir vao kit qua dl giri yeu cau den mgt trong cac
cache trong cum. Nlu tit ca trinh duyet diing ciing mgt thuat toan barn, doi
tugng khdng bao gid dugc luu tren cac cache khac nhau trong cum. Neu ddi
tugng thuc su dugc luu trtir trong cum thi trinh duyet ludn cd the giri yeu cau
din cache thich hgp. Tim kilm theo ham bam la elt Idi ciia giao thiic Cache
Array Routing (CARP).

Webcache la vin dl Idn va phuc tap. Trong vai nam gan day cd
nhieu iighiOn ciru va san phim vl cache. Hudng nghien ciru la xay dung
cache cd klia nang xu ly dugc lulng am thanh va hinh anh. Cache se ddng
mot vai trd quan trgng dl Intemet trd thanh co sd ha ting cung cap cac djch
vu hd trg da phuong tien theo yeu ciu (on demand).

2.2.7 Web dong

Trong phin fren, chiing ta ndi vl trang Web tTnh - la mgt file HTML
cii thi nim fren Web server. Trong phin nay chiing ta se trinh bay ve Web
dong va Web tich cue. Mgt trang Web ddng khdng ton tai dudi dang mgt
file CO djnh tren Web server. Trang Web ddng chi dugc server tao ra khi

73
nhan dugc mgt yeu cau cu thi tir trinh duyet Web. Khi nhan dugc mgt yeu
cau, Web server se chay mgt chuong trinh irng dung nao dd dk tao ra ngi
dung mgt van ban. Sau dd van ban nay dugc tra vl cho trinh duyet.
Request for
Dynamic PHP pa:

<=

Server runs
PHP page
through engine^
Hinh 2.11 Vi dy v4 Web dpng, Web server su- dyng cong ngh? PHP

Web tich cue (active Web) la loai van ban cd chira chuong trinh.
Chuong trinh nay cd kha nang tinh toan va biln thj thdng tin. Khi trinh
duyet yeu cau, server se giri cho trinh duyet mgt van ban cd dinh kem
chuong trinh. Trinh duyet se chay chuong trinh nay tai may tinh cue bg cua
minh, chuong trinh cd thi tuong tac vdi ngudi sir dung, tu ddng cap nhat
thdng tin theo nhu cau ngudi su dung. Do vay ndi dung trang Web tich cue
khdng bat bien ma thay doi khi chuong trinh tuong umg thuc thi. Co chi
Web ddng cd uu nhugc dilm rieng so vdi Web tTnh tmyln thing.
Ro rang uu dilm chinh ciia Web tTnh la tinh don gian, tien dung va
tin cay. Sau khi dugc tao ra, trang Web tTnh cd mgt djnh dang el djnh va bit
bien. Trinh duyet cd thi nhanh chdng hiln thj mgt trang Web tTnh, va cd thi
tang hieu suat he thing bing each su dung co chi cache.

Nhugc dilm cua Web tTnh la thilu tinh linh hoat. Khi phai thay doi,
chiing ta phai chinh sira lai moi trang Web tTnh. Dilu nay khdng dugc lam tu
ddng ma phai lam thii cdng. Do dd trang Web tTnh khdng thich hgp khi cin
cung cap cac thdng tin bien doi thudng xuyen.

LTu diem chinh ciia Web ddng la kha nang hiln thj ngay lap tire
thong tin hien thdi tir phia server. Nhimg thdng tin thay ddi thudng xuyen,
chang ban du bao thdi tilt, gia cac loai cl philu,... cd thi dugc mgt chuong
trinh ling dung d phia server sinh ra va chuyin chofrinhduyet khi cd yeu ciu.

74
Triln khai Web ddng dugc thuc hien d phia server. Phia client yeu
ciu mgl trang Web ddng gilng nhu khi yeu ciu mgl trang Web tTnh. Ddi vdi
client, mgt trang Web ddng khdng khac gi mgl trang Web tTnh. Do Web tTnh
hay Web dgng diu theo djnh dang HTML, nen client khdng the biel thong
diep Ira vl la sei-ver lay lir file nim tren o ciing hay la ket qua ciia mgl
chuong trinh.
Nhugc dilm chinh ciia Web dgng la chi phi cai dat tuong ddi cao va
khdng linh hoat khi phai hiln thj nhirng thdng tin hay thay ddi. Gidng nhu
Web tTnh, mgl khi thdng diep dugc server sinh ra va chuyen cho frinh duyet
thi ndi dung thdng diep la co djnh. N I U moi lin thdng tin thay ddi, trinh
duyet phai cap nhat lai dl lay ngi dung mdi.
Xay dung va bao tri cac Web server cd kha nang tuong tac ddng kha
tin kem, do ngoai kha nang phai lap frinh thi may tinh lam Web server phai
cd ciu hinh manh, ngoai ra phai tang cudng kha nang bao mat ciia he thdng.
Viec tao ra trang Web ddng cung tin nhilu thdi gian hon (do phia server
phai chay chuong trinh vdi moi yeu ciu tir client).

Dii vdi Web ddng, cho dii thdng diep tra Idi chi dugc tao ra khi cd
nhu ciu, nhung thdng tin trong dd vin cd thi bj lac hau nhanh chdng. Uu
dilm chinh ciia Web tich cue so vdi Web ddng chinh la kha nang cap nhat
thdng tin lien tuc do kha nang Web tich cue cd kha nang tuong tac true tiep
vdi server dl cap nhat thdng tin. Vi du mgt trang Web hiln thi gia ciia thj
trudng chiing khoan cd thi tu ddng cap nhat gia cac loai cd phieu ma khdng
cin bit ky sir can thiep nao tir phia ngudi dimg.

Nhugc dilm chinh ciia Web tich cue la chi phi xay dung va kha
nang an ninh he thong. Vi phai tai va sau dd thurc thi mgt chuong trinh tir
server, nen phai cd kha nang dam bao chuong trinh nay khdng lam gi cd hai
fren may tinh client.
Chu ylu viec friln khai Web ddng dugc thuc hien d phia server,
server phai cd bd sung them kha nang chay mgt chuong trinh img duiig nao
do dl tao ra ndi dung mgt trang Web khi cd yeu ciu tir trinh duyet. Mdi mgt
kilu tra Idi phai cd mgt chuong trinh irng dung rieng. Do dd server phai cd kha
nang chuyin yeu ciu din tir trinh duyet cho chuong trinh ung dung cu the.

75
Chuan CGI (Common Gateway Interface)

CGI la mgt trong nhirng cdng nghe da timg duoc sir dung rit rdn"
rat khi xay dirng Web ddng. Chuin CGI quy djnh each thuc Web server
tuong tac vdi chuong trinh ung dung (chuong trinh CGI). Hinh 2.12 minh
hga CO chi hoat dgng cua CGI.

Tren phin Idn Web server, ca chl CGI duoc cai dat nhu sau Trong
thu muc gdc cai dat Web server, cd thu muc cgi-bin. Khi client yeu ciu mot
file nao dd nam trong thu muc cgi-bin thi Web server se khdng giri file dugc
yeu cau ma phai thuc thi file nay va kit qua cua qua trinh thuc thi se duoc
gui cho trinh duyet. Chuong frinh dugc ggi dl thuc thi d day cd thi la mgt
file kha thi hoac mgt doan ma script (bing Perl).

Gia sur ban go http://computer.howstuffworks.com/cgi-bin/search pi


tren trinh duyet. Web server nhan thiy ring file search.pl nim trong thu
muc cgi-bin, do vay nd thuc thi search.pl (la mgt Perl script) va sau dd giri
ket qua cho trinh duyet.

Ban hoan toan cd thi vilt mgt doan script va thir co chl CGI, mien la:

• Ban biet mgt ngon ngir lap trinh, ching han C hay PERL
• Ban cd quyln truy cap vao Web server cd hd trg CGI.

HTTP request HTTP request

client I 7 server icGI '^ ^°^


appUcation _

HTTP header, MIME message


MIME message

Hinh 2.12 Vj trf cua CGi

M9t chu-ung trinh CGI don gian

Trong phin trudc, chung ta da xem mgt vi du trang Web tTnh don
gian nhu sau:
<html>
<body>
<h1>Hellotherel</h1>
</body>
</html>

76
NIU cd quyln truy cap tdi thu muc cgi-bin fren mgt Web server cd
ho trg CGI, ban cd thi thir doan ma don gian dugc viet bing ngon ngir lap
trinh C sau day. Kit qua thuc hien ciia chuong trinh nay tuong duong vdi
trang Web tTnh d tren.
#include <stdio.h>
int main()
{
printf("Content-type: text/html\n\n");
printf("<html>\n");
printf("<body>\n");
printf("<h1 >Helio there!</h1 >\n");
printf("</body>\n");
printf("</html>\n");
return 0;
}
Djch file ma nguon nay thanh file simplest.cgi va dat trong thu muc
cgi-bin. Gia sir trinh duyet yeu ciu file simplest.cgi thi chuong trinh CGI tai
server se sinh ra mgt trang Web cd ddng chir "Hello there".
Chii y ring bit budc phai cd ddng printf("Content-type:
text/html\n\n") vi "Content-type: text/html\n\n" ludn la ddng diu tien Web
server giri cho trinh duyet.
Uu dilm chinh cua chuong trinh CGI la tao ra ngi dung ddng -
nghTa la kit qua cua moi lin chay la khac nhau. Chuong trinh C sau day
minh hga dilu nay.
#include <stdio.h>
int incrementcountO
{
FILE *f;
int 1;
f=fopen("count.txt", "r+");
if (If)
{
sleep(l);
f=fopen("count.txt", "r+");
if (If)
return - 1 ;
}
fscanf(f, " % d " , &i);
!•*•+;

77
fseek(f,0,SEEK_SET);
fprintf(f, " % d " , i);
fclose(f);
return i;
}

int main()
{
printf("Content-type:text/html\n\n");
printf("<html>\n");
printf("<body>\n");
printf("<h1>The current count is: ")
printf("%d</h1 >\n", IncrementcountO);
printf("</body>\n");
printf("</html>\n");
return 0;
}

Sau dd djch file nay thanh file counter.cgi. Tao ra file count.txt cd
chiia si 0 trong dd va dat ea hai file nay vao thu muc cgi-bin. Sau dd thir
kiem tra bing each kich vao link http://computer.howstuffworks.com/cgi-
bin/count.cgi mgt sd lin. Mdi lin se hien ra mgt kit qua khac nhau.
File count.txt giii- gia trj hien thdi cua biln count, va ham
IncrementcountO lam tang biln count frong file count.txt. Ham nay md file
count.txt, dgc gia trj biln count, tang biln count len mgt sau dd ghi lai gia
frj mdi vao file.
Form: Gii-i thong tin den trinh duyet
Chiing ta thiy ring chuong trinh CGI tuong doi dan gian. Web
server chi ggi mgt chuong trinh CGI dl thuc thi va sau dd kit qu^ dugc giii
lai eho trinh duyet. Bay gid chiing ta xem each thiic lam sao dl trinh duyet
giri dugc thdng tin cho chuong trinh CGI. Cach thiic don gian d day chinh la
HTML fomi.

DQ hilu thi nao la form, chiing ta thii tao ra mgt file HTML don
gian cd ten simpleform.htm vdi ndi dung nhu sau
<html>
<body>
<h1>A super-simple form<h1>
<FORM METHOD=GET ACTION="http://computer.howstuffworks.com/

78
cgi-bin/simpleform.cgi">
Enter Your Name:
<input name="Name" size=20 maxlength=50>
<P>
<1NPUT TYPE=submit value="Submit">
<INPUT TYPE=reset value="Reset">
</FORM>
</body>
</html>
File HTML nay ban dat trong thu muc cgi-bin ciia Web server. Neu
dl y ky, ban se thiy trong doan ma HTML sir dung phuong thiic GET dl giri
din CGI script cd dja chi http://computer.howstuffworks.com/cgi-
bin/simpleform.cgi. Trong form cd vimg van ban dl ngudi diing dua dO lieu
vao va hai niit chuan kieu Submit va Reset.
File Simpleform.cgi dugc tao ra bing chuong trinh C don gian
simpleform.c sau:
#include <stdio.h>
#include <stdlib.h>
int mainO

printf("Content-type: text/html\n\n");
printf("<html>\n");
printf("<body>\n");
printf("<h1>The value entered was: ")
printf("%s</h1>\n", getenv("QUERY_STRING"));
printf("</body>\n");
printf("</html>\n");
return 0;
}
Va sau khi bien djch dugc dat trong thu muc cgi-bin. Chuong trinh
nay se liy gia trj dugc trinh duyet giri vl qua form dl rdi hien thj nd.

Cac ky thuat phia Server


Mgt phuong phap giiip Web server tao ngi dung ddng la cac cdng
nghe phia server (server side technology). Ngay nay cd kha nhieu cdng nghe
nhu vay.

79
ASP (Active Server Pages): La cdng nghe ciia Microsoft, cd phin
md rgng la .asp.
PHP (Personal Home Pages): Cdng nghe ma ngudn md, phin md
rgng la php or.php3 (phu thugc vao ciu hinh server).
JSP (Java Server Pages): Dua tren ngdn ngii lap trinh Java, cd phin ma
rgng la .jsp.
Vdi nhung cdng nghe tren, de dang cai dat va bao tri cho mgt
Website Idn. Ngudi phat trien chi cin gin cae doan ma (phia server) vao cac
trang HTML. Doan ma nay dugc dua eho trinh bien djch tuang img dl tir
nhimg cau lenh sinh ra cac doan ma HTML va sau dd trang HTML dugc giii
vl cho trinh duyet. Chii y ring trinh duyet se khdng bilt vl doan ma dugc
gan ben frong frang Web, trinh duyet chi nhan dugc mgt trang Web vdi ma
HTML thuan tiiy do server giri vl.

Chung ta thir liy PHP lam vi du. Yeu ciu ciia trinh duyet tdi mgt
trang PHP se dugc Web server chuyin cho bd bien djch PHP (cimg vdi cac
do- lieu cd lien quan). Bd bien djch PHP se chay doan ma PHP dl sinh ra ndi
dung HTML va chuyen ket qua nay cho Web server. Web server tilp tuc
chuyen ket qua nhan dugc cho trinh duyet yeu ciu. Trinh duyet chi nhan
dugc ma HTML, hien thj chiing ma khdng bilt each thiic Web server tao ra
frang HTML.
MQt chirong trinh PHP don gian

Tao ra mgt file hello.php cd ngi dung sau va dat trong thu muc chii
cai dat PHP cua Web server (DOCUMENT_ROOT)

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo •<p>Hello World</p>'; ?>
</body>
</html>

Sir dung trinh duyet dh truy cap vao file hello.php nay (go
http:/AVebserver//hello.php tren thanh dja chi ciia trinh duyet). Neu phia
server cau hinh PHP chinh xac thi phia trinh duyet se nhan dugc kit qua sau:

80
<html>
<head>
<title>PHP Test</title>
</liead>
<body>
<p>Hello World</p>
</body>
</html>

Chu(Tng trinh tren cue ky don gian. Nd chi hien thj ddng chir "Hello
World" tren trinh duyet bang each sir dung lenh echo() ciia PHP.
Diem quan trgng trong vi du nay la cac the PHP dac biet. Trong vi
du nay ta sir dung the <?php de xac djnh diem khdi dau va the ?> danh dau
diem ket thiic ciia mgt doan ma PHP. Doan ma PHP cd the dugc dat vao bat
ky dau trong file ma ngudn PHP va doan ma nay se dugc trinh bien djch
PHP xir ly.

LichswPHP

PHP 6cee?c Rasmus Lerdorf cong bo chinh thuc tip khoang mua thu nSm
1994. Tru'6c do Rasmus da sir dyng chuong trinh nay de kiem so^t so ngu'O'i truy
c$p vdo Website cd nhSn cua minh. Phifen ban PHP d^u tien du'O'c cong b6 vdo
dau n§m 1995 vd du'O'c xem Id viet tat cua Personal Home Page. N6 chi bao g6m
mpt bO phan tich eye ky dan gian v^i mOt vdi macro, mOt vai tien ich d l ho tro' xdy
dyng mOt Website ca nhSn c6 guessbook va counter. Bp phSn tich dugc viet lai
vao giua nSm 1995 vd tro thdnh phien ban PHP/FI 2. Module Fl thyc hi$n viec tgo
ra file HTML tu mOt du" li$u cho tru^c. Rasmus dd kit hgp module Form
Interperter vd th§m cdc h5 trp- mSQL. Bdt dau tii' d6, c6ng ngh§ PHP dup'c su'
dgng eye ky rpng rai vd dupe nhieu nguai ciing bit tay phdt trien ciing.

Rat kho dua ra cac dy dodn th|t chinh xdc, nhung vdo khoang cuoi ndm
1996, CO khoang 15000 Website su dyng PHP/FI. Den giiJ-a ndm 1997, so iupng
ndy tdng ten 50000. Tai thai diem ndy, PHP khong c6n Id dy dn mang tinh "ngau
himg" cua Rasmus nOa md tra thdnh mpt dy dn c6 to chirc vai nhieu ngud'i ciing
tham gia phdt trien. Bp phan tich dup'c Zeev Suraski vd Andi Gutmans viet lai tir
dau - va tra thanh ca sa cho PHP3. PHP3 - ben canh kha nhieu tien ich cua
PHP/FI - cung dup'c viet lai vd bo sung kha nhieu phan.

Oen thang 10/2000, PHP3 vd PHP4 dupe cai dgt tren 3300000 Website (so
vai con so 3800000 Website cai IIS). Phien ban 4 su dyng ca che Zend de nang
cao hieu suat. Thang 12/2004, phien ban 5 ra dai vai nhieu tinh ndng noi bat

Hinh 2.13 minh hpa toe dp phat trien cua PHP

81
PHP Usage for Jun 2006

Doiwins IPs
Sff:y '•'^

^ u . . j i r I... I . . • • •. • ..• •• i.M ..•••?• I...'....»>v>»i •«^.*.a.t.a»WMiWiiR»«.. <Mi.jMiwa

Hinh 2.13 Toe d p phat t r i e n c u a PHP

2.3 TRUYEN FILE (FILE TRANSFER) FTP

FTP (File Transfer Protocol) la giao thirc truyen file giira cac may
tinh. Giao Ihirc nay xuat hien tir nhiing nam 1971 (khi Internet vin chi la
mgl du an thir nghiem) nhung van cdn dugc sii- dung rgng rai cho den tan
ngay nay. FTP dugc dac ta trong RFC 959. Hinh 2.14 minh hoa cac dich vu
ciia FTP.

File [fonsicf
«|^:..n->^
< ^ •
Frp\
server
User
of hojt
loco! fife (CT~!> Remoie We
system system

Hinh 2.14 FTP cho phep trao d6i file giOa hai may tinh

Trong phien lam viec cua FTP, ngudi dimg lam viec tren may tinh
ciia minh va frao ddi file vdi mgt may tinh khac. D I truy cap tdi may tinh
khac, ngudi diing phai dang nhap bang each cung cip djnh danh ngudi dimg

82
va mat khiu. Sau khi nhirng thdng lin nay dugc kiem chimg ihi cdng viec
tmyln file lir he thong file Iren may tinh ciia minh den he thdng file d dau
kia mdi cd thi dugc thuc hien.
Nhu md ta tren Flinh 2.15, ngudi diing tuong lac vdi FTP thdng qua
chuong trinh giao tilp ngudi diing ciia FTP. Dau tien ngudi diing danh ten
may tinh cin truyin file. Tiln trinh FTP d client khdi tao mgt ket ndi TCP
tdi tiln Irinli FTP server, sau dd ngudi diing dua cac thdng tin ve ten va mat
khiu dl server kilm chimg. Sau khi dugc server xac djnh, ngudi dimg mdi
cd thi Ihirc hien viec trao ddi file giira hai he thdng file.

TCP control connection


port 21 m:^

c»«^*SiSd
p-- TCP data connection
FTP port 20 FTP
client server

Hinh 2.15 FTP g6m hai duang: kiem soat va dir lieu

HTTP va FTP diu la giao thirc truyin file va cd rit nhilu dac diem
chung nhu ca hai deu sir dung cac djch vu ciia TCP. Tuy vay hai giao thirc
nay cd nhirng diem khac nhau ca ban. DiemJihac nhau ndi bat nhat la FTP
sir dung hai kit ndi TCP song song, mgt dudng truyin thdng tin dieu khien
(control connection) va mgt dudng tmyln dir lieu (data connection). Cac
thdng tin dieu khiln nhu thdng tin dinh danh ngudi diing, mat khiu truy
nhap, lenh thay dii thu muc, lenh "put" hoac "get" file giiia hai may tinh
dugc trao ddi qua dudng truyin thdng tin dilu khiln. Dudng truyen dii lieu
de fruyen file dir lieu thuc su. Vi FTP phan biet lulng thdng tin dieu khien
vdi lulng dir lieu nen nd dugc ggi la gui thdng tin dieu khiln out-of-band.
Giao thirc RTSP dung dl truyin am thanh va hinh anh lien tuc ciing sir dung
each giri thdng tin dilu khiln kilu out-of-band. Nhu da ndi, HTTP giri tieu
dl cua thdng diep va file dir lieu tren ciing mgt kit nli TCP. Vi vay ma
HTTP dugc ggi la giii thdng tin dilu khiln in-band. Trong phin tilp theo ta
se thiy ring SMTP - giao thirc giri thu dien tir cung sir dung tmyln thdng tin
dilu khien kilu in-band. Dudng tmyln thdng tin dilu khiln va dudng tmyen
dix lieu ciia giao thirc FTP dugc minh hoa trong Hinh 2.15.

83
Khi ngudi diing bat dau mgt phien lam viec FTP, diu tien FTP se
thiet lap mgt dudng ket noi thdng tin dilu khien TCP qua cong 21. Phia
client cua giao thirc FTP giri thdng tin vl djnh danh ngudi diing va mat khiu
cung nhu lenh thay ddi thu muc qua ket ndi nay. Khi ngudi dimg co mgt yeu
cau trao ddi file (truyen tir/din may ngirdi dimg), FTP md mgt kit ndi TCP
dl truyen dii lieu qua cIng 20. FTP truyin dung mgt file qua kit noi nay va
ngay sau khi tmyen xong thi ddng kit ndi lai. NIU trong ciing phien lam
viec, ngudi dimg cd yeu cau truyen file thi FTP se md mgt kit ndi khac.
Nhu vay vdi FTP, ludng thdng tin dieu khiln dugc md va ton tai trong suit
phien lam viec cua ngudi diing, nhung moi ket nli dir lieu dugc tao ra cho
mdi mgt yeu cau truyen file (kit nli dii: lieu la khdng lien tuc).

Trong sudt phien lam viec, FTP server phai giir lai cac thdng tin vl
trang thai ciia ngudi diing, dac biet phai kit hgp cae thdng tin dilu khiln vdi
tai khoan ciia ngudi dimg. Server cung luu giir thu muc hien thdi ma ngudi
dimg tmy cap cung nhu cay thu muc ciia ngudi diing. Ghi lai cac thdng tin
trang thai ciia mdi phien lam viec ban chl dang kl long so phien lam viec
ddng thdi. HTTP khdng luu giir trang thai nen khdng phai ghi lai bit ki
thdng tin nao ve trang thai ngudi dimg.

2.3.1 Cac lenh FTP (FTP Commands)

Lenh (yeu cau) tir client den server va kit qua (tra Idi) tu server tdi
client dugc giri thdng qua kit noi dieu khiln va dugc ma hoa bing bang ma
ASCII 7 bit. Do vay gidng nhu lenh HTTP, ngudi ta cd thi dgc dugc lenh
FTP. Trudng hgp cac lenh vilt lien tuc thi cap ky tu CR (carriage return) va
LF (line feed) dugc sir dung dl phan biet cac lenh (va tra Idi). Moi cau lenh
chira 4 ki tu ASCII in hoa, mgt so lenh cd tham sd. Sau day la mgt so cau
lenh hay gap:
USER usemame: su dung dl giri thdng tin djnh danh ngudi dimg cho server
PASS password: diing de giri password cho server
LIST: diing de yeu cau server giri mgt danh sach cac file trong thu muc
hien thdi. Danh sach nay dugc giri thdng qua mgt kit nli dir lieu TCP
RETR filename: dimg dl liy mgt file tir thu muc hien thdi (fren may d xa)
STOR filename: diing de tai mgt file vao thu muc hien thdi (fren may d xa)

84
Thdng thudng cd quan he 1-1 giii'a lenh ciia ngudi dimg va lenh ciia
FTP. U'ng vdi mdi lenh tir client la mgt Ira Idi ciia server. Cau tra idi la mgt
ma 3 chir sd va cd the cd mgl thdng bao kcin theo. Dieu nay tuong lir nhu
trudng ma trang thai trong thdng diep tra Idi HTTP. Dudi day la mgt sd cau
tra Idi thudng gap:
331 usemame OK, password requiered
125 connection already open; Transfer staring
425 can't open data connection
452 error writing file

Chi tiet ve FTP cd the tham khao tai khuyen nghj RFC 959

2.4 THU" TIN DIEN TU" (E-mail) TREN INTERNET


" s " ^

JH "«^::^; iiser_^emj
server
iiiHD N.
aim \^
SMTP [usar ajenT]

mail
s^ffp
server luspf ageni
i' 1111 nil
JpsJI
-asjusef agent]
SMTP
mail
server
.11 I I I I
't.-?
DDDOn vjuser «)enlj

|l 111II ll Oulgoing message queue QUser mailbox

Hinh 2.16 Mo hinh h? th6ng email den gian

Cung vdi Web, thu dien tir la mgt trong nhirng img dung Intemet
thong dung nhit. Gin giong thu tin thdng thudng, e-mail la djch vu khdng

85
ddi hdi ddng bd - nghTa la mgi ngudi giri va dgc thu khi thiy thuan tien,
khdng can theo ke hoach trudc. Nhung khac vai thu tin thudng. e-mail
nhanh, de giri va chi phi thap. Hon nira, nhung thdng diep e-mail ngay nay
cd the chira dung cac hyperlink, van ban dinh dang HTML, hinh anh, am
thanh va ca video. Trong phan nay, chung la se khao sat cac giao thirc trao
ddi thu thugc tang irng dung tren Internet.

Hinh 2.16 minh hoa he thong mail tren Internet gdm cd 3 thanh
phan chinh: user agent, mail server va SMTP (Simple Mail Transfer
Protocol). Dl tien theo doi, chiing ta se liy vi du Alice giri e-mail cho Bob
de md ta 3 thanh phan tren. Chuong trinh giao tilp ngudi diing cho phep
dgc, hdi am, giri, luu giir va soan thao cac thu (user agent danh cho e-mail
cdn dugc ggi la mail reader - trinh dgc thu. Mac dii vay, trong cuon sach
nay, chung ta se tranh sir dung thuat ngir dd). Khi Alice soan thao xong thu,
user agent ciia Alice se giri thu tdi mail server ciia Alice, tai day thu dugc
dat vao trong hang dgi dl giri ra ngoai. Khi Bob mudn dgc thu, user agent
cua Bob se lay thu tren hop thu (mail box) ciia Bob tai mail server. Trong
nhii-ng nam cudi thap ky 90, cac user agent cd giao dien do hga GUI
(Graphic User Interface) kha thdng dung, chung cho phep ngudi dimg cd thi
xem va soan thao cac thu cd gin tai lieu da phuong tien. Hien nay, nhung
phan mIm soan e-mail thdng dung la Eudo.ra, Microsoft Outlook va Nescape
Messenger. Cd nhieu chuong trinh user agent cd giao dien dua tren nIn van
ban go lenh nhu la mail, pine va elm.

Ttomglldk^ HOTMAIL
ThSng 12/1995, Sabeer Bhatia vd Jack Smith <3e nghj Draper Fisher Jurvetson - mpt
nha alu let mgo hiiiri ph^t tri^n mOt h$ th6ng email miln phi tren nSn Web. Y tu'&ng Id cung
cap mien phi tai khoan (horn thu-) va vi$c truy c$p tai hom thu c6 the thi/c hi$n thdng qua Web.
Khi <J6 bat ky ai truy c|p du-cyc vdo Internet - du ff nhd hay a ca quan - dfiu c6 kha ndng ape
vd gCrJ thu. Han the nCfa, hinh thu-c ndy kha ti$n dyng doi vai ngu'O'i dung hay phai di chuyen.
Draper Fisher Jurvetson tdi trpf cho Bhatia and Smith lap c6ng ty Hotmail doi liy 15% gid trj
c6ng ty. Vb'i 3 nhdn viSn Idm ca ngdy vd 12 ddn 14 nhdn vi6n bdn c6ng nhdt trd lu'ang bdng c6
phieu cua chinh cong ty, Hotmail da phdt trien va cung cdp dich vy dly ti6n vdo thdng 7 ndm
1996. Sau mOt thdng hp c6 100000 ngyeci SLT dyng djch vy. S6 lu'p'ng ngu'd'i si> dyng tdng I6n
nhanh ch6ng - vd tdt ca ngyal su' dyng deu phai dpc banner quang cdo trong email. Thdng
12/1997, chu'a ddy 18 thdng sau khi khai tru'ang, Hotmail cd 12 tri$u ngu'd'i su- dyng vd dd
du-p-c Microsoft mua 1^1 vdi gid 400 tri$u d6la.

C6 hai yeu t6 quan trpng trong thdnh cdng cua Hotmail: sy tien phong vd kha ndng
ty quang cdo. Hotmail Id "ngu'd'i tien phong" vi Hotmail Id cdng ty dSu tiSn cung cip dich vy
Web mail. Cac cdng^ty khdc, SLP dyng y tu-ang cua Hotmail - d4u di sau Hotmail sdu thdng.
Email Id mpt vi dy dien hinh v4 sy ty quan^ cao. Khi nh$n du'p'c thu- tii- djch vy Yahoo, ngu'd'i

86
May chii phuc vu ihu (Mail server) la thanh phan col Idi Irong he
thong e-mail. Moi ngudi cd mgl hop thu dat Iren mail server. Hop ihu ciia
Bob c-ian iy. hru gifr cac thu giri tdi Bob. Thu dugc tao ra lai user agent ciia
ngudi giri, dugc giri tdi mail server ciia ngudi giri, rdi tdi mail server ciia
ngudi nlian - va cudi cung dugc'chuyen vao hop ihu ciia ngudi nhan. Khi
Bob riudn truy cap vao hop thu ciia minh, mail server chira hop thu ciia Bob
se xiem chirng Bob (thdng qua uscrname va password). Mail server ciia
Ali:e can phai xir ly khi mail server cua Bob gap su cd. Neu khdng the gii'i
thu c:io mail server cua Bob, mail sei-ver ciia Alice se giir nhung thu dd
Irong hang dgi giii thdng diep va se cd ging giri lai thdng diep. Qua trinh giri
lai dugc liln hanh thudng xuyen 30 phiit mgt lin trong nam ngay. Va sau
dd, neu van khdng thanh cdng thi ser\'er se buy bd ihir va giri thu bao cho
ngirdi giri (Alice).

SMTP (Simple Mail Transfer Protocol) la giao thirc giri thu dien lii'
ciia tang img dung. SMTP sir dung dich vu truyin dir lieu tin cay ciia TCP
dl truyin ihu tii' mail server ciia ngudi gu'i din mail server ciia ngirdi nhan.
Gilng cac giao thirc khac d ting ung dung, SMTP cd 2 phia: phia client,
tren mail server ciia ngudi giri va phia server, tren mail server ciia ngudi
nhan. Tai ca cac mail server diu chay ca hai phia client va server ciia SMTP.
Mail server ddng vai trd client khi giri Ihu, ddng vai trd sciver khi nhan thu.

2.4.1 SMTP

SMTP la trai tim ciia djch vu giri thu tren Internet va dugc dac ta
tronj; RFC 821. SMTP tmyln cac thdng diep (ihu) tir mail server ciia ngudi
giii din mail server ciia ngudi nhan. SMTP ra ddi trudc HTTP kha lau (RFC
dac tl SMTP cd tir nam 1982 va SMTP da xuit hien trudc dd mgt thdi gian
dai). Mac dii cd nhilu uu dilm nen dugc lit ca mail server tren Intemet sir
dung. SMTP van la mgt cdng nghe cii nen chic chin cd nhung dac tinh "lac
hau'" Vi du SMTP ddi hdi phin than ciia lit ca cac thdng diep e-mail phai
ma hoa theo bang ma ASCII 7 bit. Su han chl nay la do trong nhirng nam
diu M p ky 80. vdi sd dudng Uuyin it di. khdng ai giri thu ciing vdi nhung
phir dinh kem Idn, hay giri kem cac file hinh anh, am thanh cd kich thude

87
Idn. Nhung trong k\ nguyen da phuong tien ngay nay, viec gidi han ma
ASCII 7 bit la mgt han che Idn vi du lieu da phuong lien nhi phan phai dugc
chuyen sang ma ASCII trudc khi dugc gU'i di qua SMTP va sau dd lai phai
giai ma thanh ma nhi phan sau khi thu din dich. Trong muc 2.3 la da bilt
rang HTTP khdng yeu cau dir lieu da phuong tien phai ma hoa sang ma
ASCII trudc khi truyin.

De minh hoa hoat dgng co ban ciia SMTP, hay xet vi du sau: gia sii'
Alice mudn giri cho Bob mgt thdng diep ASCII don gian:

Dau tien, Alice sir dung user agent cua minh, danh dja chi e-mail cua
Bob ([email protected]), soan e-mail va yeu ciu user agent gu'i thu di.

User agent cua Alice gii-i thu tdi mail server ciia Alice. Tai day thu
dugc dat vao hang thu dgi giri.

SMTP client chay tren mail sei-ver ciia Alice thiy thu trong hang
dgi. Nd tao kit noi TCP tdi SMTP server tren mail server cua Boh.

Sau giai doan khdi tao 3 budc, SMTP client giri thu ciia Alice qua
kit nli TCP.

Tai mail server ciia Bob, SMTP server nhan thu va dat thu vao mail
box ciia Bob.

Cudi ciing, khi thuan tien Bob .se sir dung user agent cua minh dl
doc thu.

sivrrp

Alice's V.

Bob's
mail Internet
mail
server server
(TTrnTi] & (II IN 10
DODDD x^ eSKl
DDDDO

Hinh 2.17 Thu duo'c gCfi t u mail server cua Alice ddn mail server cua Bob

88
Kich ban nay dugc minh hoa tren Hinh 2.17. Mgt diem quan trgng
can chu y la SMTP khdng sir dung mail server trung gian de giri thu - ngay
ca khi mail server giri va nhan d xa nhau. Vi du neu mail server ciia Alice
dai d Hong Kong va mail server ciia Bob d Mobile lieu bang .Alabama, thi
giCra hai mai! server d Hdng Kong va Mobile vin cd dudng ket ndi TCP true
tilp. Dac biet nlu mail server ciia Bob bj hdng thi thu vin cdn trong mail
server ciia Alice va dgi cho lin gii'i sau. Thdng diep khdng dugc giri qua
mail server Imng gian.
Bay gid chiing ta cd ihl xem chi lilt each thirc cac mai! server giri
thu bing SMTP. Chiing ta se ihiy ring SMTP cd nhilu dac diem tuong tu
nhu nhiing quy lie trong giao tilp true dien ciia con ngudi. Dau lien, SMTP
client (chay tren mail server gu'i) thilt lap kit ndi TCP vdi cdng 25 lai
SMTP server (chay tren mail ser\'er nhan). Trong trudng hgp server khdng
lam viec, client se cd ging thir lai Ian sau. Ngay khi kel ndi dugc thiet lap,
sci-ver va client thuc hien mgl vai thii tuc bat lay. Qua trinh nay tuong tu nhu
hai ngudi tu gidi thieu vl ban than Irirdc khi tien hanh ndi chuyen. Trong
thii tue trao ddi, SMTP client thdng bao vdi SMTP server dja chi e-mail
ngudi giri va dja chi email ngudi nhan. Ngay sau qua trinh gidi thieu, client
se giri thu bing djch vu truyin du lieu tin cay cua TCP. Sau dd, client se l^p
lai cac budc nay khi vin cdn thdng diep khac de giri tdi server, cdn neu
khdng, client yeu cau TCP ddng kel ndi lai.
Vi du sau la doan "hdi thoai" giira client (C) va server (S). Ten may
tinh client la crepes.fr va server la hamburger.edu. Ddng hdi thoai md dau
bing chu- C: la doan hdi thoai client giri qua socket TCP va ddng hdi thoai
bit diu vdi chii- S: la doan hdi thoai server giri di thdng qua socket TCP.
Doan hdi thoai bit diu ngay sau khi thilt lap dugc kit nli TCP:
S: 220 hambiiger.edu
C: HELO crepes.fr
S: 250 Hello crepes, fr, pleased to meet you
C: MAIL FROM: <alice@crepes. fr>
S: 250 alice@crepes. fr... Sender ok
C: RCPT TO: <bob@hamburger. edu>
S: 250 bob@hamburger. edu ...Recipient ok
C: DATA
S: 354 Enter mail, end with ". " On a line by itself
C: Do you like ketchup?
C: How about pickles ?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hambuger. edu closing connection.

89
Trong vi du tren, client giri mgt thdng diep ("Do you like ketchup?
How about pickles?") tii- mail server crepes.fr tdi mail server hamburger.edu.
Client sir dung 5 cau lenh: HELO (vilt lit ciia HELLO), MAIL FROM,
RCPT TO, DATA va QUIT. Y nghia cua nhung cau lenh nay cd thi doan
dugc qua ten ggi ciia nd. Server gu'i tra kit qua thuc hien mdi lenh, kit qua
nay chira nidt ma trang thai va mgt Idi giai thich tilng Anh. Q day SMTP su
dung ket ndi lien tuc: Neu cd nhilu thu dl giii tdi cimg mgt mail server thi
mail server gui se giii tit ca cac thu tren cung mgt kit noi TCP. Vdi mdi
thdng diep, client bit diu tiln trinh gui bing lenh HELO crepes.fr va chi giii
lenh QUIT sau khi giii tit ca thu.

Ddc gia nen sir dung Telnet dl xem mgt doan hdi thoai true tilp vdi
SMTP server. Sir dung telnet serverName 25 trong dd serverNamc la ten
mail server. Khi do ban da thilt lap kit noi TCP giu'a may tinh ciia ban va
mail server. Sau khi danh lenh nay, ban se nhan dugc ngay lap tire ma tra Idi
220 tir server. Sau dd hay sir dung cac lenh SMTP: HELO, MAIL FROM,
RCPT TO, DATA, QUIT d nhung thdi dilm tuong irng. Nlu ban telnet qua
SMTP server cua ai dd, ban cd thi giii tdi hg theo each nay (khdng phai
dimg user agent).

2.4.2 So sanh SMTP vai HTTP

Chting ta hay ciing so sanh vin til hai giao thuc SMTP va HTTP. Ca
hai giao thirc diu dugc sir dung dl giii file giira cac may tinh. HTTP chuyin
file hoac ddi tugng tir Web server tdi Web client (trinh duyet Web), SMTP
chuyen file (la thdng diep thu dien tii') giiia cac mail server. Khi truyin file
ca 2 giao thiic HTTP va SMTP ciing sir dung kit noi lien tuc. Dilm khac
biet CO ban giira hai giao thirc la IITTP la giao thirc kilu keo (Pull protocol)
-client "keo" thdng tin tir server vl. Phia nhan (client) la phia thilt lap kit
ndi TCP. SMTP lai la giao thirc theo kilu diy (Push protocol) - client "diy"
thdng tin len server. Phia gui (client) la phia thilt lap kit noi TCP Uudc.

Ngoai dii- lieu van ban, thdng diep cdn cd thi chira cac kilu du lieu
khac nhu am thanh, hinh anh. HTTP dat cac doi tugng nay trong cac thdng
diep rieng re dl giii. Vdi SMTP tit ca cac dii tugng nay dugc dat trong cimg
mgt thu dien tir.

90
2.4.3 Khuon dang thu va chuan MIME

Khi Alice gui thu cho Bob, Alice se dat thu vao phong bi, ghi rd dia
chi gui va dia chi nhan, nhan vien buu dien se ddng diu ngay thang vao
phong bi. Thu dien lir cung giong nhu vay, ben canh ngi dung hire ihu (phan
than) cung cin cd dia chi ngudi gui, dia chi ngudi nhan. Nhung thdng tin
phu trg nly se dugc dat trong cac ddng tieu dl. Cac ddng lieu de va phan
than ciia thu dugc lach biet vdi nhau bing cap ky tu CR-LF. RFC 822 dac ta
diy dii cac ddng tieu dl ciing nhu y nghTa ciia chiing. Gidng HTTP, lieu de
gdm til- khoa, Iheo sau la diu hai chim (":") va-mgt gia tri nao dd.^ Vdi
SMTP cd mgl sd trudng bit bugc, mgt so trudng khdng bat huge. Tieu de
phai cd trudng From: va trudng To: Mgt so trudng nhu Subject: c6 the cd
hoac khdng. Liru y ring nhirng trudng nay khac nhirng lenh SMTP ma
chimg ta da dl cap trong muc 2.4.1 (mac dii chiing cung cd "From" va
"To"). Cac lenh la mgl phin trong giai doan khdi tao ciia SMTP trong khi
cac trudng nim ngay trong thu.

Mgt biic thu thudng cd lieu dl nhu sau:


From: alice@crepes. fr
To: bob@hamburger. edu
Subject: Searching for the meaning of life

Sau phin tieu dl thdng diep la mgt ddng trdng, tiep den la than
thdng diep (dang ma ASCII). Nhu da ndi d tren, thdng diep kit thiie bang
mgt ddng chi chira mgt diu chim cau. Ban nen sir dung Telnet de giri tdi
mail server mgt thdng diep cd chira mgt vai ddng tieu de, bao gdm ddng tieu
dl Subject: Cd thi thir dilu nay bing each telnet vao mgl mail server: telnet
serverName 25 Irong dd serverName la ten (hoac dia chi IP) ciia may tinh.

Md rong MIME cho dir lieu khong thuoc dang ASCII

Phin tieu dl thdng diep dugc dac ta trong RFC 822 phii hgp cho
viec giri van ban nhung lai khdng diy dii dl giii thu chira ndi dung da
phuong tien (multimedia) - la thu cd dinh kem anh, audio, video hoac cac
Ihu chira cac ky lu khac tilng Anh. DS: giri du lieu khdng thugc dang van
ban ASCII, user agent giri phai giri them mgt sd trucmg trong tieu de cua

91
thu. Nhiing trudng nay dugc dac ta trong RFC 2045 va RFC 2046, la phin
md rgng MIME (Multipurpose Internet Mail Extension) cho RFC 822.

Hai trudng MIME ho trg multimedia la Content-Type: va Content-


Transfer-Encoding. Trudng Content-Type cho phep phia nhan thuc hien
cac thao tac thich hgp tren tlur nhan dugc. Vi du, nlu chi ra than thdng diep
chiia anh JPEG, user agent nhan cd thi giii than thdng diep tdi chirong trinh
giai nen JPEG. D I gui thdng diep van ban khdng ma hoa theo bang ma
ASCII (vi du van ban tilng Trung Quoc, Nhat Ban), ngudi ta phai ma hoa
no theo bang ma ASCII dl khdng lam anh hudng tdi SMTI'. Trudng
Content-Transfer-Encoding: xac djnh phin than thdng diep da dugc ma
hoa theo bang ma ASCII va phuong phap ma hoa dugc su' dung. Vi vay khi
user agent nhan dugc mgt thdng diep vdi hai tieu dl tren, diu tien nd sir
dung gia trj ciia tieu dl Content-Transfer-Encoding: dl chuyin ddi than
thdng diep vl dang ban diu (khdng theo djnh dang ASCII) va sau dd sir
dung trudng Content-Type dl xac dinh thao tac thuc hien kl tilp.

Xet vi du sau, gia sir Alice mudn giii mgt anh JPEG cho Bob. Dk
thuc hien dieu nay, Alice sii- dung phin mIm Eudora, danh dja chi email ciia
Bob, chu de ciia e-mail va chen anh JPEG vao than thdng diep. Sau khi hoan
tat viec soan thao, Alice nhin nut "Send". Sau dd, user agent ciia Alice tao
ra mgt thdng diep MIME cd ndi dung sau:
From: alice@crepes. fr
To: bob@hamburger. edu
Subject: Picture of yummy crepe.
MIME-Version: 1. 0
Content-Transfer-Encoding: base64
Content-Type: Image/jpeg

(base64 encoded data

.... base64 encoded data )

Vdi thdng diep MIME tren, chiing ta thiy ring user agent tiia Alice
ma hoa anh JPEG sir dung ky thuat ma hoa base64. Day la mgt trong nhirng
ky thuat ma hoa chuin trong MIME [RFC 2045] dl biln doi sang dinh dang
ma ASCII 7 bit.

92
Khi Bob dgc ihir, user agent ciia Bob xir ly tlidng diep MIME nay.
Thay '.rudng Content-Transfer-Encoding: base64, no thuc hien giai ma
than tndng diep da dugc ma hoa bang ky thuat basc64. Trudng Content-
Type: image/jpeg giiip cho user agent cua Bob xac dinh rang than cua
thdng diep pliai dugc giai nen theo chuin JPEG. Cuoi ciing, thdng diep chira
trudng MIME-Version: xac dinh phien ban MIME dang dugc sir dung. Luu
y ring, thdng diep cung phai luan theo khuyen nghi RFC 822/SMTP.

Theo dac ta MIME trong khuyin nghi RFC 2046, trudng Content-
Type: cd khudn dang sau:
Content-Type: type/subtype; parmeters

Phin tham so (parameters) di sau diu cham phay cd the khdng bat
huge. Trong khuyin nghj RFC 2046, trudng Content-Type dugc sir dung de
,xac dinh kilu dQ- lieu trong phin than ciia thdng diep MIME, gdm hai gia tri:
kilu dii- lieu va kilu con. Sau phin kilu va kieu con la phan tham sd. Ndi
chung, kilu cao nhit (top-level) dugc sir dung de khai bao kieu dir lieu
chung, kilu con (subtype) xac djnh dinh dang dac biet Irong kieu du lieu
chung. Cac tham sd bd nghTa cho kilu va khdng anh hudng tdi ban chit kieu
dir lieu. Tap hgp tham sd phu thugc vao kieu va kieu con.

Dugc thilt kl dl cd thi md rgng, so lugng cac cap type/subtype va


nhung tham si di kem trong MIME ngay cang tang. De bao dam la tap hgp
nay phat triln cd trinh tu, dugc dac ta rd rang, MIME cin thilt lap'qua trinh
dang ky vdi lAAN (Internet Assigned Numbers Authority) la co quan dang
ky trung tam. Tiln trinh dang ky kilu dir lieu dugc dac ta trong khuyin nghi
RFC 2048.

Hien nay, mdi cd djnh nghTa cho bay nhdm dir lieu chinh. Vdi mdi
kilu lai cd mgt danh sach cac kieu con va danh sach nay dang tang len hang
nam. Dudi day la 5 nhdm du lieu chinh:

Van ban (Text): Kilu van ban dugc sir dung dl xac djnh than thdng
diep chira thdng tin dang van ban. Mgt kieu con thudng gap la plain (tron).
Van ban iron khdng cd lenh hay chi dan djnh dang khudn dang va do dd
khong cin phin mIm dac biet nao dl hien Ihi. Neu nhin tieu de MIME cua
thu trong hop thu, ban cd till se thiy tren lieu dl cd trudng text/plain;

93
charset="us-ascii" hay text/plain; charset='TSO-8859-l". Nhiing tham sd
nay xac dinh bg ma ma thdng diep sir dung. Mgt kilu con khac cirng rit
thdng dung la text/html. Kieu con html yeu cau mail server thdng dich
nhung the HTML gan trong thdng diep. Dieu nay cho phep user agent nhan
hien thj thdng diep dudi dang mgt trang Web (vdi font, hyperlink, applet).

Anh (Image): Kieu anh dugc dimg de xac djnh than thdng diep la
anh. Hai kieu con thdng dung la iniage/gif va image/jpeg. Vdi kieu con
image/gif, mudn hien thj anh, user agent phai giai nen anh GIF.

Am thanh (Audio): Kieu audio yeu cau ngi dung dirge giri ra thiet
bj audio (speaker hoac telephone). Kieu con thdng dung la basic (ma theo
luat p 8-bit CO sd) va 32kadpem (djnh dang 32kps dugc dac ta trong RFC 1911).

Video: Kieu video cd kieu con la mpeg va quicktime.

Kieu li'ng dung (Application): Kieu irng dung danh cho dir lieu
khdng thugc bat ky kieu nao khac. Nd thirdng dugc ap dung cho loai dtr lieu
phai qua mgl ung dung khac xir ly trudc khi ngirdi nhan cd thi sii' dung
dugc. Vi du khi ngudi giri gan mgt tai lieu MS Word vao thdng diep E-mail,
user agent dat gia tri application/msword vao trudng type/subtype. Khi user
agent thay gia trj application/msword trong trudng type/subtype, nd khdi
ddng iing dung MS Winword va chuyen phan than thdng diep MIME eho
ling dung Word. Mgt kieu con quan trgng khac la octerstream. Kicu con nay
thudng dugc diing khi than thdng diep chiia dir lieu nhj phan tuy y. Khi nhan
kieu con nay, mail reader se yeu cau ngudi nhan lira chgn dl luu thdng diep
tren dTa xir ly sau.

Cd mgt kieu MIME dac biet quan trgng la kilu multipart. Thdng
diep e-mail cung nhu trang Web cd the chira nhilu ddi tugng (nhu van ban,
anh, applet). Web giri mdi ddi tugng trong mgt thdng diep tra Idi ddc lap
nhung thu dien tir dat tat ca cac ddi tugng trong cimg mgt thdng diep. Dac
biet, khi thdng diep da phuong lien cd nhieu ddi tugng thi thdng diep dd co
kieu la multipart/mixed. Khi nhan dugc mgt thdng diep ma trudng
content-type cd gia trj multipart/mixed, user agent noi nhan bilt thdng
diep nhan dugc chira nhieu ddi tugng. Khi nhan dugc thdng diep nhu vay,
user agent phai xac djnh rd:

94
Diem dau va diem cudi ciia ddi lugng.

Cach ma hoa cac ddi tuong khdng theo bang ma ASCII.

Kieu ciia mdi ddi tugng.

Cdng viec nay dugc thuc hien nhd ky tu phan each giira cac ddi
tugng va Irirdng Content-type, Content-Transfer-Encoding dung trudc
mo: ddi tugng trong thdng diep. Xet vi du sau: Gia sir Alice mudn giri thdng
d i o bao gdm mgl doan van ban ASCII, mgl anh JPEG va cudi ciing la mgt
doan van lian ASCII cho Bob. Sir dung user agent ciia minh, Alice danh mgl
doan van ban, chen anh JPEG sau dd danh tiep doan van ban cdn lai. Ket
qua la user agent ciia Alice tao ra mgt thdng diep nhu sau:

From: alice@crepes. fr
To: bob@hamburger. edu
Subject: Picture of yummy crepe with commentary
MIME-Version: 1. 0
Content-Type: multipart/mixed; Boundary=StartOfNextPart
-StartOfNextPart
Dear Bob,
Please find a picture of an absolutely scrumption crepe.
-StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data ....

base64 encoded data


--StartOfNextPart
Let me know if you would like the recipe.

Qua thdng diep tren chimg ta thiy ring trudng Content-Type: trong
lieu dl xac djnh each thiic phan each cac phan khac nhau trong cimg mgt
thdng diep. Viec phan each dugc bit diu bing 2 diu gach ngang ( - ) va ket
thiic bang cap ky tu CRLF.
Nhan thonj^ diep
Thdng diep e-mail bao gdm nhieu phan, idi ciia thdng diep la phan
than chira dir lieu thuc su dugc chuyin tir ngudi giii den ngudi nhan. Vdi

95
thdng diep nhieu phin. than thdng diep gdm nhilu phin va trirdc moi plian
cd mgt hoac vai trudng xac dinh kilu. Dirng trudc than thdng diep la cap
CRLF va mgt sd trudng. Nhung trudng nhu From:, To:, va Subject: dugc
dac ta trong RFC 822 va nhung trudng nhu Content-type: va Content-
Transfer-Encoding: la tieu dl MIME. Nhirng chinh mail server nhan thdng
diep CLing chen vao thdng diep mgt sd trudng khac, vi du Received: d diu
thdng diep. Trudng nay xac djnh ten ciia SMTP server giri thdng diep
("fi-om"), ten ciia SMTP server nhan thdng diep ("by") vii thdi gian khi
thdng diep tdi dich. Ngudi dgc se dgc dugc thdng diep nhu sau:

Received: from crepes, fr by hamburger, edu; 12 Oct 98


15:27:39 GMT
From: alice@crepes. fr
To: Bob@hamburger. edu
Subject: Picture of yummy crepe.
MIME-Version: 1. 0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

base64 encoded data

base64 encoded data

Thuc ra tit ca mgi ngudi khi diing e-mail diu nhin thiy trudng
Received: dimg trudc thdng diep e-mail (trudng nay cd thi nhin thiy true
tiep tren man hinh hoac khi in thu). Cd thi cd nhiing thdng diep cd nhieu
trudng Received: va trudng Return-Path: phirc tap. Dd la vi thdng diep nay
cd the dugc chuyin tilp (forward) qua nhilu mail server trudc khi din tay
ngudi nhan. Vi du neu Bob ciu hinh mail server ciia minh (hamburger.edu)
giri chuyin tiep tat ca cac thu ciia Bob tdi sush.jp, khi dd tit ca cac thu cim
Bob khi lay tir sush.jp se cd nhung trudng sau:

Received: fiom hamburger, edu by sushi.jp; Oct 98 15:30:01 GMT


Received: from crepes, ir by hamburger, edu; 12 Oct 98 15:27:39 GMT

Nhung trudng nay cho phep ngudi nhan theo ddi vlt dudng di ciia
thu qua nhilu SMTP server cung nhu thdi gian thu tdi mdi server.

96
2.4.4 Giao thuc truy nhap mail

Moi khi SMTP giri thu lir mail server ciia Alice tdi mai! server ciia
Bob, ihu dugc dat trong mai! box ciia Bob. Tii' trudc Idi gid, chiing la chap
nhan gia thill dl dgc thu, Bob phai dang nhap vao mail sei-ver va sir dung
mgl chirong trinh dgc thu (mail reader) nao do cai ngay Iren mail server. Tdi
Uin dau nhung nam 90, mgi ngudi vin thuc hien nhu vay. Nhung ngay nay
mgi ngirdi thudng dgc ihu qua mgt user agent chay tren may tinh ca nhan
cua minh. Chay user agent tren may tinh ca nhan, ngudi sir dung cd dugc
nhieu tinh nimg cao cip, kl ca viec giri va nhan nhung thdng diep da phuong
tien.

Gia sir Bob (ngudi nhan) chay user agent ciia minh tren may tinh ca
nhan. Cd thi cai dat mail server ngay tren may tinh ca nhan ciia Bob. Tuy
nhien each nay cd nhilu nhugc diem. Mail server quan ly nhieu mailbox,
thuc hien ca chuc nang client va server cua SMTP. Neu cai mail server tren
may tinh ca nhan ciia Bob thi PC do liic nao ciing phai bat va ket ndi vao
Intemet dl cd thi nhan thu mdi (ma thu ttii cd thi din bat cii liic nao). Dieu
nay khdng thuc tl vdi da si ngudi sir dung Internet. Thdng thudng, ngudi sir
dung chay chuong trinh user agent tren may tinh ca nhan, truy cap vao hop
thu tren mgt mail server dimg chung (mail server nay ludn ludn ket ndi tdi
Intemet va dugc chia se giira nhieu ngudi diing khac). Mail server thudng
dugc ISP eiia ngudi dimg (la trudng dai hgc hoSc cdng ty) quan ly.

Do user agent chay tren may tinh ca nhan va mail server dugc quan
ly bdi cac ISP nen cin cd mgt giao thirc cho phep user agent va mail server
trao dii vdi nhau. Diu tien chung ta xet trudng hgp thu dugc tao ra tai PC
cua Alice dugc chuyin tdi mail server cua Bob nhu thi nao. Cong viec nay
cd the dugc thuc hien mgt each don gian bing viec user agent ciia Alice trao
ddi true tilp vdi mail server ciia Bob bing giao thirc SMTP. User agent ciia
Alice se khdi tao mgt kit nli TCP tdi mail server cua Bob, giri nhung lenh
khdi tao SMTP, tai thu len bing lenh DATA va sau dd ddng ket ndi lai.
Cach tilp can nay hoan toan cd thi thuc hien dugc nhung it khi dugc dimg
vi no khdng ho trg trudng hgp mail server phia nhan bj true trac. Tren thuc
tl, user agent giri khdi tao SMTP dl tai thu ciia Alice tdi chinh mail server

97
ciia Alice (chu khdng phai la mail sei-ver ciia ngudi nhan thu). Mail server
ciia Alice sau dd se thiet lap mgt phien lam viec SMTP tdi mail server ciia
Bob de gui tiep thu tdi mail server ciia Bob. Neu mail server ciia Bob ngirng
lam viec thi mail server ciia Alice se giir thu lai va sau dd cd gang giri lai.
RFC SMTP cd nhung lenh de giri tiep thu qua nhieu SMTP server.

Vay user agent chay tren may tinh ca nhan ciia Bob lay thdng diep
trong hop thu tren mail server ciia Bob nhu the nao ? Giai phap la phai cd
mgt giao thirc lay thu cho phep chuyen thu tir mail server ciia Bob tdi may
tinh cue bd. Hien nay cd 2 giao thirc lay thu thdng dung la POP3 (Post
Office Protocol - Version 3) va IMAP (Internet Mail Access Protocol).
Dudi day, chung ta se trinh bay ca hai giao thirc nay. Luu y rang user agent
ciia Bob khdng the sir dung SMTP de lay thu bdi vi lay thu gidng nhu viec
"keo" trong khi SMTP la mgt giao thirc "diy".
Hinh 2.18 minh hoa ve viec giri va nhan thu. SMTP dugc diing de chuyen
thu giira cac mail server hay giira user agent ciia ngudi giii va mail server
ciia ngudi gui. P0P3 hay IMAP dugc diing dl chuyen thu tir mail server tdi
user agent cua ngudi nhan.

Serate1*8 ^^ipents
P0P3
mail mail or
1t f 1 SMTP server SMTP S6n«r IMAP " I I
»•
Itllllllj • . ll
liiiitiil
usfefogentl
DQODfl
Hinh 2.18 Giao thu-c email va cac thg-c tiie truyin thong

POP3

P0P3 dugc dac ta trong RFC 1939 la giao thirc liy thu cue ky don
gian va cd rat it chirc nang. P0P3 dugc khdi tao khi user agent (client) tao
ket ndi TCP tdi mail server (server) qua cong 110. Sau khi thilt lap dugc kit
ndi TCP, P0P3 gdm 3 giai doan: kiem chiing, tiln hanh xir ly va cap nhat.
Trong giai doan kiem chimg dau tien, user agent sir dung ten va mat khiu dl
xac nhan ngudi sir dung. Trong giai doan tiln hanh xir ly thir hai, user agent
tien hanh lay thu. Nd cd the danh diu cac thu dl xoa hay hiiy bd viec danh

98
dau xoa. Giai doan ba - cap nhat, xay ra sau khi client ra lenh quit de kel
thuc phien lam viec P0P3. Tai thdi diem dd mail server xoa tat ca thu dugc
danh dau.

Trong giai doan xu ly, user agent giii lenh va server tra Idi kel qua
thuc hien ciia mdi lenh dd. Mdi lenh cd hai Irang thai ket qua: +0K thdng
bao lenh vii'a giri dugc thuc hien diing va -ERR thdng bao lenh vira giri
khdng thuc hien dugc.

Giai doan kiem chung cd 2 lenh la user <username> va pass


<password>. De minh hoa hai lenh nay ban nen Telnet true tiep qua mgt
server P0P3 sir dung cdng 110 de thuc hanh. Gia sir mail server la ten mail
server, ban cd the lam nhu sau:

telnet mail server 110


+0K POPS server ready
user alice
+0K
pass hungry
+0K user successfully logged on

N I U ban danh sai mgt lenh thi server P0P3 se dap lai bing mgt
thdng diep -ERR.

Ngudi sir dung cd thi ciu hinh user agent d mgt trong hai che do
"tai va xoa" ("download and delete") hay "tai va giii" ("download va keep").
Chudi lenh dugc user agent giri phu thugc vao ciu hinh nay. Trong che do
diu, user agent se phat ra chuoi lenh list, retr va dele. Gia sir ngudi dimg cd
2 thdng diep trong hop thu ciia minh. Trong doan hdi thoai dudi day C:
(client) la user agent va S: (server) la mail server. Khi dd giai doan xir ly
cdng viec se nhu sau:

C: list
S: 1 498
S:2 912
S: .
C: retr 1
S: (blah blah ...

99
S:
S: blah)
S:.
C: d e l e l
C: retr 2
S: (blah blah ....
S:
S: blah)
S:.
C: dele 2
C: quit
S: +0K POPS server sighing off

Dau tien, user agent yeu cau mail server liet ke kich thude ciia tat ca
thu luu tru- trong hop thu. Sau dd, user agent lay va xoa timg thu trong hop
Ihu. Luu y rang sau giai doan kiem chiing ngudi dimg chi cdn 4 ciiu lenh la
list, retr, dele va quit. Cu phap ciia cac .lenh nay dugc dac ta trong RFC
1939. Sau khi xir ly lenh quit, server P0P3 vao giai doan cap nhat va xoa
thu 1, 2 trong mailbox.

Trong che do nay, khi Bob lay thu tir nhung dja dilm khac nhau, thu
ciia Bob se nam rai rac tren nhieu may. Dac biet, neu Bob da liy thu tir may
tinh d nha thi sau dd se khdng the dgc lai thu dd tren may tinh d ca quan.
Trong che do thir hai "download and keep", user agent vin dl lai thu tren
mail server sau khi da tai vl. Khi ud Bob vin cd thi dgc thu tir nhilu may
khac nhau.

Trong phien lam viec P0P3 giira user agent va mail server, server
P0P3 se ghi nhd mgt vai thdng tin trang thai - vi du cac thu da bj danh diu
xoa. Tuy nhien server P0P3 khdng chuyin thdng tin trang thai giua cac
phien lam viec khac nhau. Vi du khdng cd thu nao dugc danh diu xoa d diu
mdi phien lam viec. Dieu nay lam don gian cdng viec xay dung mgt server
P0P3.

IMAP

Sau khi tai thu ve tir may tinh ca nhan, Bob ed thi tao nhirng thu
muc chira thu va chuyen thu vao trong cac thu muc dd. Sau dd Bob cd thi

100
xoa, chuyin thu giu'a cac tlur muc hay lim kiem thu theo ten ngirdi gui va
chu dk thu. Phuang thirc niiu vay bat lien vdi ngirdi sir dung muon dgc thu
tir nhieu nai vi hg thich duy tri phan cap thu muc tren mai! server de cd the
tray cap dugc lir bit ky may tinh nao. P0P3 klidng dap irng dugc yeu cau nay.

IMAP (dac ta trong RFC 2060) cd thi giai quylt vin dl nay. Gidng
P0P3, IMAP cung la giao thirc liy thu. Nd cd nhilu dac tinh phirc tap hon
P0P3. IMAP dugc thilt kl cho phep ngudi diing thao tac tren nhirng hop
Ihu d xa mgl each de dang. IMAP cho phep Bob tao nhimg thu muc thu
khac nhau trong mailbox. Bob cd thi dat thu vao trong thu muc hay dich
chuyin thu tir thu muc nay din nhirng thu muc khac. IMAP cung cd lenh
cho phep tim kilm tren thu muc theo lieu chi xac djnh. IMAP phirc tap ban
P0P3 nhilu vi server IMAP phai duy tri he thing thu muc cho mgi ngudi
diing. Nhung thdng tin trang thai nhu ihl phai dugc mail server luu giir cho
tit ca cac phien lam viec. Nen nhd ring P0P3 server khdng luu giir trang
thai ciia moi ngudi dimg sau khi phien lam viec ket thuc.

IMAP cd mgt dac tinh quan trgng la cd nhirng lenh cho phep user
agent chi lay mgt sd thanh phin trong thu. Vi du: user agent cd the lay phan
lieu dl hoac mgt phin trong thu cd nhilu phin. Dieu nay rat cd ich khi ket
noi giii-a useragent va mail server cham, ngudi dimg cd thi khdng can tai tat
ca thu Irong hop thu cua minh. Dac biet cd thi tranh tai nhung thu chira ngi
dung am thanh hay hinh anh cd kich thude Idn.

Phien lam vice IMAP gdm 3 giai doan: giai doan thilt lap ket ndi
giira client (user agent) va IMAP server, giai doan server chap nhan ket ndi
va giai doan tuang tac client/server. Tuong tac client/server ciia IMAP
tuang tu nhung phong phu hon nhilu tuang tac trong P0P3. Server ludn d
mgt trong bin trang thai. Trong trang thai chua kiem chung
(nonauthenticated) la trang thai khdi diu, khi do ngudi dimg phai dang
nhap he thing trudc khi thuc hien cac lenh. Trang thai da kiem chirng
(authenticated), ngudi dimg phai chgn mgt thu muc trudc khi gin lenh.
Trong trang thai lya chon (selected), ngudi dimg cd thi sir dung nhung lenh
cd thi tac ddng tdi thdng diep (nhu liy, xoa, chuyin thu). Cudi ciing la trang
thai thoat (logout), khi kit thuc phien lam viec. Ban cd the dgc tat ca ve
IMAP tai [IMAP 1999].

101
HTTP

Ngay nay, nhieu ngudi sir dung Webmail - djch vu cd thi truy cap
email qua trinh duyet (Hotmail hay Yahoomail). Khi dd, user agent la trinh
duyet Web thdng thudng va mgi ngudi kit nli tdi hop thu ciia minh tren
mail server qua HTTP. Khi Bob muln dgc thu, thu dugc giri tir mail server
ciia Bob tdi trinh duyet nhd giao thirc HTTP chir khdng phai la giao thirc
P0P3 hay IMAP. Khi ngudi giri (Alice) cd mgt tai khoan (account) tren
mail server muln giri thu, thu se dugc giri tir trinh duyet ciia Alice tdi mail
server nhd giao thiic HTTP chir khdng sir dung SMTP. Tuy nhien, mail
server dd van giri va nhan thu vdi nhQ-ng mail server khac bing giao thirc
SMTP. Giai phap truy cap mail kieu nhu vay vd ciing thuan tien cho ngudi
sir dung hay phai di chuyen. Hg chi cin sii- dung mgt trinh duyet dl giri va
nhan thu. Trinh duyet dd cd thi d mgt quan cafe Internet, d nha ciia ban be,
d khach san vdi Web TV... Gidng IMAP ngudi diing cd thi t l chuc thu cua
minh trong he thing thu muc tren mail server. Su that la, e-mail dua tren
Web ngay cang thuan tien va din din thay thi P0P3 va IMAP trong nhiing
nam tdi. Nhugc diem chinh yeu ciia nd la cham, bdi vi server va client d xa,
giao tiep giua chiing phai thdng qua CGI.

2.5 D I C H V U T E N M I E N - D N S

Ca nhan mdi con ngudi cd thi dugc xac djnh theo nhilu each. Vi du,
chting ta cd the dugc nhan bilt qua ten trong giiy khai sinh, bing si chimg
minh thu nhan dan. Dii cd nhilu each nhan bilt dl phan biet mgi ngudi
nhung lira chgn phuang thirc nhan bilt phu thugc vao hoan canh. Vi du cdng
an sir dung sd chirng minh thu nhan dan chii khdng sir dung ten. Binh
thudng mgi ngudi thich nhd ten nhau hon la s i chimg minh thu.

Gidng con ngudi, may tinh tren Intemet cung cd thi dugc xac djnh
bang nhieu each. Ten may tinh (host name) la mgt each, vi du cnn.com,
www.yahoo.com, gais.umass.edu hay surf eurecom.fr. Nhirng ten do tuang
ddi de nhd ddi vdi con ngudi. Tuy nhien ten may tinh cung cip it thong tin
ve vj tri tren Intemet ciia may tinh (Ten may tinh surfeurecom.fr chi cho

102
chiing ta bilt may tinh dd d nude Phap vi kit thiic bang dudi .fr. ngoai ra
khong cdn tiidng tin nao khac). Hon nQ-a ten may tinh bao gdm nhieu ky tu -
ca chu- cai va chir sd - cd do dai thay ddi nen router khd cd the xir ly dugc.
Vi ly do dd, may linh dugc xac dinh thdng qua dia chi IP. Dia chi IP dugc
thao'luan chi tilt trong chuong 4. Dia chi IP gom cd 4 byte va cd cau triic
phan cip, gia Ui moi byte lai dugc ddi ra sd thap phan (0-255) va each nhau
bing diu chim (vi du 121.23.45.5). Dja chi IP phan cip vi khi duyet dja chi
tir trai qua phai, chiing la nhan dugc them nhilu thdng tin xac dinh ve vi In
ciia may linh tren Intemet (Vj Ui d trong mang ciia cac mang, trong mgt
mang...). Dilu nay tuong lu khi xet dia chi buu dien tir dudi len, chiing ta
nhan dugc nhilu thdng tin ve dia chi do.

2.5.1 Cac djch vu cua DNS

Cd hai each dl xac dinh mgt may tinh: dua vao ten may tinh hoac
dja chi IP. Con ngudi thich sir dung ten may dl nhd, trong khi router lai sir
dung dia chi IP cd ciu triic phan cip va do dai cl djnh (de xir ly). De dung
hoa giua hai each, chiing ta cin mgt djch vu chi dan de chuyen ddi ten may
tinh sang dja chi IP va day chinh la nhiem vu ciia he thong ten mien tren
Intemet (DNS). DNS la (1) Co sd dii lieu phan tan dugc dat tren mgt he
thing phlin cip cac may phuc vu ten (nameserver) va (2) Giao thirc thugc
ting irng dung cho phep may tinh va may chii ten trao doi thdng tin phiic vu
muc dich x;ic djnh dia chi IP. May chii ten miln thudng la cac may UNIX >
cai dat phin mIm Berkely Intemet Name Domain (BIND). Giao thirc DN:^
chay tren nen UDP vgi sd hieu cong la 53.
I -1 ,1 w cot Vv^f'\ ^.i ' . r I 1 ' U

^V^'^'^ L!i"h6ng thudng DNS dugc cac giao thirc tang ung dung khac nhu
HTLP^SMTP va FTP sir dung dl xac djnh dia chi IP lir ten may tinh do
i | u d ? ^ a i i n i m a \ J r ^ l f u y e n gi xay ra khi trinh duyet (HTTP client) tren
may tinh ciia ngudi sir dung yeu ciu ddi tugng cd dja chi URL la
www.someschool.edu/index.html. D I giri dugc thdng diep HTTP yeu cau
tdi Web sei-ver thi may tinh ciia ngudi sir dung phai xac djnh dugc dja chi IP
ciia www.someschool.edu. Dilu nay dugc thuc hien nhu sau: may tinh eiia
ngudi sir dung chay phia client eiia irng dung DNS. Trinh duyet se lay ra ten

103
may tinh (www.someschooI.net) tir dja chi URL va chuyin nd cho phin
mem client cua DNS. DNS client giri mgt truy vkn (query) chira ten may
tinh tdi DNS server. DNS client se nhan dugc mot thdng,diep tra Idi tir DNS
server chira dja chi IP cin xac djnh. Sau dd trinh duyet se md mgt kit ndi
TCP tdi tien trinh HTTP sei-ver Uen may tinh cd dja chi IP vira dugc xac djnh.

Rd rang cac irng dung Internet sir dung DNS boat ddng cham di. Tuy
nhien, dia chi IP da dugc xac djnh thudng dugc ghi tam (cache) trong mgt
name server DNS d gan va nhu vay lam giam tai cho he thong DNS cung
nhu do tre cua u-ng dung.

Ben canh djch vu xac dinh dja chi IP tir ten may, DNS cung cip mgt
sd djch vu quan trgng sau:

Dich vu dat bi danh cho may tinh (Host aliasing):

May tinh cd ten phu-c tap cd thi cd mgt hoac nhilu bi danh (alias).
Vi du ten may tinh relayl.west-eoast.enterprise.com cd thi cd hai bi danh la
wmv.enlerprise.com va enterprise.com. Trong trudng hgp nay, relayl.west-
coast.enterprise.com la ten diy dii (canonical name). Ten bi danh thudng de
nhd hon ten day du. Mgt ung dung cd thi yeu ciu DNS xac djnh ten diy du
cung nhu dja chi IP ciia mgt ten bi danh.

Djch vu dat bi danh cho mail server (Mail server aliasing):

Hien nhien dja chi email cin dl nhd. Vi du nlu Bob cd tai khoan
tren Hotmail, dja chi ciia Bob cd thi chi don gian la [email protected]. Tuy
nhien ten may tinh ciia may phuc vu thu tai Hotmail phirc tap va vi thi khd
nhd hon so vdi hotmail.com (Vi du ten diy du cd thi la relayl.west-
coast.hotmail.com). U'ng dung cd thi sir dung DNS dl xac djnh ten diy dii
ciia mgt bi danh cung nhu dja chi IP cua may tinh dd. Tren thuc tl, DNS cho
phep mail server va Webserver ciia cac cdng ty cd ten (bi danh) gidng nhau,
vi du: Webserver va mail server ciia mgt cdng ty cd thi cimg la
enterprise.com.

Phan tan tai (load distribution):

DNS thuc hien viec phan tan tai cho cac server, dac biet la cac Web
server "nhan ban" (replicated) (la cac server cd ndi dung gidng bet nhau).

104
Nhiing site cd nhieu ngudi truy cap nhu cnn.coni dugc dat tren nhieu server
giong hct nhau. Moi server la mgt he thdng dau cudi (end system) khac
nhau, cd dia chi IP khac nhau. Doi vdi cac server gidng bet nhau nhu vay,
mgt nlidm dia chi IP se gin vdi ten day dii ciia mgl may nao dd. Co sd dii
lieu DNS chira loan bd nhdm dja chi IP dd. Khi client giri truy van DNS de
xac djnh dia chi IP thi server se giri loan bd nhdm dia chi IP dd nhung server
thay ddi thir tu cac dja chi IP trong nhdm. Thdng thudng client giri thdng
diep FITTP tdi may tinh cd dja chi IP dugc liet ke dau tien trong nhdm. Sir
hoan chuyin vj tri cac dja chi IP ma DNS thuc hien da phan tai cho cae
server. Viec hoan vj ciia DNS cung dugc ap dung cho email khi nhieu mail
server cd chung bi danh.

DNS dugc dac ta trong RFC 1034, RFC 1035 va cap nhat trong mgt
so RFC khac. DNS la he thdng phirc tap va chiing ta chi nghien cim mgt vai
khia canh ciia nd.

Tron2 li€h
DNS: Mot dich vu mang quan trpng hoat dgng tren mo hinh
client/server.

Giong HTTP, FTP hay SMTP, giao thuc DNS n i m d tang irng dyng vi (1)
no hoat dpng giOa hai thg-c the truyen thong dau cuoi su dyng m6 hinh
client/server v^ (2) su' dyng mOt giao ihirc giao van end-to-end a t i n g giao v$n
phia duoi de trao doi th6ng di#p DNS giua hai phia dau cuoi. Tuy nhien vai tro
ciia DNS l<hac c^c ieng dyng Web, FTP hay Email nhieu. DNS khong phai u'ng
dyng dup'c nguoi dung tryc tiep sir dyng ma DNS chi cung cap mot djch vy
Internet eye ky thiet y l u cho cac ung dyng: chuyen doi ten may tinh sang dia
chi IP. Trud'c day trong myc 1.2 chung ta thay rSng sy phcpc tap trong kien true
cua Internet dup'c d|t tai "lop v6" cua mang. DNS dupe trien khai trgn cac may
tinh dau cuoi la mpt minh chimg ro rang cho nguyen ly thiet ke nay.

2.5.2 Co- che hoat dong cua DNS

Bay gid, chiing ta trinh bay tdng quan each thirc boat ddng cua DNS,
tap trung vao djch vu xac djnh dja chi IP tir ten may tinh. Vdi client, DNS la

105
mgt "hop den". Client giri thdng diep truy vin DNS vao hop den dd, trong
thdng diep chira ten may cin xac djnh dja chi IP. Vdi he dilu hanh Unix,
gethoslnameO 'a mgt ham ma img dung cd thi ggi dl giri thdng diep truy
van. Sau mgt klioang thdi gian nao dd - tir vai phin nghin giay din vai chuc
giay, client nhan dugc thdng diep tra Idi ciia DNS chira dja chi IP cin xac
djnh. Vi vay, vdi client thi DNS la mgt djch vu xac djnh IP don gian va dl
hieu. Nhung "hop den" triln khai djch vu dd thuc su phuc tap, bao gdm
nhieu may chii ten (nameserver) dat khip noi tren thi gidi va nidt giao thirc
d tang ling dung xac djnh each thu-c trao dii thdng tin giua cac nameserver
va giira nameserver vdi may tinh.

local
name server user
IP address

wi-wv sfc l<eici ac J]


web
Local V browser
Name 133 27 4 212 1.-)rograni
Sei-ver
TCP
Root,
Cache IP

Resolving all CNAME


then resolve A

Hinh 2.19 l/ng dung SLP dung dich vu cua DNS

De trien khai DNS, ngudi ta cd the dua ra mgt kiln true don gian
sau: cd mgt name server chira tit ea cac anh xa ten va dja chi IP. Theo thilt
ke tap trung nay, client chi can giri tit ca cac truy vin tdi nameserver duy
nhat va nameserver nay se true tilp tra Idi mgi truy vin. Mac dii tinh don
gian cua thilt kl nay rit hip dan nhung nd hoan toan khdng thich hgp cho

106
Internet vdi sd lugng Idn va ngay cang nhieu may tinh. Thiet ke tap trung
nhu vay nay sinh mgt sd van de sau:
Diem hdng duy nhat (A single point of failure) neu nameserver
duy nhit ngimg lam vice cung cd nghla la loan bd Internet ngirng boat dgng.

Khoi lugng cong viec (Traffic volume): Mgl nameserver duy nhat
phcii xir ly tit ca cac truy vin DNS (cho lit ca cac thdng diep yeu cau tir
hang Irieu may linh tren toan cau).
Co- sd du- lieu tap trung d xa (distant centralized database):
Nameserver duy nhit khdng thi gin til ca cac client. Nlu nameserver dat d
NewYork thi tit ca truy vin tir Uc phai chuyen tdi phia ben kia trai dat va cd
thi qua mgt dudng kit noi cham va tic nghen. Hau qua la cac irng dung phai
chju do tre Idn.
Bao tri (maintenance): Namserver phai ghi nhd thdng tin ve lat ca
cac may tinh tren Intemet. Khi dd ca sd dir lieu se cue ky Idn va nameserver
phai cap nhat thudng xuyen thdng tin cho mgi may tinh mdi cung nhu phai
giai quylt cac vin dl kilm chirng va xac nhan khi ngudi dimg sir dung co sd
dir lieu tap trung.
Tdm lai, co sd dtr lieu tap trung tren mgt nameserver duy^ nhat
khdng phii hgp khi quy md he thing Idn. Do dd, DNS dugc thilt kl phan
tan. Tren thuc tl DNS la mgt vi du tuyet vdi vl triln khai co sd dtr lieu phan
tan tren Intemet. De giai quylt vin dl quy md, DNS sir dung nhieu
nameserver to chirc phan cip va phan tan tren toan cau. Khdng cd
nameserver nao chira tit ca ten va dja chi IP cac may tinh tren Intemet,
nhirng thdng tin nay dugc phan tan tren nhilu nameserver. Cd ba loai
nameserver: local nameserver, root nameserver va authoritatjve nameserver.
Cac nameserver ddTrad"dortiidng tin vdi nhau va vdi cac may tinh khac.

Local nameserver: Moi ISP nhu trudng dai hgc, cdng ty diu cd
local nameserver (cdn dugc ggi la default name server). Khi may tinh trong
CO quan tao ra mgt thdng diep truy vin DNS thi diu tien thdng diep dd dugc
giri tdi local name server ciia Id chirc. Dja chi IP ciia local name server phai
duac ciu hinh trong may tinh (Trong Win 95/98, ban cd thi tim thiy dja chi
IP ciia local name server bing each md Control Panel, sau dd chgn Network,

107
chgn TCP/IP, rdi chgn ciu hinh DNS). Local name sei-ver thudng "gin" vdi
client, trong trudng hgp tai co quan ciia mgt td chirc, nd cd thi d tren cimg
mang LAN vdi may tinh client. Vdi ISP phuc vu kit nli tir nha thi khoang
each giua name server va cac may tinh client chi la vai router. N I U may tinh
yeu ciu xac djnh dja chi IP ciia mgt may tinh khac trong ciing mgt ISP thi
local name server cd thi ngay lap tire xac djnh dugc dia chi IP cin thilt. Vi
du neu may tinh surf eurecom.fr yeu ciu dja chi IP ciia baie.eurecom.fr thi
local name server d eurecom ngay lap tire cd thi dua ra dja chi IP ma khdng
phai lien he vdi bat ky name server nao khac.

Rootname server: Tren Intemet cd 13 rootname sei-ver, hiu hit dat


tai Bac My. Vj tri cac root name server vao thdi dilm thang 02/1998 dugc
minh hoa tren Hinh 2.18. Khi local name server khdng thi tra Idi truy vin
ciia mgt may tinh (bdi vi nd khdng cd thdng tin cua may tinh dugc yeu ciu)
thi local name server se ddng vai trd client DNS va giri cau hdi truy vin tdi
mgt trong sd cac root name server. N I U root name server cd thdng tin ciia
may tinh dugc hdi, nd se giri mgt thdng diep DNS hdi am tdi local name
server va sau dd thdng tin nay dugc local name server giri tra Idi cho may
tinh yeu cau. Nhung root name server cd thi khdng cd thdng tin cua may
tinh dd. Trong trudng hgp nay, root name server bilt dugc dja chi IP ciia
name server quan ly may tinh dd.

E-NASA fytoffet Field CA -NORDU Stocktxjim


F-ISCVteidsideCA

~,\ rtr':> O / - X .•
M-WIDE Keio
\
\
V- V
K-LINXfRIPElx.ndon
A-NSF-NSI HemctonVA
C-PSI-HerndonVA
B-DISAUSC Ivlarina del R ^ CA D-UfvlD College Pk IvID
L-DtSA-USC Marina del Rey CA G- Dl S A Boe ing Vienna VA
H-USArnry Atserdeen MD
J-NSF-tMSI HerncfonVA

Hinh 2.20 Cac root name server tren thd giai

108
Authoriative name server; Moi may tinh phai dang ky tdi mgt
Authoritative name server. Thdng thirdng authoriative name server cua mgl
may tinh la name server trong miln ISP cua may tinh dd (thuc le mdi may
tinh phai cd it nhit hai authoritative name server, de de phdng trudng hgp
mgt name server bi hdng). Cd thi dinh ngliTa, Authoriative name server ciia
mgl may tinh la nameserver ludn luu tru- ban ghi DNS clio phep xac dinh dja
chi IP ciia may linh dd lir ten. Khi authoritative name server nhan dugc truy
vin tir root nameserver, nd se giri mgl thdng diep DNS Ira Idi chira anh xa
dugc yeu ciu. Sau dd, root server giri anh xa do tdi local nameserver ya
local nameserver lai tilp luc giri anh xa do tdi may tinh yeu cau. Nhieu
nameser\'er vira la local vii-a la authoriative nameserver.
Xet vi du dan gian sau. Gia sir may tinh surf.eurecom.fr mudn cd dja
chi IP ciia may tinh gaia.cs.umas.edu. gia sii* nameserver ciia mien Eurecom
la dns.eurecom.com.fr va authoriative nameserver cho gaia.cs.umas.edu la
dns.umass.edu. Nhu da trinh bay trong Hinh 2.20, diu tien may tinh
surfeurecom.fr gii'i mgt thdng diep truy vin tdi local name server ciia nd la
dns.eurecom.fr. Thdng diep dd chii-a ten may tinh cin xac dinh dia chi IP, la
gaia.cs.umass.edu. Local name sei-ver giri thdng diep tdi root name server.
Root nameserver giri tilp thdng diep tdi nameserver cd the xac djnh tat ca
cac may tinh trong miln umass.edu, vi du la dns.umass.edu. Sau dd,
authoriative name server nay giri kit qua cho surf.eureeom.fr thdng qua root
name server va local name server. Trong vi du nay, de xac djnh dugc dja chi
IP, cd 6 thdng diep DNS dugc trao ddi: 3 thdng diep yeu ciu va 3 thdng
diep tra Idi.
Root name server

Local name server Authoritative name server


cln3.eureconi.fr dns . uroxss . e d u

g a i n , c s .umass .edu

''^^l'->- J
Requesting host
5urf.eurecoro.fr

Hinh 2.21 Cac truy v i n DNS

109
Gia thiet root name server biet dia chi IP ciia authoriative name
server ciia mgi may tinh nhu tren ed the khdng diing. Vdi ten nidt may tinh,
root nameserver cd the chi bilt dugc dja chi IP ciia mgt name sci-ver tmng
gian ma chinh name server trung gian nay mdi bilt dugc dja chi IP ciia
authoriative nameserver ciia may tinh dd. D I minh hga dilu nay vin xet vi
du may tinh surfeurecom.fr cin xac dinh dja chi IP ciia gaia.cs.umass.edu.
Gia sir trudng Dai hgc Massachusets (Univ of Massachusets) cd name server
cho loan bd trudng dai hgc, dd la dns.umass.edu. Ta cung gia sir tilp ring
mdi khoa trong trudng dai hgc nay cd name server rieng, quan ly ten cho tit
ca cae may tinh trong khoa dd. Khi root name server nhan dugc yeu ciu xac
djnh dja chi IP cho mgt ten may tinh cd tan ciing la umass.edu, nd se giri yeu
cau tdi name server dns.umass.edu. Name server nay giri tit ca cac yeu ciu
cd ten may tinh tan ciing la cs.umass.edu cho authoritative name server quan
ly tat ca may tinh cd ten tan cimg la cs.umass.edu. Authoriative name server
nay (dns.cs.umass.edu) giri kit qua tdi name server trung gian
(dns.umass.edu) va name server nay se giri tilp kit qua tdi root name server.
Root name server se giri tiep ket qua tdi local name server ciia may tinh yeu
cau. Trong vi du nay, 8 thdng diep DNS dugc giri (Hinh 2.21). Thuc ra cd
the cd nhieu hon 8 thdng diep DNS dugc trao ddi vi cd thi cd nhilu name
server tmng gian d giira root name server va authoriative name server.
Root name server

Local name server Intennsaiate name server


dn3.eurecx>ni. Ir dna.uimss.edu

<S
r Authoritative name server
dns . c s . umass. edu
Requesting rtost
surf.eureccm.fr

gaia. cs. intass. edu

Hinh 2. 22 Cac truy v i n DNS

110
Trong vi du tren, tit ca cac truy vin dugc ggi la de quy (recursive
query). Khi may tinh hay name server A giri thdng diep yeu cau tdi name
ser\'er B, name server B se thay mat A nhan thdng diep chira ket qua va sau
dd giri kit qua tdi A. Tuy nhien DNS cho phep cac tmy van tuong lac
(iterative query) d bat ki giai doan nao trong qua trinh tir may linh yeu cau
den authoriative name server. Khi name sever A gii-i mgl truy van tuong tac
tdi name server B, nlu name server B khdng cd anh xa dugc yeu cau, nd se
giri cho .A. thdng diep tra Idi chira dia chi IP ciia name server ke tiiSp tren
chuoi, gia sir la name sever C. Sau dd name server A true tiep gui thdng diep
yeu cau tdi name server C.
Root name server

Iterated query

7
Local name server Intermediate name server
d n s . eurecom. f r dns . uroass . e d u

:. I
Authoritative name server
dns.cs.umass.edu
Requesting host
sxxtrf. eureccan. f r

gaia.cs.umass.edu

Hinh 2. 23 Cac truy vin d? quy va tu-cng tac

111
Cac tmy van Irong day tmy van lien tiep cd thi la tuong tac hoac de
quy nhu minh hoa tren Hinh 2. 23. Thdng thudng tit ca cac truy vin - ngoai
trir truy van tir local name server tdi root name server la de quy, truy vin tdi
root name server thudng la tuang tac (bdi vi root name server phai xir ly mgt
lugng Idn cac yeu cau nen can lam giam sd lugng truy van tdi root name
server).

Mgt dac tinh quan trgng ciia DNS la luu trir tam thdi cac ban ghi
DNS (DNS caching). Tren thuc tl, DNS luu Irir tam thdi (cache) de lam
giam do tre cung nhu lam giam sd thdng diep DNS trao ddi tren mang. Y
tudng nay rat don gian: Khi nhan dugc anh xa DNS ciia may tinh nao dd,
ben canh viec giri tiep thdng diep, name server se lu-u anh xa nay vao bd nhd
cue bd (d dTa cirng hay RAM). Vdi anh xa ten may - dja chi IP dugc luu trir
san, neu cd mgt truy van khac yeu cau dja chi IP ciia cimg ten may ma name
server viia luu trii, nameserver se xac djnh ngay dugc dja chi IP mong
mudn, ke ca khi nd khdng la authoritiative name server cho may tinh dd. Dl
khac phuc tinh trang luu tru thdng tin cu, thdng tin dugc luu trir tam thdi se
bj xoa bd sau mgt khoang thdi gian (thudng la hai ngay).

2.5.3 Ban ghi DNS

Name server luu giir cac ban ghi tai nguyen (resource record) cho
cac anh xa Ten may / Dja chi IP. Mdi thdng diep tra Idi DNS chira mgt hay
nhieu ban ghi tai nguyen. Trong phin nay chiing ta se ndi qua vl ban ghi tai
nguyen va thdng diep DNS. Ve chi tilt, ban cd thi xem trong DNS RFC
[RPC 1034, RFC 1035].

Ban ghi tai nguyen gdm 4 trudng sau::

(Name, Value, Type, TTL)

TTL la thdi gian tdn tai ciia ban ghi tai nguyen, dimg dl xac djnh
thdi dilm cd the xoa ban ghi tai nguyen khdi bd nhd luu trir. Trong cac ban
ghi vi du dudi day, chung ta bd qua trudng TTL. Y nghla ciia trudng Name
va Value phu thugc vao trudng Type:

112
Neu Type = A thi Name la ten may va Value la dia chi IP ciia may
dd. Ban ghi kieu A la anh xa Ten may - Dja chi IP chuan. Vi du,
(relayl.bar.foo.com, 145.37.93.126, A) la mgt ban ghi Type A.

NIU Type = NS thi Name la mgl mien (nhu la foo.com) va Value la


ten may cua authoriative name server ciia cac may linh trong mien dd. Ban
ghi nay thudng dugc sir dung de giri tiep cac truy van DNS. Vi du 1 ban ghi
Type NS: (foo.com, dns.foo.com, NS)

NIU Type = CNAME thi Value la ten day dii ciia may cd ten bi danh
dat trong Name. Ban ghi kieu nay cho phep xac djnh ten day dii ciia mgt
may tinh tir ten bi danh. Vi du mgt ban ghi CNAME: (foo.com,
relayl.bar.foo.com, CNAME).

N I U Type - MX thi Value la ten may cua mail server cd ten bi danh
dat trong Name. Vi du, ban ghi kilu MX (foo.com, mail.bar.foo.com, MX).
Ban ghi MN eho phep mail server ed ten bi danh dcm gian.

N I U mgt name server la authoritiative name server cho mgt may tinh
nao dd thi name server se chiia ban ghi kilu A ciia may tinh dd (ngay ca neu
name server dd khdng la authoritiative name server thi cd the nd chira ban
ghi kilu A trong bg nhd cache ciia nd). Neu name server khdng la
authoritiative name server ciia may tinh dugc hdi thi nd se chira mgt ban ghi
kilu NS cho miln cua may tinh nay, va nd cung cd mgt ban ghi kieu A xac
djnh dja chi IP ciia name server ciia miln nay dat trong trudng Value cua
ban ghi NS. Vi du, root name server khdng la authoritiative name server cho
may tinh gaia.cs.uinass.edu, root server se ed mgt ban ghi eho mien chira
cs.umass.edu vi du (umass.edu, dns.umass.edu, NS). Root server dd ding
thdi cung cd mgt ban ghi kilu A cho phep xac djnh dia chi IP ciia name
server dns.umass.edu, chang han (dns.umass.edu, 128.119.40.111, A).

2.5.4 Thong diep DNS

Cd hai loai thdng diep DNS: thdng diep yeu cau va thdng diep tra
Idi. Ca hai kilu thdng diep nay cd chung khudn dang minh hoa tren Hinh 2.22.

113
Y nghTa cac trudng trong thdng diep nhu sau:

12 byte dau tien la phan tieu dc. Phan tieu dl cd mgt .sd trudng.
Trudng dau tien la mgt djnh danh 16 bit cho mdi thdng diep yeu ciu. 16 bit
djnh danh nay dugc ghi lai vao thdng diep tra Idi, cho pht;p client xac djnh
dugc day la cau tra Idi cho thdng diep yeu ciu nao. Cd nhilu cd trong
trudng cd (mdi cd irng vdi mgt bit). Cd' truy van (query/reply flag) xac
djnh thdng diep la yeu ciu (0) hay la tra idi (1). Cd authoritiative dugc dat
trong thdng diep tra Idi khi name server la authoriative name server cua ten
m.ay tinh can xac djnh dia chi IP. Cd mong muln dc quy (recursive-
desired query) dugc dat khi client (may tinh hay name server) mong muln
name server thuc hien truy vin de quy khi nd khdng cd ban ghi dd. Cd chap
nhan de quy (recursion-available flag) dugc dat trong thdng diep tra Idi
neu name server dd ho trg de quy. Trong phin tieu dl cung cd 4 trudng sd
lugng, cac trudng nay xac djnh si lugng cac ban ghi trong 4 phin dir lieu
sau phan tieu de.

Phan cau hdi (Question session) chira thdng tin vl cac cau hdi dugc
tao ra. Nd bao^gdm (1) trudng ten chiia ten dang dugc hdi va (2) trudng kilu
xac dinh kilu cau hdi cho ten may tinh dd (Kilu A cho ten may tinh, kilu
MX cho mail server).

Trong thdng diep tra Idi tir server name, phin tra Idi (answer
section) chiia cac ban ghi tai nguyen cho ten dugc yeu ciu frudc dd. Chti y
ring mdi ban ghi tai nguyen cd 4 trudng: Type (A, NS, CNAME, MX),
Name, Value, TTL. Thdng diep tra Idi cd thi cd nhilu ban ghi tai nguyen vi
ten may tinh cd the umg vdi nhilu dja chi IP.

Muc tham quyln (authority section) chira cae ban ghi cua cac
authoritative server.

Muc phu trg (additional section) chiia cae ban ghi "hihi ich" khac.
Vi du trudng tra Idi trong thdng diep tra Idi mgt truy vin MX se chira ten
day du cua mail server cd ten bi danh dat d trong Name. Phin phu trg cd thi
chira mgt ban ghi kilu A cung cip dja chi IP cho chinh mail server dd.

114
Identjfiiration Fl-^s

Number of qLRstcns ' t'Jurrber of ansv/er RRs 12 biytes

r,'are, type fieOs


Number of auttority RRs ; Nunrberof aciditbnal RRs
for a query ^
Quest tons
(va ria bte numbe r of q ue stion s)
HRs in lespjonse
toqiery" Answers
(variable nurnber of resource records)

Records fc>r^ Ajuttioriy


au1txir1ati»re servers" (variabte rsjmiber of resource records)

Acditional irfomnatton
Adcfi'ional "hel(rfur_ (variabte rKflnberof re source records)
Infe t t i a may be used

Hinh 2. 24 K h u o n d a n g t h o n g di#p DNS

Cac phin tren md ta each thirc liy dtr lieu trong co sd dir lieu DNS.
Vay lam thi nao dl dua dugc dtr lieu vao co sd dtr lieu? Cho tdi gan day,
ngi dung ciia server DNS dugc ciu hinh tTnh, vi du, thdng qua file cau hinh
dugc ngudi quan trj he thong tao ra. Gin day, lira chgn UPDATE dugc dua
vao gao thirc DNS cho phep dtr lieu dugc tu ddng them vao hay xoa bd
khdi CO sd dtr lieu thdng qua thdng diep DNS. RFC 2136 dac ta qua trinh
cap nhat ddng ciia DNS.

2.6 CAC UNG DUNG THEO KIEN TRUC NGANG HANG

Thang 5/1999, Shawn Fanning va Sean Parker sang lap ra cdng ty


Napstir Inc va da md ra mgt cugc Cach mang trong nganh cdng nghe thdng
tin. Tii thdi dilm dd, Napster la djch vu chia se file ngang hang duy nhat
trem mang Intemet.
Chinh nhu ciu chia se cac loai phin mIm khdng ban quyen thiic day
su ra ddi cac cdng ddng ao cd td chirc nhung lai ket nli Idng leo tren
Interret. Napster khdng chi dap img nhu cau tim kiem va chia se cac file am
nhaic na cdn hinh thanh nen mgt cdng ddng ao tren dd. Tham gia vao cong

115
ddng nay, mgt ngudi cd thi de dang nen cac dTa CD am nhac ra file MP3 dl
chia se vdi nhti-ng ngudi khac.

&m
Nam 1999, Shawn Fanning cong bo chuong trinh dau tien (thyc hi^n
sau vai thang) dap ung duc^c nhu cau mpt nhom nho bgn be. Noi chung moi
nguoi deu co nhieu cac file nhgc (MP3) trong 6 cung tren m^y tinh cS nhan,
mSy tinh ca nhan deu co ket noi Internet. Van de a day la lam the nao tim
ducp'c file ma nguai su dyng (NSD) muon kiem theo mpt tieu chi nao do (Ten
bSi h^t / Ca sy / Nhgc sy/Album...). Chuong trinh ma Fanning viet c6 the kiem
soat duQ^c nhung thong tin nhu vgy.

(!y server trung tam^, Chuong trinh cua Fanning kiem soSt nh&ng file
m^ h§ thong co the cung cap va vj tri chinh xac ciia file (tipc la dja chi may tinh
chua file). Khi nguoi diing ket noi vao h$ thong (bing phan mem cua
Fanning), danh s^ch tat ca c^c file m^ nguoi diing mu6n chia se se dupe cgp
nh|t Ign server trung tam (chu y 1^ chi danh sach c^c file, c6n c^c file thi/c si/
van n§m tren may tinh dau cuoi - gpi \h nut). Khi NSD muon tim kiem file nao
do, tu he thong CSDL cua minh, server trung tam se tra ve cho NSD danh
s^ch c^c may tinh c6 chira file can tim. NSD chi vi^c lien Igc tri/c tiep den may
tinh c6 file de xin t^i v^.

Mang Napster - vd'i kha nang ho trp' tim kiem vd tai file MP3 vol khoi
lup-ng Idn - da phSt then v6i too dp cue ky nhanh, hinh thdnh mOt cOng dong
30 tn#u NSD chia se 2,8 ty file trudc khi cham dirt hogt dpng theo phdn quyet
cua T6a an Hoa Ky.

Khdi d i u tu- nam 2003, R I M (Hifp hpi am nhgc Hoa Ky) d§ c6 chien
lup'c mdi de kilm sodt mgng P2P. Sau khi RIAA thua tgi T6a Thucrng thim
Lien bang khi ISP Verizon khong cung cap thong tin ve khach hdng thue bao,
RIAA bdt dau thu th|p thong tin ve hdnh vi cua ngudi SLJ- dgng (chip khong
phSi ISP hay nhd cung d p phin mem P2P). Thdng 9/2003, RIAA d§ dua ra
t6a 261 ngudi chia s^ cdc file nhgc bit hpp phdp, ngdy nay s6 lupng vu kiSn
kieu ndy hdng ndm Id 13000.

Gid day,^ sau nhieu co ging cua Hiep hdi cdng nghiep thu am Hoa
Ky (RIAA), Quoc hdi Hoa Ky da dua ra nhimg dieu khoan quy djnh viec
chia se, han che viec tu do chia se cac phin mIm hgp phap tren cac mang
ngang hang.

Ngudi ta thudng xem Ky nguyen Mang ngang hang bit diu vdi
Napster, tuy nhien ta thiy nhimg phin mIm nhin tin (Yahoo Messenger) da

116
manh nha y tudng nay. Nhin lin !a mgt hinh thirc lai tap - vira tan dung tinh
lire thdi ciia he thdng dien thoai lai vira cd tinh kiem soat ciia he thdng thu
tin dien lir.

Ndi chung, irng dung P2P cd cac dac diem sau:

- Chia se cac tai nguyen va djch vu phan tan. Trong mang P2P,
cac niit thanh vien vira ddng vai trd client, vira ddng vai trd server; nghTa la
vira !a nha cung cap nhung cung la ngudi tieu thu cac lai nguyen (Tai
ngu^'•en d day cd the la thdng tin, file, nang lire tinh toan...).

- Khong tap trung. Khdng cd diem tap trung nao ddng vai trd dieu
phdi c:iung ciia loan bd he thdng. Truyen thdng giira cac nut dien ra true
tilp. k:idng c6 niit nao kiem soat dugc tat ca cac niit khac. O day cd sir phan
biet giira mang P2P thuin tiiy (cac mil hoan loan binh dang vdi nhau) va
mang ^2P lai tap (cac nut khdng cdn binh dang hoan toan, cd mgt nhdm niit
se dorg vai trd kiem chirng va tim kiem theo chi muc). Kieu lai tap ket hgp
gitra iT.ang P2P Ihuin tiiy va md hinh client/server tmyen thdng.

- T u trj. Mdi nut trong mang P2P tu quyet djnh khi nao tham gia
mang /a mire do ddng gdp chia se cho cdng ddng.
Cac irng dung P2P cd thi phan loai vao 3 nhdm sau day:
- Nhan tin tire thi (Instant messaging)
- Chia se file
- Tinh toan mang ludi
Vice phan chia nhdm nhu vay ciing chua rd rang va ranh gidi giiia
cac nloni cdn map md, va bien ddi rat nhanh chdng.

2.6.1 Nhan tin tiic thi

Ngay nay Nhin tin tire thi (IM - Instant Messaging) dugc sir dung
circ k; rgng rai do cd kha nang truyen thdng diep lire thdi (gidng dien thoai)
mgt cich cd kilm soat (gilng email) va kha nang duy tri ddng thdi nhieu
cugc idi thoai. Cac djch vu IM nhu 1-seek-you (ICQ), MSN Messenger ciia

117
Microsoft, AOL Instant Messenger® (AIM), Yahoo Messenger (YIM) trd
nen cue ky thdng dung (dac biet vdi gidi tre) khi cac djch vu nay tich hgp
them nhieu tinh nang nhu truyen file, chia se dtr lieu, tuang tac da phuong
tien...

Chirc nang cua IM

Cho den nam 2000, khdng cd mgt giao thu-c chuan nao quy djnh
each thirc boat dgng ciia cac he thdng IM. RFC2778 "A model for Presence
and Instant Messaging" va RFC2779 "Instant Messaging/Presence Protocol"
dua ra tap hgp cae hudng dan hinh thanh nen ciu hinh co ban cho mgt he
thdng IM. Cac phan md ta sau day chii yeu dua tren cac khuyen nghj
RFC2778 va RFC2779.

Djch vu Hien thi Thong tin (Presence Service) la djch vu quan


trgng nhat trong he thdng IM, xac djnh cd thi lien lac dugc vdi mgt doi
tugng hay khdng va trang thai ciia ddi tugng dd. Ngoai ra, djch vu nay cdn
cung cap cac co che dam bao tinh rieng tu, chang ban lira chgn mgt nhdm
ddi tugng dugc phep nhin thay trang thai ciia minh va dugc quyln giri thdng
diep tdi.

Dich vu chuyen phat tin nhan. La cac tien ich cho phep chuyin
phat cac tin nhan (cd the dudi dang van ban hay am thanh) giira nhirng
ngudi sir dung tren mang IM.

Cac djch vu bd trg. Ben canh cac djch vu co sd tren, cac he thdng
IM bd sung rat nhieu tinh nang mdi dl thu hut khach hang. Cac djch vu bd
trg dugc liet ke trong RFC2778 va RFC2779.

Cac thanh phan ciia IM

IM Server. Cung cap cac djch vu IM nhu hiln thi thdng tin, canh
bao, dang ky tai khoan, va nhan tin. Ngudi sir dung (qua phin mIm Client)
phai ket ndi vdi Server de cd trang thai true tuyIn (online) trong mang IM.
Mang IM cd the gdm nhieu server cimg lam viec vdi nhau de cung cip kha
nang md rgng trong trudng hgp cd nhieu client ciing ket ndi.

118
Trayin thdng giua cac server thirdng "Irong sudt", vi ngudi sir dung
ndi chung khdng bilt dugc minh kit ndi den nhti-ng server nao. Server ciia
cac mang IM Idn thirdng dugc dat tai cac cdng ty sd hiru mang IM.

IM Client. Phin mIm client la "dilm giao tiep" ciia ngudi sir dung
vdi mang IM. Sau khi cai dat tren may tinh, NSD cd Ihl sir dung IM client
dl kit ndi va sir dung cac dich vu do IM server cung cap. Client ciing dugc
sir dung dl luu trti- cac thdng lin cue bd ciia ngudi sir dung (chang ban mat
khiu, ten truy cap phuc vu muc dich tu dgng truy cap hay nhat ky hdi thoai).

M6 hinh ket noi

Cd hai md hinh co sd dugc ap dung tren cac mang IM

Client-Server hay kieu tap trung. Tit ca thdng tin trao ddi tren
mang diu phai di qua server, cd nghTa la hai client khdng kit ndi true tiep
dugc vdi nhau ma kit nli gian tilp qua server (Xem Hinh 2.25)

zy. i

SecKork
M
/I ||M|M|

/ \ \

. / V-.,

Hinh 2.25 Mo hinh k i t ndi IM kieu t^p trung

Peer-to-Peer hay kilu phan tan. Dtr lieu dugc trao ddi true tiep
giua cac client (khdng di qua server). Kilu kit noi nay thudng dugc sir dung
khi truyin file (dl lam giam tai eho server). Server trong mang kilu nay chi
lam nhiem vu kilm soat trang thai cac client va giup cac client trao ddi true
tilp vdi nhau. Kilu kit noi nay dugc minh hga tren Hinh 2.26.

119
^•e"•.•^"orJ'

iM
MM
/

• ^
^

Hinh 2.26 Mo hinh IM kieu phan tan

Can hinh Server


^ De tang kha nang md rgng, he thong IM cd thi sir dung mgt hay
nhieu Server.
Kien triic mot Server. Mgi dich vu IM diu thue hien tren mgt
server duy nhat (tao tai^khoan, kilm chiing ngudi sir dung va cac dich vu
khac). Kien true nay dl bao tri server va tang cudng kha nang bao mat,
nhung khd md rgng he thing.
Kien triic nhieu Server. Phin Idn cac mang IM Idn diu sir dung
nhieu server. Cac server thudng dugc chia thanh hai loai: Nhan ban va Djch
vu phan tan.
Trong kieu thii nhat, mdi server cd thi thuc hien dugc tit ca cac djch
vy IM. Cac server gidng bet nhau (nen dugc ggi la nhan ban) va dugc kit
ndi vdi nhau. Cac client "dang ky" din mgt server "nha" va "ndi chuyen"
vdi client thugc server "nha" khac. Kiln triic Jabber theo kilu nay.

Hinh 2. 27 K l i n true nhi^u Server nhan ban

120
Trong kilu thir hai, cac dich vu khac nhau dugc cai dat tren cac
server khac nhau. Mgl server cd the cung cap dich vu dang ky lai khoan va
dang nhap he thong, trong khi chirc nang truyen tin nhan va thdng bao dugc
cai dat tren cac server khac.
Kiln triic MSNP cung cip nhilu server kiem chirng dat lai mien
messenger.hotmail.com. Sau khi dang nhap vao mien nay, client dugc
chuyen liudng tdi mgl Irong cac server kiem chimg. Sau khi kiem chung
thanh cdng, client cd thi dugc chuyin kit ndi sang mgt trong cac server thuc
hien nhiem vu canh bao. Client se kit ndi vdi server nao phu thugc vao vj tri
dja ly ciia server hay tai ciia server.

2.6.6. Kien true He thong MSN

Hai he thing IM dugc sir dung rgng rai nhit hien nay la AIM va
MSN trong khi ICQ dimg thir 5 trong danh sach. AIM va ICQ dugc quan ly
bdi AOL Time Warner va sir dung giao thiic OSCAR (Open System for
Communications in Real-time) trong khi MSN dugc Microsoft quan ly va sir
dung giao thirc MSNP (MSN Protocol).

M S N Protocol ( M S N P )

4t-

<:5
MSti (lienl

.Aulhtnlicotioft/llelfly
Servers

S^frit(llboa^(^
Server

Hinh 2. 28 Kiln true MSN

121
Server va Client trong mang MSN trao ddi cac lenh dugc ma hda
theo chuan UTF-8 qua TCP socket.
d day cd ba kieu server: Dispatch Server (DS), Notification Server
(NS) va Switchboard Server (SS).
Nhiem vu chinh ciia DS la thda thuan sir dung phien ban giao thirc
nao vdi client, sau dd se xac djnh server NS nao kilm soat ngudi sir dung.
Sau khi xac djnh, dja chi NS dugc chuyin cho client.
NS la thanh phin quan trgng nhit trong mang IM. Sau khi kilm
chiing dl dang nhap thanh cdng, Client va NS phai ding bd vdi nhau vl
trang thai cung nhu trao ddi cac thdng tin dj bd. Mgt s i sir kien trao dii giira
cHent va NS la khi thay dii trang thai (true tuyIn, ngoai tuyIn hoac ranh
rdi), yeu ciu lam viec vdi SS (trinh bay trong phin sau). Ngoai ra mgt vai
thdng bao khac cung cd thi trao doi giua NS va client (ching han thdng bao
cd thu mdi).
SS la thanh phan trg giiip client tao cac phien hdi thoai, chuyin tin
nhan gitra cac client. Moi mgt cugc hdi thoai se md mgt kit nli tir client tdi
SS. Khi Client 1 mudn ndi chuyen vdi Client 2, Client 1 se giri yeu ciu tdi
NS, NS se gan cho Client 1 mgt SS nao dd (SS 1), dong thdi giri thdng bao
tdiNS eiia Client 2, NS nay se yeu ciu Client 2 kit ndi tdi SS 1 dk nhan tin
nhan tir Client 1.

Hinh 2.29 Minh hpa cac budc cua MSNP

122
Sau day chiing ta thir phan tich mgt so boat ddng ciia giao thirc
MSNP.
Trong qua trinh hoat dgng, ngudi sir dung MSN thuc hien 2 budc
sau: Dang nhap vao he thing (liy danh sach ban be va trang thai ciia timg
ban he) va sau dd Giri va Nhan tin nhan.
Dau lien client (MSN) md mgt kit noi TCP tdi dja chi 64.4.13.58 d
port 1863. Sau khi thilt lap kit ndi, client va server se thda thuan vdi nhau
sir dung phien^ban nao cua giao thirc. MSN client giri thdng diep sau chira
danh sach cac giao thirc client cd thi sir dung dugc:
VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO
Trong giao thirc MSNP, trudng "trial id" dugc khdi tao la 0 va dugc
giri di trong tit ca cac thdng diep, cir sau mdi thdng diep, gia trj "trial id"
dugc tu ddng tang len 1. Server tra Idi kieu nhu sau:
VER 0 MSNP7 MSNP6 MSNP5 MSNP4
Khi dd Client va Server thda thuan dugc giao thiic se sir dung. K I
tilp client hdi server phuong phap ma hda khi kiem chimg.
INF 1
Khac Yahoo, MSN khdng giri mat khiu dudi dang nguyen khdng
ma hda. MSN se ma hda mat khiu dl mat khiu khdng bj Id tren dudng
truyin. Server tra Idi bang thdng diep sau:
INF 1 MD5
6 day MD5 la phuang phap bao mat ma server hd trg. Ke tiep client
giri usemame cho server
USR2 MD5 I venkv dude(g),liolmail.com
Server se kilm tra xem cd thdng tin gi ve ngudi diing nay hay
khdng. N I U cd Server se giri thdng diep kieu sau cho client:
XFR2 NS 64.4.13.55:1863 0
Q day server bao eho client bilt phai lien lac vdi Notification Server
(NS) cd dja chi 64.4.13.55 va cIng 1863. Sau dd Client va server ddng kit
ndi nay, client se md kit noi vdi NS mdi nhan dugc (64.4.13.55).

123
(client) VER 3 MSNP7 MSNP6 MSNP5 MSNP4 CVRO
(server) VER 3 MSNP7 MSNP6 .MSNP5 MSNP4
(client) INF 4
(server) INF 4 MD5
(client) U.SR 5 [email protected]
Sau dd NS server bilt dugc cac thdng tin vl ngudi dimg djnh dang
nhap. Server se tra Idi nhu sau:
USR5 MD5 S 989048851.1851137130
Chuoi "989048851.1851137130" la gia trj Hash theo kilu MD5. Nd la
mgt ham bam do server tao ra va dugc sir dung cho muc dich kilm chimg.
Client se gui server mat khiu da dugc ma hda theo MD5. Client si! giri ham
bam dugc tinh tao thanh tir chudi tren kit hgp vdi mat khiu ciia minh cho
server, ching ban: 3b7926d277068ec49576a0c40598ff21.
USR 6 MD5 S 3b7926d277068ec49576a0c40598ff21

N I U mat khiu nay diing, server se tra Idi dang sau:


USR 6 OK [email protected] venl<at

Tir cudi ciing la ten cua ngudi sir dung. Trong SMNP7, server cd thi
giri mgt vai thdng tin bo trg, ching ban thdng tin vl ngudi dimg va ma kilm
chimg (tuang tu cookie) sir dung eho cac muc dich khac.
IMSG Hotmai Hotmail 362
MIME-Version: 1.0
Content-Type: text/x-msmsgspro file; charset=UT
LoginTime: 1011252477
EmailEnabled: 1
MemberldHigh: 84736
MemberldLow: -1434729391
lang preference: 103
preferredEmai I: venky_dude(@hotmail.com
country: IN
PostalCode:
Gender: M
Kid:0
Age: 22
Sid: 517
kv: 2
MSPAuth:
2AAAAAAAADU0p4uxxxJtDJozJSlUTS0i7YpwnC9PUHRv56YK.\.\xCTWnigSS

Gid day ngudi sir dung da dang nhap he thong, nhimg vin d trong
trang thai khdng true tuyIn, dl chuyin trang thai, client se giri lenh sau:

124
CHO 7 NLN

Ngucri diing khdng giri ngay lenh nay vi cd the ngudi sir dung mudn
dang nhap he thdng nhung dudi che do an. Trong thdng diep Server Ira Idi
cd liet kc danh sach cac "ban be" d trang thai khac nhau, chang ban:

CHG 7 NLN
ILN 7 NLN [email protected] nick
ILN 7 AWY [email protected] mike
ILN 7 BSY [email protected] yeaxxx
MSG Hotmail Hotmail 223
MIME-Version: 1.0
Content-Type: text/x-msmsgsinitialemailnotification; charset=UTF-8
Inbox-Unread: 293
Folders-Unread: 0
Inbox-URL: /cgi-bin/HoTMaiL
Folders-URL: /cgi-bin/folders
Post-URL: http://www.hotmail.com

Dk cd danh sach cae ban be, client cd the sir dung lenh:
LST9RL

Nhan dugc lenh nay, server se giri cho client danh sach cac "ban
be", vi du:
L S I 9 RL 69 1 19 [email protected] venkat
L S I 9 RL 69 2 19 [email protected] PUJA
LST 9 RL 69 3 19 [email protected] ramachandran
L S I 9 RL 69 4 19 [email protected] chandramouli
LST 9 RL 69 5 19 [email protected] Narayanaswamy
LST 9 RL 69 6 19 [email protected] Venkatesh
LST 9 RL 69 7 19 [email protected] DKV
LST 9 RL 69 8 19 [email protected] Hetchar%20Ramachandran
LST 9 RL 69 9 19 [email protected] Aiyer
LST 9 RL 69 10 19 [email protected] Ganesh
LST 9 RL 69 11 19 [email protected] Deepak
LST 9 RL 69 12 19 [email protected] anil
LST 9 RL 69 13 19 [email protected] <Diamond>
LST 9 RL 69 14 19 [email protected] giri
LST 9 RL 69 15 19 [email protected] Hari
LST 9 RL 69 16 19 [email protected] radhika
LST 9 RL 69 17 19 [email protected] kannan
LST 9 RL 69 18 19 [email protected] Shankar
LST 9 RL 69 19 19 [email protected] puneet

125
Cir mdi khi cd mgt ngudi ban chuyen sang trang thai true tuyIn, NS
se giri thdng diep kieu sau cho client:

NLN 10 NLN [email protected] Venkatesh

Khi mgt ngudi ban thoat khdi mang (khdng true tuyIn), NS giri
thdng diep kieu sau:

FLN 10 FLN deaxxxx(^hotmail.com

Nhu vay, ngudi sir dung da dang nhap thanh cdng vao mang MSN,
sau dd ngudi su dung cd the giri va nhan cac tin nhin.
NSD chi cd the tham gia hdi thoai trong hai trudng hgp sau: NSD
khdi tao cugc hdi thoai vdi ai dd hoac ai dd khdi tao cugc hdi thoai vdi NSD.

NSD khoi tao cuoc hoi thoai

Tat ca cac cugc hdi thoai deu dien ra qua SS. Client giri lenh sau
yeu cau dja chi IP ciia Switchboard server

XFR9SB

NS giri thdng diep tra Idi chua dja chi IP, cdng cua SS eiing vdi ma
CKI. CKI la phuang phap bao mat ma client phai sir dung khi lien lac vdi SS.
XFR9 SB 64.4.13.88:1863 CKI 989487642.2070896604
Ke tiep Client se tao ra mgt ket noi mdi tdi SS cd dja chi vira nhan
dugc (64.4.13.88). Chii y ring client van duy tri kit noi tdi NS, kit ndi nay
chi dugc ddng khi NSD thoat khdi he thong. Sau khi kit noi thanh cdng,
chiing ta giii lenh sau cho SS:
USR 1 venky_dude(ghotmail.com 989487642.2070896604
NIU CKI diing, SS se giri cho chiing ta lenh tucmg tu sau:
USR 1 OK [email protected] venkat
Sau dd, NSD ed the "ggi" ban be de tham gia hdi thoai thdng qua
lenh sau

CAL 2 [email protected]

126
Thdng diep tra Idi tir Server se djnh danh phien hdi thoai (session
id). Dinh danh nay se dugc chuyen tiep cho NSD se tham gia hdi thoai.

CAL 2 RINGING 11717653


Khi NSD khac tra Idi thdng diep va san sang hdi thoai, SS giri lenh
sau cho client:
JOI deadlee(a;hotmail.com Venkatesh
Lenh nay chirng Id NSD khac da tham gia hdi thoai va san sang
giri/nhan cac tin nhan.
NSD nhan yeu cau hdi thoai tir NSD khac
Khi NSD 1 dugc NSD 2 mdi "hdi thoai" thi NS ciia NSD 1 giri
thdng diep sau cho client ciia NSD 1:
RNG 11742066 64.4.13.74:1863 CKI 989495494.750408580
[email protected] Venkatesh
Thdng diep nay chira session id, dja chi IP va cdng ciia
SwitchBoard, ma hash CKI va ten ngudi diing khdi tao cugc ndi chuyen.
NSD ket ndi den SS va giri lenh sau:
ANS 1 [email protected] 989495494.750408580 11742066
Cl day, NSD giri ten dang nhap, ma CKI va session ID ma server da giri
Server tra Idi:
IRQ 1 1 1 [email protected] Venkatesh
va
ANS 1 OK
Bay gid hai ben cd thi tien hanh hdi thoai vdi nhau. Trudc khi nhan
va giri thdng diep, chiing ta se xem each thiic client xay dung thdng diep
nhu the nao.
Tieu dl thdng diep cd khudn dang sau:

MIIVIE-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22

127
Khudn dang thdng diep dugc giri di:
MSG 2 N 137
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
hello

2 la "trial id", gia trj nay dugc tu ddng tang len 1 sau moi thdng diep giri di,
137 la do dai toan bd thdng diep Thdng diep tra Idi cd khudn dang tuang tu:

MSG deaxxxx(ghotmail.com Venkatesh 137


MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
Hello

2.6.3 Kien true ehia se file ngang hang Gnutella

Gnutella liic dau dugc phat trien tai AOL, sau dd tach ra va dugc
nhieu ngudi phat trien. Hien tai cd kha nhilu he thing ke thira kiln tnic nay,
chang ban LimeWire, BearShear, Gnucleus, XoloX, va Shareaza.

Kien true Gnutella

Gnutella khdng cd mgt server chi muc trung tam nhu Napster. Mang
Gnutella gom cac nut ngang hang nhau (peer), cd thi ddi mgt kit ndi true
tiep vdi nhau. Cac niit nay cdn dugc ggi la servenL vi vira ddng vai trd client
(khi yeu cau nut khac) Ian server^(khi dap iing .yeu cau tir.niit khSc')? Cae nut
cd ban ghi thdng tin chi muc vl toan bd (hoac mgt phin) he thdng.

Mudn gia nhap mang Gnutella, mit phai xac djnh dugc dja chi mgt
mit da nam trong mang Gnutella. Dieu nay cd the thuc hien bang each sir
dung GnuCache - luu giir dja chi mgt sd nut ludn ludn ket ndi vao mang
Gnutella. Sau dd, nut muln gia nhap giii thdng diep GNUTELLA CONNECT
tdi cac nut da nam trong mang Gnutella. Neu chip nhan, mit nhan dugc

128
thdng diep yeu cau se gii-i thdng diep GNUTELLA OK (neu khdng chap nhan
cd the giri thdng diep bat ky, cd kha nhieu ly do tir chdi ket ndi, chang ban
do qua tai ket ndi). Sau khi ket ndi vao mang, nut gu'i cac thdng diep "ping"
tdi cac "hang xdm" de tim kiem them cac nut khac. Do ban chat ddng ciia
mang (cac niit cd the thoat khdi mang bat ky liic nao) nen mgt niit thudng
giir ket ndi vdi nhieu nut khac (de tranh trudng hgp neu ket ndi vdi mgt mil
duy nhat, niit nay thoat khdi mang se keo theo nut mat ket ndi vdi mang).
Khi nhan dugc thdng diep "ping", niit giri thdng diep "pong" tra Idi va
thdng diep nay phai di theo dung tuyen dudng ciia thdng diep ping tuong
umg.

Hinh 2.30 V i d y v§ mgng Gnutella

Thdng diep nay chira thdng tin chi tiet ciia nuL chang ban dja chi IP,
sd hieu port, sd lugng file va khdi lugng (tinh theo byte) dugc chia se. Mang
Gnutella khdng cd server chi muc trung tam ma mdi nut duy tri chi muc
rieng ciia minh. De tim kiem file, nut se giri truy van tdi tat ca cac mit "hang
xdm". Khi nhan dugc truy vin tir hang xdm, niit se kiem tra dtr lieu cue bg
cua minh de xem cd dap ung dugc hay khdng. Trong trudng hgp cd the dap
img dugc, mit giri thdng diep queryHit cho niit dang tien hanh tim kiem.
Neu khdng dap iing dugc, nut chuyen tiep thdng diep tdi cac hang xdm cua
minh. Chii y trong trudng hgp nut tao thdng diep queryHit nam ding sau
firev^'all, mit tim kilm khdng thi tao kit ndi TCP tdi dugc, khi dd, niit tim
kiem phai giri thdng diep Put tdi mit chira dtr lieu. Niit nay se tao dudng ket
noi HTTP tdi nut tim kilm. Viec truyen file dugc thuc hien nhd giao thiie
HTTP.

129
Vi cac niit se giri quang ba thdng diep, nen dl tranh tinh trang lam
"tran ngap" mang, Irong tieu dl mdi thdng diep cd trudng TTL (Time-to-
Live), gia trj ciia trudng nay se dugc giam di mgt tai moi mit. Tai nut nao
ma trudng nay cd gia trj 0, niit se xda thdng diep tuang irng. Dilu nay khiln
mgt thdng diep khdng the luu chuyen mai mai tren mang. Moi mil phai ghi
nhd djnh danh thdng diep va trudng dtr lieu ciia mdi thdng diep nhan dugc
de tranh tinh trang giii triing lap thdng diep. K I tilp chting ta se md ta giao
thiic Gnutella.

Trong Lich sit


Kazaa, mpt trong nh&ng m?ng chia se file " l i y lipng" n h i t th§ giai, vOa
c h i p nh^in tra 100 trifu USD de dan x§p vy ki?n ban quy§n vo-i nglinh cong
nghifp nh^c s6 yk difn anh cua My.

Theo thoa thuan, chu sa hi/u cua Kazaa - Sharman Networks se tra cho
4 hang dTa dai gia la Universal Musicm Sony BMG, EMI va Warner Music han
100 tri#u USD, cung W\ cam ket se "hoat dpng hpp phap". Hipp hpi Dl§n anh
Hoa Ky cho^biet Sharman se tiep tyc duy tri Kazaa vS trien khai thSm nhieu cong
nghp m6'i de ngSn ch|n vipc phat tan tr^i phep cac nOi dung co ban quyen tren
mang . Kazaa da phai tien hanh dan xep tgl 2 dja diem cung mpt luc: mpt 1^ tgi
Uc, nai toa an da ra phan quyet ring Sharman Networks vi pham ban quyen. Vy
ki$n kia 1^ tai^ California, v^ hai nguai sSng lap ra Kazaa \k Niklas Zennstrom v^
Janus Friis deu bj bupc tpi dong pham.
Sau khi ban lai Kazaa cho Sharman Networks vao n§m 2002, Zennstrom
vi^Friis da cung nhau tao ra Skype - phin mem gpi dipn Internet thong dyng
nhit hipn nay. Sau day, hp lai tiep tyc ban Skype cho eBay doi lay 2,6 ty USD
tien mat va co phieu.
B i l u tu-p-ng lei chinh

Ng^nh c6ng nghifp §m nhac d§ theo duoi mOt chinh sich ph^p ly quy^t
li$t nhim tieu di#t nan §n cap ban quyen qua mang Internet RIAA (Hi$p hOi ghi
§m Hoa Ky) da dp dan kipn mpt loat mang chia se file nhu Kazaa v^ Grokster
cung h^ng chyc c^ nh§n vi phgm. N 5 lye cua hp cang dupe khuyen khich khi
nSm^ ngo^i, T6a ^n T6i cao Hoa Ky tuyen bo c^c nh^ cung d p nOi dung c6
quyen kipn nhung h§ng cong nghp tiep tay cho ngn x§m phgm ban quy^n. Cung
luc, nhung djch vy nhac so hpp ph^p nhu ilunes cung an nen Idm ra mpt c^ch
bat ngd, khien cho nguai diing nguoi ngoai "noi nh6" mang P2P. That ra, theo
gidi phan tich, vy ddn xep chi mang y nghla bieu tupng IS chinh, bdi Kazaa d§
qua thdi ky dinh cao cua n6. "Ngdy nay, hau nhu rit it ngudi c6n diing Kazaa.
Da xuat hipn nhieu djch vy uu vipt han, nhung d§y Id mpt chiin thing phap ly
mang tinh bieu tupng cho RIAA", chuyen gia Jonathan Arber nhan djnh.
N§m ngoai, doanh thu dTa CD lau dat tdi 4,5 ty USD, tu-c la cu- 3 dTa CD
dupe bdn thi lai co han 1 chlec la dia lau. So lupng ban nhac bj download trdi
ph6p Id 20 ty, tuc Id binh quan moi ngudi tren trdi dit download tdi 3 bdi.

130
Gia sir NSD A mudn ket ndi tdi mang Gnutella de tim kiem file
(Xem Hinh 2.30). A giri thdng diep truy van tdi hang xdm ciia minh - la B.
Dau lien B kiem tra xem cd phai day la Ian dau lien minh nhan thdng diep
nay hay khdng. B neu cd dtr lieu can tim se giri thdng diep queryHit tdi A. B
giam trudng TTL trong lieu de thdng diep di 1, va giri tiep thdng diep den C,
D va E. C, D, va E tiep tuc thuc hien cac thao tac tuong tu va chuyen thdng
diep tdi F, G, H, va 1. 4 NSD nay se thuc hien thao tac tuong tu de chuyen
thdng diep tdi J. Gia sir H la niit dau tien chuyen tiep thdng diep tdi J, khi dd
cac thdng diep gidng nhu vay do G va I chuyen cho J se bj J loai bd (vi J da
nhan dugc thdng diep nhu the rdi). Bay gid, gia sir J cd dtr lieu ma A can, J
se giri thdng diep queryHit tdi A (thdng diep nay di theo diing tuyen dudng
cu nhung theo chieu ngugc lai, tir J, qua H, qua E, B rdi den A). Sau dd A cd
thi ket ndi true tilp din J de tai dir lieu ve theo giao thirc HTTP.

Khuon dang thong diep cua giao thuc Gnutella

Cae thdng diep eiia giao thiie Gnutella dugc chia thanh 5 kieu: Ping,
Pong, Query, QueryHit, va Push.

P i n g : Dugc sir dung dl phat hien cac mit tren mang. Mgt mit khi
nhan dugc mgt thdng diep Ping cd thi tra Idi bing mot hoac nhieu thdng
diep Pong.

P o n g . Thdng diep tra Idi cho Ping. Chiia dja chi va cac thdng tin
ciia niit (ching ban danh sach cae file chia se).

Q u e r y . La thdng diep phuc vu muc dich tim kiem tren mang. Neu
nhan dugc truy vin ma cd dii- lieu dap img dugc, mit giri thdng diep
QueryHit tra Idi.

Q u e r y H i t . La thdng diep tra Idi thdng diep Query. Th"dng diep


nay cung cip cac thdng tin can thiet de phia tim kiem ed the tai file.

P u s h . Dugc cac niit ding sau fire-wall sir dung khi mudn chuyen
dii lieu cho nut khac.

131
C a c t h o n g tin tieu d e

0 1'' 23 Variable (0 ..Mac)

1 Descriptor Header Descriptor Payload

"J 6 1
13 W •••••• ...2

1 DescnplorlD Psyioac Descriptor TTL boos P3"-^ oad Length

Hinh 2.31 Khuon dang tong quat cua thong dipp GNUTELLA

Hinh 2.31 minh hga tieu de gdm 5 trudng ciia mgt thdng diep
Gnutella tdng quat:
• Descriptor ID (Dinh danh thong diep) xac djnh duy nhit mgt
thdng diep tren mang.
• Payload Descriptor (Du- lieu) Xac djnh kilu thdng diep (0x00 cho
Ping, 0x01 cho Pong, 0x40 cho Push, 0x80 cho Query, and 0x81 cho
QueryHit).
• TTL Sd chang ma thdng diep cd the Ian tda tren mang.
• Hops: Sd chang ma thdng diep da di qua (tong ciia gia trj nay vdi
gia trj TTL la gia trj TTL khdi diu).
• Payload Length: Do dai cua trudng dtr lieu.

M 6 ta triroTig dir lieu


Cd nam kilu trudng dtr lieu khac nhau (inig vdi 5 kilu thong diep).
1. Ping

Thdng diep Ping khdng ed trudng dir lieu.


2. Pong

2 6 10 13
Port I IP .Address #Files snared #Kilcl3yte3 Shared

Hinh 2.32 Khuon d^ng thong dif p PONG

132
Dir lieu trong thdng diep Pong cd bdn phan (Hinh 2.32).Thdng diep
Pong d.rgc giri de tra Idi tiidng diep Ping. Mgt thdng diep Ping cd the cd
nhieu thong diep Pong tra Idi.
Port: .so hieu cdng host chap nhan kel ndi.
IP Address: dia chi IP ciia niit.
#Files Shared: Sd lugng file ma host chia se.
^Kilobytes Shared: Sd lugng KB host da chia se.

3. Query

0 2
Minimum Speed Search Criteria

Hinh 2.33 Khuon dang thong di^p Query

La thdng diep truy van, gdm hai phan: Minimum Speed va Search
Criteria.

Minimum Speed: Tdc do cue tieu (dan vi KB/s) ma nut cd the dap
irng \ d i thdng diep.

Search Criteria: Tieu chi tim kiem, do dai cua trudng nay bj gidi
ban bdi gia trj trudng Payload Length trong tieu de thdng diep.

n N w+16
f J u r i D ^ : 01 Hits I PQ'l I I!-' AgCre^S | S p e e d Meji-U Set | S?r.-cnl Idorli-i-jf I

Fie Index I FiieSze F is Name

Hinh 2.34 Khuon dang thong di^p QueryHit

4. Thong diep QueryHit tra Idi cho thdng diep Query. Thdng diep
nay dugc mil cd the dap irng yeu cau giri cho mit ed yeu cau. Djnh danh
thdng diep trong tieu de thdng diep QueryHit triing vdi djnh danh thdng diep
ciia t:hdng diep Query tuang irng. Dieu nay cho phep niit nhan cd the xac
djnh ket qua tra Idi ung vdi cau hdi truy van nao.

133
Number of Hits: Sd lugng cac cau tra Idi trong Result Set.
Port: Sd hieu cdng ma nut cd the chap nhan cac kit noi.
IP Address: dja chi IP ciia nut tuong ung
Speed: tdc do (KB/s) ciia nut.

Result Set: Tap hgp cac ket qua thda man cau truy vin. Tap hgp nay
bao gdm cac ban ghi lien tuc nhau, mdi ban ghi gdm ten file, kich thude file
va dudng dan den file.

Servent Identifier: la chudi 16-byte xac djnh niit duy nhit tren mang.

5. Push (0x40)

0 16 20 24 25
Setvent Identifier File Index iPAcdress Port

Hinh 2.35 Khuon d^ng thong di?p PUSH

Thdng diep Push dugc sir dung bdi nut yeu ciu dl nghj mit cd dtr
lieu nhung d phia sau firewall khdi tao kit nli trudc.
Servent Identifier: chudi 16-byte xac djnh niit dugc de nghj chuyin
file cd dudng dan dat d Filelndex. Djnh danh nay phai gidng vdi djnh danh
trong thdng diep QueryHit tuong irng.
File Index: xac djnh file dugc dl nghj giii.
Port: Sd hieu cdng ma mit cd thi chip nhan cae kit nli.
IP Address: dja chi IP ciia mit tuong irng.

2.7 LAP TRINH SOCKET

Phan nay gidi thieu qua trinh phat friln ung dung mang. Trong cac
phan trudc, chiing ta da biet phin Idn cac img dung mang gdm hai phia:
Client va Server. Hai phia trao ddi vdi nhau bing each giri va nhan cac
thdng diep qua Socket. Phan nay se gidi thieu cac budc chinh trong qua trinh

134
phat Uiln cac irng dung mang. Sau dd chiing ta se gidi Ihieu mgl chuong
trinh Web sei^ver rat dan gian.

2.7.1 Cac ham thao tac tren Socket

Diu lien, chuong trinh phia server phai chay va ling nghe tren mgt
cong nao dd dl dgi phia client kit ndi tdi. N I U mgi viec dien ra binh thudng
(kit ndi thanh cdng), ca hai phia diu cd hai thi hien ciia lap Socket va dtr
lieu se dugc truyen qua hai socket nay.

D I md socket MyClient, phia client se thuc hien khai bao va sau dd


sir dung phuang thirc tao mdi Socket nhu sau:

Socket MyClient;
try{
MyClient = new Socket("Machine name", PortNumber);
}
catch (lOException e) {
System.out.println(e);
}
trong dd Machine name la ten (hoac dja chi IP) cua may tinh server, va
PortNumber la so hieu cdng ma tiln trinh server dang chay "lang nghe" (dgi
kit nli tir client). Chii y cac port tir 0-1023 dugc sir dung cho cac irng dung
dac biet (HTTP, FTP, SMTP) nen ban hay lira chgn cong cd so hieu Idn ban
1023.
Phia server se md socket bang each sau:
ServerSocket MyService;
try{
MyServerice = new Sen/erSocket(PortNumber);
}
catch (lOException e) {
System.outprintln(e);
}
Phia server cin phai khdi tao doi tugng ciia Idp ServerSocket vdi
muc dich ling nghe va chip nhan ket ndi den tir client.
Socket clientSocket = null;

135
try{
serviceSocket = MyService.accept();

catch (lOException e) {
System.out.println(e);
}

Tao ddi tuong Input Stream d phia client

Phia client phai sir dung Idp DatalnputStream tao input vdi muc dich
nhan thdng diep tra Idi tir server:
DatalnputStream input;
try{
input = new DatalnputStream(MyClient.getlnputStream());

catch (lOException e) {
System.out.println(e);
}

Lap DatalnputStream cho phep ban dgc timg ddng van ban hoac cac
ddi tugng thugc kilu co ban trong ngdn ngir lap trinh .lava (ching ban read,
readChar, readint, readDouble, va readLine).

0 phia server, cung sir dung Idp DatalnputStream dl nhan thdng


diep tir client:

DatalnputStream input;
try{
input = new DatalnputStream(serviceSocket.getlnputStream());

catch (lOException e) {
System.out.println(e);
}

Tao output stream

Phia client cd thi sir dung lap PrintStream hoac DataOutputStream


cua Java.io dl giri thdng diep cho server.

PrintStream output;
try{
output = new PrintStream(MyClienLgetOutputStream());

136
t
catch (lOException e) (
System.out.println(e);
}
Ldp PrintStream cd phuong thirc dl hiln thi cac kieu dtr lieu ca ban
ciia .lava dudi dang van ban (Ching ban cac phuang thuc Write hoac
Println), cdn ldp DataOutputStream cd thi dugc sir dung nhu sau:
DataOutputStream output;
try {
output = new DataOutputStream(MyClienLgetOutputStream());
}
catch (lOException e) {
System.ouLprintln(e);
}
Ldp DataOutputStream cung cho phep viet cac kilu dii lieu ca ban
trong Java (vi du phuang thirc writeBytes).
Ldp PrintStream dugc phia server sir dung de giri thdng diep cho
client.

PrintStream output;
try {
output = new PrintStream(serviceSocket.getOutputStream());
}
catch (lOException e) {
System.ouLprintln(e);
}

Dong kit noi

Phai ddng output va input stream trudc khi ddng socket.

C phia client:

try{
output.closeO;
input.closeO;
MyClientcioseO;
}
catch (lOException e) {
System.out.println(e);

137
}

(J phia server:

try{
output.closeO;
input.closeO;
serviceSocket.closeO;
MyService.closeO;
}
catch (lOException e) {
System.outprintln(e);
}

2.7.2 Vi du mot chu-o"ng trinh client/server do-n gian

Vi du don gian nay minh hga mgt ung dung server/client don gian.
Client se giri cho Server mgt chudi. Server se giri phan hdi chuoi nay cho
Client Trong vi du nay sir dung dja chi may tinh la localhost (img vdi dja
chi IP 127.0.0.1), khi dd ca server va client chay tren cimg mgt may tinh.

Day la ma ngudn cua Server.java:

import Java.lang.*;
import Java.io.*;
importjava.net.*;
class Server {
public static void main(String argsH) {
String data = "Toobie ornaught toobie";
try{
ServerSocket srvr = new ServerSocket(1234);
Socket skt = srvr.acceptO;
System.outprint("Server has connectedhn");
PrintWriter out =
newPrintWriter(sktgetOutputStreamO,true);
System.outprintC'Sending string: '" + data +
"•\n");
ouLprint(data);
out.close();

138
skt.closeO;
srvr.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't
workhn");
}
}
}
Khoi chuang trinh chinh nim trong khdi try{}. Ddi tugng
ServerSocket dugc khdi tao dl ling nghe cdng 1234. Sau khi khdi tao, ddi
tugng Socket sir dung phuang thirc accept() ,ciia ldp ServerSocket de dgi
client kit nli din. Phuang ihire nay tra lai mgt doi tugng cua ldp Socket
(skt) - dii tugng nay ddng vai trd "diu miif truyin thdng d phia server.
skt.getOutputStreamO tra lai output stream qua dd server ed the giri thdng
diep tdi client, va skt.getlnputStreamO tra lai input stream qua dd server cd
thi nhan thdng diep tir client. Vi du nay tao ra ddi lugng PrintWriter sir durig
output stream dl don gian hda viec kit xuit va giri dti- lieu (dat trong bien
data) tdi client (out.print(data)).

Day la ma chuang trinh Client.java:

import Java.lang.*;
import java.io.*;
import Java.net*;
class Client {
public static void main(String argsG) {
try{
Socket skt = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new
InputStreamReader(skLgetlnputStreamO));.
System.ouLprintC'Received string:'");
while (lin.readyO) {}
System.out.println(in.readLineO);
System.outprint("'\n");
in.closeO;
}
catch(Exception e) {
System.ouLprintC'Whoops! It didn't worklVn");
}
}
}

139
Chiing ta thay khdi chuang trinh chinh ciia client cung nim trong
khdi try{}. Mgt ddi tugng ciia Idp Socket dugc tao ra dl kit ndi tdi server. 6
day, client se ket noi Idi server cd dja chi localhost d cdng 1234 -- cdng ma
server dang lang nghe. Sau khi dugc tao ra, socket ciing boat dgng tuang tir
nhu ddi tugng ldp ServerSocket trong file Server.java. Tilp theo, input
stream dugc tao ra va la du lieu dl khdi tao mgl doi lugng thugc ldp
BufferedReader. Dtr lieu dugc dgc tii- Idp nay va hiln thj len man hinh.

2.7.3 Web server don gian

Trong phan nay chiing ta se phan tich va phat friln ung dung Web
server rat dan gian. Chuang trinh cua chiing ta khi thuc thi se dgi yeu ciu tir
trinh duyet va nlu cd ddi tugng dugc yeu ciu se giri ddi tugng cho trinh
duyet. Ddi vdi img dung Web, trinh duyet (client) ludn la phia thilt lap kit
ndi trudc va sau dd giri yeu ciu HTTP. Phia server khdng cd nhiem vu kit
ndi vdi client, tuy nhien ca hai phia diu cd kha nang ddng kit noi. Ching
ban, khi NSD nhin mit Stop tren trinh duyet thi cd thi khiln trinh duyet kit
thiie viec tai file vl va sau dd ddng kit noi TCP lai.
HTTP Request

Nhu chiing ta da ndi trong phin 2.2, yeu ciu HTTP cd ba thanh phin
chinh

• Phuang thirc / Phien ban giao thirc


• Tieu de cua thdng diep yeu ciu
• Than yeu cau

Mdi yeu cau HTTP cd thi sir dung mdt trong cac phuong thirc sau-
GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, trong do GET va
POST la thdng dung nhit. Sau phin phuang thiic la URL - dja chi ciia tai
nguyen, dja chi nay thudng la dja chi tuong doi so vdi thu muc root cua
Web server. Phin tieu dl thudng chira cac thdng tin ve mdi trudng ciii trinh
duyet (ten, phien ban trinh duyet; he dilu hanh cua may client...). Cic tieu
dl each nhau bing ky tu xudng ddng (CR-LF).

140
HTTP Response
Thdng diep tra Idi ciia HTTP gdm 3 phan sau
• Trang thai giao thirc / Md la trang thai
• Tieu de ciia thdng diep
• Than thdng diep

U'ng dung Web server trinh bay d day gdm ba ldp chinh:
• HttpServer
• Request
• Response

Chutmg trinh chinh dugc cai dat trong ldp HttpServer. Phuang thiic
mainO ciia kip nay se tao ra mgt dii tugng HttpServer va sau dd ggi phuang
thirc await dl dgi mgt yeu ciu tir client (tren mgt cdng nao dd), xir ly yeu
ciu va sau dd giri kit qua cho client. Ddi tugng HtttpServer se dgi cho den
khi nhan dugc lenh Shutdown.
Web server nay rit don gian, chi giri cac ddi tugng tTnh (cae file
HTML, file anh). Nd khdng chip nhan tieu dl (ching ban ngay thang,
cookie) tir trinh duyet.

Lop HttpServer

Ldp HttpServer bilu diln doi tugng Web server va cd the phuc vu
cac yeu ciu ddi tugng tTnh la cac file nim trong thu muc dugc xac djnh bdi
biln tTnh WEB„ROOT va cac thu muc con ciia thu muc nay. WEB_ROOT
dugc khdi tao nhu sau:
public static final String WEB_ROOT =
System.getPropertyC'user.dir") + File.separator + "Webroot";

D I yeu ciu ddi tugng tTnh, danh dja chi kieu nhu sau trong thanh dja
chi cua trinh duyet:
http://machineName:port/staticResource

NIU yeu ciu nay dugc giri tir mgt may tinh khac may tinh chay
chuang trinh Web server, thi maehimeName la dja chi IP ciia may tinh chay
Web server; cdn nlu hai chuang trinh chay tren cimg mgt may tinh thi
machineName cd thi la localhost hoac 127.0.0.1. Port la 8080 va

141
staticResource la ten file dugc yeu cau (file nay phai nim trong thu muc
WEBROOT).

Vi du, neu hai chuang trinh chay tren ciing mgt may tinh \a trinh
duyet mudn yeu cau file index.html nim trong thu muc WEB_ROOT thi go
dia chi sau:

http://localhost:808G/index.html

De ngimg boat ddng ciia server, cd thi tir trinh duyet gui lenh
SHUTDOWN cho server

http://localhost:8080/SHUTDOWN

Lenh SHUTDOWN dugc cai dat bing mgt b i l n tTnh ben frong ldp
HttpServer:
private static final String SHUTDOWN_COMMAND = "/SHUTDOWN";

Chiing ta xet phuang thiic await sau day:

public void awaitO {


ServerSocket ServerSocket = null;
int port = 8080;
try{
ServerSocket = new ServerSocket(port, 1,
lnetAddress.getByName("127.0.0.1"));

catch (lOException e) {
e.printStackTraceQ;
System.exit(l);
}

// Vdng lap, du'p'c sir dyng d4 dg-i k i t ndi tip server,


while (Ishutdown) {
Socket socket = null;
InputStream input = null;
OutputStream output = null;
try{
socket = serverSocketacceptO;
input = sockeLgetlnputStreamO;
output = socketgetOutputStreamO;

// Tao va sau do phan tich d6i tu'crng Request


Request request = new Request(input);

142
request.parse();

// Tao ddi tirgng Response


Response response = new
Response(output);
response.setRequest( request);
response.sendStaticResourceO;

II Dong kit nli


socket.closeO;
//Kilm tra xem yeu c i u d i n tip client c6 la
lenh shutdown hay khong

requesLgetUri0.equals(SHUTDOWN_COMMAND);
}
catch (Exception e) {
e.printStackTraceO;
continue;
}
}
}
Phuang thirc await bit diu bing each tao mgt dii tugng thugc ldp
ServerSocket va dat nd trong vdng lap while.
serverSocket= new ServerSocket(port, 1, lnetAddress.getByName("127.0.0.1"));

// Dg"! k i t ndi
while (Ishutdown) {

}
Doan ma ben trong vdng lap while bit diu bing phuang thiic
accept cua ldp ServerSocket, fra lai kit qua la yeu ciu HTTP nhan dugc
tir cdng 8080:

socket = serverSocketaccept();

Khi nhan dugc yeu ciu, phuang thirc await tao ra ddi tugng
java.io.InputStream va java.io.OutputSfream tir ddi tugng Socket i.

input = sockeLgetlnputStreamO;
output = socketgetOutputStreamO;

143
Phuang thirc await cting tao ra ddi tugng Request va ggi fhuoug
thirc parse dl phan tich yeu ciu HTTP.
Request request = new Request(input);
requestparseO;

Ke tiep, tao ra ddi tugng Response va khdi tao cho ddi tugig nay
nhd ddi tugng Request va sau dd sir dung phuong thirc sendStaticResource
de giri ddi tugng.
Response response = new Response(output);
response.setRequest(request);
response.sendStaticResourceO;

Cuoi eiing, ddng Socket va sir dung phuang thirc getUri cia lap
Request dl kilm tra xem yeu ciu cd phai la lenh kit thue SHUTDOWN hay
khdng.
// Dong socket
socket.closeO;
//Kiem tra co phai la lenh SHUTDOWN khong
shutdown = request.getUri0.equals(SHUTDOWN_COMMAND);
Phan tich I6p Request

Ldp Request thuc hien viec bilu diln va xir ly yeu ciu HTT'. Ddi
tugng cua ldp nay dugc khdi tao tir doi tugng ciia ldp Socket dl thin hien
viec truyen thdng vdi Client.

Ldrp Request cd hai phuang thirc chinh: parse va getUri. Piuong


thirc parse phan tich dii lieu thd trong yeu ciu HTTP. Nd sir dung piuang
thuc parseUri dl lay ra URL. Phuang thiic parseUri dat gia frj UR:. vao
biln uri. Phuang thirc getUri fra lai URL cua thdng diep yeu ciu HTTL
Chit y ring thdng diep HTTP yeu ciu gdm ba phin: ddng yei ciu,
cac tieu de va than thdng diep. Tuy nhien frong vi du nay, chiing ta ch quan
tam den ddng yeu ciu (ddng nay gom ba phin: tir khda la ten phuang thirc
yeu ciu, ten doi tugng va cudi ciing la phien ban giao thiic HTTP; cae phin
each nhau bing diu each). Vi du
GET/index.html HTTP/1.1
la yeu ciu file index.html bing phuang thiic GET.

Phuang thiic parse dgc toan bd ludng byte tir socket InputSream,
sau dd chuyin cho doi tugng va sau do luu giii lulng byte nay frong not bg
dem. Bd dem nay sau dd dugc diing dl khdi tao cho doi tugng request ciia

144
ldp StringBuffer. Ddi lugng nay sau dd dugc chuyen sang kieu String de
phucng lliirc parseUri cd the phim tich

publ c void parse() {


// Doc cac ky ty tir socket
StringBuffer request = new StringBuffer(2048);
int i;
byte[] buffer = new byte[2048];
try{
i = input.read(buffer);
}
catch (lOException e) {
e.printStackTraceO;
i = -1;
}
for(intj=0;j<i;j-^+){
request.append((char) buffer[j]);
}
System.out.print(requesttoStringO);
uri = parseUri(request.toStringO);
}
Sau dd phuang thiie parseUri se liy dja chi URL tir ddng yeu cau
bing each trich chudi nam gitra hai dau each dau tien.
private String parseUri(String requestString) {
int indexl, index2;
indexl = requestString.indexOf('');
if (indexl !=-1){
index2 = requestString.indexOf('', indexl + 1);
if (index2 > indexl)
return requestString.substring(index1 + 1,
index2);
}
return null;
}
Phan tich I6p Response

Ldp Response bilu dien thdng diep HTTP tra Idi, cd thi sir dung
ddi tugng thugc ldp OutputStream de khdi tao nhu sau:
public Response(OutputStream output) {
this.output = output;
}

145
Ddi tugng Response se dugc ldp HttpServer khdi tao bang viec gan
ddi lugng OutputStream dugc tao ra tir socket.

Ldp Response cd hai phuong thirc: setRequest va


sendStaticResource. Phuong thirc setRequest se gan ddi tugng Request
cho ddi tugng Response.
public void setRequest(Request request) {
this.request = request;
}
Nhiem vu ciia phuong thirc sendStaticResource la giri ddi tugng
tTnh, chang ban file HTML
public void sendStaticResourceO throws lOException {
byte[] bytes = new byte[BUFFER_SIZE];
FilelnputStream fis = null;
try{
File file = new File(HttpServer.WEB_ROOT,
requesLgetUriO);
if (file.existsO) {
fis = new FilelnputStream(file);
int ch = fis.read(bytes, 0, BUFFER_SIZE);
while ( c h ! = - 1 ) {
output.write(bytes, 0, ch);
ch = fis.read(bytes, 0, BUFFER_SIZE);
}
}
else { Khong tim thiy file
String errorMessage = "HTTP/1.1 404 File
Not Found\r\n" + "Content-Type:
text/htm l\r\n" +
"Content-Length: 23\r\n" + "\r\n" +
"<h1>File Not Found</h1>";
output.write(errorMessage.getBytesO);
}
}
catch (Exception e) {
System.outprintln(e.toString());
}
finally {
if (fis 1= null)
fis.closeO;
}

146
'huQ-ng
I>1 thirc sendStaticResource rat dan gian, sir dung tham sd la
dudng dan day dii ciia thu muc gdc (WEB_ROOT) va ten file yeu cau khdi
tao doi tugng file thugc ldp java.io.File.

File file = new File(HttpServer.WEB_ROOT, request.getUriO);

Dau lien se kiem tra xem file nhu vay cd tdn tai khdng. Neu tdn lai,
phuang thirc sendStaticResource se tao ra mgt ddi tugng thugc ldp
java.io.FilelnputStream tir ddi lugng File. Ke tiep se sir dung phuang thirc
read ciia ldp FilelnputStream de ghi ludng byte len OutputStream. Ndi
dung ciia ddi tugng tTnh dugc giri cho trinh duyet dudi dang dtr lieu thd.

if (file.existsO) {
fis = new File!nputStream(file);
int ch = fis.read(bytes, 0, BUFFER_SIZE);
while (ch ! = - 1 ) {
output.write(bytes, 0, ch);
ch = fis.read(bytes, 0, BUFFER_SIZE);
}
}
NIU file khdng ton tai, phuang thirc sendStaticResource giri thdng
bao Idi cho trinh duyet

String errorMessage = "HTTP/1.1 404 File Not Found\r\n" +


"Content-Type: text/html\r\n" +
"Content-Length: 23\r\n" +
"\r\n" +
"<h1>File Not Found</h1>";
output.write{errorMessage.getBytesO);

147
Chirong 3
TANG GIAO VAN

3.1 DICH V U V A N G U Y E N T A C C U A TANG GIAO VAN

Nim gitra tang img dung va tang mang, tang giao van la ting trung
tam trong kien triic phan tang vdi nhiem -vu cung cap djch vu truyin thdng
gitra cac tiln trinh ung dung chay tren cae may tinh khac nhau. Chuang nay
nghien ciin tat ca djch vu ciia tang giao van ciing nhu cac nguyen tic ca ban
thue hien dilu nay theo nhilu each tilp c^n khac nhau. Chiing ta se xem
each thiic djch vu nay dugc cai dat trong cac giao thirc. Ting giao van cua
Intemet cd hai giao thuc quan trgng la TCP va UDP.

Hai chuang trudc da ndi ve vai trd va nhirng djch vu ma ting giao
van cung cip, vay cho din bay gid, chiing ta da bilt gi vl ting giao van?

Giao thirc tang giao van cung cip mgt kenh truyin logic (ao) giiia
cac tien trinh img dung chay tren may tinh khac nhau. Ggi la logic vi khdng
tdn tai mgt dudng truyin vat ly thuc su giira hai tiln trinh. Cac tiln trinh irng
dung se sir dung dudng truyen ao nay dl frao ddi thdng diep ma khdng phai
ban tam vl co sd ha tang ciia mdi trudng vat ly thuc su. Hinh 3.1 minh hoa
dieu nay.

148
AppI cation'

^ ^ L k ^*^1^r-/^ |H>Base station Ne*vMO>rk


Unk
Company network -9? ^ i , ^^---\
Plirsfcal

Hinh 3.1 TSng giao v^n cung c i p dich vy t r u y i n thong logic


cho cac t i l n trinh irng dyng

Tren Hinh 3.1, ting giao van nim fren cac thilt bj diu cuoi chir
khd ng phai d cac router. Router boat ddng d tang mang.

0 phia giri, thue thi giao van chen thdng diep ma nd nhan dugc tir
tiln tiinh img dung vao cac 4-PDU (la don vj dtr lieu cua giao thue ting giao
van - Protocol Data Unit). Cdng viec dugc thuc hien bing each chia thdng
diep nanh nhilu doan nhd, bd sung vao diu moi doan fieu dl ciia tang giao
van 6i tao ra gdi dtr lieu ciia ting giao van (4-PDU). Sau dd tang giao van
tnaj'/ln gdi dtr lieu (4-PDU) xuong ting mang, tai day mdi gdi nay dugc dat

149
trong gdi dir lieu cua ting mang (3-PDU). 6 phia nhan, ting giao van nhan
gdi dir lieu tir tang mang, loai bd phin tieu dl ciia gdi dtr lieu 4-PDU, ghep
chiing lai thanh mgt thdng diep hoan chinh va chuyin cho tiln trinh irng
dung nhan.

Tren mang may tinh cd Ihl cd nhilu giao thirc giao van khac nhau,
cung cap cho img dung cac djch vu vdi chit lugng khac nhau.

Tat ca giao thiie ting giao van diu cung cip djch vu d i n kenh
(multiplex) va phan kenh (demultiplex), dilu nay se ndi cu thi trong cac
phan sau. Nhu da ndi trong phin 2.1, ngoai djch vu din kenh/ phan kenh,
tang giao van cdn cd the cung cip cac djch vu khac cho tiln trinh ung dung
nhu truyin dii- lieu tin cay, dam bao bang thdng hay gidi han do tri.

3.1.1 Quan he giira tang giao van va tang mang

Tang giao van nim d tren ting mang. Nlu giao thiic ting giao van
cung cap dudng truyin logic giira tiln trinh chay tren cac may finh khac
nhau, thi giao thuc ting mang cung cip dudng fruyin giira cac may tinh.
Diem khac biet nhd nay tuy khd nhan bilt nhung rit quan trgng, xet vi du
dudi day.

Gia sir cd hai nha: mgt d Ha Ndi, mgt d Hul frong moi nha cd 12
diia tre la anh em hg vdi nhau. Hang tuin chiing trao dii thu cho nhau, moi
thu dugc dat frong mgt phong bi rieng va dugc djch vu buu chinh giri di
theo dja chi ghi fren phong bi. Hang tuin moi nha se nhan 144 la thu tir nha
ben kia (bgn tre cd thi tilt kiem dugc tiln nlu chiing sir dung email). 6 moi
nha cd mgt diia tre chju trach nhiem thu thap va phan phat thu - An trong
nha phia tay, Binh frong nha phia ddng. Moi tuin. An liy thu tu bgn fre
frong nha minh va chuyin cho nhan vien buu cue - ngudi thudng xuyen ghe
qua nha dl liy va chuyin thu. Khi nhan thu tir nhan vien buu ta, An chuyin
fiep thu cho ngudi nhan. Binh cung se thuc hien cdng viec tuong tu.

Trong vi du tren, djch vu buu chinh cung cip dudng fruyin logic
giira hai nha - chuyen thu tu nha nay din nha kia, chir khdng phai tir ngudi

150
nay dcii ngudi kia. Con An va Binh cung cap dudng truyen logic giira tiing
ngudi irong hai nha. Doi vdi lu tre, An va Binh la djch vu chuyen thu mac
dii /\n va Binh chi la mgt phin (phan dau miit) cua ca he thdng chuyen thu.
Qua \i du nay ta hieu dugc quan he giu'a lang giao van va lang mang:
May tinh (hay thilt bi dau cudi) = Ngdi nha.
Tiln trinh = Tirng ngirdi trong ngdi nha.
Thdng diep irng dung = Thu trong phong bi.
Giao thii-c ling mang = Djch vu buu chinh (gdm nhan vien
buu chinh).
Giao thirc ting giao van = An va Binh.

Trong vi du tren. An va Binh thuc hien cdng viec phan phat thu tai
chinh ngdi nha ciia chting, nhung khdng thuc hien nh&ng viec nhu sap xep
thu tai cac buu cue (la cac tram trung chuyin tren dudng di) hay giri thu tir
buu cue nay tdi buu cue khac. Tuang tu, giao thirc ting giao van chi boat
ddng d cac thilt bj diu cudi. Tai thilt bj diu culi, giao thirc tang giao van
chuyin dtr lieu tir tiln trinh iing dung xuong ting mang va ngugc lai nhung
khdng bilt thdng diep dugc truyin di nhu thi nao trong tang mang. Tren
Hinh 3.1, cac router khdng xir ly bit ky thdng fin tieu dl nao ma tang giao
van chen vao ben canh thdng diep ting dung.

Gia sir An va Binh di ving, Hanh va Phiic lam thay. Nhung that
dang tile hai dira tre nay cdn qua nhd, khdng lam viec dugc can than nhu An
va Binh. Chiing lam mit thu. Tuong tu nhu vay, mang may tinh cd the cd
nhilu giao thirc giao van, mdi giao thirc cung cap cac dich vu vdi chat lugng
khac nhau cho chuang trinh irng dung.

Dich vu ma An va Binh cung cip phu thugc vao djch vu ciia buu
dien. Vi du nlu bim dien khdng dam bao thdi gian chuyen thu gitra hai nha
thi An va Binh cung se khdng dam bao dugc thdi gian chuyen thu gitra
nhirng ngudi trong hai nha. Tuong tu, djch vu ciia giao thirc tang giao van
cung cip se phu thude vao djch vu ciia ting mang ben dudi. Neu giao thiic
ting mang khdng dam bao thdi gian tre hay dam bao vl bang thdng cho gdi
dti- lieu 4-PDU trong qua frinh giri gitra cac may finh, thi giao thirc tang giao
van cung khdng ihl cung cip nhung djch vu nay khi giri thdng diep gitra cac
filn trinh img dung.

151
Tuy nhien, tang giao van van cd thi cung cip nhung djch vu ma ting
mang khdng cung cap. Nhung djch vu nhu thi dugc nghien ciru ngay trong
chuang nay, vi du giao thirc ting giao van cung cip djch vu truyin dtr lieu
fin cay cho tang irng dung ngay ca khi ting mang khdng dang tin ca\- - lam
mat, giii Ioi hay giri triing lap dti- lieu. Mgt dich vu khac se nghien ciru trong
chuong 7 (An ninh mang) la kha nang ma hoa thdng diep ciia ting giao van
de dam bao thdng diep khdng bj dgc trdm, trong khi ting mang khdng thuc
hien dugc dilu nay.

3.1.2 Tong quan ve tang giao van trong Internet

Trong mang Intemet hay mang TCP/IP cd hai giao thirc d ting giao
van: UDP va TCP. UDP (User Datagram Protocol) cung cip dich vu truyin
khdng tin cay, khdng hudng ndi va TCP (Transmission Control Protocol)
cung cap djch vu tin cay, hudng noi eho img dung. Ngudi vilt irng dung
phai lira chgn mgt trong hai giao thirc nay cho img dung ciia minh.

De dan gian, trong md hinh Intemet ta coi 4-PDU la mgt segmenL


Tuy vay, nhung trong cac khuyin nghj RFC thi 4-PDU dugc coi la segment
ddi vdi TCP va datagram doi vdi UDP. Ndi chung thuat ngii- datagram
thudng sir dyng cho PDU d ting mang nhung frong mgt quyln sach nhap
mdn nhu thi nay, ndi chung it xay ra nhim lin khi sir dung thuat ngir
segment cho ca TCP PDU va UDP PDU.

Trudc khi tilp tuc, chiing ta ndi qua vl ting mang cua Internet (Ting
mang se dugc nghien ciru chi fill trong chuang 4). Giao thiic ciia ting mang
la IP (Intemet Protocol). IP cung cip dudng truyen logic gitra cac may tinh
va md hinh djch vu ciia nd theo kilu co ging toi da (best effort delivery
service). NghTa la IP cd ging giii cac segment giira cac may tinh - hay thilt
bj dau cudi khac nhau - vdi hit kha nang cua minh nhung khdng dam bao
dieu nay. Ndi cu thi ban, IP khdng dam bao vl thu tu truxeri,-vc tinh toan
ven cua dii lieu frong segment. Chinh vi thi ngudi ta xem IP la djch vu
khdng tin cay. Moi may tinh cd mgt dja chi IP xac djnh. Trong chuang nay
ta chi cin bilt moi may finh cin cd mgt dja chi IP xac djnh duy nhat.

152
Nhieni vu chinh ciia UDP va TCP la md rgng dich vu IP - truyen dtr
Heu gri-a hai thill bi diu cudi - thanh dich vu truyin dtr lieu giQ-a hai tien
trinh'chav tren Ihill bi diu cudi. Viec md rgng tir Iniyen dtr lieu giira cac
may fnh^hosMo-host) din tmyln dir heu giQ-a cac hen trinh (process-lo-
procefs) duac goi la qua trinh ddn kenh (multiplex) va phan kenh
(demultiplex). Vin dl nay si! nghien cu-u d phin sau. UDP va TCP kiem soat
linh lean ven (hay tinh diing din) ciia dQ- lieu nhd trudng phat hien Idi dat
trong -ieu dl gdi dtr lieu. UDP chi cung cip dich vu phan phdi du lieu giua
hai lien trinh va kilm Ira Idi. Tuang tu IP, UDP la djch vy khdng tin cay,
khdng dam bao dtr lieu dugc iruyin di mgt each diing dan giua cac tien
trinh. UDP dugc trinh bay ky trong phan 3.1.

Ngoai phan kenh, ddn kenh, TCP cdn cung cip mgt sd djch vu khac
cho ing dung. Djch vu diu tien va quan trgng nhit la truyin du lieu tin cay
(reliaDle data transfer). Cac co chl dilu khiln luu lugng, danh sd thir ty, sd
thir If bien nhan, bd djnh thdi se gnip TCP dam bao du- lieu dugc tmyen tu
filn trinh giri din tiln trinh nhan chinh xac va diing thir tu. Nhu v^y giao
thirc TCP da biln djch vu tmyln khdng tin cay giua cac thiet bj dau eudi
(IP) tianh dich vu truyin dQ- lieu tin cay giQ-a cac tien trinh.
Giao thirc cung cip dich vu tmyln du lieu tin cay va kilm soat tac
nghei rit phirc tap. Cac phin tir 3.4 din 3.8 trinh bay nguyen tic chung ciia
cac cich vu tren va giao thirc TCP. Cach tilp can ciia chuang nay la gidi
thr^u xen ke cac nguyen ly co ban vdi giao thirc TCP. Vi du chiing ta ndi
tdng quan each thirc cung cip djch vu fruyin dtr lifu tin cay sau dd moi
ngiiien cim TCP thuc hien dilu nay nhu thi nao..Chung ta se bat dau bang
cdng viec don kenh/phan kenh vdi dtr lieu tir ting img dung.

3.2 DICH VU DON KENH, PHAN KENH

Phin nay chiing ta se nghien cim vl cdng viec ddn kenh va phan
kenl trong mang. D I don gian, chung ta chi ndi din cac djch vu ciia tang
gi;ao van frong md hinh Intemet. Tuy nhien cin nhan manh rang - day la
dj.cl- vu cin thilt doi vdi tit ca cac md hinh ket ndi mang.

153
Mac dii ddn kenh/ phan kenh khdng phai la mgt trong nhQng dich vu
quan trgng nhat ciia ting giao van, nhung nd cue ky cin thilt. Dk hilu tai
sao nhu vay, ta thiy ring IP tmyln dQ- lieu giua hai thilt bj diu cudi, moi
thiet bj cd mgt dia chi IP nhit djnh. IP khdng tmyln dtr lieu giiia cac tiln
trinh u-ng dung chay tren cac may finh. Md rgng viec giri - tir may tinh din
may tinh - tdi tii- tien trinh din tiln trinh la cdng viec don kenh va phan kenh.

Tai may tinh nhan, ting giao van nhan gdi du- lieu (hay cdn ggi la
segment) tir tang mang ngay phia dudi va cd trach nhiem giri'du lieu ben
trong segment nay tdi tiln trinh irng dung thich hgp tren may tinh. Gia sir
luc nao dd may tinh cua ban dang tai trang Web xuong, chay mgt phien FTP
va hai phien Telnet cimg mgt luc. Nhu vay ban dang chay 4 tiln trinh irng
dung: 2 tiln trinh Telnet, 1 tiln trinh FTP, va 1 filn trinh HTTP. Khi ting
giao van trong may tinh ciia ban nhan dugc du lieu tir ting mang chuyin len,
nd phai giri du lieu trong dd tdi 1 trong 4 tiln trinh tren. Viec dd diln ra nhu
the nao?

Mdi segment ciia ting giao van cd trudng xac djnh tiln trinh nhan
du- lieu. Tang giao van ben nhan se sir dung trudng nay dl xac djnh rd tiln
trinh nhan va giri du lieu trong segment tdi tiln trinh dd. Cdng viec chuyin
du- lieu trong segment tdi diing filn trinh img dung dugc ggi la phan kenh.
Tai thiet bj giri, tang giao van nhan dti lieu tir nhilu tiln trinh img dung khac
nhau, tao segment chira du lieu ciing vdi mgt so thdng tin tieu de va cudi
cung chuyin segment xudng ting mang. Qua trinh tren dugc ggi la ddn
kenh. Hinh 3.2 minh hoa ca hai qua trinh nay.

Receiver
B3 P4
Applicatk)n-layer
data p.|
'VppMcaliai P2
Segment \ i
header. \ Tna ISpMl
Application Network icatior
H,! M Transport Trans part
l-^l segment Netvvork
Network

Hinh 3.2 Djch vu ddn kenh, phan kenh

154
Dc hieu rd hon vl dich vu don kenh, ta quay lai vi du Irudc. Mdi dira
tre dugc xac dinh qua ten. Khi Binh nhan dugc thu lir ngudi dua thu, cau be
sc thu-c hien qua trinh phan kenh bing each dgc ten tren phong bi thu de
chuyin cho diing ngudi nhan. Cdn An thuc hien qua trinh ddn kenh khi thu
thap tlur itr mgi ngudi va chuyin cho ngudi dua thu.

UDP va TCP thuc hien viec don kenh va phan kenh nhd hai trudng
dac biet d diu segment: tmdng djnh danh cdng tien trinh giri (ngudn -
source port number) va frudng djnh danh cdng tien trinh nhan (dich -
destination port number). Hai trudng nay dugc minh hga tren
Hinh 3.3. Chirng xac djnh mgt tiln trinh img dung duy nhat chay tren may
linh. Tit nhien UDP va TCP cdn cd nhilu trudng khac ma chiing ta se
nghien ciru sau.

Khai niem sd hieu cdng da dugc gidi thieu qua trong chuang 2. Nd
la mgt con sd 16 bit, nhan gia frj tir 0jdiM5i5.. Gia trj tir 0 din 1023 la cac
gia frj dac biet va dugc su dung rit ban chl, chi danh cho cac irng dyng
thdng dung nhu HTTP, FTP sir dung. HTTP sir dung cong 80, FTP su dung
cdng 21. Danh sach cac cdng thdng dung cd thi tham khao trong RFC_r700.
Khi xay dung mgt irng dung mdi, phai xac djnh so hieu cdng cho img dung
nay.
Moi irng dung chay tren thilt bj diu cuoi ed so hieu cdng nhat djnh.
Bdi vay vin dl dat ra la tai sao mciLsegment.d tang giag_yan deu cd tmdng
so hisu cdng nguon va^dich. Mgt thilt bj diu cuoi cd the chay ddng thdi hai
tiln trinh cung kilu, nhu vay so hieu cong dich chua dii dl phan biet cac tien
frinh. Gia sir Web server chay tiln trinh HTTP xir ly cac thdng diep yeu cau;
khi Web server phuc vu nhilu yeu ciu cimg mgt luc (dieu nay bet sire thdng
thudng) thi server se chay nhilu tiln trinh fren cdng 80. De giri dQr lieu den
tiln trinh nhan, phai xac djnh so hieu cdng ciia phia giri (cdng ngudn).

155
32 bits

Source port # Dest port #

Other header fields

Application
data
(message)

Hinh 3.3 Truo-ng dja chi ti§n trinh gu'i, tidn trinh nhan trong goi dO li?u segment

Cdng ngudn dugc tao ra nhu thi nao? Nhan gia trj bao nhieu? D I tra
Idi cau hdi nay hay nhd lai ring irng dung mang sii dung kiln tnic khach
hang/ ngudi phuc vu. Thdng thudng may tinh nao khdi diu trudc ddng vai
trd client, may tinh kia ddng vai trd server. Xet vi du mgt tiln trinh ung
dung cd so hieu cdng la 23 (so hieu cdng ciia img dung Telnet server). Hay
quan sat segment d ting giao van khi rdi client (la may tinh chay chuang
trinh Telnet client) chuyin tdi server. So hieu cdng nguon va dich cua
segment nay la bao nhieu? So hieu cong dich chinh la so hieu cdng tiln trinh
nhan - 23. Cdn so hieu cong nguon - d phia client - la mgt gia trj chua dugc
sii dung bdi tien trinh nao, dugc phin mIm giao van chay tren may tinh
client xac djnh tu dgng. Gia sir phia client chgn si hieu cdng la x thi moi
segment dugc giri tdi img dung Telnet cd cong ngudn la x, cdng dich la 23.
Khi segment tdi, server can cir vao sd hieu cIng dl chuyin dir lieu trong
segment tdi dung tiln trinh ung dung nhan. Cdng dich 23 xac djnh tiln trinh
Telnet, cdng ngudn x dl xac djnh mgt tiln trinh giii cu thi.

Segment fruyen tir server tdi client se ngugc lai. Cdng nguon bay gid
se la cdng ciia irng dung cd gia trj 23, cdn cdng dich se la x (la so hieu cdng
ngudn trong segment giri tir client tdi server). Khi segment tdi, client cung
se can cii vao sd hieu cdng ngudn va dich dl giri du- lieu trong segment tdi
dung tien trinh irng dung. Hinh 3.4 minh hoa qua trinh tren.

156
source port: x
Host A desl. port: 23 Server B
_^ —-.^
1

^-r*^
^-< source port: 23
dest. port; x

Hinh 3.4 Sir dung s6 hi?u c6ng ngu6n va cong dich trong trinh U'ng dyng
khach/chu

Chuyen gi xay ra nlu cd hai client khac nhau ciing thiet lap phien
lam viec tdi mgt server va moi client diu chgn cong ngudn la x? Dieu nay
rit de xay ra vdi nhimg Web server cd nhilu ngudi tmy cap, phai phuc vu
nhilu yeu ciu. Ben server phai phan kenh segment nhu the nao khi hai phien
lam viec cd ciing cap sd hieu cdng? Khi dd server phai sir dung dja chi IP
trong gdi du lieu IP (datagram) chira segment. Tren Hinh 3.5, may C cd hai
phien lam viec va may A cd mgt phien lam viec HTTP tdi ciing server B. Ca
ba may A,B,C diu cd dja chi IP phan biet lin lugt la A, B, C. May C sii
dung hai cong ngudn (x,y) khac nhau cho hai kit ndi HTTP tdi B. A chgn sd
hieu cong ngudn ddc lap vdi C nen nd cd thi gan cdng nguon x cho ket noi
H I T P ciia minh. Tuy nhien, may chii B van cd thi thuc hien phan kenh hai
gdi segement cd cap cdng giong nhau do dja chi IP nguon khac nhau. Torn
lai, ben nhan sir dung ca ba gia frj (dja chi IP nguon, sd hieu cdng nguon, sd
hieu cdng dich) dl xac djnh tiln trinh ung dung nhan.

Sau khi xet ting giao van thuc hien viec ddn kenh va phan kenh cac
tiln trinh iing dung nhu thi nao, chiing ta se nghien cim mgt frong cac giao
thiic giao van ciia Internet - UDP. Trong phin nay chiing ta se thay ngoai hai
djch vu don kenh va phan kenh, UDP gin nhu khdng cung cap djch vu nao
khac.

157

%
\A/WW
Client Host C

Source I?: C Source IP: C


Dest IP: B Dasi IP; B
$oufce port: y sowce porl: x
dest. ooft; 80 dest. porl: 80

WWW
Client Hosi A Source IP: A
Desl IP: 6
WWW
source port: x
Seiyer B
dest. pork 80

Hinh 3.5 Hai client cung s6 hif u c6ng dich truy§n thong vai cung mpt server

3.3 UDP - GIAO THirc KHONG H U 6 N G NOI

Trong phin nay ta se nghien cuu ca chl hoat dgng ciia UDP. Dgc
gia cin nhd lai khai quat ve djch vu UDP trinh bayfrongphin 2.1.
Ban se lam gi nlu mudn xay dimg mgt giao thii-c giao van cue ky
dan gian - mgt giao thirc giao van "rong"? Khi dd, thuc thi giao van phia
giri nhan thdng diep tir tiln trinh ung dung va chuyin xuong ting mang;
thuc the giao van phia nhan chuyin thdng diep ting mang dua len tdi
chuang tiinh ung dung tuang img. Ting giao van chi cung cap djch vu don
kenh/phan kenh bing each chuyin dii lieu din tir ting mang tdi diing tien
trinh ling dung nhan.

UDP dac tafrongRFC 768 la giao thiic giao van cue ky don gian. Nhu
v|y, ben canh chirc nang ddn kenh/phan kenh, UDP cd them co che phat hien
Idi don gian. Cd thi ndi nlu sir dung UDP thi gin nhu img dung lam viec fruc

158
licp vdi ling mang IP. UDP lay thdng diep tir tien trinh irng dung, chen them
mgt so trudng lieu de, trong dd cd hai trudng dja chi cdng ngudn va dich cho
djch vu ddn kenh/phan- kenh dc tao nen gdi dtr lieu segment. Gdi segment
sau khi tao ra dugc chuyen xudng tang mang. Tang mang dat segment nay
trong gdi du lieu IP datagram va co gung gii-i gdi IP datagram tdi may linh
nhan. Neu segment tdi dich, UDP sir dung sd hieu cdng va dia chi IP ciia
tien trinh nhan de truyen du lieu trong segment tdi diing lien trinh irng dung
nhan. Chu y UDP khdng ddi hdi thuc the ben giri va ben nhan phai lien ket
trudc khi trao doi du lieu. Vi the UDP dugc xem la djch vu khong hirdng
noi hay khdng lien ket trudc (connectionless).

DNS la mgt giao thirc tang irng dung chay tren nen UDP. Khi mudn
tmy vin, DNS tao thdng diep truy van DNS, chuyen thdng diep tdi socket.
UDP bd sung mgt sd trudng vao dau mdi thdng diep de tao ra UDP segment
rdi giri segment nay xudng tang mang. Tang mang se ddng gdi UDP
segment nay trong IP datagram va giri datagram tdi dich (name server). Sau
dd, DNS ben giri dgi tra Idi. Neu khdng nhan dugc cau tra Idi (dieu nay cd
thi xay ra khi cac ting dudi lam mat thdng diep yeu cau hay thdng diep tra
Idi) thi DNS giri lai yeu ciu hoac bao cho irng dung biet la khdng nhan dugc
cau tra Idi. Cac dac ta DNS cho phep DNS chay tren nen TCP nhung trong
thuc tl DNS thudng chay tren UDP.

So vdi UDP, TCP cd ve cd nhilu uu diem hon: TCP cung cap djch
vu truyin dQ- lieu tin cay trong khi UDP khdng lam dugc. Tuy nhien fren
tiiuc te nhilu ung dung lai sir dung UDP vdi cac ly do sau day:

Khong CO giai doan thiet lap ket noi: TCP sir dung ca che "bit
tay" ba budc trudc khi bit diu truyen dQ- lieu thuc su. UDP kJidng can co
chl nay trudc khi tmyln du: lieu. Vi thi UDP se khdng phai chju thdi gian
tre de thilt lap dudng truyen. Day chinh la nguyen nhan DNS chay tren
UDP chir khdng phai la TCP. DNS se chay cham nlu sii dung TCP. HTTP
sii dung TCP vi cac ddi tugng Web cin dugc tai ve chinh xac - do dd yeu
ciu mgt dudng tmyln tin cay. Nhung nhu da trinh bay frong phin 2.2, giai
doan thilt lap dudng truyin trong TCP gay nen mgt thdi gian fre cho ung
dung HTTP (tinh trang "world -wide wait").
Khong duy tri trang thai ket noi. TCP ghi nhd frang thai kit ndi
tren he thdng diu cuoi. Trang thai kit ndi bao gdm viing dem (buffer) ciia
ben nhan va ben giri, cac thani sd kiem soat tac nghen, sd tuan tu phat va sd

159
bien nhan. Nd giiip TCP triln khai djch vu tmyln tin tin cay va ca chl kilm
soat tac nghen. Trong phan 3.5 ta se hilu y nghla cac trang thai nay. UDP
khdng phai luu giQ- nhung thdng tin nhu vay. Do dd nlu phia server sir dung
UDP thi cd kha nang phuc vu ddng thdi nhilu client ban.
Tieu de gdi du- lieu nho.: Tieu dl ciia TCP segment la 20 byte trong
khi UDP chi cd 8 bytes.
Khong kiem soat toe do giri. TCP cd ca chl kilm soat tic nghen,
dilu chinh tie do giri khi xay ra tic nghen. Co chl dilu chinh nay cd thi anh
hudng tdi nhQ-ng irng dung thdi gian thuc - la nhung img dung chip nhan
mat mat dQ- lieu (trong pham vi nao dd) nhung lai ddi hdi phai cd mgt toe do
tmyln tdi thilu. T I C do truyin du lieu ciia UDP chi bj gidi ban bdi tie do
sinh du- lieu ciia img dung, kha nang may tinh nguon (CPU, tie do ddng hi),
va toe do tmy cap mang. Chii y ring ben nhan khdng nhit thilt phai nhan
toan bd du lieu. Khi mang bj tac nghen, mgt phin du lieu cd thi bj mit do
tran vung dem d router. Tdc do nhan cd thi bj gidi han do tie nghen ngay ca
khi tdc do giri khdng bj gidi han.

Giao thu'c ting irng TSng giao v^n


Lfng dung
dung tu-ang ungi ' „ ; ;
Thu di$n tir SMTP TCP

Truy cap tii' xa Telnet TCP

Web HTTP TCP

Truyen file FTP TCP

File server NFS thudng la UDP

Da phuang ti$n PhM thuOc vSo hang san thudng la UDP


xuat

Di$n thogi qua Phy thuOc vao hang san thudng la UDP
Internet xuat

Quan ly mgng SNMP thudng la UDP


Djnh tuyen RIP thudng la UDP
Ten mien DNS thudng la UDP

Hinh 3.6 Cac irng dyng thong dyng va giao thuc giao v^n tu'ang LPng

160
Hinh 3.6 liet ke mgt sd iing dung phd bien va giao thirc giao van ciia
chung. Email, tmy cap tir xa, Web va truyen file chay tren nen TCP vi chiing
can den dich \u truyen du lieu tin cay. Tuy nhien cd mgt sd img dung khac
thich hcrp vc'ri UDP ban TCP. Giao thirc ciip nhat bang dinh tuyen RIP (se
hgc trong clanrng 4) sir dung UDP, bdi vi vice cap nhat dugc thuc hien dinh
ky (lhu(7ng khoang 5 phiit mgt lin), cho nen dii cap nhat bj mat nhung se cd
cap nhat mdi sau mgt khoang thdi gian ngan. UDP dugc sir dung de gu'i du
lieu quan tri mang (SNMP). Trong trudng hgp nay UDP thich hgp ban TCP
vi cac tiln trinh quan trj mang thudng boat ddng khi mang cd su cd khdng
till tmyln du lieu chinh xac hay co chl kiem soat tac nghen khdng lam viec.
DNS sir dung UDP, do dd cd thi tranh dugc thdi gian tre frong giai doan
thiet lap ket ndi.

Ngay nay UDP thudng dugc cac img dung da phuang tien nhu dien
thoai Intemet, hdi thao tir xa, cac img dung thdi gian thuc sii dung. Cac irng
dung nhu thi cd thi chip nhan mit mat, Ioi tren mgt phin du- lieu, vi the
tmyln du- lieu tin cay khdng phai la tieu chi quan trgng nhat danh gia su
thanh cdng ciia img dung. Hon nQ-a cac img dung thdi gian thuc khdng thich
img dugc vdi ca chl kilm soat tic nghen ciia TCP. Do dd chiing thudng lua
chgn UDP d ting giao van.
Hien nay mac dii da triln khai trong thue te, song viec cac img dung
da phuang lien sir dung UDP gay ra nhilu tranh cai. Nhu da ndi d fren, UDP
khdng kilm soat dugc tic nghen nen mang rat de bj tac nghen - khi dd chi
rit it thdng tin dugc chuyin. Nlu tit ca mgi ngudi diu xem phim true tuyen
thi cac gdi tin se bj tran bd dem d cac router - va khi dd thi chang ai xem
dugc gi ca. Thilu co chl kilm soat tic nghen cd thi se la mgt vin de nghiem
trgng doi vdi UDP. Ngudi ta da dua ra nhilu ca chl ddi hdi tit ca cac thuc
thi - kl ca UDP - thuc hien mgt co chl kilm soat luu lugng thich nghi.

Trudc khi trinh bay vl ciu triic UDP, cin chii y ring Uiy sir dung
UDP nhung img dung van cd thi cd mgt dudng tmyln tin cay. Dieu nay
dugc thuc hien bing each dam bao tinh tin cay ngay trong ban than iing
dung (bing ciic ca chl danh so thir tu, tmyln lai). Cdng viec nay se lam urng
dung cong kinh va phirc tap. Tuy nhien uu dilm la iing dung cd the truyen
thdng tin cay vdi toe do khdng bj co chl kiem soat tac nghen ciia TCP
khdng chl. Ngay nay mgt so phin mIm chuyen dung da phuang tien sir

161
dung ca che danh sd thir tu va truyen lai ngay trong chucmg trinh irng dung
de giam bdt viec mat dir lieu.

3.3.1 Cau triic UDP segment

Cau tnic UDP segment, dac la trong RFC 768 dugc minh hoa tren
Hinh 3.7. Du lieu ciia ung dung nam trong trudng du- lieu ciia UDP
datagram. Vi du ddi vdi DNS, trudng du lieu chira thdng diep yeu ciu hay
thdng diep tra Idi. Tieu dl UDP cd bin trudng, do Idn mdi trudng la hai
byte. Nhu da ndi d phan trudc, sd hieu cdng cho phep thilt bj giri chuyin dQ-
lieu tdi diing tien trinh chay tren thilt bj nhan (chiic nang phan kenh).
Tmdng Checksum dugc ben nhan sir dung de kiem tra trong segment cd Idi
hay khdng. Tren thuc tl, kl ca tieu dl cua gdi dQ- lieu IP cung dugc tinh
checksum. Nguyen tac co ban cua co che phat hien va sira Idi dugc trinh bay
trong phan 5.1. Trudng do dai (Length) cho bilt do dai (tinh theo byte) ciia
toan bd gdi du lieu UDP segment - kl ca phin tieu dl.

< 32 bits y

Source port # Dest port #


Length Checksum

Application
data
(message)

Hinh 3.7 C i u true goi UDP datagram

3.3.2 UDP checksum

UDP checksum dugc sir dung dl phat hien Ioi. Checksum dugc tinh
nhu sau: tinh gia trj bii mgt cua ting cac tir 16 bit trong segment, gia trj nhan
dugc dugc dat vao tmdng checksum trong gdi du lieu UDP segment. Cd thi

162
tim hicu phuong thu-c triln khai trong RFC 1071 va hieu qua tren du lieu
thuc trong [Stone 1998 va Stone 2000]. Gia sir cd ba tuX6_bit sau day:
0110011001100110

0101010101010101

0000111100001111

Tdng hai tir dau la:


0110011001100110
0101010101010101

1011101110111011

Cdng tir thir ba vao, ta cd:


lOlUOlllOlllOU
0000111100001111
1100101011001010
Cach liy bii mgt la dao 0 thanh 1 va 1 thanh 0. Vi vay kit qua phep
liy bii mgt ciia 1100101011001010 laOOl 1010100110101 va dd chinh la gia
frj checksum. Tai phia nhan, tit ca bon tu- (kl ca checksum) dugc cdng lai.
N I U du lieu khdng cd Idi thi tdng nhan dugc la 11111U111111111. Neu cd
mgt bit nao dd bing 0 thi la bilt du: lieu nhan dugc cd Idi.
Ban ed thi hdi tai sao UDP tinh checksum - trong khi mgt vai giao
thirc ting lien kit dtr lieu (kl ca giao thirc Ethernet thdng dung) cung cd co
chl kilm tra Ioi. Li do la chua chic tit ca cac kit ndi (link - dudng tmyen
vat ly thirc sir) giu-a thilt bj giri va thilt bj nhan diu cd ca che kiem tra Idi -
cd thi mgt trong cac kit nli dd sir dung giao thirc khdng cung cap viec kiem
tra Idi. Mac dii UDP cd thi phat hien dugc Ioi nhung nd khdng lam gi khi
phat hien ra Ioi. Cd thi nd se loai bd segment bj Idi, cd thi nd se chuyen
segment bj Idi cho img dung nhan ciing vdi mgt thdng diep canh bao.
TCP cung cip dudng tmyln tin cay - do dd hien nhien trien khai nd
phirc tap ban UDP rit nhilu. Tmdc khi tim hilu vl TCP, frong phan sau
chiing ta se trinh bay nguyen tic chung dl xay dung uidt dudng tmyen tin
cay. TCP se ap dung diing nhQ-ng nguyen tic nay khi trien khai.

163
3.4 CAC NGUYEN TAC TRUYEN DU LIEU TIN CAY

Phan nay trinh bay tdng quan dich vu tmyln du lieu tin cay. Djch vu
nay khdng chi nam d tang giao van ma cdn cd thi nim d ting lien kit dQ-
lieu hay tang Q-ng dung. Cd the ndi tmyen du lieu tin cay la mgt trong nhQ-ng
van de quan trgng nhat cua mang. Trong phan kl tilp vl TCP, chiirg ta se
nghien ciru each thirc TCP ap dung cac nguyen tic chung dugc trinl bay d
day nhu the nao.

Hinh 3.8 la so dd cau tnic ciia qua trinh tmyln dQ- lieu tin cay. Tirg dudi
cung cap djch vu tmyen tin cay cho cac thuc thi d ting tren. Tren dudng
tmyln tin cay nay, dQ- lieu khdng bj Ioi (bit 0 biln thanh bit 1 hoac ngugc
lai), khdng bj mat va dugc nhan theo diing thii tu giri. Day chinh la cjch vu
ma TCP cung cap cho cac ung dung Intemet.
c
.Q I Send ing Receiver
W I I process process

< data data


^fiTReliable channel "} i:dt_send () [data| deliveE_djitaO
a data
c Reliable d^a Re (able data
transfer protoool transfer prc*xo I
Csendir^ side) (receiving side)
udt_=cnd () ^ [pacgjtl fpacketi ' 'tdt_rcT ()

'<CJUnreiiabl<8 CtTarriel)<^

(a) FYovided sen/ice (b) Service Implementation

Hinh 3.8 Djch vy truyin dO l i f u tin cgy: Mo hinh v^ T r i l n khai

De thue hien cdng viec nay, ngudi ta cin din nhung giac thirc
tmyen du- lieu tin cay. Nguyen nhan la ting phia dudi cua giao thiic tn cay
la khdng tin cay. Vi du TCP la giao thiic truyin du- lieu tin cay nim >y phia
fren giao thirc tmyln khdng tin cay (IP) giua hai thilt bj diu cudi fren nang.

164
Dk dan gian trong trudng hgp nay chimg ta coi tang phia dudi la mgt dudng
truyin dilm ndi diem (point-to-point) khdng tin cay.

Trong phin nay, chiing la se xay dung din giao thirc fruyin du- lieu
tin cay giQ-a phia gii-i va phia nhan theo do phirc tap tang dan ciia kenh
tmyen ben dudi. Hinh 3.8b minh hoa dilu nay. Thirc thi giri se nhan dQ- lieu
tir phia tren chuyin xuong qua ham rdt_send() ( 6 day rdt la vilt tat ciia
"reliable data transfer" va _send chi rd day la phia giri ciia giao thirc rdi.
Budc diu lien khi xay dung mgt giao thirc nao dd la chgn cho nd mgt cai ten
de nhd!). Phia nhan sir dung ham rdt_rcv() dk liy gdi du lieu tir dudng
tmyln. D I chuyin dQ- lieu len ting tren, phia nhan sir dung ham
deliver_data(). Trong phin nay, chiing ta sir dung thuat ngQ- "packet" thay
thi "segment" vdi y nghTa la don vj du lieu giao thirc - PDU. Y tudng trinh
bay trong phin nay khdng chi ap dung cho ting giao van ma cdn ap dung
chung cho loan mang may tinh, vi thi sir dung thuat ngQ- "packet" thich hgp ban.

Trong phin nay chi nghien cim tmdng hgp dQ- lieu fruyin theo mgt
hudng tir nai giri din noi nhan. Trudng hgp dQ- lieu truyin theo hai hudng la
mgt vin dl khdng khd vl mat ly thuylt nhung triln khai cu thi tuong ddi
phirc tap. Mac dii du lieu chi dugc tmyln theo mgt hudng nhung cac ben
tmyln thdng trong giao thirc rdt cin tmyln dQ- lieu theo ca hai hudng (xem
Hinh 3.8) bdi vi ngoai cac gdi dii lieu thuc sir, chiing cdn phai trao ddi cac
gdi dQ- lieu chira thdng tin dilu khiln. Ca ben giri va ben nhan diu sir dung
ham udt_send() dl giri dQ- lieu din phia ben kia (udt la vilt tit cua unreliable
data transfer).

3.4.1 Xay dyng giao thu-c truyen du- lieu tin cay

Bay gid chiing ta se tirng budc nghien cuu cac giao thiic vdi do phuc
tap tang din dl cuoi ciing di din giao thirc truyen dQ- lieu khdng Ioi. Chiing
ta se md ta trang thai ciia phia nhan va phia giri bang ky thuat may huai han
trang thai (finite state machine - FSM)

Tmyln du: lieu tin cay fren kenh tmyln tin cay hoan toan: giao thurc rdt 1.0.

165
Giao thirc dau tien, don gian nhat dugc dua ra - rdt 1.0 sir dung kenh
tmyen tin cay d phia dudi. Giao thirc rdt 1.0 cue ky don gian, FSM ciia ben
giii va ben nhan deu chi cd mgt trang thai (xem Hinh 3.9). Mui ten trong so
do chi su chuyen trang thai ciia giao thirc (mac dii mdi FSM trong Hinh 3.9
chi cd mgl trang thai, van can den sir chuyin trang thai dl quay vl chinh
trang thai cu). Su kien kich boat viec chuyin trang thai dugc dat phia tren
dudng ke nam ngang, dd la nhan su kien. Phia ben dudi dudng ke nim
ngang la nhQ-ng hanh ddng ma thue thi phai thuc hien ngay khi su kien dd
xay ra (thuc hien trudc khi thuc thi chuyin sang trang thai mdi).

Vdi rdt 1.0, viec giri don gian chi la nhan du- lieu tu- ting tren thdng
qua sir kien rdt_send(data), tao ra gdi dQ- lieu (bing hanh ddng make_data
(packet.data)) va giri gdi du lieu (packet) len kenh tmyln. Tren thuc tl, sir
kien rdt_send(data) la ket qua cua mgt thii tuc (vi du khi img dung phia tren
sir dung ham rdt_send()).

O phia nhan, rdt nhan gdi du lieu (packet) tu- kenh tmyln bing sir
kien rdt_rcv(packet), lay du lieu ra khdi gdi dQ- lieu (bing hanh ddng extract
(packet.data)) va dua du lieu len ting tren. Tren thuc tl, sir kien
rdt_rcv(packet) la kit qua eiia mgt thii tuc (vi du khi img dung phia tren sir
dung ham rdt_rcv()).

Trong giao thirc don gian nay, khdng cd su khac biet giQ-a dQ- lieu
(data) vdi gdi dQ- lieu (packet). NIiu vay, tit ca packet diu dugc tmyln tu-
phia giri cho phia nhan. Vdi kenh tmyln tin cay, phia nhan khdng cin thiet
phai phan hdi cho phia giii vi nd chac rang khdng cd chuyen gi xay ra. Chii
y rang, chiing ta da gia thiet phia nhan cd thi nhan dQ- lieu vdi toe do phia
giri giri. Vi vay, phia nhan khdng cin yeu ciu phia giri giri cham lai.

rdt_send(data) /fjj'j'^'N^^ (packet)


3Bake_pkt(packet, f |'! ^ [extract (packet, data)
data) \ u I / / d e l i v e r d a t a (data)
udt_send(packet) \^«ow/^
(a) r d t 1.0: Sending side (b) r d t i . O : Receiving side

Hinh 3.9 Giao thii'c cho kenh truyin tin cgy hoan toan

Tmyln dQ- lieu tin cay tren kenh frnyin cd Ioi bit: giao thirc rdt 2.0.

166
Mgt dang kenh truyin Ihirc ll hon la gdi dir lieu tren kenh tmyen cd
the hi ioi. Thudng bit bi Idi tren dudng truyin vai ly ciia mang. Tuy nhien,
chiing la gia thill ring tat ca cac gdi du lieu tmyln di deu den dugc dich va
theo dimg thir tir giri mac dii cac bit Irong gdi du lieu cd the bi Idi.

Irudc khi tilp tuc, xet vi du sau. Gia sir ban dgc mgt bai chinh ta
cho ai dd qua dien ihoai. Thdng tiiudng, ngudi chep se ndi "Xong rdi" sau
khi da nghe, hilu va ghi lai mgl cau chinh ta. N I U cau ndi ciia ban bi nhieu,
ngudi kia nghe khdng rd thi hg se yeu cau ban nhac lai. Giao thirc truyen tin
nay sir dung phan hoi tich circ (positive acknowledgement) ("Xong rdi")
hay phan hoi tieu cue (negative acknowledgement) ( "Gi co ?"). Nhung
thdng diep dilu khiln nay cho phep ben nhan bao cho ben giri biet dQ- heu
nao nhan dung, dQ- lieu nao bj Ioi va yeu ciu tmyen lai dOr lieu bj Idi. Trong
mang may tinh, giao thirc truyin tin cay dua tren co che tmyen lai nhu vay
dugc ggi la cac giao thirc ARQ (^Automatic Repeat reQuest).
Cac giao thirc ARQ cin phai cd ba kha nang sau dl xir ly trong frudng hgp
du lieu cd Idi:
Phdt hien Idi (error detection): la ca chl cho phep ben nhan phat
hien dugc khi nao trong gdi du: lieu cd bit bj Idi. Trong phin trudc, ta thay
UDP sir dung trudng Internet checksum cho muc dich nay. Trong chuang V,
chiing ta se xem xet chi tilt mgt so ky thuat phat hien va tham chi cd the sua
dugc Idi. Cdn bay gid chiing ta chi cin bilt ring nhirng ky thuat nhu vay yeu
ciu ngoai viec giri dQ- lieu goc, ben gui cdn phai tao ra va giri kem mgt
lugng du- lieu du thira (nhung phu thugc vao du lieu gdc). Cac bit du thira
nay dugc dat trong trudng checksum ciia gdi dQ- lieu rdt 2.0.

Phan hdi tic phia nhan (receiver feedback): Khi phia giri va phia
nhan nim tren cac thilt bj diu cudi khac nhau - cd thi each nhau hang nghin
km, each duy nhit dl phia giri bilt dugc kit qua giri la phia nhan giii thdng
tin phan hdi thdng bao tinh frang nhan cho phia giri. Bao nhan dung (ddi khi
ggi la bao nhan tich cue) ACK va bao nhan sai NAK trong vi du tren chinh
la cac thdng tin phan hoi. Giao thirc rdt 2.0 yeu ciu phia nhan giri phan hdi
cac thdng diep ACK hay NAK cho phia giri. Gdi dQ- lieu phan hdi chi can sir
dung mgt bit, vi du gia trj 0 img vdi NAK va gia frj 1 img vdi ACK.

167
Truyen lai (retransmission): gdi dQ- lieu bj Idi se dugc ben giri
tmyen lai.
r d t _ s e n d C<3aca)
compute checksum
"'^^e_pkt ( s n d p k t , d a t a , checksum)
udt_send^^ndpkt)
r d t jTC-v ( r c v p k c >
fic& ieNAKCrcvpkt)
udt_sen<S (sndpkc)

r d t _ r c v (rc-vpkt) && isACK{rc-vpkt>

(a) x d t 2 . 0 i Sending side

rdt._rcv(rcvpkt) «.& c o r r u p t ( r c v p k t )
u d t _ s e n d <NAK>

^<^t _ r c V (r c v-pk t ) & & noCcoxrupc ( x c v p k t )


extract(rcvpkt,data)
deliver_data(data)
u d t _ s e i i d (ACK>

(b) r d t 2 . 0 * Receiving side

Hinh 3.10 Giao thirc cho kenh t r u y i n c6 I6i bit

^ Hinh 3.10 la FSM cua phia gui va nhan trong giao thiic rdt 2.0 vdi
CO che phat hien Ioi, phan hoi (ACK, NAK) va tinyin lai.
Trong giao thire rdt 2.0, phia giri cd hai frang thai. 6 frang thai thii
nhat, phia giii dgi du- lieu tir ting tren. Trong frang thai thir hai, phia giri dai
phan hdi ACK hoac NAK tu- phia nhan. Nlu nhan dugc ACK
(rdt_rcv(rcvpkt) & isACK(revpkt) frong Hinh 3.10 tuong ung vdi su kien
nay), phia gtri biet dugc gdi dQ- lieu chuyin din dich an toan, vi vay nd trd
ve frang thai dgi du lieu tir ting tren dl chuyin tilp. Neu nhin dugc NAK,

168
phia gui giii lai gdi du lieu roi quay lai trang thai dgi phan hdi ACK hoac
NAK cho gdi dir lieu vira giri lai. Chu y ring khi phia gii-i d trong trang thai
chd phan hoi (ACK hoac NAK), nd khdng thi nhan them du lieu tir tang
tren dua xudng. Nd chi chip nhan du lieu mdi khi nhan dugc ACK ya
chuyen trang thiii. Phia gii-i se khdng giri du lieu mdi cho den khi nd chac
chin ring phia nhan da nhan diing gdi du lieu da gii-i. Giao thirc rdt 2.0 vdi
hanh vi nhu vay thugc kilu dirng va chd (stop and wait).
FSM ben nhan trong giao thirc rdt 2.0 chi cd mgl trang thai duy nhit.
Khi nhan dugc gdi du lieu (packet), phia nhan giri thdng diep phan hdi ACK
hoac NAK, phu thugc vao gdi du lieu da nhan cd Ioi hay khdng. Trong Hinh
3.10, rdt_rcv (rcvpkt) && cormps(rcvpkt) tuong irng vdi su kien gdi du lieu
nhan duac bi Idi.
Giao thirc rdt 2.0 van cdn nhugc dilm: chiing ta chua tinh den kha
nang chinh gdi ACK hoac NAK cd Idi. (Trudc khi tilp tuc ban hay thir nghT
each cai tiln giao thirc nay). Chiing ta cin tao checksum cho chinh gdi phan
hoi (ACK hoac NAK) dl ben giri (liic nay ddng vai trd ben nhan) cd kha
nang phat hien Idi trong chinh gdi phan hoi. Vin de d day la khi nhan dugc
mgt gdi phan hii bj Idi - phia giri khdng thi xac djnh nd la ACK nay NAK,
do dd khdng xac djnh dugc gdi dQ- lieu nd gui tdi dich cd bj Idi hay khdng.
Trong trudng hgp nay, ben giri se phai lam gi ?
Cd ba giai phap xir ly ACK hoac NAK bj Idi:
Giai phap thii nhit, ngudi dgc trong vi du dgc chinh ta liic nay se
lam gi trong tmdng hgp nay? N I U khdng hieu cau phan hdi "Xong rdi" hay
"Gi co" thi hg cd thi hdi "Ban ndi gi?" (mgt dang thdng diep dilu khiln
khac). Neu nghe dugc, ngudi ben kia se lap lai cau phan hoi. Nhung chuyen
gi xay ra nlu chinh cau "Ban ndi gi?" cd Idi? Khi dd phia nhan - do khdng
xac djnh dugc cau cd Ioi dd la mgt phin trong bai chinh ta hay la yeu cau
nhic lai cau phan hIi - nen cd thi phan hdi lai bang cau "Ban ndi gi?". DT
nhien, cau Ui Idi nay cung cd thi bj Idi. Rd rang giai phap nay da di vao ngo cut.
Giai phap thir hai la them vao tmdng checksum mgt sd bit de khdng
nhu-ng cho phep phia nhan phat hien ma cdn sira dugc cae bit Idi. Day hoan
loan cd thi la giai phap tmng gian cho nhung kenh tmyen cd Idi - nhung
khdng xir ly dugc tmdng hgp toan bd gdi du- lieu (packet) bj mat.
Giai phap thii ba, phia giri tmyen lai gdi dQ- lieu neu phat hien Ioi
trong gdi phim hoi (ACK hoac NAK). Tuy nhien, phuong phap nay cd thi

169
dan den sir triing lap dii' lieu (duplicate packet). Phia nhan khdng biet
dugc ACK/NAK ma nd gii-i phan hdi cd bj Idi tren dudng tmyen khdng. Vi
the nd khdng xac dinh dugc gdi du lieu vQ-a nhan dugc la gdi du lieu mdi
hay gdi cu (se bj triing lap).
Giai phap dan gian nhat cho van de nay (se dugc ap dung cho nhieu
giao thu-c, ke ca TCP) la them trudng sd thir tu cho gdi dQ- lieu (packet), phia
giii danh sd thir lu cac gdi dtr lieu va dat gia trj nay vao trudng sd thir tu
(sequence number). Phia nhan chi can kiem tra sd thir tu de xac djnh gdi dir
lieu nhan dugc la gdi mdi hay gdi tmyen lai. Vdi giao thiic stop and -wait
don gian, chi can mgt bit sd thir tu. Ben nhan cd the xac djnh ben giri tmyen
lai gdi du- lieu da giri Ian trudc (sd thii tu eiia gdi du lieu nhan dugc trimg
vdi sd thir tu vdi gdi dQ- lieu nhan dugc Ian trudc) hay gdi dQ- lieu mdi (cd sd
thir tu khac nhau, tang len theo module 2). Vi chiing ta van gia djnh loan bd
gdi dQ- lieu (packet) khdng bj mat tren kenh tmyen, nen trong gdi phan hdi
(ACK/NAK) khdng can chi ra sd thir tu cua gdi du lieu ma chting bien nhan.
Phia giri biet rang gdi ACK/NAK (cd the bj Idi hoac khdng) la bien nhan
cho gdi dir lieu gan nhat nd giri.
rdc send<data)

compute chksan
snake p:<5:(sndpJct. O.daca.chksum)
«t!t_8end (iKidpkt)

rdt_rcV{rcvpkt) 66
i corrupt(rcvpkt) II
isXAK(rc'/pkt>)

tidt_8cnd(8ndpkt>
r<ic_rcv (rcvpkc)
dti notcorrupt (rcvpkt) r d t _ r c v ( rcvpkt)
I.S, iSACK (rcvpkt) 1 W Rotcorrypt(rcvpkt)
U isACK(rcvpkt)

r<it__rcv {rcvpkt) <.(•


( c o r m p t (rcvpkt) 11 rdt aeJHKdata)
isNAKircvpfct))
compute cliksua
udt_a«nd(srtdpkt) Btake_pkt (andpkt, 1 . d a t a , ch.kau(R)
«dt_s«nd{Bnkpfc11

Hinh 3.11 FSM ciia phia gi>i trong rdt 2.1

170
ret revircvpkt)
&i notcorcupt '.rcvpkt.)
i£. has seqO (rcvp:>:tl

e.KLrac'. {rcvpkt. d a t a )
d e l i v e r d a t a (d«it«i)
coMutft c'nkfluR
n:.ake_p:<t (ser.dpkc , ACK. ch;<9UTr,)
•jdt_scnd (sndpkt)
rdi-_rcv (r<:vp:':t; rdt_rcv (rcvpkt!
it corrupt (revp:<t! kL c o r r u p t (rcvpkt)
cotr.pute chkson cocpute chksuo
na:<c_pkc (sndpkC,NA:<,ch:.:suir,) r:iake_pkt (sndpkc,Mi"iK, cbksur.)
vdt r,e:i<i(cr.cipkc) -udt s e n d ( s n d p k t )

-/vVa.i io'v ,'VVoistar


! Oltom I j 1 (-cm
bolow / ^- bdcw,
r d t _ r c v < rcvpkt) rd t _ r c v ( r c v p k t )
&1 not c o r r u p t ( r c v p k t ) && n o t c o r r u p c ( r c v p k t )
f<i haB_seal (rc'.Tp'<t) St 'naB_seqO(rcvpkt)
coaipute clikouir. rdt_rcv(rcvpkt) compute chksum
m a k e p k t (sndp:<t, ACK, tJ, n o t c o r r u p t (rcvpkt) ,noke_p)'.t fsndpkt.ACK,
chkBum) && ;-.as_SGql (rcvpkt) chksum)
u<iC_SOr.d (SiKipkl,! udt_send{sndpkt)
cxti-act (rcvpkt . d a t a )
delivcr_data(data)
coitpute chksun
cnakc_pkt (sendpkt, ACK, cjiksum)
udt_scnd(sndpkc)

Hinh 3.12 FSM cua phia nhan trong rdt 2.1

Hinh 3.11 va Hinh 3.12 la FSM ciia ben giri va nhan trong giao thirc
rdt 2.1 - phien ban mdi ciia rdt 2.0. Trong rdt 2.1, FSM ciia ben giri va nhan
diu ed sd trang thai tang gap ddi. Dd la vi trang thai giao thiic phai bieu dien
gdi dQ lieu dugc giii (bdi ben giii) va gdi dii lieu dugc dgi (tai ben nhan) cd
so thir tu la 0 hay 1. Chii y rang cac hanh ddng trong trang thai gdi dtr lieu
cd so thir tu 0 dugc giri (phia giri) hoac dugc mong dgi (phia nhan) ngugc
vdi trang thai gdi dtr li(;u cd sd thir tu 1 dugc giri hay dugc dgi.
Giao thirc rdt 2.1 sir dung ca bien nhan diing (ACK) va bien nhan sai
(NAK). NAK dugc giri khi nhan dugc gdi dtr lieu bj Idi hay khdng dung sd
thir tu. Chung ta cd th6 khdng cSn sir dung NAK: thay vi viec giri NAK,
chiing ta giri ACK cho gdi dir lieu cudi cimg da dugc nhan dung. Neu nhan
hai ACK cho ciing mgt gdi dii lieu (hien tugng trung ACK - duplicate
ACK) ben giri xac djnh dugc ben nhan khdng nhan dung gdi dir lieu sau gdi
dtr lieu da bien nhan ACK hai Ian. TCP sir dung su kien "3 Ian nhan dugc
ACK trimg nhau" ("triple duplicate ACKs") de kich boat viec giri lai. rdt
2.2 la giao Ihirc tmyen dir lieu tin cay tren kenh tmyen ed bit Idi khdng sir
dung NAK, minh hoa tren Hinh 3.13 va Hinh 3.14.

171
rdc_send(data)
conipute chksum
Rake _pkt(sndpkc,O.data,chkRun)
adt ccnd(cndpkt)
rdt_rcv(rcvpk c)
rdt_rcv(rcvpki) tt
kit notcorrupc (rc'v^kc) (corrupt(rcvpkt) ||
US, i SACK (rcvpkt,!) isACXtrcvpkt, 1))

udt_Bend(cndpkt)

r d t _ r c v ( r c v p k t ) &4
(corrupc(revoke) rdt_rcv(rcvpkt)
leACKtrcvpkt", 0)) && notcorrupt(rcvpkt)
&.& i sACX (rcvpkt, 0)
udt .send (sndpkt)

rdt send(data)

compute chksucB
makG_pkt(sndpkt,l.data.chksuw)
udt_send(undpkt)

Hinh 3.13 FSM ciia phia gCpi trong rdt 2.2

rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
*& ha8_seqO(recvpkt)
extract(rcvpkt,data)
dcliver_data(data)
cosMpute c)ikau»
»ake_pkt (sendpSct, ACKO, ctiksuio)
udt_s©na(sndpkt)
r<3t_rcv (rcvpkt)
SLS. (corrupt (rcvpkt) {j ^
has_secl(rcvpkt)) /^
/Woiilof J rdt_rcv<rcvpkt)
udt_send(sndpkt) A ^ (,St (corrupt (rcvpkt)
bas_BeqO(rcvpkt))

t!dt_s«nd (sndpkt)
r<it_rcv (rcvpkt)
&& notcorrupt(rcvpkt)
&& haa_5eql(recvpkt)

extract(rcvpkt,data)
deliver_data(data)
cowpute chksum
makejpkt (seindpltt, ACKl, chk&um)
udc_8eix3 (sodp:-i.t)
Hinh 3.14 FSM ciia phia nh|in trong rdt 2.1

172
Truyen (lie lieu tin cay tren kenh truyen md dii- lieu hi mdt, Ioi: rdt 3.0.

DQ- heu tren kenh tmyen khdng nhQ-ng bi Idi ma cdn cd the bi mat,
day la tinh hudng kha phd bien trong mang may linh ngay nay, ke ca
Intcnicl. Liic nay giao thirc can phai giai quyet hai van de: lam the nao de
phat hicn goi dir lieu bi mat va lam gi khi mat gdi dQ- lieu. Sir dung co che
phat hi en Idi nhd checksum, sd thir lu, bien nhan ACK va truyen lai gdi dQ-
lieu - da dirge phat trien trong giao thirc rdt 2.2 - cho phep chiing ta giai
quyet dugc van de thir hai. De giai quyet van de thir nhat, chung ta can mot
ca che mdi.

Cd nhigu giai phap xir ly viec mat mat du- lieu. 0 day chiing ta trinh
bay giai phap lira chgn ben giri la noi phat hien va xir ly viec mat dii lieu.
Gia sir phia giri giri di gdi dQ- lieu nhung chinh gdi dir lieu dd hoac bien nhan
ACK cho nd bj mat tren dudng tmygn. Trong ca hai trudng hgp, ben giri deu
khdng nhan dugc bien nhan cho gdi dQ- lieu da giri. Giai phap dugc dua ra la
sau khi giri mgt khoang thdi gian nao dd ma khdng nhan dugc bien nhan
ACK (cd the gdi dQ- lieu bj mat) thi ben giri se tmyen lai.

Nhimg phia giri phai dgi trong bao lau de chac chan rang gdi du- lieu
da bj mat? It nhat phia giri phai dgi trong khoang thdi gian de gdi tin di den
dugc phia nhan, phia nhan xir ly gdi tin va thdng tin bien nhan quay lai.
Trong nhi£u mang, rk khd dir doan va udc luge thdi gian nay. Ly tudng la
phai xir ly vice mat gdi tin ngay khi cd the, dgi mdt khoang thdi gian dai
ddng nghTa vdi viec cham tre khi xir ly gdi tin bj mat. Tren thirc te, phia giri
se chon mgt khoang thdi gian dgi nao dd, mac dii khdng dam bao chac chan
la gdi tin cd bj mat hay khdng. Neu khdng nhan dugc ACK trong khoang
thdi gian nay, ben giii se giri lai gdi dtr lieu. Chii y rang, neu gdi dii lieu den
tre, phia giri se giri lai gdi du- lieu - ngay ca khi gdi dQ- lieu dd va ca ACK
deu khdng bi mat. Dieu nay gay ra triing lap dii lieu tai phia nhan. Tuy
nhien, giao thiic rdt 2.2 da cd du kha nang (nhd sd thir tir) de ngan chan sir
triing lap du: lieu.

Ddi vdi phia giri, tmyen lai la giai phap "van nang". Phia giri khdng
xac djnh dirge gdi dQ- lieu bj mat, gdi bien nhan ACK bj mat hay chi dcm
gian la chting bj tre. Trong mgi trudng hgp, hanh dong ciia nd la gidng nhau:

173
truyen lai. De thuc hien co che truyen lai theo thdi gian, mdt bd dinh thdi
dem ngugc (countdown timer) dugc sir dung de nhac phia gii-i thdi gian dgi
da bet. Do vay, phia gii-i phai cd kha nang (1) khdi tao timer mdi khi giri gdi
dQ- lieu (gdi dtr lieu giri Ian dau hay gdi dQ- lieu dirge tmyen lai), (2) phan
u-ng vdi ngat ciia timer (dua ra nhirng hanh ddng thich hgp) va (3) dimg
timer.

Sir triing lap cac gdi dQ- lieu do phia gii-i tao ra, sir mat mat cac gdi
dQ- lieu (ca gdi dQ- lieu Ian gdi bien nhan) gay khd khan cho phia giri khi xir
ly cac gdi bien nhan ACK. Neu nhan dugc ACK, lam the nao de phia giri
biet dugc ACK dd la bien nhan cho gdi dQ- lieu giri di gan day nhat, hay la
ACK bien nhan cho gdi dQ- lieu nao dd da giri tir tmdc nhung den tre? Giai
phap la ta them vao gdi ACK trudng so thir ty bien nhan (acknowledge
number). Gia trj ciia trudng nay - do phia nhan tao ra - la sd thir tu ciia
chinh gdi dtr lieu can dugc bien nhan. Bang each kiem tra gia trj trudng bien
nhan, phia giri cd the xac djnh dugc sd thir tu eiia gdi dtr lieu dugc bien
nhan.

Hinh 3.15 la FSM ciia ben giri trong giao thirc rdt 3.0 - giao thiic
tmyen dir lieu tren kenh tmyen cd the cd Idi hoac bj mat dtr lieu. Hinh 3.16
minh hoa sir van hanh ciia giao thirc trong mdt sd tmdng hgp. Thdi gian
djch chuyen theo chieu tir tren xudng. Thdi diem nhan gdi dtr lieu cham hon
thdi diem giri gdi dQ- lieu vi tinh den thdi gian gdi du- lieu Ian tda tren dudng
tmyen. Trong Hinh 3.16b-d, ngoac vudng xac djnh thdi diem timer dugc
thiet lap va thdi diem "timeout". Vi sd thii tir ciia gdi du- lieu thay ddi Ian
lugt gitra 0 va 1 nen ddi khi giao thue rdt 3.0 dugc goi la giao thiic mdt bit
luan chuyen (alternate bit protocol).

Chiing ta da diem qua cac thanh phan chinh eho mdt giao thirc
tmyen sd lieu. Checksum, sd thir tu phat, bd djnh thdi (timer), cac gdi bien
nhan ACK va NAK deu cue ky can thiet va ddng vai trd quan trgng trong
qua trinh boat ddng ciia giao thiic. Den bay gid chung ta da cd mot giao thiic
tmyen dtr lieu tin cay thuc sir boat ddng dugc.

174
rdc send(data)

compute chkBvm
niake_pkt (.sndpkt, D, d a t a , chksum
udt;_send( sndpkt)
Etart timer rdt_rcv{rcvpkt) &&
(corrupt(rcvpkt) |{
rdt:_rcv( rcvpkt>_ ._--/C' isAC:<(rcvpkt, 1) )
V'.'cii
. CQI; Irom } ACKO timeout
'v^bc^'c 0 / '
/ ^ - • • • • - v udt_SGnd(endpkt >
scarc_cicr.er
rdt_rcv(rcvpkt)/
&& p o t c o r r u p t ( r c v p k t ) rdt_rcv(rcvpkt)
&& isAC:<(rcvpkc,i) && n o t c o r r u p t ( r c v p k t )
l<& i»ACK(rc-vpkt,0)
\
. . V ^ / Woinof \
/
tir.eout ^ J \
V—*•• V%'oi! i colhVom I' "^ r d t _ r c v ( r c v p k t )
udt_send(sndpkc) \ ACKl \ obove 1 J —
s t a r t ti«;er
r d t _ r c v ( r c v p k t ) £&
(corrupt(rcvpkt) | | r d t se)nd{data)
isAC:<(rcvpkt,0) >
compute chksum
tnake_pkt ( s n d p k t , 1, d a t a , ch.ksuin)
u d t _ s e n d (s.ndpkt)
start_timGr

Hinh 3.15 FSM cua ben gtri trong rdt 3.0

3.4.2 Giao thii-c truyen dir lieu tin cay lien tuc (Pipeline)

Mac dii boat ddng dung nhung khdng phai ai cung vira Idng vdi hieu
suat ciia rdt3.0, dac biet trong cac mang cao toe ngay nay. Cdt Idi vin de
hieu suit cua giao thiic rdt 3.0 chinh la hanh vi dimg va chd (stop and wait).
Nguyen tic cua giao thirc kilu "Dimg va Chd" nhu sau: sau khi phat mot gdi
dii lieu, thilt bj phat dimg phat (stop) de chd nhan phan hdi tir thilt bj nhan
ve kit qua nhan so lieu (wait). Neu kit qua nhan tdt (bien nhan ACK), ben
phat dugc quyen phat tilp. Neu kit qua nhan sai (bien nhan NAK), ben phat
phai giri lai gdi dtr lieu.

175
Ssndet .'deceive! Sonde; Receiver

send pXtO ---..._ pktO send pkco - - „ _ P^'3


"-• rev pktO
• — — . ^

rev pktO
ACKO.--- send Ac:<0 ACKO^-- nerid ACKO
rev ACKO .'^'^ rev Ac:<0. .---pid
-oend p k t l --^...rAii rev p)cCl send pkci "•"---X-v.

ACKl .^ send' ACXl tinieout. -..___p«l


resend pkci rev p k t i
rev ACKl scad ACKl
' C P''.l0 ACK!.^---''
send p);tO
"'"*--_^ rev pktO rev Ac:<i *' , .>.
hzrn^-^ send ACXO send p)ct:0 --..^p<0
rev ?i<tO
^v^"^^ SOtvd ACKO
Af^KO ^ - "

|cl Cpcic'ioii Willi ^.o bs$ (bl tosi podel

Sender jiver Sendet ^ecei'^.'


isend p)cco
send pkcO -- pksO
'---. rev pkco """—• rev ^ktO
ACKO .--^ send AC:<o AOCO.,^-' send ACKO
rev ACKO rev ACKO
send plctl send pkci ^ rev pkci
timeout „ '^^^ send AC<1 timeout send ACKl
ACKl
ttmaxA pkci resend pkci Sjl rev pkc 1
'-....jjiji rev pktl rev ACKl
^'"^--, (detect send pkcO *••<" '<C^ duplicate)
ACKl.--^ duplicate)
^^^;><^<^ send ACKl
rev ACKl Jy^ send ACKl ACKO ^ ''^'' ^AC
^K
^O
send pkco r^f-^^^ send
rev p(CtO

(c| losi ACK Id) Premotuto Kweou?

Hinh 3.16 Vi dy hogt dpng cua giao thirc rdt 3.0

De udc lugng hieu suat cua giao thuc stop a n d -wait, xet trudng hgp
ly tudng vdi hai thiet bj dau cudi, mdt d bd biln phia ddng, mdt d bd biln
phia tay nude My. Thdi gian tre giu-a hai thilt bj (dii tin hieu Ian truyen vdi
tdc do anh sang) la Pprop xap xi 15 ms. Gia sir rSng hai thilt bj dixgc kit noi
bang dudng truyen tdc do C (1 gigabit's). Kich thude ciia gdi dir lieu SP la

176
1Kbyte packet, thdi gian can thiet dc truyen toan bd gdi dtr lieu tren kenh
tniycn tdc do I Gbps dugc tinh bdi cdng thirc:
.^ ^_ SP SKbit/packet
i trails^ = = 0 '1'^
C 1Mbit/sec

Vdi giao thirc stop and wait, neu phia giri bat dau giri gdi dQ- lieu tai
thdi dilm t = 0 thi tai thdi dilm t = 8 microsecond, bit cudi cung mdi dugc
ben giri d§y ra dudng truyen. Tiep theo phai mat 15 ms de ca gdi dtr lieu di
tir phia gii-i sang phia nhan (xem Hinh 3.17a) nhu vay bit cudi cirng cua gdi
dii- lieu den dich tai thdi dilm t = 15.008ms. D I dan gian, ta gia thiet gdi
ACK cd ciing do dai vdi gdi du- lieu va phia nhan giri ngay gdi ACK khi
nhan dugc bit cudi ciing ciia gdi dtr lieu. Nhu vay bit cudi cimg ciia gdi
ACK dugc tmyln tdi dich tai thdi dilm t = 30.016 ms. Trong khoang thai
gian 30.016ms, phia giri chi boat ddng (giri hoac nhan) trong 0.016 ms. Neu
djnh nghTa Hieu suat (utilization) ciia phia giri (hay kenh truyen) la ty le
thdi gian phia giri boat ddng (giri dtr lieu tren kenh truyen), chiing ta cd hieu
suat Usendcr CUC thap:

Usender= ^ 5 2 L = 0.00015
30.016

r l Va packet v F f e ^ Cl^^^S^^&^W

(a) A stop-and-iAtail protocol in operation (b) A pipelined protocol in operation

Hinh 3.17

Dilu dd cd nghTa la phia gui chi hoat ddng trong khoang 0.15 phan
nghin thdi gian. Theo each tinh khac, phia giri giri 1 Kbyte trong 30,016
milisecond tuong duong vdi toe do truyen la 33 Kbyte/s thap hon nhieu so
vdi tdc dp cd the la 1 Gigabit/s. Ngudi quan trj mang "bat hanh" nay phai tra
mot so tiln khong l6 dl thue dudng truyen 1 Gigabit/s nhung eudi cimg chi
nhan dugc mot dudng truyin cd tdc do 33 Kbyte/s. Day la mdt vi du sdng
ddng minh hoa viec phan mIm cd the gidi ban cac kha nang cua phan cung
phia dudi. Trong trudng hgp nay chiing ta da bd qua thdi gian xir ly cua cac

177
giao thirc tang dudi d ca phia gii-i va phia nhan cung nhu thdi gian xir ly va
thdi gian tre ciia goi tin tai cac router trung gian. NIU tinh ca nhirng ylu td
nay, hieu suat boat ddng thuc sir se cdn thap hon nira.

Giai phap cho van de hieu suat se la cho phep phia gii-i giri dong thdi
nhieu gdi dtr lieu ma khdng chn phai dgi ACK (xem Hinh 3.17b). Cd thi
hinh dung cac gdi dir lieu ndi tilp nhau tren dudng truyen tir phia gii'i din
phia nhan gidng nhu nude chay trong mot dudng dng. Vi thi ky thuat giri
lien tiep nay dugc goi la ky thuat dudng ong (pipeline). Ky thuat nay lam
tang hieu suat ciia giao thirc len nhieu ISn, tuy nhien nd ddi hdi nhthig yeu
cau sau:

Khoang sd thir tu phai tang, bdi vi mdi gdi dtr lieu dugc truyin di
(khdng tinh cac gdi dir lieu truyin lai) phai cd mot so thu tu duy nhit. Tren
dudng truyen cd the cd ddng thdi nhilu gdi dtr lieu da giri nhung chua dugc
bien nhan.

Phia giri va phia nhan cd thi phai cd bd dem (buffer) cho nhieu gdi
dti- lieu. It nhat phia giri cd viing dem eho cac gdi dtr lieu da dugc truyin di
nhung chua dugc bien nhan. Phia nhan cung cd thi chn viing dem cho ca cac
gdi dir lieu da nhan dung, nhu se trinh bay dudi day.

Yeu cau vl khoang sd thir tu c§n thilt eijng nhu vl viing dem phu
thude vao each giao thirc xir ly viec m§t dtr lieu, dir lieu bj Idi, bj tre. Cd hai
each tiep can chinh dugc trinh bay d day: Quay lai N (Go-back-N) va Lap
lai CO lira chon (SelectiveRepeat).

3.4.3 Go-back-N (GBN)

Trong giao thuc Go-back-N, phia giri dugc phep truyen di ddng thdi
nhieu gdi dir lieu ma khdng phai dgi bien nhan. Tuy nhien tong so gdi dtr
lieu bj gidi ban bdi gia trj N - tong so gdi dtr lieu toi da chua dugc bien nhan
trong dudng ong. Hinh 3.18 la khoang sd thiir tu trong giao thuc Go-back-N.
Djnh nghTa base la sd thir tu ciia gdi diJ lieu da dugc truyin di lau nhat chua
dugc bien nhan va nextseqnum la sd thir tu nhd nhit chua dugc su dung (la
sd thu tu ciia gdi tilp theo se giri). Cd bon khoang so thu tu nhu sau:
Khoang [0,base-l] ung vdi sd thir tu cua cac gdi dtr lieu da dugc truyen di

178
va da dugc bien nhan. Khoang [base, nextseqnum-1] ii-ng vdi cac gdi dir lieu
da dugc giri di nhung chua dugc bien nhan. Khoang [nextseqnum, base +N-
1] cd the dirge sir dung lam sd thir tu cho cac gdi se dugc giri neu nhu cd du
lieu til- t5ng tren chuyen xudng. Khoang tir [base+N] trd len chua dugc sir
dung cho den khi cac gdi tin dgi bien nhan dugc bien nhan.

Trong Hinh 3.18, khoang so thir tu cho phep ciia nhirng gdi dtr lieu
da dugc gii-i nhung chua dugc bien nhan cd the xem la mot "cira sd" kich
thude N n§m trong pham vi sd thir tu. Khi giao thirc van hanh, cira sd nay cd
thi "trugt" tren toan bo khoang so thir tu. Vi vay, N thudng dugc xem la do
Idn cii-a so (window size) va giao thirc GBN la giao thuc cu^ so trirot
(sliding-window). Tai sao ngay tir dau chiing ta phai gidi ban sd lugng tdi
da cac gdi dti- lieu dugc giri ma chua can bien nhan bdi gia trj N. Tai sao
khdng de gia trj N nay la vd ban. Chiing ta se thay trong phan 3.5, kiem soat
luu lugng la mot trong nhQ-ng ly do bat budc ta phai dat gidi ban phia giri.

base nexcseqnuio

Window size
N

Already U s ^ e , n<A
ACK'd yet sent
Sent, not
Not usable
yet ACK'd

Hinh 3.18 Khoang s6 thu- t\f ciia ben gu'i trong giao thu-c Go-Bacl<-N

Tren thuc te, sd thir tu dugc dat trong mot trudng cd do dai co djnh
trong tieu dl ciia gdi dtr lieu N I U k la do Idn trudng sd thir tu (tinh theo bit)
cua gdi dii- lieu thi khoang sd thir tu se la [0,2*^ - 1 ] . Vi khoang sd thir tu bj
gidi han, nen tk ca cac thao tac tren so thu tu se dugc thuc hien theo module
2^ (khoang so thir tu cd thi xem la mot vdng trdn vdi 2^ gia trj, .sau gia trj 2 -1
la gia trj 0). Giao thue rdt 3.0 chi sir dung 1 bit lam so thu tu nen khoang sd

179
thir tu la [0,1]. Trong phan 3.5 chiing ta se thay trudng so thir lu ciia TCP la
32 bit, va TCP danh sd thir tu den tirng byte - chir khdng phai cho cac gdi.
r d t se.id(data)

if (nextoeqnurtKbaoe'-M) {
coinpute chks\in
n!a:<:e_pkt {ser.dp:<:t,
nexcGecirium, daca, chkcum)
udt_ser.d < sndpkt: (nextseqrmra) )
if (ba6e==nGxts<2qnum)
otart^cimer
r.excseqnujn=nextseqTsuin+l
)
else
refuse data(data)

rdt_rev(rcv_pkt) tiitieouc
<t& noccorrupc(rcvpkt)
scart_C.inier
basie=getacknum(rcvpkt) +1 WAIT j I xjdt_send {sndpkt (base) )
i f <b«se"»nexcseqnufn) \idc__send (sndpkt (b«se«i)
acop_tinier
else •udt_cend (sndpkt
scare ciroer (nextseqnura-l)>
Hinh 3.19 FSM ma rpng cua ben gCpi trong GBN

rdr_rcv(rcvpkt) &&
notcorrupt(rcvpkt) &&
WAIT hasse<jnum( rcvpkt, expectMseqnuni)
default extract(rcvpkt,data)
daliv6r_data(data)
udt_s6nd(sndpkt) makejpkt (sndpkt, ACK, axp^ctedsaqnum)
udt_send(sndpkt)
expectedseqnum » ejcpectedsegnum+l

Hinh 3.20 FSIVI mo" rpng ciia ben nh^n trong GBN

Hinh 3.19 va Hinh 3.20 la FSM md rgng cua phia giri va phia nhan
trong giao thire GBN chi sir dung ACK, khdng su dung NAK. Goi la FSM
mo rong (extended FSM) vi chiing ta them vao cac biln (base va
nextseqnum - giong nhu biln trong ngdn ngir lap trinh), cac lenh va hanh
ddng cd dieu kien lien quan den cac biln nay.

Trong giao thuc GBN, phia giri phai dap img ba su kien sau:

180
Ce) dCr lieu tir tren chiiyesn .xiwng: khi rdt send() dugc phia tren sir
dung dc chuyen dCr lieu xudng, phia giri phai kiem tra xem cira sd da day
chua (tire la dii cd N v,()\ dCr lieu giri di chua dugc bien nhan khdng). Neu
cira so chua day, phia gii'i tao ra va sau do giri gdi dQ- lieu ddng thdi cap nhat
cac bien. Neu cira sd day, phia giri khdng chap nhan dQ- lieu tir tang tren va
thdng bao ciia so da day. Khi do, tiing tren se phai giri lai. Tren thu'c te, phia
giri se dua dQ- lieu vao viing dem (nhung chua giii ngay) hoac cd ca che
dong bg (sir dung semaphore hay cd) chi cho phep tang irng dung sir dung
rdt_send() khi cira sd chua day.

Nhan dude mot ACK: trong giao thirc GBN, gia trj bien nhan mang
tinh tich luy, nghTa la neu bien nhan gdi tin cd sd thir tu n thi toan bd gdi dir
lieu cd sd thir tu nhd han hoac bSng n deu da dugc phia nhan nhan dung.
Chung ta se quay lai van dl nay khi xem xet phia nhan trong giao thirc
GBN.

Het thoi gian de/i (timeout): ten giao thirc - "Go-Back-N" bat ngudn
tir hanh vi ciia phia giii khi dir lieu bj mat hay bj tri. Gidng nhu trong giao
thirc stop and wait, timer dugc sir dung de xir ly viec mat gdi dtr lieu hay gdi
phan hdi. Khi hit thdi gian dgi (timeout), phia giri se giri lai tat ca cac gdi dtr
lieu da dugc giri di trudc dd nhung chua dugc bien nhan. Trong Hinh 3.19,
phia gui chi sir dung duy nh§t mot timer, cd the xem la timer ciia gdi dtr lieu
da dugc truyen di lau nhk nhung chua duoc bien nhan. Neu ACK nao dd
dugc nhan nhung vin cdn gdi dir lieu giri di chua dugc bien nhan thi timer
se dugc khdi ddng lai. NIU tat ca cac gdi dtr lieu da giri deu dugc bien nhan
thi cd the ngimg timer.

Cac hanh ddng ciia phia nhan trong giao thirc GBN dcm gian. Neu
nhan dugc dung gdi dti: lieu va gdi nay dung thu tu thi phia nhan giri ACK
cho gdi nhan dugc va chuyin dtr lieu trong gdi dtr lieu nay len tren. Trong
tat ca cac trudng hgp cdn lai, phia nhan loai bd gdi dir lieu va giri lai ACK
cho gdi dij- lieu dung thir tu cuoi cimg nd nhan dugc. Chii y rang gdi dtr lieu
dugc chuyin len ting tren mdt ikn duy nhat nen neu gdi dtr lieu.thu k dugc
nhan va chuyin len tren thi nghTa la tat ca cac gdi dtr lieu cd so thir tu nhd
ban k ciing da dugc chuyin len. Sir dung ACK tich Itiy la su lira chgn tuyet
vdi cho giao thue GBN.

181
Trong giao thirc GBN, ben nhan loai bd gdi tin khdng theo thir tu.
Dudng nhu lang phi khi loai bd gdi tin da nhan diing nhung khdng diing thu-
tu, nhu-ng cd vai nguyen nhan cho hanh vi tren. Ben nhan phai chuyin dir
lieu len tang tren theo diing thir tir. Gia sii- gdi tin N dang dugc dgi nhan
nhirng gdi tin thir (N+1) lai den trudc. Trong trudng hgp iy, dl dtr lieu
chuyen len hgp le, ben nhan cd the luu tam gdi tin (N+1) va chi chuyin gdi
tin nay len tang tren sau khi da nhan dimg gdi tin thir N. Tuy nhien theo quy
tac truyen lai ciia ben giri, neu gdi tin thir N bi mat thi gdi tin nay va ca gdi
tin N+1 se dugc truyen lai. Nhu vay, ben nhan cd thi loai bd gdi tin N+1.
Uu diem eiia giai phap nay la ben nhan triln khai viing dem (buffer) dan
gian bdi khdng can luu lai cac gdi tin khdng dung thir tu. NIU ben giri phai
ghi nhd cac can ciia cira sd (base, base+N) va vj tri nextseqnum trong cira
sd, thi ben nhan chi phai nhd sd thir tu ciia gdi tin hgp le tilp theo. Gia trj
nay dugc giir trong bien expectedseqnum (sd thir tu dugc mong dgi) (xem
Hinh 3.20). Tat nhien, nhugc diem ciia viec loai bd gdi tin da nhan dung
(nhung khdng theo thir tu) la khi truyen lai gdi tin cd thi bj mat hay Idi, do
dd phai truyen di truyen lai nhieu ISn.

Hinh 3.21 la mdt vi du boat ddng ciia giao thirc GBN trong trudng
hgp cira sd cd do Idn bdn gdi tin. Vdi do Idn nay, ben giri se chi dugc giri
cac gdi tin tir 0 den 3 nhung sau dd phai dgi bien nhan eho cac gdi tin nay
trudc khi tilp tuc giri tiep. Khi nhan dugc cac ACK lien tilp nhau (vi du
ACKO va ACKl), cira sd se trugt vl phia trudc, ben gui cd thi truyen gdi tin
mdi (lin lugt la pkt4 va pkt5). 6 phia ben nhan, gdi tin so 2 bj mat, do dd
gdi tin 3,4,5 gui den khdng theo dung thir tu va bj loai bd.

Vdi GBN, cd mot chii y quan trgng la triln khai GBN tucmg tu FSM
md rong (Hinh 3.19). Flinh thirc triln khai bao gom nhilu thu tuc khac nhau,
mdi thii tuc thuc hien mot nhdm cac hanh ddng nao dd dap lai cac su kien
khac nhau cd the xay ra. Vdi lap trinh hudng su kien (event-based
programming), cac thu tuc se dugc ggi khi su kien tuang ung xuit hien. 6
phia ben giri, sir kien cd thi la: (1) thuc the ting Uen truyin dir lieu xudng
qua thu tiic rdt_send(), (2) ngit khi thdi gian dgi hit va (3) ting dudi chuyen
dir lieu len qua ham rdt_rcv( ).

Chii y ring giao thuc GBN kit hgp hiu hit cac ky thuat ma chiing ta
se gap khi nghien cuu TCP trong muc 3.5: so thir tu, so bien nhan tich luy,
checksum, timeout va viec huyin lai. Trong thuc tl, TCP la giao thuc "tua"
GBN. Tuy nhien cd sir khac biet gitra GBN va TCP. Nhieu phien ban TCP

182
hni lai cac segment khdng theo thu tu nhan diing. Trong phuo-ng an nang
c5p TCP, sir dung bien nlian cd lira chon [RFC 258] cho phep ben nhan cd
the bien nhan tuy y mot gdi tm khdng theo thir tir (chOr khdng sir dung gia Ui
bien nhan tich luy). Bien nhan cd lira chon chinh la ldp giao thu-c giri lien
tilp thir hai ma chiing ta se nghien ciru dudi day: lap lai co lira chon
(selective repeat - SR) . Cd the xem TCP la sir kit hgp ciia ca hai giao thirc
GBN va SR.

Sender Receiver

•*• rev p k t O
send ACKO

rev pktl
send ACKl

send pkt3
(wait) rev pkt3, discard
send ACKl

rev ACKO
send pkt4
rev pkt4, discard
rev ACKl y"
send pktS send ACKl

.pkt2 timeout *• rev pkc5, discard


send pkt2 send ACKl
send pkt3
send pkt4 rev pkc2, deliver
send pktS send ACK2
rev pkc3, d e l i v e r
send ACK3

Hinh 3.21 Giao thu-c Go-Back N trong qua trinh ho?t dpng

183
3.4.4 Giao thiic lap lai co lua chon (Selective Repeat)
Giao thu-c GBN cho phep ben gii-i "dd tran dudng tmyen" bing cac
gdi tin nhu trong Hinh 3.17 va do dd khic phuc dugc hieu suit thap ciia giao
thirc stop and wait. Tuy nhien trong mot vai tinh hudng, chinh hieu suit ciia
giao^ thirc GBN cung cue thap. Vi du khi kich thude cira sd va thdi gian
truyen mot gdi tin Idn, cd thi cd nhilu gdi tm d tren dudng tmyln. Mot gdi
tin bj Idi cd the khien GBN phai tmyln lai nhilu gdi tin ma trong mot sd
trudng__hgp la khdng can thilt. N I U trong vi du doc chinh ta ciia chung ta,
nlu mdi tir bj Ioi phai dgc lai khoang 1000 tir dimg trudc (kich thude cua sd
la 1000 tir) thi tdc do dgc se rit cham.

Giao thirc lap l^i cd lira chon (SR - Selective Repeat) tranh viec
tmyln lai khdng can thilt bing each ben giri chi tmyen lai cac gdi tin ma nd
cho la cd Idi (hoac mit). De tmyln lai timg gdi tin cin thilt, ben nhan cin
bien nhan cho timg gdi tin nhan dung. Giao thuc nay van sir dung kich thude
cira so la N de gidi han tdng so gdi tin chua dugc bien nhan tren dudng
tmyen. Tuy nhien khac vdi GBN, ben giri se nhan dugc bien nhan ACK cho
mdt sd gdi tin trong cira so. Hinh 3.22 la khdng gian sd thu tu cua phia giri
SR. Hinh 3.23 md ta chi tilt hanh ddng ciia ben gui trong giao thirc SR.
AI dy LJsa bie ot
ACX " ed et serIt
_ y
Se nt, n< tot us.ab e
ye A i ^
St; n a Oa s e t i e x t s eqr tun
1
i

! 1 j

I Window size '


• N

(a) Sender view of sequence numbers

Out of order Acceptable


CbuiTered) but (witliin window)
already

u Expected, noti
yet received Not usable

Li U
t_ -Winctow ^ze-
OOD
t N
t:cv_beae
(D) Receiver viewof sequence numbers

Hinh 3.22 Khoang s6 thir t y cua ben giri va ben nh^n

184
Ben nhan Selective Repeat se bien nhan cho bat ky gdi tin nhan
dimg, cho dii khdng theo diing thir tu. Gdi tin khdng diing thir tu van dugc
luu giir lai cho din khi tat ca cac gdi tin cdn thieu (gdi tin cd sd thu tu nhd
ban) dugc chuyen den. khi dd tat ca cac gdi tin se dugc chuyen len tang tren
theo dirng thir tu.
Hinh 3.23 torn t i t cac hoat dpng khac nhau cua ben nhan trong SR.
Hinh 3.25 la mot vi du hoat dpng cua SR trong trudng hgp mat goi tin. Trong

Hinh _V25, ben nhan se luu giir tam gdi tin 3,4 va giri chiing cimg vdi
gdi tin 2 len ting tren khi gdi tin 2 dugc chuyen den.

1. DQ' lieu nhan duvfc tCephia tren

Khi nhSn dugc dCr ligu tu" phia tren, bSn gii'i SR kiem tra
so thir tu se gCri. Neu so thir tu se giri nSm trong cira so girl, du
lieu dugc ddng gdi v^ giri di, ngugc lai thi dir Ii6u dugc luu giu
trong bO dem hoSc gu'i tra Ign tang trfen de giri sau, giong GBN.

2. Het th&l gian dai - Timeout

Timer igi dugc su dung de ph^t hi$n mat gdi tin. Tuy
nhien, mdi gdi tin gii'i di cd mgt timer rieng, bdi vi chl cd duy nhat
mdt gdi tin dugc giri lai khi hk thdi gian dgi. Cd the sii' dung dong
ho h$ thong giu- vai trd ddng bO cho c^c timer.

3. Nh$n duw: ACK

Neu nhan dugc ACK bfen gii'i d^nh dau gdi tin d§ dugc
chuyen dung. Neu so thu" tu cua gdi tin vira dugc bi§n nh$n bSng
send__base, c^nh cu-a so se trugt tdi gdi tin cd so thu" tu nhd nhat
chua dugc bi§n nhSn. Neu cu'a so di chuyin v^ cdn c^c gdi tin
chua dugc truyen thi c^c gdi tin d6 se dugc gii'i.

Hinh 3.23 S y ki?n va phan img cua ben gCri

185
1) Nhan dung gdi tin vdi so thir tu trong khoang
[rcv_base,rcv_base+N-1. Trong trudng hgp nay, gdi tin nhan
dugc n§m trong cira so nhan. Ben nhan giri bien nhSn cho gdi tin
nay. Neu gdi tin do chua dugc nhan tu trudc, nd se dugc ghi lai
trong bo dem. Neu gdi tin dd cd so thir tu bing vdi c$n dudi cua
cu'a so nh$n (rcv_base trong hinh 3.22) thi nd cung cSc gdi tin cd
so thir tu lien tiep da luu giu tir trudc (bit dau tLr rcv_base) dugc
chuyen len tang tren. Cu'a so nhan se trugt vg phia trudc mot
khoang bing vdi khoang so gdi tin dS chuyen |gn ting trgn. Vdi vl
du tren hinh 3.25 khi nhan dugc gdi tin cd so thir tu rcv_base=2
thi gdi tin nay ciing vdi gdi tin rcv_base+1 vS gdi tin rcv_base+2
dugc chuyen len ting tren.

2. Nhan dugc gdi tin vdi so thLc tu trong [rcv_base-


N,rcv_base-1]. Trong trudng hgp n^y, giri bien nh§n lai cho gdi tin
(m§c du da bign nhan tii' trudc).

3. Cac truing hgp khac. Bd qua gdi tin dd.

Hinh 3.24 S y kien va phan li-ng cua ben nhan

Chu y rang d trong budc hai trong Hinh 3.23 ben nhan phai bien
nhan lai (chir khdng dugc bd qua) cho gdi tin din vdi sd thir tu nhd ban gia
trj bien ciia cira sd hien thdi. Dieu nay hit sue cin thilt. Vi du vdi khdng
gian sd thir tu ciia ben giri va ben nhan nhu trong Hinh 3.22, nlu khdng nhan
dugc ACK tir ben nhan xac nhan gdi tin send_base da dugc nhan, ben giri se
giri lai gdi tin sendbase, mac dii rd rang ring (vdi chung ta, chu khdng phai
ben gui) ben nhan da nhan dugc gdi tin dd. Nlu ben nhan khdng bien nhan
gdi tin nay, cua so ben giri cd thi se khdng bao gid trugt tdi phia trudc. Vi
du nay minh boa mot dac dilm quan trgng ciia giao thuc SR (va nhieu giao
thuc tuang tir khac). Su xac djnh cua ben gui va ben nhan vl cai gi da dugc
nhan, cai gi chua dugc nhan khdng phai ludn ludn gidng nhau. Vdi giao thuc
SR, dieu nay cd nghTa la cira sd ben gui va ben nhan khdng bao gid triing
khdp nhau.

186
pktO sent
1 2 3 4 5 6 7
pktO rcvd. delivered. ACKO sent
pktl sent D 12 34 5 6 7
0 12 3 4 5 6-/89
pktl rcvd, delivered. ACKl sent
pkt2 sent 0 1 2 3 4 5 6 7 8 9
0 12 3 4 5 6 7 8

pkt3 s e n t , window £u
0123! 4 5 6 7 8 9
pkt3 rcvd, buffered, ACK3 s e n t
0 1 2 3 45 6 7 89

ACKO rcvd, pkt4 sent


1 2 3 4I 5 6 7 8 9
pkt4 rcvd, buffered. ACK4 sent
ACKl rcvd. pktS sent 0 1 2 3 4 5 6 7 89
0 1 2 3 45 6 7 89
pktS rcvd, buffered, ACKS sent
D 1 2 3 45 6 7 89
•pkt2 TIMEOUT. pkt2 resen
0 1 2 3 4 5 6 7 B9
pkt2 rcvd. pkt2.pkt3.pkt4.pkt5
delivered. ACK2 sent

ACK3 rcvd, nothing sen 0 12 3 45 6 7 8 9

0 ir2~3 4 sle 7 8 9

Hinh 3.25 SR trong qua trinh ho^t dpng

Thilu su dong bd giu'a cira sd ben giri va ben nhan cd the gay hau
qua nghiem trgng trong trudng hgp khoang sd thir tu nhd. Vi du dieu gi cd
thi xay ra vdi khoang so thir tu la 4, cac gdi tin dugc danh sd la 0, 1,2 va 3,
do Idn cira sd la 3. Gia sir cac gdi tin tir 0, 1,2 dugc truyen di va nhan chinh
xac tai phia ben nhan. Ben nhan giri bien nhan cho 3 gdi tin nay. Khi do, cira
sd ben nhan tiln len cac gdi tin thir 4,5 va 6 vdi sd thir tu tucmg iing la 3, 0,
1. Bay gid xem xet hai trudng hgp. Trudng hgp dau tien (
Hinh 3.26a) , ACK ciia 3 gdi tin dau tien bj mat, ben giri truyen lai cac gdi
tin dd. Khi dd ben nhan nhan dugc tiep theo gdi tin cd sd thir tu 0 - lai chinh
la gdi tin 0 dau tien dugc giri ban dau.

187
Sender v/if«.dc>w
Keceiv«r '.vinoow
loiter receipl) icfier receip'}

0 1 2 13 0 1 2 pktO
ACKO 0 1 2 3j0 1 2
_p_ji^^j3 0 1. 2 pkt a

G 1 2 J3 G I 2 pkt2
ACKl 0 12 3 Z) 1 2

ACK2 0 1 2 3 0 1 2

tiwcout

0 X 2 3 0 1 2 pkto
_^ rcccxve packet
wlCh oeq number 0

Io)

Sender w i n d o w Receiver winders


lofler receipt) (oRer receipi)

[o X a (a 0 1 2 pjcto
-*- 1 —1

0 1 aj3 0 1 2 pktl ..- ACKO o 11 a 3 I o 1 a


..ACKl 0 l | T V o ] l 2
• ACK2 0 1 2 [3 0 I 12

_^ r e c e i v e p a c k e t
w i t h «c<s nuiDtocr o

lb)

Hinh 3.26 Khi khoang s6 thuptv nho: Truygn lai hay goi mtyi ?

188
Trong trudng hgp thir hai (Hinh 3.26b), ACK cho ba gdi tin dugc
chuyen di thanh cdng. Nliu vay cii-a sd ben giri se truo't vc phia trudc va giri
dl cue gdi lin 4, 5, va 6 vdi sd thir tu tuang irng la 3,0, 1. Neu gdi tin vdi sd
thir tir 3 bi mat, luc ay gdi tin cd sd thir tu 0 den, gdi tin nay chira du lieu
mdi (khdng phai gdi tin 0 truyen lai).
Ro rang cd mgt biro "man chan" giira ben giri va ben nhan vi ben
nhan khdng the "nhin" thay hanh ddng tir ben giri. Ben nhan chi quan sat
dugc gdi tin nao nd nhan dugc hay giri di. Hai trudng hgp trong
Hinh 3.26 la tucmg tu nhau. Khdng cd phuang phap nao phan biet dugc gdi
0 dugc truyin lai hay gdi 5 dugc truyen Ian dau tien. Rd rang neu kich thude
cira so nhd hon khoang sd thu tu mot dan vj thi he thdng khdng cdn lam
viec dung dfin. Nhung do Idn cira sd nen la bao nhieu? Ngudi ta chung minh
dugc ring do Idn cira sd phai be ban hoac bang mot nira khoang sd thir tu vdi
giao thirc SR.
Chiing ta gia thilt mdi trudng truyen khdng tin cay d dudi dan den
viec cac gdi tin cd thi bj giu- lai tren dudng truyen. Day la viec it khi xay ra
khi kenh truyin gitra phia giri va phia nhan la mdt mdi trudng vat ly thuc su.
Tuy nhien khi kenh truyin nay lai la mot mang may tinh thi viec mdt gdi tin
bj giii- lai tren kenh truyin hoan toan cd thi xay ra. He qua ciia nd la xuat
hien mot gdi tin vdi sd thir tu hay sd bien nhan la x trong khi ca cira sd nhan
va giri deu khdng chira x. Trong trudng hgp nay, kenh truyen bj coi la mot
bd dem, cd thi tuy y phat lai gdi tin d bat cir thdi dilm nao. Vi sd thu tu cd
thi dugc sir dimg lai nen trong mot so trudng hgp se xay ra hien tugng triing
lap gdi tin. Trong thuc tl phai bao dam so thir tu khdng dugc sir dung lai cho
din khi ben giri cd thi tuang doi chic chin vl gdi tin vdi sd thir tu x dugc
giri trudc d^y khdng cdn tdn tai trong mang. Dieu nay dugc thuc hien vdi
gia thiet mgt gdi tin khdng thi "tdn tai" tren mang trong mdt khoang thdi
gian Idn han mdt khoang thdi gian cd djnh nao day. Thdi gian "sdng" Idn
nhit ciia gdi tin xip xi la 3 phiit vdi mang TCP cao tdc [RPC 1323]. Cd
nhieu phuang thuc danh sd thu tu dl tranh viec xuat hi^n lai gdi tin.

3.5 TCP - GIAO THirc GIAO VAN HlTdNG NOI

Sau khi da nghien cim nhung nguyen ly co ban ciia truyen dti: lieu tin
cay, chiing ta se ban den TCP - mdt giao thirc ting giao van ciia Intemet vdi
dac tinh huc'mg ndi va tin cay. Chiing ta se thay rang de cd the cung cap djch

189
vu truyen du- lieu tin cay, TCP ap dung rit nhieu nguyen ly ma chimg ta da
de cap d phin trudc, bao gdm co chl phat hien Ioi, truyen lai, bien nhan tich
liiy, timer, trudng tieu de cho so thir tu va sd bien nhan. TCP dugc dac ta
trong cac khuyin nghj RFC 793, RFC 1122, RFC 1323, RFC 2018, Rl^C 2581.

3.5.1 Ket noi TCP

Chuc nang ddn kenh, phan kenh va phat hien Ioi cua TCP gidng
UDP. Tuy nhien TCP va UDP cd nhilu dilm khac biet. Dilm khac nhau ca
ban nhit la UDP khdng hudng ndi cdn TCP hudng noi. UDP khdng hudng
ndi do cd the giri dir lieu ma khdng cin phai thilt lap trudc dudng truyen.
TCP hudng ndi vi trudc khi tiln trinh img dung cd thi bit diu giri dtr lieu
tdi tien trinh khac, hai tien trinh nay phai cd thii tuc "bit tay" vdi nhau,
nghTa la chiing phai giri mot sd gdi segment dac biet de xac djnh cac tham sd
dam bao cho qua trinh tmyen dtr lieu. Trong giai doan thilt lap kit noi TCP,
hai ben se khdi tao nhieu bien trang thai TCP cho kit ndi (xem muc 3.7).

"Kit ndi" TCP khdng phai kit noi thuc sir giira hai dilm diu miit
(end-to-end) giong nhu mach TDM hay FDM trong mang chuyin mach
kenh. Nd cung khdng phai la mach ao bdi vi trang thai kit ndi nim hoan
toan tren he thong dau cudi. Giao thirc TCP chi boat ddng tren thiet bj diu
cudi va khdng boat ddng tren cac thiet bj trung gian (switch, bridge, router).
Trong thuc te, cac router trung gian chi cd thi thiy cac datagram, khdng
nhin thay cac ket ndi.

Ket ndi TCP cung cap dudng truyen dtr lieu hai hinrng (song cdng -
full duplex). Neu cd kit ndi TCP gitra tiln trinh A chay tren mdt may tinh
va tien trinh B chay tren may tinh khac, khi dd dtr lieu ung dung cd the
truyen tir A tdi B ciing liic vdi dtr lieu truyin tu B sang A. Kit ndi TCP ludn
ludn thude kieu diem ndi diem, gitra mdt ben giri va mdt ben nhan (point to
point). Che do truyen "multicasting" (tien trinh giri cd thi giri dong thdi mdt
thdng diep tdi nhieu tiln trinh nhan) khdng thuc hien dugc trong TCP.
Bay gid ta hay nhin xem kit ndi TCP dugc thilt lap nhu thi nao?
Gia sir cd tien trinh dang chay tren mot may tinh muon khdi tao dudng

190
truyen tdi tien trinh trong mdt may tinh khac. Nhd lai rang tiln trinh nao
khdi lao ket ndi la tien trinh khach (client) va tien trinh kia la tien trinh phuc
vu (server). Dau lien tien trinh irng dung client yeu cau thuc the TCP ciia
minh thict lap dudng ket ndi tdi tien trinh nao dd tren server. Chuang trinh
Java thuc hicn dieu nay bang each sir dung ma:
Socket clientSocket = new Socket ("hostname" ,port number);
Sau dd thuc the giao van trong may client thiet lap ket ndi TCP tdi
thuc the TCP tren may phuc vu. Chiing ta se thao luan chi tiet thii tuc thilt
lap dudng truyen d cudi muc nay. Bay gid chiing ta chi cin bilt la diu tien
may khach se giri mot gdi tin TCP dac biet, may server tra Idi bing mdt gdi
TCP dac biet thir hai va cudi cimg client tra Idi lai bing mot gdi TCP dac
biet thir ba. Hai gdi TCP dau tien khdng tai, cd nghTa la khdng cd dir lieu
thuc sir tir tang img dung, chi bat dau tir gdi thir ba mdi mang dtr lieu. Vi ba
gdi dtr lieu dac biet nay dugc trao ddi giira hai may tinh trudc khi ket noi,
thii tuc thiet lap ket ndi nay cdn dugc goi la giai doan bat tay ba birdc
(three way handshake).

MfQM^ Itl^m Sm- Vinton Clef,Robert Kahn,va TCP/IP.

Dau nhung n§m 1970, mgng chuyen mgch g6i bSt d i u phat triln mgnh
me, va mgng APPAnet, tien than cua Internet - chl la mpt trong c^c l^ieu mgng nhu
v$y. IVIoi kien triic m9ng deu co giao thuc rieng cua minh. Hai nh^ nghien cu-u,
Vinton Cerf v^ Robert Kahn, nh$n thiy t i m quan trpng cua vi#c Icet n6i cac mgng
l^i voi nhau, da cung hhau phat triln giao thu-c lien mgng vdi tgn gpi TCP/IP (vilt
t i t cua Transmission Control Protocx)l/internet Protocol). M|c dii luc dau Cerf Vei
Kahn xem giao thu-c nay la mpt thuc the duy nhat, nhu-ng ngay sau do n6 dugc
t^ch ra th^nh hai phin rieng bi^t, hogt dpng dpc l$p vai nhau \h TCP v^ IP. Cerf vd
Kahn d§ cong bo ve TCP/IP vao 5/1974 trong IEEE Transacsions on
Communications Technology.

Giao thu-c TCP/IP - bp xuong song cua Intemet ngdy nay, du-p-c pheit
minh trudcc mdy tinh c6 nhan PC va trgm lam viec, truac cd sy- thong trj cua
Ethernet va cac cong ngh§ mgng cue bp khdc, truac Web, trudc streaming audio
vd hpi tho^i tryc tuyen. Cerf vd Kahn da nhin thay su can thiet ciia giao thu'c
mgng, mpt m|t, ho trg cho nhieu kieu chuang trinh u-ng dyng (thdm chi ke ca
nhung cdi chua c6), m#t khdc cho ph6p cdc mdy tinh vd giao thu-c ting lien ket b i t
ky c6 the Idm vi$c cung nhau.

Sau khi thiet lap dudng truyen TCP, hai tien trinh ting dung cd thi
trao ddi dtr lieu vdi nhau. TCP la kenh truyen song cdng nen may tinh cd the
giri va nhan ddng thdi. Xet qua trinh gui dir lieu tu tiln frinh client tdi tiln

191
trinh server. Tien trinh client se "dd" ludng du' lieu qua socket ("cira"' ciia
tien trinh - xem muc 2.6). Khi da qua cira, tien trinh gii-i se khdng kiem soat
dugc dQ- lieu ma chinh thuc the TCP chay tren may client se chju trach
nhiem kiem soat. Trong Hinh 3.27, TCP day dti- lieu vao bg dem giri (send
buffer), mdt trong cac bd dem dugc khdi tao trong qua trinh thiet lap ket
ndi. Sau dd TCP se lay va giri dan dir lieu trong bo dcm giri. Tuy nhien. dac
ta TCP khdng xac dinh tud-ng minh khi nao TCP phai giri dtr lieu trong bo
dem. Thudng nd chi yeu cau TCP "giri khi thuan tien". Lugng du' lieu img
dung Idn nhat cd the dat trong mot segment gidi ban bdi MMS (maximum
segement size). Gia trj MMS phu thuoc vao chinh phan mem trien khai TCP
(thudng la he dieu hanh) va cd the cau hinh dugc. Cac gia trj MMS pho biln
thudng la 1500 byte, 536 byte hay 512 byte. (Do Idn cua segment thudng
dugc gidi han de tranh hien tugng phan manh IP, mot hien tugng se dugc dl
cap trong chuang sau). Chii y MMS la lugng dtr lieu iing dung Idn nhit
trong segment, chir khdng phai la kich thude Idn nhat cua segment TCP bao
gdm ca tieu de (header).
Thuc the TCP gdi dtr lieu ciing vdi TCP header trong TCP segment.
TCP segment dugc chuyen xudng dudi tang mang va dugc dat trong goi tin
ctia tang mang (IP datagram) de giri qua mang. 6 phia nhan, thuc the TCP
se dat du- lieu vao bd dem nhan (receiver buffer) ciia ket ndi TCP. Ung
dung se doc ddng diJ lieu nay tir bd dem. Mdi ket ndi deu cd bd dem giri va
bd dem nhan. Bd dem giri va nhan cho dtr lieu dugc minh hoa tren Hinh 3.27.
Chii y rang bd dem, cac bien trang thai, va socket tao thanh kit noi
TCP chi nam tren hai thiet bj dau cudi chir khdng nam tren cac thiet bj trung
gian (router, hub, switch...).

segment

Hinh 3.27 Bp d f m cua t h i ^ t h i TCP

192
3.5.2 Ciiu true T C P Segment

Sau khi da ndi qua vc TCP, bay gid chung ta se xem xet cau tnic gdi
dir lieu TCP (TCP segment). TCP segment bao gdm cac trucmg tieu de va
trudng dir lieu. Trudng dCr lieu chira mot phan dir lieu img dung. Nhu da ndi
d tren, gia trj MMS gidi ban do Idn trudng dir lieu ciia segment. Khi TCP
giri mot file Idn - vi du file anli trong trang Web, nd phai chia file thanh cac
doan cd kich thude MMS (ngoai trir doan cudi cimg cd do Idn be ban hoac
bing MMS). Tuy nhien do Idn dtr lieu ciia cac img dung tucmg tac thudng
nhd han MMS. Vi du, vdi img dung dang nhap tir xa (Telnet), trudng dix
lieu trong TCP segment thudng chi la 1 byte. Do Idn trudng tieu de ciia TCP
la 20 byte (ciia UDP la \% byte). Segment dugc Telnet gui cd thi chi cd 21
byte. ^

Hinh 3.28 minh hoa cau friic TCP segment. Tuong tu UDP, tieu de
TCP bao gdm trudng sd hieu cdng ngudn, sd hieu cdng dich de thuc hien
djch vu don, phan kenh dir lieu cho cac img dung ben tren va trudng
Checksum. Tuy nhien tieu de ciia TCP segment cdn cd cac trudng sau:

Trudng so thir t u (sequence number) 32 bit va trudng so bien


nhan (acknowledge number) 32 bit dugc ben giri va ben nhan sir dung
trong viec cung cap djch vu truyen dtr lieu tin cay, se dugc de cap kT hem
trong phan dudi day.

Trudng do loTi cua sd (window size) 16 bit dugc sir dung de kiem
soat luu lugng. Day chinh la sd lugng dtr lieu tdi da (tinh theo byte) ma ben
nhan cd the chap nhan dugc.

Trudng do dai tieu de (length field) 4 bit xac djnh do dai cua tieu
de TCP theo dan vj la cac tir 32 bit. Tieu de TCP cd the cd do dai thay doi
phu thude truimg option (Neu trudng option rong, thi chieu dai ciia tieu de
TCP la 20 byte).

Trucmg option la tuy chon, cd the thay ddi tuy y. Trudng nay dugc
sir dung khi ben giri, ben nhan ed thi thuong lugng ve gia trj MMS hoac gia
trj gia tang ciia cira sd trong mang cao tdc. Lira chon nhan thdi gian
(timestamping) cting dugc djnh nghTa. Xem RFC 854 va RFC 1323 dl bilt
them chi tiet.

193
Trudng cd (flag) gdm 6 bit. Bit ACK dugc sii- dung de chi ra rang
gia trj dat trong trudng bien nhan la diing. Cac bit RST, SYN va FIN dugc
sir dung trong viec thiet lap hay ddng ket ndi. Khi bit PSH dugc bat, thi day
la dau hieu de yeu cau ben nhan phai chuyen du- lieu len tang tren ngay lap
tire. Cudi ciing, bit URG dugc dimg de bao hieu dQ- lieu trong segment dugc
thuc the tang tren phia giri tao ra la "khan cap". Vj tri byte cuoi cimg cua du
lieu khan cap dugc xac dinh bdi con trd dtr lieu khan 16 bit (ptr to urgent
data). TCP phai bao cho tang tren biet cd dQ- lieu khan va dat con trd vao
cudi dQ- lieu khan (Trong thuc te, PSH, URG va con trd dQ- lieu khin khdng
dugc sir dung)

Source port # Destination port#

Sequence number

Acknowledgement number

Headeri JU A P l^
length pnusec^R O S
KiH
rcvr window sire
N:

Internet checksum ptr to urgent data

Options

Data

•32bits^
Hinh 3.28 C l u true goi dO li?u TCP

194
3.5.3 So thiV tir va So bien nhan

Hai trong sd nhirng trudng quan trong nhat ciia tieu de TCP segment
la trudng sd thir tu va trudng sd bien nhan. Trudc khi ndi den nhQng trudng
nay dugc sir dung dl cung cap dudng trayen dQ- lieu tin cay nhu the nao,
chiing ta cin ndi den nhQ-ng trudng nay nhan gia trj gi.

TCP xem dQ- lieu la ddng cac byte khdng cd cau triic nhung cd thir tu
va TCP se danh sd thir tu cho timg byte ciia ddng dQ- lieu nay. Mdi segment
cd mdt so thir tu, la sd thir tu ciia byte diu tien ciia segment. Xet vi du sau:
Gia sir cd tiln trinh tren may A mudn giri ddng du: lieu tdi tiln trinh tren
may B thdng qua kit ndi TCP. Thuc thi TCP tren may A se danh sd thir tir
cho timg byte trong ddng du- lieu. Gia sir ddng du- lieu nay chua file cd kich
thude 500.000 byte, gia trj MMS la 1000 byte, va byte diu tien cua ddng dtr
lieu dugc danh so thir tu 0. Trong Hinh 3.29, TCP se tao ra 500 segment tir
ddng dQ- lieu nay. Segment diu tien cd so thir tu 0, segment thir hai cd sd thir
tu la 1000 , segment thir ba cd so thir tu la 2000,.... Moi sd thir tu nhu vay
dugc chen vao trudng so thir tu trong tieu de ciia TCP segment tuang img.

File •I
1,000 1,999 499.999
Data for _ . 1 Data for
1st segment 2nd segment

Hinh 3.29 Chia nho file du- l i f u vao cac TCP segment

So bien nhan phirc tap ban sd thir tu. Vi TCP la kenh truyen song
cdng nen A cd thi nhan dugc du- lieu tir B trong khi nd giri du- lieu tdi B
(tren ciing kit ndi TCP). Moi segment den tir may B cd mdt sd thu tu cho
ddng du lieu di tir B sang A. So bien nhan ma may A dat trong segment
cua no se Id so thir tir cua byte tiep theo ma mdy A dang ch& mdy B gui
t&i. D I cd thi hilu rd ban chiing ta xet vi du sau: Gia sir ring may A da nhan
dugc tat ca cac byte tir byte so 0 din byte so 535 may B giri den va gia sir
may A cung giri mdt segment tdi may B. Trong trudng hgp nay, may A dgi
byte thir 536 va toan bd cac byte tilp theo trong ddng du- lieu tir may B. Khi

195
dd may A dat gia tri 536 vao trudng sd bien nhan cua segment ma nd giri tdi
may B.
Mdt vi du khac, gia sir rang may A da nhan dugc mot segment tir
may B bao gdm byte 0 den byte 535 va mdt segment khac bao gdm byte 900
den byte 1000. Vi ly do nao dd, may A khdng nhan dugc byte thir 536 den
byte 899. Trong trucmg hgp nay, may A se van dgi byte thir 536 (va cac byte
tiep theo) de tao lai ddng dtr lieu ciia may B. Do dd. trong segment tilp theo
ben A giri cho ben B, trudng sd bien nhan van chira gia trj 536. TCP bien
nhan tat ca cac byte cho den byte dau tien chua nhan dugc (cdn thilu tiong
ddng dtr lieu), cho nen cd the ndi TCP bien nhan kilu tich !uy
(cummulative acknowledgement).

Vi du cudi ciing dua ra van de quan trong nhung don gian. Ben A
nhan dugc segment thu- ba (byte thu 900 den 1.000) trudc khi nhan dugc
segment thir hai (byte thir 536 den byte 899). Khi dd segment thu ba din
khdng theo dung thu tu. Van de d day se la may tinh se lam gi khi nd nhan
dugc mot segment khdng diing thir tu trong ket ndi TCP ? Rit thii vj, cac
dac ta RFC TCP khdng dua ra bat cir mot quy tac nao de giai quylt. Chinh
ngudi lap trinh phan mem TCP se dua ra each giai quylt. Vl ca ban, cd hai
lira chon: (1) Ben nhan ngay lap tire loai bd cac byte khdng dung thir tu hoac
(2) ben nhan giQ- lai cac byte khdng diing thir tu va chd din khi nhan dugc
cae b)4e thieu, tao thanh ddng dQ- lieu lien tuc. Rd rang giai phap sau cd hieu
qua ban neu danh gia theo hieu suat mang, trong khi dd giai phap thir nhit
don gian hda viec cai dat TCP. Trong quyen sach nhap mdn nay, chiing ta se
coi TCP phia nhan loai bd cac segment khdng dung thir tu.

Trong Hinh 3.30 chiing ta mac djnh sd thir tu khdi tao bit diu tir so
0. Nhung tren thuc tl, ca hai phia kit ndi TCP diu chgn ngau nhien gia trj so
thu tu khdi tao ban dau. Dieu nay se giam thieu xac suit cd mot gdi tin ciia
mdt ket ndi da ket thiic gitra hai may tinh tdn tai qua lau tien mang va bj
hieu nham la mdt segment hgp le ciia mgt kit noi khac gi&a chinh hai may
tinh day.

3.5.4 Telnet: Mot vi du ve so thir tir va so bien nhan


• • • •
Telnet dac ta trong khuyen nghj RFC 854 la giao thirc dang nhap tir
xa phd bien d ting img dung. Nd chay tren nIn TCP va dugc thilt kl dk lam

196
vice giQ-a mdt cap may bat ky. Khdng gidng cac img dung trao ddi du lieu de
cap trong chuang hai. Telnet la irng dung mang tinh tiro-ng tac. Chimg ta
thao kian vi du Teh-iet a day dc cd the hieu rd ban sd thir tu va sd bien nhan
cua TCP.

Gia sir may A ihict lap mot phien Telnet vcVi may B. May A tliict lap
phien lam viec nen ddng vai trd client, may B ddng vai trd sei-ver. Mdi ky tu
dugc ngudi dimg go vao (tai phia client A) se dugc giri tdi may B; B se giii
lai A ban sao ciia ki tu dd. Sau dd A se hien thj ky tu dd trong man hinh
Telnet ciia ngudi sir dung. Tin hieu "echo back" dugc sir dung de chac chan
rang ki tu ma ngudi sir dung nhin thay da dugc nhan va xir ly tai may tinh d
xa. Nhu vay mdi ki tu se dugc truyen qua mang hai Ian trong khoang thdi
gian ngudi dimg go phim tdi khi ky tu dugc hien thj tren man hinh ciia
ngudi sir diing.

Bay gid gia sir rang ngudi sir dung go mot phim bat ki, chang ban la
'C". Hay kieni tra xem cac TCP segment dugc trao ddi gitra client va server.
Tren Hinh 3.31, chiing ta coi sd thur tu bit dau ciia client la 42 va ciia server
la 79. Nhu da ndi tren, sd thir tu ciia segment chinh la sd thir tu ciia byte dau
tien trong truimg dQ- lieu. Khi dd, segment dau tien dugc giri tir phia client se
cd sd thir tu la 42; segment dau tien dugc giri tir phia server si; cd sd thir tu-
la 79. Sd bien nhan la sd thir tu cua byte tiep theo trong ddng du- lieu dang
dgi nhan. Nhu vay, ngay sau khi ket ndi TCP dugc thiet lap - nhung trudc
dtr lieu tiiirc su dugc giri, ben client se dgi byte cd sd thir tu 79 va ben server
se dgi b>1e cd sd thir tu 42. Tren hinh 3.31 ba segment da dugc trao ddi.
Segment dau tien dugc client giri tdi server, chira mot byte ma ASCII ciia ky
tu ' C ' trong trudng dtr lieu. Trudng sd thir tu ciia segment dau tien nhan gia
trj 42. Vi client chua nhan dugc bit ky dtr lieu nao tir server, nen trucmg sd
bien nhan trong segment nay nhan gia trj 79.

Segment thir hai dugc server giri cho client. Cd hai diem chii y vdi
segment nay, dau tien server bien nhan cho dtr lieu vira nhan dugc. Vdi gia
trj 43 trong trudng sd bien nhan, server bao cho client rang nd nhan dung tat
ca cac byte cd sd thir tu khdng vugt 42 va bay gid dang chd nhan byte thir
43. Thu hai la segment nay se chira lai ki tu ' C (phan hdi lai). Liic ay
trudng dir lieu ciia segment thir hai chira ma ASCII cua ky tu ' C . Gia trj

197
trudng sd thir tu ciia segment thu hai nay la 79 - la sd thir tu ciia hyte diu
tien trong ddng dir lieu chuyen tu- server sang client. Chii y ring bien nhan
cho dir lieu tu client tdi server dugc dat ngay trong segment chira du lieu tir
server tdi client. Day goi la bien nhan ghep dudi (piggybacking).

Segment thir ba dugc giri tir client tdi server. Muc dich duy nhit ciia
nd la bien nhan du lieu nhan dugc tir server (chii y segment thir hai chira dir
lieu la ki tu ' C tir server tdi client). Segment thir ba cd trudng dtr lieu rong
(bien nhan khdng di kem vdi dQ- lieu guri den server). Trudng sd bien nhan
ciia segment nay nhan gia trj 80 vi client da nhan dugc tit ca cae byte cd sd
thir tu khdng vugt 79 va dang dgi byte cd sd thir tir 80. Cd le ban nghT that
khdng binh thudng khi segment nay cting ed so thu tu khi nd ching chua dQ-
lieu. Nhung tieu de TCP cd trudng sd thir tu, nen phai dat gia trj nao dd vao
trong trudng nay.

HosfA

h—-'"}

-d/
U^er
types ^®?«42,
•C
Host ACKs
receipl of
^-x data* ";;;_ •c,
echoes bock
Seq* •C
Host ACKs
receipl of
echoed ' C

Time

Hinh 3.31 So thip t y va s6 bien nhgn trong vi dy Telnet

198
3.5.S Truyen du lieu tin cay
Dich vu ting mang ciia Internet Ishdng tin cay: 11' khdng dam bao
vice chuyen datagram, klidng dam bao gui datagram dimg thir tu cung nhu
khdiig dam bao tinh toan ven dir lieu. Voi dich vu IP, datagram co the bj tran
tai bd dcMU router va do dd khdng bao gid den dugc dich, dQ- lieu cd the den
khdng diing thir tu hay cac bit trong datagram cd the bi Idi. Bdi vi segment
ciia ting giao van dugc dat trong IP datagram de truyen qua mang nen
segment ciia ting giao van cung cd thi phai gap nhQng van de neu tren.
TCP tao ra dudng truyin dLir_ii£_aTia, cay tien djch vu khdng tm c|y
ciia IP. Dich vu truyin dQ- lieu tin cay ciia TCP dam bao ddng dQ- lieu tdi tien
trinh nhan khdng cd Ioi, lien tuc, khdng trimg lap dir lieu, dung thir tu. Cd
nghTa la ddng byte nhan dugc giong het ddng byte giri di. Muc nay nghien
ciru each thirc cung cip djch vu truyin dQ- lieu tin cay ciia TCP. Chiing ta se
thiy ring djch vu truyin dir lieu tin cay ciia TCP su dung rat nhieu nguyen
ly CO ban da nghien cim trong muc 3.4.
Hinh 3.32 minh hoa 3 sir kien chinh lien quan din viec truyen hay
truyin lai dQ- lieu tai phia ben giri TCP. De don gian, chiing ta coi ket ndi
TCP giira hai may A va B chuyin dQ- lieu tu--may A tdi may B. Tai phia giri
(may A), thuc thi TCP liy dQ- lieu ciia ting iing dung, ddng gdi trong cac
segment va chuyin xudng ting mang. Do dd nhan du lieu tir tang img dung,
ddng gdi dQ- lieu trong cac segment va gin segment di chinh la sir kien quan
trgng diu tien ma thuc thi TCP ben giri phai xir ly. Ngay sau khi chuyin
segment cho IP, TCP khdi ddng timer cho segment dd. Thidi gian dgi het
(timeout) gay ra mot ngit tai may A. TCP phan img vdi sir kien timeout, day
chinh la sir kien thir hai ma ben giri TCP phai xir ly bing each truyen lai
segment gay ra ngat thdi gian.
Su kien thir ba ma ben giri TCP phai xir ly la nhan dugc mgt
segment bien nhan (ACK) tir ben giri (chinh xac hon la mdt segment chua
gia tri trudng bien nhan ACK hgp le). 6 day, thuc thi TCP phia giri phai
quylt dinh dd la ACK lin diu tien nhan dugc (tuc la bien nhan cho mdt
segment da giri nhung chua dugc bien nhan) hay chi la ACK triing lap (bien
nhan lai mot gdi tin da timg dugc bien nhan). Trong trudng hgp thir nhat thi
ben giri se bilt ring tit ca cac byte cd so thir tu khdng vugt gia tij bien nh|n
vua nhan dugc da dugc giri thanh cdng. Khi dd, ben giri cd the cap nh^t bien
trang thai TCP kilm soat so thir tu ciia byte cudi cimg ma nd cho rang da
duac nhan chinh xac va theo dimg thu tu tai phia ben nhan.

199
TCP cung cap duang truyen tin cay bSng each SLP dgng ACK va timer
giong nhu trong muc 3.4. TCP bien nhgn cho du lieu da dup-c nhgn chinh xac,
va truyen Igi segjnent neu cho rSng segment hay bien nhan tuong u-ng cua n6
bj mat^hogc CO Ioi. Phien ban hl$n thoi cua TCP cung co co che NAK an, day la
CO che truyen Igi nhanh cua TCP l<hl nh|n dup'c ba ACK cho ciing mpt segment
dupe giri. TCP sic dung so thu tu cho phep ben nhgn xac djnh segment bi mat
hogc trung lap. Cai nay tuang tu nhu trudng hpp giao thuc truyen du li$u tin
c|y cua^chung ta. TCP I<h6ng chic chan dupe segment hay bien nh$n cua no bi
Ioi, bj mat hay chi den t.r|, no xu ly giong h$t nhau: truyen Igi.

TCP cung thg^c hl^n vi$c gu'i lien tgc (co che duong ong), cho phep
ben gii'i co the gui nhieu segment ma chua can nhgn bien nhgn ngay, Co che
nay cho phep nang cao hi$u suat cua duong truyen. So lupng t6l da c^c
segment dupe giii chua can bien nhan phg thupe vao co che kiem so^t luu
iu-png va l<iem soat t i e nghen cua TCP. Ca hai co che nay deu dupe nghien
CLFu trong cac phan sau.

De hieu vl phan ung ciia ben gui khi nhan dugc ACK triing lap, diu
tien chiing ta phai xet tai sao ben nhan gui ACK triing lap. Bang 3.1 tdm tit
cac chinh sach chung ciia thuc thi TCP nhan. Khi nhan dugc segment cd sd
thu tu Idn ban so thir tu dang dugc mong dgi, ben nhan phat hien cd doan
trong trong ddng dQ- lieu - nghTa la thilu segment. Vi TCP khdng sir dung
bien nhan phu djnh (NAK) nen ben nhan khdng thi giri bien nhan phii djnh.
Thay vao dd, nd bien nhan lai byte diing thii tu cudi ciing ma nd nhan dugc
(tao ra ACK triing lap). Nlu ben giri TCP nhan dugc 3 ACK triing lap cho
ciing mdt segment, nd se cho ring segment ngay sau segment dugc bien
nhan ba lin bj mit. Trong trudng hgp nay, TCP thue hien ca chl truyin lai
nhanh (fast retransmit) [RFC 258], gui lai segment bj cho la mat trudc khi
timer ciia segment dd hit ban (kit thiic).

/•^assume sender i s not c o n s t r a i n e d by TCP flow or


c o n g e s t i o n c o n t r o l , t h a t d a t a from above i s l e s s than MSS in
s i z e , and t h a t d a t a t r a n s f e r i s in one d i r e c t i o n onlv
*/
sendbase=initial_sequence number /*see Figure 3.18*/
nextseqnum=initial_sequence number

200
l3op (forever) {
switch(event)

even": data received from application above


crea"e TCP segment with sequence number nextseqnum
.•start timer for segment nextseqnum
pass segment to IP
Hextseqnum=nextseqnum+length(data)
brea-;; /* end of event data received from above */

evenc: timer timeout for segment with sequence number y


retransmit segment with sequence number y
compute new timeout interval for segment y
restart timer for sequence number y
break; /* end of timeout event */

event: ACK received, with ACK field value of y


if (y > sendbase) (/* cumulative ACK of all date up to y */
cancel all timers for segments with sequence numbers < y
sendbase=:y
}
else { /* a duplicate ACK for already ACKed segment •*/
increment number of duplicate ACKs received for y
if (number of duplicate ACKs received for y==3) (
/* TCP fast retransmit •*/
resend segment with sequence number y
restart timer for segment y
}
break; /* end of ACK received event */
} /" end of loop forever */

Hinh 3.31 Ben gui cua TCP

Sy kien Hanh dong tidp nh|n cua TCP

Segment den cd so thir tu la so thif Tri hoan ACK. Dgi segment diing
tu mong nnuon. Tat ca du" li$u den thu- tu tiep theo trong khoang thdi
so thu tu mong muon da dugc bien gian 500ms. Neu segment nay
nh$n. Khdng cd khoang trdng trong khdng xuat hign mdi giri ACK
du- lieu nh$n dugc

Segment den cd so thir tu la so thu Ngay ISp tire giri di ACK tich luy duy
tu mong mudn. Segment den trudc nhat bien nhSn cho ca hai segment
dang dgi giii bien nh$n. Khdng c6 dung thu tu.
khoang trdng trong dQ' li§u nhSn dugc

201
Segment khong dung thir t u den, cd Ngay lap tiro giri di ACK trung lap
sd thu t u cao han sd thir t u mong va chl ra so thu t u ciia byte mong
mudn nhan. Phat hien cd khoang mudn nhan tiep theo.
trong dQ- lieu.

Segment d i n lap d l y mdt p h i n Ngay lap tuc gii'i di ACK bien nhan
hoSc toan bp khoang trdng trong dO" cho doan du" lieu dung t h u t u lien
lieu nhan duoc tuc Idn nhat nhan d u o c

Hinh 3.32

Mot vai trirong hop tieu bieu


Hosts

IE

Time

Hinh 3.33 Truydn l^i vi m4t ACK

Chung ta ket thiic trinh bay d day de xem xet vai trudng hgp dan
gian. Hinh 3.33 md ta trudng hgp may tinh A giri mot segment tdi may tinh
B. Gia sir segment nay cd sd thu tu la 92 va cd 8 byte dir lieu. Sau khi giri,
may A chd segment ACK vdi gia trj bien nhan 100 tir may B. Mac dii
segment giri tir may A da den may B nhung ACK giri tir may B din may A
bj mat. Trong trudng hgp nay, khi het thdi gian dgi, may A truyen lai mot
segment gidng bet cho B. DT nhien khi nhan dugc segment truyen lai, may B
se phat hien sir triing lap nhd trudng so thiir tu. Vi vay thuc thi TCP tren
may B se loai bd segment truyen lai.

202
Trong trudng hgp thir hai, may A giri hai segment hen tiep. Segment
diu lien cd sd thir tu la 92 va 8 byte dir lieu, segment thir hai cd sd thir tu la
100 va 20 byte dir lieu. Gia sir ca hai segment nay deu den may B nguyen
ven va may B gui bien nhan ACK rieng re cho tirng segment. ACK cho
segment diu tien cd sd bien nhan la 100 va cho segment thir hai la 120. Lai
gia sir ring ca hai ACK diu khdng din dugc may A trudc khi hit thdi gian
dgi ciia segment diu tien. Khi hit thdi gian dgi, may A giri lai segment dau
tien cd so thir tu 92. Vay may A cd giri lai segment thir hai khdng ? Theo
quy tic md ta tren, may A chi giri lai segment thir hai nlu bet thdi gian dgi
trudc khi ACK cd sd bien nhan 120 hoac Idn ban din. Vi vay, nhu minh hoa
tren hinh 3.33, nlu ACK thir hai khdng mit va din trudc timeout cua
segment thir hai thi may A se khdng phai giri lai segment thir hai .

Trong trudng hgp thir ba va cung la trudng hgp cuoi cimg, gia sir
may tinh A giri hai segment giong nhu trong vi du hai. ACK ciia segment
diu tien bj mit, nhung trudc khi hit thdi gian dgi ciia segment dau tien, may
A nhan dugc ACK cd so bien nhan 120 - do dd may A hieu rang may B da
nhan dugc tit ca cac byte din tan byte thir 119, vi vay may A khdng phai
giri lai segment nao trong hai segment. Trudng hgp nay dugc minh hoa
trong Hinh 3.34.
HoslA HcxsrB

Time

Hinh 3.34 Segment khong c^n t r u y i n lai vi ACK d i n truo-c khi h i t thoi gian dp-i

203
Mac dii trong phin trudc chung ta da ndi TCP la giao thirc kieu Go-
Back-N vi cac gia tri bien nhan mang tinh tich luy va ben nhan khdng bien
nhan cho cac segment da nhan diing nhung khdng theo sd thir tu. Kit qua la
(xem Hinh 3.31 va Hinh 3.18) TCP ben giri chi cin ghi nhd sd thir tu nhd
nhit ciia byte da dugc giri nhung chua dugc bien nhan (sendbase) va so thir
ty- cho byte tiep theo se dugc giri di (nextseqnum). Tuy nhien cin luu y
rang mac dii thanh phin truyin dQ- lieu tin cay ciia TCP giong Go-Back-N,
nhung khdng phai giong hoan toan. Dl phan biet mot sd dilm khac nhau
giira TCP va Go-Back-N, chiing ta hay xem dilu gi se xay ra khi ben giri giri
cac segment lien tilp 1, 2,..., N, tat ea segment nay diu dugc nhan diing thir
tu va khdng cd Ioi. Gia su ACK cua segment n<N bj mit nhmig ACK ciia
N-1 segment cdn lai din ben nhan trudc khi hit thdi gian dgi ciia timg
segment. Trong trudng hgp nay, Go-Back-N se truyen lai khdng chi packet
n rna cdn la tat ca nhimg gdi tin sau n+1, n+2, ..., N. TCP se truyen lai nhilu
nhit la segment thiir n. Tham chi TCP se ^hdng truyin lai segment thu n nlu
ACK cho segment thir n+1 din trudc khi hit thdi gian dgi (timeout) ciia
segment thir n.

HosiA 1-bstB

Tinf>e Tiime

Hinh 3.35 ACK tich luy tranh vi#c t r u y i n l^i segment d i u tien

204
Can day cd mdt sd de xuat [RFC 2018] md rong ca che bien nhan
CLia TCP cho gidng kieu giao thirc Selective Repeat. Y tudng chinh trong
nhung dc xuat nay la cung cap cho ben giri nhirng thdng tm tudng minh ve
segment nao da dugc nhan diing va segment nao chua nhan dugc.

3.5.6 Kiem soat luu luong


Nhac lai rang, thiet bj dau cudi d mdi phia ciia ket ndi TCP deu cd
bd dem dir lieu (buffer). Khi nhan dugc dung mdt ddng byte lien tue (dung
thir tu), TCP se dat ddng byte nay vao bd dem nhan (receive buffer). Tien
trinh img dung nhan se dgc dir lieu tir bg dem nay, nhung khdng nhat thiet la
phai doc ngay khi dir lieu din. Cd the tien trinh img dung nhan phai thuc
hien nhieu tac vu khac nen chua doc ngay dir lieu trong bd dem. Neu ung
dung doe dir lieu cham thi ben giri cd the lam tran bd dem nhan do dtr lieu
dugc giri qua nhieu va qua nhanh. Chinh vi ly do nay TCP cung cap djch vu
kiem soat luu lugng (flow control) de tranh hierriuu3ngJ2M_guiJarn tran bd
dem ben nlian. Kiem soat luu lugng la qua trinh lam tuong thich (matching)
ve tdc do: tuong thich giira tdc do giri va tdc do nhan . Nhu da luu y d phan
trudc, ben giri TCP ciing bj gidi ban do tic nghen trong mang IP, day chinh
la CO che kiem soat tac nghen (congestion control) cua TCP. Mac dii kiem
soat luu lugng gidng kiem soat tac nghen (han che tdc do giri ciia ben gui),
tuy nhien chiing dugc thuc hien vdi nhirng muc dich khac nhau. Nhieu
ngudi coi hai thuat ngii- nay tuang duong nhau, vi vay ngudi dgc nen xem
xet ky de phan biet hai trudng hgp.
RcvWindow -H

Data from Application


TCP process
IP Spare room data
^k. •
In buffer

RcvBuffer
Hinh 3.36 Bien receive window va bp df m nh^n

205
De cung cap ca che kiem soat lun lugng, TCP ben giri sir dung biln
receive window. Day la gia trj ma ben nhan bao cho ben giri biet do Idn
vimg dem cdn rdi ciia minh. Trong ket ndi hai hudng, d mdi phia kit ndi cd
mdt gia trj receive window rieng. Gia trj receive window thay ddi trong
thdi gian ket ndi. Chiing ta hay nghien ciru gia trj receive -window trong vi
du truyen file. Gia sir may A gii-i mot file Idn tdi may B qua kit noi TCP.
May B se khdi tao bd dem cho ket ndi nay vdi do Idn RcvBuffer. Tiln trinh
img dung tren B doc dQ- lieu tir bo dem. Chiing ta djnh nghTa mdt sd bien sau:

LastByteread = sd thir tu ciia byte cudi cimg trong ddng du- lieu ma
tien trinh ung dung trong may B dgc tir buffer

LastByteRcvd = sd thu tu byte cudi ciing trong ddng du* lieu din tir
mang va dugc de trong receive buffer tren may B

Vi TCP khdng cho phep tran bd dem nen:

LastByteRcvd - LastByteread <= RcvBuffer

Receive window la gia trj RcvWindow, la do Idn viing dem rdi:

RcvWindow =RcvBuffer - [LastByteRcvd - LastByteread ]

Bdi vi do Idn viing dem rdi thay ddi theo thdi gian nen gia trj
RcvWindow cung bien ddi. Bien RcvWindow dugc minh boa trong Hinh 3.35.

Ket ndi sir dung bien RcvWindow de cung cap djch vu kiem soat
luu lugng nhu the nao? May B bao cho may A do Idn vimg rdi trong bd dem
ciia minh bang each dat gia trj RcvWindow hien thdi vao trong trudng
window ciia tat ca cac segment giri tdi A. Ban diu may B thiet lap
RcvWindow=RcvBuffer. Rd rang dl dat dugc dilu nay thi may B phai
kiem soat vai bien kit noi.

May A cung cd hai bien LastByteSent va LastByteAcked. Do lech


giua hai bien nay, LastByteSent - LastByteAcked la sd lugng du lieu chua
dugc bien nhan ma A giri qua ket noi. Bang each khdng chl sd lugng du- lieu
chua dugc bien nhan nhd hon gia trj RcvWindow, A dam bao khdng lam
tran bd dem tai B. Do vay trong sudt thdi gian ket noi, A phai dam bao:

LastByteSent - LastByteAcked < RcvWindow

206
Mdt van de ky thuat nhd nay sinh d day. Gia sir bd dem d may B
day, cd nghTa la RcvWindow = 0. Sau khi thdng bao tdi may A la
RcvWindow = 0, may B khdng cd gi de giri tdi may A. Khi tien trinh irng
dung d may B lay dir lieu len lam cho bd dem rong thi TCP khdng giri
segm&nt mdi ciing vdi gia tri RcvWindow mdi tdi may A - TCP chi giri
segment tdi A khi cd du lieu hoac ACK de giri. Bdi vay, may A se khdng
bao giddugc thdng bao da cd them khoang trdng trong bd dem d B. May A
bi "khoa" va khdng the truyen them du lieu. De giai quyet van de nay, dac ta
TCP yeu cau may A tiep tuc giri segment vdi mot byte du lieu khi receive
window ciia may B bang 0. Nhti-ng segment nay se dugc B bien nhan. Khi
bd dem ba,t dau cd vimg rong thi trong gdi bien nhan se ed ca gia trj khac 0
ciia RcvWindow.

Khac TCP, UDP khdng cd co che kiem soat luu lugng. De hieu van
de nay, chiing ta hay xem thuc the UDP giri cac segment tir tien trinh tren
may A tdi tien trinh tren may B. UDP se dat cac segment (chinh xac ban la
du lieu trong segment) vao trong mdt hang dgi cd do Idn huTJ ban iing vdi
socket nao dd ("cira" cua tien trinh). Tien trinli dgc Ian lugt timg segment
trong hang dgi. Neu tdc do dgc cua tien trinh khdng dii nhanh thi hang dgi
se tran va cac segment den sau se bj mat.

3.5.7 Quan ly ket noi TCP

Trong phan nay chiing ta xem xet miot ket ndi TCP dugc thiet lap va
giai phdng nhu the nao. Mac dii day la van de khdng hap dan nhung lai quan
trong bdi vi giai doan thiet lap ket ndi TCP anh hudng Idn den do tre (chang
ban nhu khi duyet Web). Bay gid chiing ta xem mdt ket ndi TCP dugc thiet
lap nhu the nao? Gia sir tien trinh chay tren may client mudn khdi tao mgt
ket ndi tdi tien trinh tren server. Dau tien tien trinh img dung tren client yeu
ciu thue thi TCP cua nd (client) thiet lap mdt ket ndi tdi mdt tien trinh tren
server. Sau dd thue the TCP client khdi tao ket ndi TCP tdi thuc the TCP
tren server qua nhung budc sau:

Budc 1: Dau tien phia TCP client giri mdt segment dac biet tdi TCP
server. Segment dac biet nay khdng chira du lieu eiia tang img dung nhung
cd SYN (mdt bit thude trudng cd (flag)) trong phan tieu de dugc dat gia tri
1. Vi the ddi khi segment dac biet nay dugc ggi la SYN segment. Ngoai ra

207
TCP client chon sd thir tir ban dau (client_isn) va dat gia trj nay vao trudng
sd thir tu ciia SYN segment. Segment nay dugc dat trong IP datagram dl giri
tdi server.

Budc 2: Khi IP datagram chira TCP segment den server (nlu din
dugc) thi server lay SYN segment ra khdi datagram, phan phoi bd dem va
cac bien TCP phuc vu ket ndi ddng thdi gui di mot segment dac biet thdng
bao chap nhan ket ndi tir client. Segment nay cung khdng chira dtr lieu cua
tang ung dung. Tuy nhien nd chira ba thdng tin quan trgng trong phin tieu
de. Thir nhit bit SYN se dugc thilt lap gia trj 1. Thir hai, trudng bien nhan
trong tieu de nhan gia trj client_isn+l. Cuoi cimg, server chgn so thir tu bit
dau ciia minh (server_isn) va dat gia trj nay vao trudng sd thir tu trong tieu
de ciia segment. Vdi segment chap nhan ket noi, server ngu y "da nhan dugc
tir client gdi SYN yeu cau thiet lap ket noi vdi sd thir tu bit diu tir
client_isn. Chap nhan thiet lap ket ndi nay. Sd thir tu ciia server bit diu tir
serverjsn". Ddi khi day dugc ggi la SYNACK segment.
CiJenlhosi Seivsrhosf

Time

Hinh 3.37 Giai do^n bit tay ba biPO'c trong thilt l|ip dipang truyin cua TCP

Budc 3: Khi nhan dugc segment chip nhan kit ndi, client cung khdi
tao bd dem va cac bien phuc -vu ket ndi. Client giri segment thu ba bien nhan
cho segment chap nhan ket ndi cua server (bang each dat gia tri server_isn+l
vao trudng sd bien nhan trong tieu dk eiia TCP segment). Bit SYN dugc dat
gia trj 0 vi ket ndi da dugc thilt lap.

208
Sau khi thuc hien xong ba budc nay thi client va server cd the trao
ddi cac segment chira dir lieu. Bit SYN trong cac segment sau dugc dat gia
tri 0. Nhu vay, de thiet lap dugc ket ndi hai may phai trao ddi ba segment
(xem Minh 3.37). Vi the thii tuc ket ndi dugc xem la qua trinh bat tay ba
budc (three way handshake).
Sender

Time
Hinh 3.38 K i t thuc k i t n l i TCP

Bay gid chiing ta xet den viec ddng ket ndi TCP. Ca hai tien trinh
tham gia kit noi TCP diu cd the kit thiic kit noi. Khi ket ndi ddng lai thi cac
tai nguyen phuc vu kit ndi (bd dem va cac bien TCP) trong may dugc giai
phdng. Vi du client quyet djnh ddng kit ndi (Hinh 3.38). Tien trinh img
dung client se dua ra lenh ddng. Khi dd TCP client giri mdt segment TCP
dac biet din tiln trinh server. Day la FIN segment vi cd FIN trong segment
nay dugc dat gia trj 1. Khi server nhan dugc segment FIN, nd se giri lai cho
client mot segment ACK bien nhan segment FIN ciia client. Ke tiep server
giri lai mot segment kit thiic FIN (cd cd FIN dugc dat gia trj 1). Cudi ciing
client giri segment ACK bien nhan segment FIN ciia server. Tai thdi diem
nay thi tat ea tai nguyen tren hai may deu dugc giai phdng.

Trong suot thdi gian ket ndi TCP, giao thue TCP chay tren mdi may
chuyin qua cac trang thai TCP (TCP state). Hinh 3.39 minh hoa qua trinh

209
thay ddi trang thai TCP xay ra ben phia client. TCP client bit diu d trang
thai ddng (CLOSED). Ung dung ben phia client khdi tao mot kit noi TCP.
Dieu nay ddi hdi TCP client giri SYN segment tdi TCP server. Sau khi giri
SYN segment, TCP client chuyin sang trang thai SYN_SENT. Trong trang
thai SYN_SENT, TCP client dgi SYNACK segment (bien nhan cho SYN
segment ciia minh). Khi nhan dugc segment nay, TCP client chuyin sang
trang thai ESTABLISHED. 6 trang thai ESTABLISHED, TCP client cd thi
giri va nhan TCP segment chira du lieu (la du lieu thuc su do img dung tao ra).
Clien* application,
Wait 30 seconds^..— ^' CLOSED "N Inflates a TCP oonnedion

Send SYN

C/riHE_WAIT")

Receive FIN, Receive SYN & ACK,


send ACK send ACK

FIN WAIT 2
'ESTABLISHED:

SendRN

Receive ACK,
send nothing Client appllcatton
Inliates ck>se connectton
Hinh 3.39 Dong tr^ng thai cua TCP

Gia sir irng dung client quylt djnh ddng kit noi (server tuang tu).
Khi dd TCP client giri FIN segment va chuyin sang trang thai
FIN_WAIT_1. Trong trang thai nay, TCP client dgi segment bien nhan tir
phia server. Sau khi nhan dugc segment nay, TCP client chuyin sang trang
thai FIN_WAIT_2. Trong trang thai FIN_WAIT_2, TCP client dgi FIN
segment tir server. Sau khi nhan segment nay, TCP client giri segment ACK
bien nhan tdi server va chuyin sang trang thai TIME_WAIT. Trong trang
thai TIMEWAIT, TCP client cd thi giri lai bien nhan ACK trong trudng
hgp ACK trudc bj mat. Thdi gian dgi d trang thai T I M E W A I T phu thude

210
vao phan mIm triln khai TCP, nhimg thudng nhan cac gia trj 30 giay, mdt
phut, hai phut. Sau khi hit thdi gian dgi, kit ndi chinh thirc dugc ddng va tat
ca till nguyen phia client (bao gdm ca sd hieu cdng) dugc giai phdng.
Hinh 3.40 minh hoa qua trinh thay ddi trang thai xay ra d TCP
server. Gia sir client yeu cau ket thuc trudc.
Trong hai so dd biln ddi trang thai vira nghien ciiru, chiing ta da tim
hilu vl CO chl thilt lap va giai phdng dudng truyin ciia TCP.
Server application
Receive ACK, creates a I'isten socket
send nothing

Receive SYN,
Send FIN send SYN & ACK

Receive FIN, Receive ACK,


send ACK send no«hlr>g

Hinh 3.40 Cac tr?ng thai cua kit n6i TCP

3.6 KIEM SOAT TAC NGHEN TRONG TCP

Trong cac phin trudc, chiing ta da nghien cuu each thuc TCP curig
cap djch vu truyin tin tin cay giua hai tiln hinh chay tren nhirng thiet bj dau
cudi khac nhau. Mdt djch vu cue ky quan trgng khac ciia TCP la ca che
kilm soat tic nghen. Co chl nay ciia TCP chi dua vao cac thiet bj dau eudi
chir khdng dua vao ca chl kilm soat tic nghen ciia ting mang vi tang IP
khdng cung cap cho TCP cac thdng tin minh bach khi ed tic nghen. Trudc
khi di sau vao chi tilt, chiing ta hay xem xet chung vl ea che kieiri soat tac
nghen ciia TCP va muc tieu kilm soat tic nghen ciia TCP khi nhieu kit noi
TCP ciing chia se mdt dudng truyen bj tac nghen.

211
Ket ndi TCP kiem soat tdc do truyen ciia minh bang each gid ban sd
lugng cac segment da giri nhung chua dugc bien nhan. Djnh nghTa v la sd
lugng cho phep cac segment chua cin bien nhan, thudng dugc coi n:u kich
thirdc cua so ciia TCP (TCP window). Ly tudng la kit ndi TCT clo phep
tmyen vdi tdc do tdi da cd the (cang nhilu segment chua bien nhan cmg tot)
chirng nao chua xay ra hien tugng mat segment do bj tic nghen. Nd chung
ket ndi TCP bat dau vdi gia tri w tuong ddi nhd va sau dd "tham dc" kenh
tmyen cdn rdi khdng bang each tang din gia trj w. Kit noi TCP ilp tuc
dugc tang w cho den khi xay ra mit dQ- lieu (su kien hit didi giai dgi -
timeout hay nhan dugc cac bien nhan triing lap). Khi dd TCP se gian w tdi
mot gia trj "an toan" va sau dd lai bit diu "tham dd" kenh truyin r)i bing
each tang din gia trj w.

Tong quan ve kiem soat tac nghen cua TCP

Trong muc 3.5 chiing ta da thiy mdi kit noi TCP cd bd dem ^iri, bd
dem nhan va mdt vai biln (LastByteRead, RevWin...). Co chl kilm ;oat tic
nghen eiia TCP bd sung them hai biln nira: congestion window (ciri so tic
nghen) va threshold (ngudng). Cira sd tic nghen, ky hieu la CongWn bilu
thj sd lugng dir lieu tdi da ma ngudi giri cd thi giri qua kit ndi. Niu vay
khdi lugng dir lieu dugc giri khdng dugc vugt qua CongWin va RcvWin tuc la:
Last ByteSent - LastByteAcked <min {CongWin,RcvWin}.
Ngudng ky hieu la threshold se anh hudng tdi qua trinh taig cua
CongWin nhu trinh bay dudi day.

Chiing ta hay xem gia trj CongWin tang trong suot kit noi TCP nhu
the nao. De tap trung vao co chl kilm soat tic nghen (khac vdi kiln soat
luu lugng), chiing ta gia thiet ring bd dem nhan du Idn dl cd thi bd cua cac
h^n che ciia cira sd nhan. Trong trudng hgp nay, sd lugng dij lieu gvi chua
can dugc bien nhan chi bj gidi ban bdi CongWin. Chiing ta ciing ga thilt
rang phia giri cin giri nhilu dir lieu.

Sau khi thiet lap ket ndi TCP gitra hai he thong diu cuoi, till trinh
ung dung ben giri chuyen dtr lieu tdi bd dem giri ciia TCP. TCP chia lu- lieu
thanh cac khoi vdi kich thude MMS, dat cac khdi dtr lieu tronj TCP

212
segmcn"., va chuyen segment xudng lang mang de giri di. Cira sd tiic nghen
ciia r C ' dieu tiet sd luxTng segment dugc giii. Ban dau, CongWin nhan gia
tri 1 .M.'4S, TCP gui segment dau tien va dugc bien nhan. Neu segment nay
dugc bien nhan trudc khi timeout, phia giri timg CongWin len 1 MMS va
gii-i di liai segment. Neu nhung segment nay dugc bicn nhan trong thdi gian
dgi ciia chimg, CongWin lai dugc tang them 1 MMS cho mdi segment dugc
bien nhan. Khi dd CongWin mdi la 4 MMS va phia giri giri di bdn segment.
Thii tuc nay dugc thue hien lien tuc cho tdi khi (1) CongWin vugt ngudng
(threshold) hay (2) khdng nhan dugc bien nhan trong thdi gian chd bien nhan.

Trong giai doan nay, cira sd tac nghen (CongWin) tang theo ham sd
mti. Ban diu no nhan gia trj 1 MSS, sau dd tang len 2 MMS, 4 MMS, 8
M M S . . . Day la giai doan khdi dau cham (slow start) vi gia trj cua sd khdi
dau vdi gia trj nhd (1 MMS). Tuy vay gia trj cira sd tang kha nhanh.

Giai doan slow-start kit thuc khi CongWin vugt ngudng. Khi dd gia
trj CongWin se tang tuyen tinh chir khdng cdn tang theo ham sd mti. Tire la
neu CongWin = w, sau khi nhan dugc bien nhan cho w segment, gia trj
CongWin se tang len 1, CongWin = w+1. Day la giai doan tranh tac nghen
(congestion avoidance).

Giai doan tranh tac nghen tiep tuc khi van nhan dugc bien nhan
trong thdi gian dgi. Tuy nhien gia trj cira sd cung nhu tdc do gui dtr lieu
khdng the tang mai. Den liic nao do se xay ra sir cd mat gdi dtr lieu d router.
Dieu nay dan den su kien timeout d phia giri. Liic nay gia trj ngudng
(threshold) nhan gia trj bing mdt nira CongWin, CongWin dugc dat bang 1
MMS. Ben giri se tiep tue tang nhanh gia trj CongWin theo ham sd mu cho
den khi nd vucrt ngudng.
Tdm lai:
Khi cira sd tic nghen chua -vugt ngudng, cira sd se tang theo ham mu.
Khi cira sd tac nghen vugt ngudng, cira sd se tang tuyen tinh.

Khi bet thdi gian dgi, gia trj ngudng bang mdt nira gia trj ciira sd tac
nghen hien thdi va cira sd tac nghen nhan gia trj 1.

Neu bd qua giai doan slow-start, chiing ta se thay TCP tang do Idn
cua so theo cap sd cong khi mang chua bj tac nghen va giam do Idn cira sd

213
theo cap sd nhan (chia 2) ngay khi mang bj tic nghen. Vi vay, TCP dugc coi
la thuat toan AIMD (additive-increase, multiplicative-decrease).

Gia trj do Idn cira sd tac nghen ciia TCP dugc minh boa trong
Hinh 3.41. Trong hinh nay, ngudng ban diu bang 8 MSS. Cira sd tac nghen
tang nhanh theo luy thira 2 trong giai doan slow-start va dat ngudng tai t=3.
Gia trj cira sd tac nghen tang tuyen tinh din khi xuit hien mat mat dtr lieu.
Gia su khi dtr lieu bj mat, cira sd tac nghen cd gia trj 12 MMS. Ngudng mdi
dugc dat bing 0.5 CongWin = 6 MSS va cira sd tic nghen bing 1 MMS.
Qua trinh lai dugc tiep tuc. Thuat toan kilm soat tie nghen nay do
V.Jacobson de xuat. Hien nay cd nhieu bien the ciia thuat toan Jacobson
(xem RFC 2581).

15r

1 2 3 4 5 6 7 8 9 10 11 12 13 14 16
Number of transmissions

Hinh 3.41 Ci>a so k i l m soat t i c nghen

214
Tahoe, Reno va Vegas

Thuat toan kilm scat tic nghen ciia TCP d day dugc goi la Tahoe.
Mdt vin dl vdi thuat toan Tahoe la khi mdt segment bi mat, ngucn gui cd
thi phai dgi trong mot khoang thdi gian dai dl gui lai. Vi vay mdt bien the
ciia Tahoe goi la Reno da dirge tnin khai trong phin Idn cac he dieu hanh.
Giong Tahoe, Reno dat do Idn cii-a sd tic nghen bing 1 khi timeout (het thdi
gian CLia bd djnh thdi). Tuy nhien Reno cd co chl tmyen lai nhanh ma chiing
ta da khao sat trong muc 3.5. Phia giri se giri lai gdi tin da nhan dugc bien
nhan trimg lap ba lin lien tilp ngay ca khi chua hit thdi gian dgi ciia gdi tin
nay. Reno cung sir dung ca chl khdi phuc nhanh (fast recovery). Hien nay
phin Idn thuc thi TCP sir dung thuat toan Reno. Tuy nhien cd nhieu thuat
toan cai tiln dang kl hieu suit ciia Reno - nhu Vegas.

215

You might also like