Giao th泳c UDP (User Datagram Protocol) cho phộp ng逢運i s穎 d映ng g荏i b違n tin mà khụng c亥n thi院t l壱p liờn k院t, do 8ú khụng b違o 8違m vi羽c giao nh壱n chớnh xỏc ho員c th泳 t詠 b違n tin. Giao th泳c UDP dựng cho d鵜ch v映 khụng tin c壱y 100%. Th詠c t院 trong cỏc m衣ng 99% b違n tin UDP 8逢嬰c giao nh壱n 8ỳng 8ớch. Do ớt ch泳c n<ng ph泳c v衣p nờn UDP ho衣t 8瓜ng nhanh h挨n so v噂i TCP.
Source Port Destination Port
Message Length Checksum
DATA
Hỡnh 7-6. Khuụn d衣ng c栄a UDP Datagram.
Cỏc tr逢運ng cú ý ngh a nh逢 sau:
• Source Port - S嘘 hi羽u c鰻ng ngu欝n (c栄a mỏy g穎i): M瓜t tr逢運ng cú th吋 l詠a ch丑n 8逢嬰c v噂i s嘘 hi羽u c鰻ng. N院u m瓜t s嘘 hi羽u c鰻ng khụng xỏc 8鵜nh thỡ tr逢運ng này cú giỏ tr鵜 là 0.
• Destination Port - S嘘 hi羽u c鰻ng trờn mỏy nh壱n.
• Message Length - Chi隠u dài c栄a d英 li羽u trong 8ú c違 ph亥n Header và d li羽u. • Tr⇔ぜng Checksum: là 16 bit bự m瓜t c栄a phộp t鰻ng bự m瓜t c栄a tr逢運ng d英 li羽u,
cú c違 ph亥n pseudoHeader gi嘘ng nh逢 c栄a TCP.
Tr逢運ng checksum c栄a UDP c ng cú th吋 l詠a ch丑n 8逢嬰c, nh逢ng khụng 8逢嬰c dựng. Khụng m瓜t checksum nào 8逢嬰c dựng cho ph亥n d英 li羽u vỡ ph亥n checksum c栄a IP ch雨 dựng cho ph亥n Header IP mà thụi. N院u ph亥n checksum khụng 8逢嬰c dựng thỡ cỏc bit c栄a tr逢運ng này 8逢嬰c thi院t l壱p là 0.
Giao th泳c UDP 8逢嬰c s穎 d映ng trong m瓜t s嘘 tỡnh hu嘘ng 8員c bi羽t :
- Khi truy隠n m瓜t d英 li羽u nh臼 thỡ dựng UDP cú hi羽u qu違 h挨n so v噂i vi羽c k院t n嘘i và h栄y k院t n嘘i khi s穎 d映ng TCP.
- Cỏc 泳ng d映ng h臼i 8ỏp, mong mu嘘n tr違 l運i trong m瓜t th運i gian ng逸n sau khi ng逢運i s穎 d映ng g荏i 8i yờu c亥u. Tr違 l運i c ng là m瓜t c挨 ch院 bỏo nh壱n. Ng逢運i ta u穎 d映ng giao th泳c UDP nh逢 trong cỏc d鵜ch v映" 泳ng d映ng khụng yờu c亥u 8瓜 chớnh xỏc cao nh逢 thụng bỏo gi運 hay cỏc d鵜ch v映 g荏i nh逸n tin, t益 giỏ .. .
- M瓜t s嘘 mụ hỡnh nộn 8吋 truy隠n cỏc thụng tin audio, video, cú th吋 ch医p nh壱n 8逢嬰c m瓜t vài gúi d英 li羽u b鵜 h臼ng hay th医t l衣c.
- M瓜t vài 泳ng d映ng cú 8ụ tin c壱y riờng trong khi truy隠n d英 li羽u thỡ nờn dựng UDP h挨n là TCP.
7.4 C鰻ng và Socket
7.4.1 S嘘 hi羽u c鰻ng
Khi m瓜t mỏy khỏch k院t n嘘i vào mỏy ch栄 thỡ cú th吋 yờu c亥u nhi隠u d鵜ch v映 khỏc nhau trờn mỏy ch栄. M厩i d鵜ch v映"8隠u cú cỏch g荏i và nh壱n d英 li羽u theo quy 逢噂c riờng. TCP và UDP ch雨 ch鵜u trỏch nhi羽m 8逢a d英 li羽u t瑛 m瓜t mỏy tớnh nỏy 8院n m瓜t mỏy tớnh khỏc, cũn d英 li羽u 8ú 8逢嬰c g荏i 8院n d鵜ch v映 theo cỏch nào thỡ ph違i thụng qua e鰻ng c栄a d鵜ch v映.
E鰻ng 8逢嬰c 8員c tr逢ng b荏i m瓜t s嘘 cú giỏ tr鵜 t瑛 0 8院n 65535. Cỏc c鰻ng chu育n t瑛 0 - 1023 là c鰻ng 8逢嬰c dựng cho cỏc d鵜ch v映 ph鰻 bi院n nh逢 FTP, eMAIL, POP3, HTTP, ... Khụng th吋 cú hai ti院n trỡnh cựng s穎 d映ng chung m瓜t s嘘 hi羽u c鰻ng.
Cỏc s嘘 hi羽u c鰻ng (Port Numbers) 8逢嬰c dựng thụng d映ng trong th詠c t院 :
UDP Port TCP Port
0 Reversed 7 Echo 37 Time
42 Name Server
53 Domain Name Server
69 Trivial File Transfer Program ( TFTP ) 514 System Log . . . . 0 Reversed 1 TCP Multiplexor 20 FTP_ Data Connection 21 FTP_ Command Connection 23 TELNET 25 SMTP 42 Name Server
53 Domain Name Server 79 Finger_ find a active user 80 HTTP
7.4.2 Socket
O厩i socket xỏc 8鵜nh m瓜t 8k吋m cu嘘i trong liờn k院t truy隠n thụng hai chi隠u gi英a cỏc ti院n trỡnh giao ti院p trờn m衣ng, là 8嘘i t逢嬰ng mà qua 8ú cỏc d鵜ch v映"泳ng d映ng truy隠n ho員c nh壱n cỏc gúi d英 li羽u trờn m衣ng. Khi c亥n g荏i d英 li羽u 8i, cỏc ti院n trỡnh ghi d英 li羽u vào socket, khi cú d英 li羽u 8院n, cỏc ti院n trỡnh s胤"8丑c socket 8吋 l医y d英 li羽u. Trong nh英ng n<m 80, do nhu c亥u c亥n cú m瓜t giao di羽n l壱p trỡnh 泳ng d映ng API (Application Programming Interface) 8吋 phỏt tri吋n cỏc trỡnh 泳ng d映ng trờn m衣ng TCP/IP, giao di羽n socket 8ó 8逢嬰c xõy d詠ng l亥n 8亥u tiờn trờn h羽"8k隠u hành UNIX. Lo衣i Berkelay Socket (Berkeley Software Distribution - BSD, t衣i Tr逢運ng A衣i h丑c
California 荏 Berkeley) 8逢嬰c thi院t k院 v噂i nguyờn t逸c truy隠n thụng liờn ti院n trỡnh (IPC - InterProcess Communication) trờn m衣ng g逸n li隠n v噂i TCP/IP.
Cỏc Socket cung c医p kh違 n<ng g穎i và nh壱n d英 li羽u thụng qua k院t n嘘i m衣ng mà khụng 8i sõu vào cỏc m泳c và khuụn d衣ng gúi tin, c挨 ch院 qu違n lý b瓜"8羽m. C挨 ch院 trao 8鰻i Socket 8逢嬰c s穎 d映ng trong cỏc mụ hỡnh m衣ng nh逢 sau :
• Mụ hỡnh Client/Server
• Mụ hỡnh m衣ng ngang hàng, nh逢 cỏc trỡnh 泳ng d映ng "chat"
• V衣o cỏc cu瓜c g丑i th栄 t映c t瑛 xa ( Remote Procedure Calls - RPC ) Cỏc ki吋u socket :
1. Stream socket :
U穎 d映ng v噂i giao th泳c TCP, cú thi院t l壱p k院t n嘘i gi英a hai mỏy tr逢噂c khi trao 8鰻i f英 li羽u.
Stream socket cung c医p c挨 ch院 trao 8鰻i d英 li羽u theo hai chi隠u, tin c壱y, cú th泳 v詠 và khụng phỏt l員p.
Khụng cú biờn gi噂i gi英a cỏc record.
2. Datagram socket
U穎 d映ng v噂i giao th泳c UDP, khụng c亥n thi院t l壱p liờn k院t gi英a hai mỏy tr逢噂c khi truy隠n d英 li羽u. Vi羽c 8鵜nh v鵜 Server và Client s胤 thụng qua 8鵜a ch雨" 8ớch trong gúi tin.
Datagram socket cung c医p c挨 ch院 trao 8鰻i d英 li羽u theo hai chi隠u, khụng b違o 8違m tin c壱y và cú th泳 t詠 , cú th吋 phỏt l員p.
Biờn gi噂i gi英a cỏc record trong d英 li羽u g荏i 8i 8逢嬰c b違o toàn.
3. Raw socket
Cung c医p s詠 truy xu医t vào cỏc giao th泳c giao ti院p n隠n cú h厩 tr嬰 socket. Cỏc Socket này tỡnh hu嘘ng là cỏc gúi tin cú 8鵜nh h逢噂ng m員c dự 8瓜 tin c壱y ph映 thu瓜c vào giao di羽n 8逢嬰c cung c医p b荏i giao th泳c.
Raw socket ch雨 dành cho cỏc ng逢運i s穎 d映ng mu嘘n phỏt tri吋n cỏc giao th泳c giao ti院p m噂i ho員c mu嘘n truy xu医t sõu vào cỏc ti羽n ớch bớ m壱t c栄a giao th泳c 8ú.
O瓜t socket cú ba thành ph亥n chớnh :
• Giao di羽n 8逢嬰c liờn k院t : là 8鵜a ch雨 IP c栄a mỏy.
• Lo衣i socket : Stream socket ho員c Datagram socket.
O瓜t liờn k院t gi英a hai mỏy trờn v噂i nhau 8逢嬰c xỏc 8鵜nh b荏i m瓜t c員p socket : Socket (Host1, Port1) và Socket (Host2, Port2). S嘘 Socket là duy nh医t cho phộp o瓜t ti院n trỡnh cú th吋 giao ti院p v噂i m瓜t ti院n trỡnh khỏc trờn m衣ng.
Hỡnh 7-7. Nhi隠u mỏy ngu欝n n嘘i v噂i m瓜t mỏy 8ớch.
O瓜t liờn k院t cú th吋"8逢嬰c thi院t l壱p theo m瓜t trong hai cỏch : ch栄"8瓜ng (active) ho員c b鵜"8瓜ng. Cỏc th詠c th吋 t亥ng trờn s穎 d映ng TCP thụng qua b茨ng cỏch g丑i cỏc hàm f鵜ch v映 nguyờn th栄y. D鵜ch v映 TCP 8逢嬰c thi院t l壱p nh運 m瓜t liờn k院t logic gi英a m瓜t e員p Socket. M瓜t Socket cú th吋 tham gia nhi隠u liờn k院t v噂i cỏc Socket 荏 xa khỏc nhau. Vỡ cỏc khung tin 8逢嬰c 8逢a qua c鰻ng 8隠u cú 8亥y 8栄 cỏc thụng tin v隠 socket (v噂i 8鵜a ch雨 IP), cho nờn khụng cú xung 8瓜t d英 li羽u x違y ra.
7.5 Mụ hỡnh giao ti院p Client/Server
TCP/IP ph映 thu瓜c vào khỏi ni羽m mỏy khỏch (Client) và mỏy ch栄 (Server). Thu壱t ng英 Server dựng 8吋 ch雨 nh英ng ch逢挨ng trỡnh cung c医p cỏc d鵜ch v映 thụng qua o衣ng. Cỏc Server nh壱n 8違m nhi羽m ch泳c n<ng 8ỏp 泳ng cỏc yờu c亥u c栄a mỏy khỏch, th詠c hi羽n vi羽c ph映c v映 và tr違 l衣i k院t qu違. Thu壱t ng英 Client dựng 8吋 ch雨 cỏc ch逢挨ng trỡnh 泳ng d映ng g荏i cỏc yờu c亥u 8院n Server và ch運 k院t qu違 tr違 v隠.
Cỏc ch逢挨ng trỡnh Client và Server th逢運ng th詠c thi trờn cỏc mỏy khỏc nhau. O厩i ch逢挨ng trỡnh Server cú th吋 cựng 8ỏp 泳ng cho nhi隠u ch逢挨ng trỡnh Client trờn nhi隠u mỏy tớnh khỏc nhau cựng m瓜t lỳc.
7.5.1 Quỏ trỡnh trao 8鰻i d英 li羽u dựng Stream Socket
Stream socket d詠a trờn n隠n giao th泳c TCP 8ũi h臼i ph違i t衣o m瓜t k院t n嘘i tr逢噂c khi hai bờn cú th吋 truy隠n ho員c nh壱n d英 li羽u cho nhau. Stream Socket cung c医p m瓜t dũng cỏc byte d英 li羽u khụng cú phõn cỏch cú th吋 truy隠n hai chi隠u. Cỏc dũng d英 li羽u cú th吋 tin c壱y 8逢嬰c phõn phỏt tu亥n t詠, d英 li羽u khụng trựng l逸p, ngh a là cỏc gúi d英 li羽u 8逢嬰c phõn phỏt theo th泳 t詠" 8逢嬰c phỏt, và m厩i l亥n ch雨 cú m瓜t gúi riờng bi羽t 8逢嬰c truy隠n. Mỏy C Mỏy B Uえ hi゜u cがng nguおn 350, cがng 8ớch là 23 Uえ hi゜u cがng nguおn 351, cがng 8ớch là 23 Uえ hi゜u cがng nguおn 352, cがng 8ớch là 23 Mỏy A Mỏy 8ớch
F衣ng socket này r医t thớch h嬰p v噂i mụ hỡnh Client/Server. Server s胤 t衣o m瓜t socket, gỏn cho nú m瓜t tờn (cung c医p m瓜t 8鵜a IP c栄a mỏy và m瓜t port 8吋 giao ti院p), và 8嬰i client n嘘i k院t 8院n socket. Bờn client c ng t衣o m瓜t socket và n嘘i k院t 8院n tờn socket trờn server. Khi server phỏt hi羽n cú yờu c亥u k院t n嘘i t瑛 client, nú s胤 t衣o m瓜t socket m噂i và s穎 d映ng socket m噂i 8ú 8吋 giao ti院p v噂i client. Socket c ti院p t映c 8嬰i m院t n嘘i t瑛 cỏc client khỏc.
U挨" 8欝 trao 8鰻i d英 li羽u gi英a Client/Server b茨ng cỏch dựng Socket 8逢嬰c bi吋u di宇n nh逢 sau : Start connect() send()/recv() socket() Kết thúc close() CLIENT socket() bind() Start End Wait for connections from clients accept() send() / recv() listen() close() SERVER
Hỡnh 7-8. S挨"8欝 trao 8鰻i d英 li羽u gi英a Client/Server b茨ng StreamSocket.
7.5.2 Quỏ trỡnh trao 8鰻i d英 li羽u dựng Datagram Socket
Datagram Socket d詠a trờn giao th泳c UDP khụng 8ũi h臼i ph違i thi院t l壱p m瓜t k院t p嘘i tr逢噂c khi truy隠n và nh壱n d英 li羽u. D英 li羽u ch雨 là m瓜t gúi 8挨n, vỡ v壱y d衣ng socket này th逢運ng dựng 8吋 truy隠n cỏc m磯u tin, khụng c亥n nhi隠u cỏc header l噂p 泳ng d映ng. F衣ng socket này cung c医p lu欝ng d英 li羽u khụng b違o 8違m theo th泳 t詠 ho員c khụng b鵜 trựng l逸p, khụng b違o 8違m d英 li羽u s胤"8院n 8逢嬰c n挨i nh壱n. D英 li羽u cú th吋"8院n khụng theo th泳 t詠"8逢嬰c phỏt và cú kh違 n<ng b鵜 trựng l員p. Nh逢ng s詠 phõn cỏch gi英a cỏc
o磯u tin thỡ 8逢嬰c duy trỡ. Trong m衣ng LAN datagram cú kh違 n<ng tin c壱y t逢挨ng 8嘘i v嘘t, nh逢ng trong m衣ng WAN, nh逢 m衣ng Internet thỡ khụng 8逢嬰c 8違m b違o.
Đ N逢u 8欝 client/server s穎 d映ng giao th泳c UDP
socket() bind() Start End send() / recv() close() SERVER Start send()/recv() socket() End close() CLI ENT
Hỡnh 7-9. S挨"8欝 trao 8鰻i d英 li羽u gi英a Client/Server b茨ng DatagramSocket.
7.5.3 Vớ d映 ch逢挨ng trỡnh client/server
Trong vớ d映 d逢噂i 8õy ch逢挨ng trỡnh server th詠c hi羽n cỏc b逢噂c thi院t l壱p cho vi羽c ch運"8嬰i m瓜t k院t n嘘i t瑛 ch逢挨ng trỡnh client. Sau khi thi院t l壱p k院t n嘘i v噂i client, c違 hai th詠c hi羽n m瓜t s嘘 thao tỏc truy隠n và nh壱n thụng tin r欝i k院t thỳc ch逢挨ng trỡnh.
7.5.3.1 Mó lうnh ch⇔¬ng trỡnh Server
- T衣o ra m瓜t socket v噂i hàmsocket().
- Ràng bu瓜c socket v噂i m瓜t 8鵜a ch雨 b茨ng hàmbind ().
- Dựng hàmlisten()8吋 ch運"8嬰i m瓜t k院t n嘘i.
- Nh壱n b医t k thụng tin nào yờu c亥u k院t n嘘i b茨ng hàmaccept().
- Nh壱n cỏc thụng bỏo g穎i 8院n b茨ng hàmread()và g穎i thụng bỏo 8院n client b茨ng hàmwrite().
-
/* mksock.c make and bind to a socket - userver*/
#include<stdio.h> #include<sys/socket.h> #include<sys/un.h> #include<unistd.h> void die(char * message); void copyData(int from, int to);
int main(void) {
struct sockaddr_un address; int sock,conn; size_t addrLength; if ((sock=socket(PF_UNIX,SOCK_STREAM,0))<0) die("socket"); /*unlik("./sample_socket");*/ address.sun_family=AF_UNIX; strcpy(address.sun_path,"./sample_socket"); addrLength=sizeof(address.sun_family)+strlen(address.sun_path); if(bind(sock,(struct sockaddr *)&address,addrLength))
die("bind"); if(listen(sock,5)) die("listen"); while((conn=accept(sock,(struct sockaddr*)&address,&addrLength))>=0) { printf("---getting data\n"); copyData(conn,1); printf("---done\n"); close(conn); } if (conn<0) die("accept"); close(sock); return 0; }
void die(char * message){ perror(message); exit(1);
}
void copyData(int from,int to){ char buf[1024]; int amount; while ((amount=read(from,buf,sizeof(buf)))>0){ if(write(to,buf,amount)!=amount){ die ("write"); return; } } if (amount<0) die("read"); } 7.5.3.2 Mó lうnh ch⇔¬ng trỡnh client
V瑛 ch逢挨ng trỡnh client , 8吋 th詠c hi羽n 8逢嬰c m瓜t k院t n嘘i 8院n server và truy隠n nh壱n thụng tin ch雨 c亥n th詠c hi羽n 2 b逢噂c c挨 b違n nh逢 sau:
- T衣o m瓜tsocket()v逢挨ng 泳ng v噂i ch逢挨ng trỡnhservere映 th吋 .
- Yờu c亥u 8院n server th詠c hi羽n k院t n嘘i b茨ng cỏch g丑i hàmconnect().
P院u m瓜t k院t n嘘i 8逢嬰c t衣o ra, client cú th吋 g穎i yờu c亥u b茨ng hàm write() và nh壱n cỏc 8ỏp 泳ng ph違n h欝i b茨ng hàmread().
/* sockconn.c - connect to a socket - uclient*/
#include<sys/socket.h> #include<sys/un.h> #include<unistd.h> void die (char * message);
void copyData(int from, int to); int main(void){
struct sockaddr_un address; int sock;
size_t addrLength;
if ((sock=socket(PF_UNIX,SOCK_STREAM,0))<0) die("socket");
address.sun_family=AF_UNIX;
strcpy(address.sun_path,"./sample_socket");
addrLength=sizeof (address.sun_family) + strlen(address.sun_path); if(connect(sock,(struct sockaddr *)& address,addrLength)) die("connect"); copyData(0,sock);
close(sock); return 0; }
void die(char * message){ perror(message); exit(1);
}
void copyData(int from, int to){ char buf[1024]; int amount; while ((amount=read(from,buf,sizeof(buf)))>0){ if(write(to,buf,amount)!=amount) { die("write"); return; } } if (amount<0) die("read"); } --- BÀI T一P 1. Tỡm hi吋u cỏc mụ t違 Socket và c医u trỳc d英 li羽u c栄a socket mà h羽"8k隠u hành e医p phỏt 8吋 l逢u tr英 cỏc thụng tin c亥n thi院t cho k院t n嘘i m衣ng.
2. Tỡm hi吋u cỏc th逢 vi羽n l壱p trỡnh WinSock trờn h羽"8k隠u hành Windows. 3. Vi院t cỏc ch逢挨ng trỡnh giao ti院p Client/Server theo mụ hỡnh giao ti院p
Ch⇔¬ng 8 V井N G PHIấN
V亥ng phiờn (Session Layer) làm nhi羽m v映 t鰻 ch泳c và 8欝ng b瓜 s詠 chuy吋n 8鰻i f英 li羽u gi英a cỏc ti院n trỡnh 泳ng d映ng khỏc nhau. T亥ng Phiờn làm vi羽c v噂i t亥ng 泳ng f映ng 8吋 cung c医p cỏc t壱p d英 li羽u, 8逢嬰c g丑i là cỏc 8k吋m 8欝ng b瓜, cỏc 8k吋m này cho phộp m瓜t 泳ng d映ng bi院t quỏ trỡnh truy隠n và nh壱n d英 li羽u 8逢嬰c th詠c hi羽n nh逢 th院 nào.
V亥ng phiờn ch鵜u trỏch nhi羽m thi院t l壱p và duy trỡ m瓜t phiờn truy隠n thụng gi英a hai tr衣m ho員c nỳt m衣ng. M瓜t phiờn truy隠n thụng qua m瓜t m衣ng ho衣t 8瓜ng cú ph亥n gi嘘ng v噂i m瓜t cu瓜c g丑i qua cỏc 8逢運ng dõy 8k羽n tho衣i. T亥ng Phiờn c嘘 g逸ng thi院t l壱p o瓜t phiờn truy隠n thụng gi英a hai nỳt trờn m瓜t m衣ng. C違 hai nỳt 8隠u th瑛a nh壱n phiờn truy隠n thụng này th逢運ng s胤"8逢嬰c gỏn m瓜t s嘘 hi羽u nh壱n di羽n. M厩i nỳt cú th吋 ng逸t phiờn truy隠n thụng gi英a hai nỳt trờn m瓜t m衣ng 8逢嬰c g丑i là oじt cごng lufn lý
(Socket). Khi m瓜t phiờn truy隠n thụng 8逢嬰c thi院t l壱p, m瓜t c鰻ng lu壱n lý s胤"8逢嬰c m荏 ra. M瓜t phiờn truy隠n thụng 8詠挨c k院t thỳc 8逢嬰c g丑i là oじt cごng lufn lý bお" 8úng
(Close Socket).
O映c tiờu c栄a t亥ng phiờn là cú kh違 n<ng cung c医p cho ng逢運i s穎 d映ng cỏc ch泳c p<ng c亥n thi院t 8吋 qu違n lý cỏc phiờn 泳ng d映ng c映 th吋 nh逢:
- Ak隠u ph嘘i vi羽c trao 8鰻i d英 li羽u gi英a cỏc 泳ng d映ng b茨ng cỏch thi院t l壱p và gi違i phúng (m瓜t cỏchlogic) cỏc phiờn (hay g丑i là cỏc h瓜i tho衣idialogues).
- Cung c医p cỏc 8k吋m 8欝ng b瓜 húa 8吋 ki吋m soỏt vi羽c trao 8鰻i d英 li羽u.
- ỏp 8員t cỏc qui t逸c cho cỏc t逢挨ng tỏc gi英a cỏc 泳ng d映ng c栄a ng逢運i s穎 d映ng. - Cung c医p c挨 ch院 l医y l逢嬰t (n逸m quy隠n) trong cỏc quỏ trỡnh trao 8鰻i d英 li羽u.
Trong t亥ng phiờn thỡ v医n 8隠"8欝ng b瓜 húa 8逢嬰c th詠c hi羽n t逢挨ng t詠 nh逢 m瓜t c挨 ch院 ki吋m tra / ph映c h欝i (check point/reset).Trong m瓜t h羽 qu違n tr鵜 t壱p tin, d鵜ch v映 này cho phộp ng逢運i s穎 d映ng xỏc 8鵜nh cỏc 8k吋m 8欝ng b瓜 húa trong dũng d英 li羽u và cú th吋 khụi ph映c l衣i vi羽c h瓜i tho衣i b逸t 8亥u t瑛 m瓜t trong cỏc 8k吋m 8ú.
8.1 D鵜ch v映 OSI cho t亥ng Phiờn
V亥ng phiờn làm vi羽c qu違n lý cỏc cu瓜c tho衣i gi英a hai mỏy tớnh b茨ng cỏch thi院t n員p, qu違n lý, và k院t thỳc cỏc phiờn truy隠n thụng.
8.1.1 Cung c医p cho ng逢運i s穎 d映ng d鵜ch v映 t亥ng phiờn (SS-user)
- Thi院t l壱p m瓜t liờn k院t v噂i m瓜t ng逢運i s穎 d映ng d鵜ch v映 t亥ng phiờn khỏc, trao 8鰻i f英 li羽u v噂i ng逢運i s穎 d映ng 8ú m瓜t cỏch 8欝ng b瓜 và h栄y b臼 liờn k院t m瓜t cỏch cú tr壱t t詠 khi khụng dựng 8院n n英a.
- Th逢挨ng l逢嬰ng v隠 vi羽c dựng cỏc th飲 bài (TOKEN) 8吋 trao 8鰻i d英 li羽u,8欝ng b瓜 húa và h栄y b臼 liờn k院t ,s逸p x院p ph逢挨ng th泳c trao 8鰻i d英 li羽u (half-duplex ho員c full-duplex).
- Thi院t l壱p cỏc 8k吋m 8欝ng b瓜 húa trong cỏc h瓜i tho衣i và khi x違y ra s詠 c嘘 thỡ cú th吋 khụi ph映c l衣i vi羽c h瓜i tho衣i b逸t 8亥u t瑛 m瓜t 8k吋m 8欝ng b瓜 húa 8ó th臼a thu壱n.
- Ng逸t h瓜i tho衣i và khụi ph映c l衣i h瓜i tho衣i sau 8ú t瑛 m瓜t 8k吋m xỏc 8鵜nh tr逢噂c. Cỏc d鵜ch v映 xỏc 8鵜nh 8k吋m 8欝ng b瓜 húa là nh茨m vào hai m映c 8ớch :
1) Cỏc 8k吋m 8欝ng b瓜 húa cú th吋 phõn tỏch cỏc ph亥n c栄a m瓜t h瓜i tho衣i. 2) Cỏc 8k吋m 8欝ng b瓜 húa cú th吋 dựng 8吋 ph映c h欝i l厩i.
Cỏc 8kあm 8げng bじ húa chớnh dựng 8吋 c医u trỳc quỏ trỡnh trao 8鰻i d英 li羽u thành o瓜t chu厩i cỏc 8挨n v鵜 h瓜i tho衣i (dialogue), m厩i 8k吋m này ph違i 8逢嬰c xỏc nh壱n và