Trong mục này, chúng ta sẽ nghiên cứu về 2 giao thức 4 ở Lớp giao vận Transport Layer: Giao thức TCP Transport Control Protocol và 5 Giao th ức UDP User Datagram Protocol.. Tất cả các
Trang 1Internet: C ác giao thức lớp giao vận [2/11/2004 4:47:00 AM]
1
L ớp Giao vận trong mô hình tham chiếu DOD (xem Internet thật là đõn giản số
2
5/2003) cung c ấp khả nãng truyền thông từ một chýõng trình ứng dụng này tới một
3
ch ýõng trình ứng dụng khác Trong mục này, chúng ta sẽ nghiên cứu về 2 giao thức
4
ở Lớp giao vận (Transport Layer): Giao thức TCP (Transport Control Protocol) và
5
Giao th ức UDP (User Datagram Protocol) Tất cả các gói tin đýợc trao đổi giữa các
6
m áy tắnh trên mạng đều nhờ vào một trong 2 giao thức đó.
7
1 Transport Control Protocol (TCP)
8
9
Trong 2 giao thức ở Lớp giao vậnặ TẫP là giao thức đýợc sử dụng nhiều nhấtị Đây là
10
giao thức hýớng kết nối ềconnection-oriented), có ọ đặc trýng của dịch vụ chuyển phát
11
đáng tin cậyị Đó làắ
12
13
+ Định hýớng streamắ Khi hai chýõng trình ứng dụng ềcác tiến trình của ngýời sử dụngấ
14
truyền những khối lýợng lớn dữ liệuặ chúng ta xem dữ liệu này là một chuỗi các bitặ đýợc
15
chia thành các octet ự bitặ mà chúng ta thýờng gọi là byteị ổịch vụ chuyển phát stream
16
tên máy đắch chuyển đến nõi nhận một cách chắnh xác cùng một chuỗi các octet mà máy
17
gửi chuyển điị
18
19
+ Kết nối mạch ảoắ Thực hiện việc truyền stream cũng týõng tự nhý thực hiện một cuộc
20
gọi điện thoạiị Trýớc khi việc truyền có thể bắt đầuặ cả hai chýõng trình ứng dụng gửi và
21
chýõng trình ứng dụng nhận týõng tác với hệ điều hànhặ thông báo về mong muốn có
22
đýợc việc truyền streamị Về mặt khái niệmặ một chýõng trình ứng dụng sẽ thực hiện một
23
"cuộc gọiở mà phải đýợc đầu kia chấp nhậnặ tức thiết lập một kết nối Ờ hay mạch ảo - để
24
truyền và nhận dữ liệu một cách chắnh xácị
25
26
+ Việc truyền có vùng đệmắ ẫác chýõng trình ứng dụng gửi một dòng dữ liệu qua mạch
27
ảo bằng cách lặp lại việc chuyển các octet dữ liệu đến phần mềm giao thứcị Khi truyền
28
dữ liệuặ mỗi chýõng trình ứng dụng sử dụng bất kỳ kắch thýớc đõn vị truyền nào nó thấy
29
thuận tiệnặ có thể chỉ bằng một octetị Tại đầu nhậnặ phần mềm giao thức phát chuyển tự
30
động dữ liệu theo đúng chắnh xác thứ tự mà chúng đýợc gửi điặ làm cho chúng sẵn sàng
31
đýợc sử dụng đối với chýõng trình ứng dụng nhậnặ ngay sau khi chúng đýợc nhận và
32
kiểm traị Phần mềm giao thức đýợc tý do phân chia dòng dữ liệu thành những gói dữ liệu
33
độc lập với đõn vị mà chýõng trình ứng dụng truyền điị Để làm cho việc truyền hiệu quả
34
hõn và tối thiểu giao thông trên mạngặ các cài đặt thýờng tập hợp cho đủ dữ liệu từ dòng
35
dữ liệu để đặt vào datagram có độ lớn thắch hợp trýớc khi truyền nó qua Internetị
36
37
+ Stream không có cấu trúcắ Một điều quan trọng là dịch vụ TẫP stream không xác định
38
các dòng dữ liệu có cấu trúcị Lấy vắ dụ, chýõng trình trả lýõng nhân viênặ không có cách
39
nào để dịch vụ stream đánh dấu biên giới giữa các bản ghi nhân viênặ hay để xác định nõi
40
dừng của dòng dữ liệu là dữ liệu nhân viênị ẫác chýõng trình ứng dụng sử dụng dịch vụ
41
stream phải hiểu nội dung stream và thống nhất với nhau định dạng stream trýớc khi khởi
42
động việc kết nốiị
43
44
+ Kết nối hai chiềuắ ẫác kết nối đýợc cung cấp bởi dịch vụ TẫP stream cho phép truyền
45
id13188123 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
Trang 2đồng thời từ cả hai chiềuị ẫách kết nối này đýợc gọi là song công ềfull deplexấị Từ quan
46
điểm của một tiến trìh ứng dụngặ một kết bối hai chiều bao gồm ệ dòng dữ liệu độc lập
47
ỘchạyỢ theo hai chiều ngýợc nhauặ và không có týõng tác hay va chạmị ổịch vụ stream
48
cho phép một tiến trình ứng dụng chấm dứt ởdòng chảyở theo một chiều trong khi dữ liệu
49
vẫn tiếp tục ởchạyở theo chiều kiaặ làm cho kết nối trở thành một chiều ềhalf duplexấị Ýu
50
điểm chắnh của kết nối hai chiều là phần mềm giao thức cõ sở có thể gửi thông tin điều
51
khiển cho một stream ngýợc trở về nguồn trong những datagram đang chuyển tải dữ liệu
52
theo chiều ngýợc lạiị Điều này làm giảm bớt giao thông trên mạngị
53
54
Định dạng segment TCP
55
56
Đõn vị truyền giữa phần mềm TẫP trên hai máy đýợc gọi là segmentị ẫác segment đýợc
57
trao đổi để thiết lập kết nốiặ để truyền dữ liệuặ để gửi các acknowledgement ềthông báo
58
xác nhận nhận dữ liệuấặ để thông báo kắch thýớc cửa sổ ềđể tối ýu hoá quá trình truyền và
59
nhận dữ liệuấ và để đóng kết nốiị
60
61
Mỗi segment đýợc chia thành hai phầnặ phần đầu và phần dữ liệuị Phần đầuặ có tên là
62
phần đầu TẫP ềTẫP headerấặ chuyển tải thông tin điều khiển và các định danh cần thiết
63
khácị ẹai vùng quan trọng nhất trong phần đầu TẫP là SOURẫỡ PORT và
64
DESTINATION PORT chứa các giá trị cổng TẫP để xác định các chýõng trình ứng
65
dụng tại hai đầu kết nốiị Mỗi khi TẫP nhận gói dữ liệu ềgọi là packet) từ IPặ TẫP gỡ bỏ
66
phần đầu IP và đọc phần đầu TẫP của segmet kết quảị Khi TẫP đọc ổỡSTINừTION
67
PORT, nó sẽ tìm trong tệp tin chứa các thông tin về dịch vụ để gửi dữ liệu đến chýõng
68
trình týõng ứng với số cổng đóị
69
70
Vùng SỡQUỡNẫỡ NUMồỡR xác định vị trắ trong chuỗi các byte dữ liệu trong segmet
71
của nõi gửiị Vùng ừẫKNOWLỡổẻỡMỡNT NUMồỡR xác định số lýợng octet mà
72
nguồn đang đợi để nhận kế tiếpị Lýu ý rằng SỡQUỡNẫỡ NUMồỡR để chỉ đến lýợng dữ
73
liệu theo cùng chiều với segmentặ trong khi giá trị ừẫKNOWLỡổẻỡMỡNT NUMBER
74
để chỉ đến lýợng dữ liệu theo chiều ngýợc lại với segmentị
75
76
Vùng ẹLỡN chứa một số nguyên để xác định độ dài của phần đầu segmentặ đýợc tắnh
77
theo bội số của ộệ bitị ẫần có giá trị ẹLEN bời vì vùng OPTIONS có độ dài thay đổiặ tuỳ
78
thuộc vào những lựa chọn nào đã đýợc đýa vàoị Nhý thếặ kắch thýớc của vùng đầu TẫP
79
cũng đýợc thay đổi tuỳ vào các lựa chọn đã đýợc lấyị Vùng RỡSỡRVỡổ đýợc dành
80
riêng để sử dụng trong týõng laiị
81
82
Có những segmet chỉ chuyển tải acknowledgementặ có những segment khác chuyển tải
83
dữ liệuị ẫũng có những segment chuyển tải những yêu cầu để thiết lập hoặc đóng lại một
84
kết nốiị Phần mềm TẫP sử dụng vùng ỏLừẻ để xác định mục đắch và nội dung của
85
segment Phần mềm TẫP cũng thông báo cho biết bao nhiêu dữ liệu nó sẵn sàng nhận
86
mỗi khi nố gửi một segment bằng cách mô tả kắch thýớc vùng đệm của nó trong vùng
87
WINDOW
88
Trang 389
90
Th ủ tục bắt tay 3 býớc (Three-way Handshake) và cửa sổ trýợt (Sliding Window)
91
92
Vào đầu mỗi phiên TẫPặ máy tắnh gửi và nhận dữ liệu thực hiện thủ tục bắt tay ộ býớcị
93
Mỗi býớc sử dụng một segment chỉ có phần đầu TẫP mà không có dữ liệuị Đầu tiênặ máy
94
tắnh gửi dữ liệu gửi tới máy nhận dữ liệu một segment có các thông tin sauắ ẫờ đồng bộ
95
(đặt ở vùng ỏlagấ đýợc thiết lập về trạng thái bật ềonấặ Sequence number cho segment
96
đýợc gửi sau đó và giá trị của kắch thýớc của vùng đệm dữ liệu ềwindow sizeấ của nóị Kế
97
tiếpặ máy tắnh nhận dữ liệu sẽ hồi đáp bằng một segment với các thông tinắ ẫờ đồng bộ
98
cũng ở trạng thái bậtặ sequence number thiết lập với giá trị của segment nó dự dịnh sẽ
99
nhận từ máy tắnh gửi dữ liệu và kắch thýớc vùng đệm dữ liệuị ẫuối cùngặ máy tắnh gửi dữ
100
liệu sẽ gửi một acknowledgemnet với sequence number mà máy tắnh nhận dữ liệu đã dự
101
tắnh ở býớc thứ haiị Qua thủ tục nàyặ ệ máy tắnh sẽ sẵn sàng cho quá trình truyền và nhận
102
dữ liệuị Trong thủ tục bắt tay ộ býớcặ mỗi máy tắnh cũng điều khiển kắch thýớc của vùng
103
đệm gửi dữ liệu phù hợp với kắch thýớc của cửa vùng đệm nhận dữ liệuị TẫP sẽ nhận dữ
104
liệu từ Lớp ứng dụng ềừpplication Layrerấ ở trên nóặ chia dữ liệu thành các segment và
105
gắn cho mỗi segment phần đầu TẫPị TẫP chỉ gửi đi các segment vừa với kắch thýớc
106
vùng đệm gửi dữ liệu của nó và khởi động một bộ đếm ềtimerấ cho segment đýợc gửiị
107
Nếu bộ đếm đáo hạn ềtime outấ mà máy tắnh nhận dữ liệu vẫn chýa trả lời xác nhậnặ máy
108
tắnh gửi dữ liệu sẽ gửi lại segmentị Khi TẫP nhận đýợc acknowledgement cho segment
109
đã gửiặ só sẽ tiếp tục gửi các segment đang chờ gửiị Sau khi tất cả dữ liệu đã đýợc gửi đi
110
và xác nhậnặ TẫP đóng phiên làm việc hiện thờiị
111
112
User Datagram Protocol (UDP)
113
114
Cũng nhý TẫPặ UổP cũng chuyển phát dữ liệu giữa các ứng dụngị UổP là giao thức phi
115
kết nối ềconnectionlessấặ nó không kiểm tra dữ liệu nhý TẫPị UổP cung cấp dịch vụ
116
chuyển phát các datagram với phụ phắ thấp vì nó không chứa các thông tin điều khiển
117
trong phần đầu UổPị
118
119
Các ứng dụng cần lựa chọn UổP hoặc TCP khi cần dịch vụ chuyển phát dữ liệuị Mặc dù
120
UDP cung cấp dịch vụ ắt tin cậy hõn ềkhông đảm bảo sắp xếp thứ tự góiặ kiểm soát lỗi
121
hoặc luồng dữ liệuấ nhýng tắnh đõn giản của nó cho phép các ứng dụng týõng tác trực
122
tiếp với giao thức IPị
123
124
Định dạng gói tin UDP
125
Trang 4
126
Nhý có thể thấy trên hình vẽặ phần đầu UổP không chứa bất kỳ thông tin điều khiển nào
127
cả với kắch thýớc chỉ vẻn vẹn ự byteị ồởi vì không chứa thông tin điều khiểnặ UổP kém
128
tin cậy hõn TẫPị ẫác ứng dụng đýợc viết để sử dụng UổP làm giao thức giao vận phải tự
129
thực hiện một số thủ tục kiểm tra việc chuyển phát dữ liệuị Tuy nhiênặ một số ứng dụng
130
sử dụng UổP khác lại có thể không cần thực hiện bất cứ việc kiểm tra nàoị Vắ dụặ phần
131
lớn ứng dụng thý điện tử sử dụng giao thức UổPị ẫhúng chỉ việc gửi dữ liệu mà không
132
thực hiện kiểm tra để đảm bảo rằng thông điệp đã tới một cách nguyên vẹn ở máy tắnh
133
đắchị
134
135
Nh ững ứng dụng sử dụng UDP
136
137
Mặc dù UổP không cung cấp dịch vụ chuyển phát tin cậyặ vẫn có nhiều loại ứng dụng
138
thắch hợp với việc sử dụng nó làm giao thức giao vậnị Trong bất cứ trýờng hợp nào mà
139
TCP trở nên quá phức tạpặ quá chậm hoặc đõn giản là không cần thiết, các nhà phát triển
140
ứng dụng đều có thể sử dụng UổP làm giải pháp thay thếị ẫác ứng dụng sử dụng UổP có
141
thể là những ứng dụng mà bản thân nó đã có phýõng pháp kiểm tra việc chuyển phát dữ
142
liệu hay những ứng dụng phù hợp với mô hình truy vấnểtrả lời ềquery/response)
143
144
145
In bài này | Trao đổi - Nhận xét bài viết
146