Giao th cđ iu khi nđ ng tru yn TCP (Transmission Control

Một phần của tài liệu GIÁO TRÌNH MẠNG TRUYỀN THÔNG (Trang 42 - 47)

Protocol)

a) Nhi m v

Trong b giao th c TCP/IP, TCP là t ng trung gian gi a giao th c IP bên d i và m t ng d ng bên trên. TCP cung c p các k t n i đáng tin c y và làm cho vi c các ng d ng có th liên l c v i nhau tr nên trong su t. TCP làm nhi m v c a t ng giao v n trong mô hình OSI đ n gi n c a các m ng máy tính.

S d ng TCP, các ng d ng trên máy ch đ ng đ c n i m ng có th t o các

k t n i t i nhau, mà qua đó chúng có th trao đ i d li u ho c các gói tin. Giao th c này đ m b o chuy n giao d li u c a nhi u ng d ng (ch ng h n, d ch v Web và d ch v th đi n t ) đ ng th i ch y trên cùng m t máy ch .

TCP h tr nhi u giao th c ng d ng ph bi n nh t trên Internet và các ng d ng k t qu , trong đó có WWW, th đi n t và Secure Shell.

b) Các t ng h p TCP

TCP s d ng khái ni m s hi u c ng (port number)đ đnh danh các ng d ng g i và nh n d li u. M i đ u c a m t k t n i TCP có m t s hi u c ng (là s không d u 16-bit) đ c g n cho ng d ng đang nh n ho c g i d li u. Các c ng đ c phân chia thành ba lo i c b n:

N i ti ng: Các c ng n i ti ng đã đ c gán b i t ch c Internet Assigned Numbers Authority (IANA) và th ng đ c s d ng b i các ti n trình m c h th ng ho c các ti n trình c a root. Ví d : FTP (21), TELNET (23), SMTP (25) và HTTP (80). Trong b ng 3.1 s li t kê m t vài c ng TCP ph bi n

S hi u c ng Mô t

0 Reserved

5 Remote job entry

7 Echo

9 Discard 11 Systat 13 Daytime 15 Nestat

17 Quotd (quote odd day) 20 ftp-data

23 Telnet 25 SMTP 37 Time 53 Name Server 102 ISO-TSAP 103 X.400 104 X.400 Sending 111 Sun RPC

139 Net BIOS Session source 160-223 Reserved

B ng 3.1 - Các c ng TCP ph bi n

- c đ ng ký: Các c ng đ c đ ng ký th ng đ c s d ng b i các ng d ng ng i dùng đ u cu i (end user application) v i vai trò các c ng phát t m th i (khi dùng xong thì h y đ ng ký) khi k t n i v i server, nh ng chúng c ng có th đnh danh các d ch v có tên đã đ c đ ng ký b i m t bên th ba.

- ng /cá nhân: Các c ng đ ng/cá nhân c ng có th đ c s d ng b i các ng d ng ng i dùng đ u cu i, nh ng không thông d ng b ng. Các c ng đ ng/cá nhân không có ý ngh a gì n u không đ t trong m t k t n i TCP, có 65535 c ng đ c chính th c th a nh n.

c) Nguyên t c ho t đ ng

Các ng d ng g i các dòng g m các byte 8-bit t i TCO đ chuy n qua m ng. TCP phân chia dòng byte này thành các đo n (segment) có kích th c thích h p (th ng đ c quy t đnh d a theo kích th c c a đ n v truy n d n t i đa (MTU) c a t ng liên k t d li u c a m ng mà máy tính đang n m trong đó). Sau đó, TCP chuy n các gói tin thu đ c t i giao th c IP đ g i nó qua m t liên m ng t i mô đun TCP t i máy tính đích.

V n đ đ t ra là t i sao l i ph i c n có TCP và TCP khác gì so v i các giao th c khác? Các ng d ng th ng c n các k t n i đáng tin c y ki u đ ng ng đ liên l c v i nhau, trong khi đó, giao th c IP không cung c p nh ng dòng ki u đó, mà ch cung c p d ch v chuy n gói tin không đáng tin c y. i m khác bi t c a TCP và các giao th c khác là ph ng th c ti n hành d li u, TCP đòi h i thi t l p k t n i tr c khi b t đ u g i d li u và k t thúc k t n i khi vi c g i d li u hoàn t t. C th , các k t n i TCP có ba pha:

l p m t k t n i, TCP s d ng m t quy trình b t tay 3 b c (3- wayhandshake). Tr c khi client th k t n i v i m t server, server ph i đ ng ký m t c ng và m c ng đó cho các k t n i: đây đ c g i là m b đ ng. M t khi m b

đ ng đã đ c thi t l p thì m t client có th b t đ u m ch đ ng. thi t l p m t k t n i, quy trình b t tay 3 b c x y ra nh sau:

B c 1: M ch đ ng đ c th c hi n b ng cách g i m t gói tin (SYN) xin k t n i cho server đang đ i k t n i t i m t c ng nào đó.

B c 2: Server tr l i b ng m t gói tin ch p nh n k t n i (SYN-ACK).

B c 3: Cu i cùng, client g i m t tín hi u báo nh n (ACK) cho server. n

đây, c client và server đ u đã nh n đ c m t tin báo nh n (acknowledgement) v k t n i, và vi c truy n d li u s di n ra cho t i khi có tin hi u đóng k t n i c a m t trong hai bên, đây chính là đ c đi m mà ng i ta x p TCP vào lo i giao th c k t n i tin c y.

2) Truy n d li u

hai b c đ u tiên trong ba b c b t tay, hai máy tính trao đ i m t s th t gói ban đ u (initial sequence number-ISN). S này có th ch n m t cách ng u nhiên. S th t này đ c dùng đ đánh d u các kh i d li u g i t m i máy tính. Sau m i byte đ c truy n đi, s này l i đ c t ng lên. Nh v y ta có th s p x p l i chúng khi t i máy tính b t k các gói t i n i theo th t th nào.

Trên lý thuy t, m i byte g i đi đ u có m t s th t và khi nh n đ c thì máy tính nh n g i l i tin báo nh n (ACK). Trong th c t thì ch có byte d li u đ u tiên

đ c gán s th t trong tr ng s th t c a gói tin và bên nh n s g i tin báo nh n b ng cách g i s th t c a byte đang ch .

Ví d : Máy tính A g i 4 byte v i s th t ban đ u là 100 (theo lý thuy t thì 4 byte s có th t là 100, 102, 103) thì bên nh n s g i tin báo nh n có n i dung là 104 vì đó là th t c a byte ti p theo nó c n. B ng cách g i tin báo nh n là 104, bên nh n

đã ng m thông báo r ng nó đã nh n đ c các byte 100, 101, 102, 103. Trong tr ng h p 2 byte cu i b l i thì bên nh n s g i tin báo nh n v i n i dung là 102 vì 2 byte 100 và 101 đã đ c nh n thành công.

Gi s ta có 10.000 byte đ c g i đi trong 10 gói tin 1.000 byte và có 1 gói tin b m t trên đ ng truy n. N u gói b m t là gói đ u tiên thì bên g i s ph i g i l i toàn b 10 gói vì không có cách nào đ bên nh n thông báo nó đã nh n đ c 9 gói

kia. V n đ này đ c gi i quy t trong giao th c SCTP (Stream Control Transmission Protocol-Giao th c đi u khi n truy n v n dòng) v i vi c b sung báo nh n ch n l c.

S th t và tin báo nh n gi i quy t đ c các v n đ v l p gói tin, truy n l i nh ng gói b h ng/m t và các gói tin đ n sai th t . ph c v m c đích ki m tra, các gói tin có tr ng ki m tra t ng.

Tin báo nh n (ho c không có tin báo nh n) là tín hi u v tình tr ng đ ng truy n gi a 2 máy tính. T đó, 2 bên có th thay đ i t c đ truy n nh n d li u phù h p v i đi u ki n. V n đ này th ng đ c đ c p là đi u khi n lu ng, đi u khi n t c ngh n. TCP s d ng m t s c ch nh m đ t đ c hi u su t cao và ng n ng a kh n ng ngh n m ng. Các c ch này bao g m: c a s tr t (sliding window), thu t toán slow-start, thu t toán tránh ngh n m ng (congestion avoidance), thu t toán truy n l i và ph c h i nhanh, ... Hi n nay, v n đ c i ti n TCP trong môi tr ng truy n d n t c

đ cao đang là m t h ng nghiên c u đ c quan tâm.

V i c ch truy n d li u nh v y TCP có đ c các u đi m sau: o Truy n d li u không l i (do c ch s a l i/truy n l i) o Truy n các gói d li u theo đúng th t .

o Truy n l i các gói d li u m t trên đ ng truy n. o Lo i b các gói d li u trùng l p.

o C ch h n ch t c ngh n đ ng truy n. 3) K t thúc k t n i

k t thúc k t n i hai bên s d ng quá trình b t tay 4 b c và chi u c a k t n i k t thúc đ c l p v i nhau. Khi m t bên mu n k t thúc, nó g i đi m t gói tin k t thúc (FIN) và bên kia g i l i tin báo nh n (ACK). Vì v y, m t quá trình k t thúc tiêu bi u s có 2 c p gói tin trao đ i.

M t k t n i có th t n t i d ng “n a m ”: 1 bên đã k t thúc g i d li u nên ch nh n thông tin, bên kia v n ti p t c g i.

d) C u trúc gói tin

M t gói tin TCP bao g m 2 ph n: o Header (tiêu đ )

Ph n Header có 11 tr ng trong đó 10 tr ng b t bu c. Tr ng th 11 là tùy ch n (trong b ng minh h a có màu n n đó) có tên là: options

+ Bit 0 - 3 4 – 9 10 - 15 16 - 31

0 Source Port Destination Port

32 Sequence Number

64 Acknowledgement Number

96 Data

Offset Reserved Flags Window

128 Checksum Urgent Point

160 Options (optional)

160/192+ DATA

Hình 3.7. C u trúc gói d li u TCP/IP - Ph n Header:

o Source port: s hi u c a t ng t i máy tính g i.

o Destination port: S hi u c a t ng t i máy tính nh n.

o Sequence number: Tr ng này có 2 nhi m v . N u c SYN b t thì nó là s th t gói ban đ u và byte đ u tiên đ c g i có s th t này c ng thêm 1. N u không có c SYN thì đây là s th t c a byte đ u tiên. o Acknowledgement number: N u c ACK b t thì giá tr c a tr ng

chính là s th t gói tin ti p theo mà bên nh n c n.

o Data offset: Tr ng có đ dài 4 bits qui đnh đ dài c a ph n header (tính theo đ n v t 32 bit). Ph n header có đ dài t i thi u là 5 t (160 bit) và t i đa là 15 t (480 bít).

o Reserved: Dành cho t ng lai và có giá tr là 0. o Flags (aka Control bits): bao g m 6 c :

X URG: C cho tr ng Urgent pointer X ACK: C cho tr ng Acknowledgement X PSH: Thi t l p l i đ ng truy n

X SYD: ng b l i s th t X FIN: Không g i thêm s li u

X Window: S byte có th nh n b t đ u t giá tr c a tr ng báo nh n (ACK)

o Checksum: 16 bít ki m tra cho c ph m header và d li u. Ph ng pháp s d ng đ c mô t trong RFC 793: 16 bít c a tr ng ki m tra là b sung c a t ng t t c các t 16 bít trong gói tin. Trong tr ng h p s octet (kh i 8 bít) c a header và d li u là l thì octet cu i đ c b sung v i các bít 0. Các bít này không đ c truy n. Khi tính t ng, giá tr c a tr ng ki m tra đ c thay th b ng 0.

o Window: Kích th c c a s là chi u dài (byte) c a kh i d li u có th l u trong b đ m c a bên nh n. Bên g i ch có th g i t i đa l ng thông tin ch a trong c a s tr c khi nh n đ c tin báo nh n.

o Các đa ch ngu n và đích là các đa ch IPv4. Giá tr c a tr ng protocol là 6. Giá tr c a tr ng TCP length field là đ dài c a toàn b ph n header và d li u c a gói TCP.

o Urgent pointer: N u c URG b t thì giá tr tr ng này chính là s t 16 bít mà s th t gói tin ( sequence number) c n d ch trái.

o Options: ây là tr ng tùy ch n. N u có thì đ dài là b i s c a 32 bít. - D li u:

Tr ng cu i cùng không thu c v header. Giá tr c a tr ng này là thông tin dành cho các t ng trên (trong mô hình 7 l p OSI). Thông tin v giao th c c a t ng trên không đ c ch rõ trong ph n header mà ph thu c vào c ng đ c ch n.

3.2.4. Giao th c không liên k t UDP (User Datagram Protocol) a) Nhi m v

Một phần của tài liệu GIÁO TRÌNH MẠNG TRUYỀN THÔNG (Trang 42 - 47)