Trang 1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
----------***----------
NGUYỄN QUỲNH SƠN
CÁC THỦ TỤC LỚP GIAO VẬN INTERNET VÀ TCP, UDP
CHO MẠNG KHÔNG DÂY
LUẬN VĂN THẠC SĨ
Hà Nội, 2011
Trang 2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
----------***----------
NGUYỄN QUỲNH SƠN
CÁC THỦ TỤC LỚP GIAO VẬN INTERNET VÀ TCP, UDP
CHO MẠNG KHÔNG DÂY
Ngành: Công nghệ Điện tử Viễn thông
Chuyên Ngành: Kỹ thuật Điện tử
Mã số: 60 52 70
LUẬN VĂN THẠC SĨ
NGƢỜI HƢỚNG DẪN KHOA HỌC : PGS.TS. VƢƠNG ĐẠO VY
Hà Nội - 2011
Trang 6
Mục lục
MỞ ĐẦU ......................................................................................................................... 1
LỜI CAM ĐOAN ............................................................................................................ 3
Chƣơng 1: Tổng quan giao thức TCP và UDP ................................................................. 7
1. Giao thức TCP là gì................................................................................................... 7
2. Cấu trúc gói tin TCP ................................................................................................. 8
3. Hoạt động của giao thức TCP .................................................................................. 11
3.1.
Thiết lập kết nối. ............................................................................................... 11
3.2.
Truyền dữ liệu .................................................................................................. 12
3.3.
Kết thúc kết nối ................................................................................................ 16
4. Bộ giao thức TCP/IP ............................................................................................... 16
4.1.
Tầng ứng dụng.................................................................................................. 19
4.2.
Tầng giao vận ................................................................................................... 20
4.3.
Tầng mạng ........................................................................................................ 20
4.4.
Tầng liên kết ..................................................................................................... 20
5. Cửa sổ trƣợt ............................................................................................................ 21
5.1.
Giới thiệu về cửa sổ trƣợt ................................................................................. 21
5.2.
Cách hoạt động của cửa sổ trƣợt ....................................................................... 25
5.3.
Kích thƣớc của cửa sổ trƣợt .............................................................................. 26
5.4.
Ví dụ TCP và kích thƣớc cửa sổ ....................................................................... 28
6. Các thuật toán trong TCP ........................................................................................ 32
6.1.
Thuật toán Slow-Start ....................................................................................... 32
6.2.
Thuật toán tránh nghẽn mạng............................................................................ 33
6.3.
Thuật toán truyền lại và phục hồi nhanh ........................................................... 34
7. TCP trong giao thức Snoop ..................................................................................... 36
Trang 7
7.1.
Snoop Data. ...................................................................................................... 36
7.2.
Snoop ACK() .................................................................................................... 38
8. UDP là gì ................................................................................................................ 40
9. Cấu trúc trong gói UDP ........................................................................................... 40
10.
Tổng kết chƣơng 1 ............................................................................................... 42
Chƣơng 2: Mạng không dây và ứng dụng TCP trong mạng không dây .......................... 43
1. Mạng không dây ..................................................................................................... 43
1.1.
ƣu điểm của mạng không dây ........................................................................... 43
1.2.
Hoạt động của mạng không dây ........................................................................ 44
1.3.
Các mô hình mạng không dây cơ bản ............................................................... 45
1.4.
Cự ly truyền sóng và tốc độ truyền sóng ........................................................... 46
1.5.
Các chuẩn mạng không dây .............................................................................. 47
1.6.
Các kiểu kiến trúc cơ bản của mạng không dây................................................. 49
1.7.
Một số cơ chế sử dụng khi trao đổi thông tin trong mạng không dây ................ 51
2. ứng dụng TCP trong mạng cảm biến không dây ...................................................... 52
2.1.
Lƣu trữ các phân đoạn TCP phân tán (DTC) .................................................... 54
2.1.1 Tổng quan......................................................................................................... 54
2.1.2 Cơ chế hoạt động của bộ nhớ đệm trong DTC .................................................. 55
2.1.3 Ví dụ hoạt động ................................................................................................ 56
2.2.
TCP Hỗ trợ cho các nút cảm biến (TSS) ........................................................... 57
2.2.1 Tổng quan......................................................................................................... 57
2.2.2 TCP hỗ trợ mạng cảm biến (TSS) ..................................................................... 58
2.2.3 Ví dụ hoạt động ................................................................................................ 61
2.3. So sánh với DTC.................................................................................................. 63
3. Tổng kết chƣơng 2 .................................................................................................. 64
Trang 8
Chƣơng 3: PHƢƠNG PHÁP SỬ DỤNG PHẦN MỀM ĐỂ ĐO TỐC ĐỘ DỮ LIỆU
CAMERA TRUYỀN BẰNG GIAO THỨC TCP VÀ UDP ........................................... 65
1. Giới thiệu phần mềm đo .......................................................................................... 65
1.1.
Lựa chọn phần mềm ......................................................................................... 65
1.2.
Tổng quan về phần mềm BitMeterII ................................................................. 68
1.3.
Hƣớng dẫn cài đặt phần mềm BitMeterII .......................................................... 70
2. Thí nghiệm sử dụng phần mềm đo tốc độ truyền hình ảnh Camera qua giao thức TCP
và UDP với môi trƣờng không dây ................................................................................ 72
2.1. Mô hình kết nối…………………………………………………………………72
2.2. Miêu tả thiết bị………………………………………………………………….72
2.3. Cấu hình thiết bị………………………………………………………………...73
2.4. Thí nghiệm đo tốc độ truyền dữ liệu thông qua giao thức TCP với môi trƣờng
không dây……………………………………………………………………………..75
2.5. Thí nghiệm đo tốc độ truyền dữ liệu thông qua giao thức UDP với môi trƣờng
không dây…………………………………………………………………………….79
3. Tổng kết chƣơng 3 .................................................................................................. 81
KẾT LUẬN VÀ KHUYẾN NGHỊ................................................................................. 84
TÀI LIỆU THAM KHẢO.............................................................................................. 86
Trang 9
Chƣơng 1: TỔNG QUAN GIAO THỨC
TCP VÀ UDP
1. Giao thức TCP là gì
Giao thức TCP (Transmission Control Protocol - "Giao thức điều khiển truyền
vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các
ứng dụng trên các máy chủ đƣợc nối mạng có thể tạo các "kết nối" vớ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 tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa 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à mạng bảo mật.
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. 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. 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.
Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng. TCP
phân chia dòng byte này thành các đoạn 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. TCP
kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin
một "số thứ tự" . Số thứ tự này còn đƣợc sử dụng để đảm bảo dữ liệu đƣợc trao cho
ứng dụng đích theo đúng thứ tự. Mô đun TCP tại đầu kia gửi lại "tin báo nhận" cho
các gói tin đã nhận đƣợc thành công; một "đồng hồ" tại nơi gửi sẽ báo “quá định mức
thời gian” nếu không nhận đƣợc tin báo nhận trong khoảng thời gian bằng một chu kỳ
Trang 10
(RTT), và dữ liệu (đƣợc coi là bị thất lạc) sẽ đƣợc gửi lại. TCP sử dụng giá trị kiểm tra
để xem có byte nào bị hỏng trong quá trình truyền hay không; giá trị này đƣợc tính
toán cho mỗi khối dữ liệu tại nơi gửi trƣớc khi nó đƣợc gửi, và đƣợc kiểm tra tại nơi
nhận.
2. Cấu trúc gói tin TCP
Một gói tin TCP bao gồm 2 phần (Trích tài liệu tham khảo số 1 chƣơng TCP/IP)
Tiêu đề (header)
dữ liệu
Phần tiêu đề (header) có 11 trƣờng trong đó 10 trƣờng bắt buộc. Trƣờng thứ 11 là
tùy chọn có tên là: options ( tuỳ chọn)
Bít 0 – 3
0
4-9
10 - 15
Source Port ( cổng nguồn)
16 - 32
Destination Port (cổng đích)
32
Sequence Number (Số trình tự)
64
Acknowledgement Number
96
128
Data Offset
Reserved
Flags
Check sum
Urgent Pointer
160
Options (optional)
160/1 2+
Data ( dữ liệu)
Source port ( cổng nguồn)
Số hiệu của cổng tại máy tính gửi.
Destination port (cổng đích)
Window
Trang 11
Số hiệu của cổng tại máy tính nhận.
Sequence number ( Số trình tự)
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.
Acknowledgement number ( Số trình tự tiếp theo)
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.
Data offset
Trƣờng có độ dài 4 bít qui định độ dài của phần tiêu đề (tính theo đơn vị từ
32 bít). Phần tiêu đề có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ
(480 bít).
Reserved
Dành cho tƣơng lai và có giá trị là 0.
Flags (hay Control bits)
Bao gồm 6 cờ:
URG
Cờ cho trƣờng Urgent pointer
ACK
Cờ cho trƣờng Acknowledgement
PSH
Hàm Push
RST
Thiết lập lại đƣờng truyền
SYN
Đồng bộ lại số thứ tự
FIN
Không gửi thêm số liệu
Window
Số byte có thể nhận bắt đầu từ giá trị của trƣờng báo nhận (ACK)
Trang 12
Checksum (trƣờng kiểm tra)
16 bít kiểm tra cho cả phần tiêu đề ( 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 tiêu đề 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,
Nói một cách khác, tất cả các từ 16 bít đƣợc cộng với nhau. Kết quả thu đƣợc sau
khi đảo giá trị từng bít đƣợc điền vào trƣờng kiểm tra. Về mặt thuật toán, quá trình
này giống với IPv4.
Điểm khác nhau chỉ ở chỗ dữ liệu dùng để tính tổng kiểm tra. Dƣới đây là một tiêu
đề của IP:
+
Bít 0 3
4 -7
8-
10 - 15
9
1
Source address (Địa chi nguồn)
0
Destination address (địa chỉ đích)
2
64
Zeros
96
Source Port (cổng nguồn)
Protocol
TCP length
Destination Port (Cổng đích)
128
Sequence Number (Số trình tự)
160
Acknowledgement Number
19
225
- 31
Data
Offset
Reserved
Flags
Checksum
Window
Urgent Poi ter
257
Options (optional)
257/289+
Data (dữ liệu)
Trang 13
Các địa chỉ nguồn và đích là các địa chỉ IPv4. Giá trị của trƣờng protocol (giao
thức) là 6 (giá trị dành cho TCP, xem thêm: Danh sách số hiệu giao thức IPv4). Giá trị
của trƣờng “TCP length field” là độ dài của toàn bộ phần tiêu đề và dữ liệu của gói
TCP.
-
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.
-
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ề tiêu đề. 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. Hoạt động của giao thức TCP
Không nhƣ giao thức UDP - giao thức có thể lập tức gửi gói tin mà không cần thiết
lập kết nối, 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:
1. thiết lập kết nối
2. truyền dữ liệu
3. kết thúc kết nối
3.1. Thiết lập kết nối.
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bƣớc (3-way
handshake) Trƣớc khi máy trạm thử kết nối với một máy chủ, máy chủ 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:
Trang 14
1. Mở chủ động đƣợc thực hiện bằng cách gửi một SYN cho máy chủ.
2. Máy chủ trả lời bằng một SYN-ACK.
3. Cuối cùng, máy trạm gửi một ACK lại cho máy chủ.
Đến đây, cả máy trạm và máy chủ đều đã nhận đƣợc một tin báo nhận về kết nối.
3.2. Truyền dữ liệu
Một số đặc điểm cơ bản của TCP để phân biệt với UDP:
Truyền dữ liệu không lỗi (do có cơ chế sửa lỗi/truyền lại)
Truyền các gói dữ liệu theo đúng thứ tự
Truyền lại các gói dữ liệu mất trên đƣờng truyền
Loại bỏ các gói dữ liệu trùng lặp
Cơ chế hạn chế tắc nghẽn đƣờng truyền
Ở 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 . 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 kia 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, 101, 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 và 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
Trang 15
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 giá trị tổng kiểm.
Với trình độ hiện tại, kỹ thuật kiểm tra tổng trong TCP không đủ mạnh. Các tầng
liên kết dữ liệu với xác suất lỗi bit cao có thể cần đƣợc bổ sung các khả năng phát hiện
lỗi tốt hơn. Nếu nhƣ TCP đƣợc thiết kế vào thời điểm hiện tại, nhiều khả năng nó sẽ
bao gồm trƣờng kiểm tra độ dƣ tuần hoàn (cyclic redundancy check - CRC) với độ dài
32 bit. Điểm yếu này một phần đƣợc bù đắp bằng CRC hay những kỹ thuật khác tại
tầng thứ 2 (trong mô hình 7 lớp OSI) ở bên dƣới cả TCP và IP nhƣ trong các giao thức
điểm-điểm (PPP) hoặc Ethernet. Tuy nhiên điều này cũng không có nghĩa là trƣờng
kiểm tra tổng của TCP là không cần thiết: thống kê cho thấy các sai sót do cả phần
cứng và phần mềm gây ra giữa các điểm áp dụng kỹ thuật kiểm tra CRC là khá phổ
biến và kỹ thuật kiểm tra tổng có khả năng phát hiện phần lớn các lỗi (đơn giản) này.
Điểm cuối cùng là khả năng hạn chế tắc nghẽn.
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ừ đó, hai 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 lƣu lƣợng, kiểm soát 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, thuật toán slow-start, thuật
toán tránh nghẽn mạng, 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 truyền truyền dẫn tốc độ cao đang là một hƣớng nghiên cứu đƣợc
quan tâm
Kích thƣớc của 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ổ này
trƣớc khi nhận đƣợc tin báo nhận.
Trang 16
Để tận dụng khả năng truyền dẫn của mạng thì cửa sổ dùng trong TCP cần đƣợc
tăng lên. Trƣờng điều khiển kích thƣớc cửa sổ của gói TCP có độ dài là 2 byte và do
đó kích thƣớc tối đa của cửa sổ là 65.535 byte.
Do trƣờng điều khiển không thể thay đổi nên ngƣời ta sử dụng một hệ số dãn nào
đó. Hệ số này đƣợc định nghĩa trong tài liệu RFC 1323 có thể sử dụng để tăng kích
thƣớc tối đa của cửa sổ từ 65.535 byte lên tới 1 gigabyte. Tăng kích thƣớc cửa sổ lớn
hơn nữa cũng cần thiết trong đƣờng hầm của TCP.
Việc tăng kích thƣớc cửa sổ chỉ đƣợc dùng trong giao thức bắt tay 3 pha. Giá trị
của trƣờng co dãn cửa sổ thể hiện số bit cần đƣợc dịch trái đối với trƣờng kích thƣớc
cửa sổ. Hệ số dãn có thể thay đổi từ 0 (không dãn) tới 14 (dãn tối đa).
3.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 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ở": một 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.
4. Bộ giao thức TCP/IP
Hình 1.1: Mô hình TCP/IP
Trang 17
Bộ giao thức IP dùng sự đóng gói dữ liệu hòng trìu tƣợng hóa (thu nhỏ lại quan
niệm cho dễ hiểu) các giao thức và các dịch vụ. Nói một cách chung chung, giao thức
ở tầng cao hơn dùng giao thức ở tầng thấp hơn để đạt đƣợc mục đích của mình. Chồng
giao thức Internet gần giống nhƣ các tầng trong mô hình của Bộ quốc phòng Mỹ:
Tầng
4 ứng
dụng
DNS, TFTP, TLS/SSL, FTP, HTTP, IMAP, IRC, NNTP, POP3,
SIP, SMTP, SNMP, SSH, TELNET, ECHO, BitTorrent, RTP,
PNRP, rlogin, ENRP, …
Các giao thức định tuyến nhƣ BGP và RIP, vì một số lý do, chạy
trên TCP và UDP - theo thứ tự từng cặp: BGP dùng TCP, RIP dùng
UDP - còn có thể đƣợc coi là một phần của tầng ứng dụng hoặc tầng
mạng.
Tầng
3 giao
TCP, UDP, DCCP, SCTP, IL, RUDP, …
vận
Các giao thức định tuyến nhƣ OSPF (tuyến ngắn nhất đƣợc chọn
đầu tiên), chạy trên IP, cũng có thể đƣợc coi là một phần của tầng
giao vận, hoặc tầng mạng. ICMP (Internet control message protocol|
- tạm dịch là Giao thức điều khiển thông điệp Internet) và IGMP
(Internet group management protocol - tạm dịch là Giao thức quản
lý nhóm Internet) chạy trên IP, có thể đƣợc coi là một phần của tầng
mạng.
2
Tầng
mạng
IP (IPv4, IPv6)
ARP (Address Resolution Protocol| - tạm dịch là Giao thức tìm địa
chỉ) và RARP (Reverse Address Resolution Protocol - tạm dịch là
Giao thức tìm địa chỉ ngƣợc lại) hoạt động ở bên dƣới IP nhƣng ở
Trang 18
trên tầng liên kết (link layer), vậy có thể nói là nó nằm ở khoảng
trung gian giữa hai tầng.
1
Tầng
Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, Frame Relay,
liên kết SMDS, …
Những tầng càng cao thì nó càng gần với ngƣời sử dụng hơn, còn những tầng gần
đáy gần với thiết bị truyền thông dữ liệu. Mỗi tầng có một giao thức để phục vụ tầng
trên nó, và một giao thức để sử dụng dịch vụ của tầng dƣới nó (ngoại trừ giao thức
của tầng đỉnh và tầng đáy).
Cách nhìn các tầng cấp theo quan niệm: hoặc là cung cấp dịch vụ, hoặc là sử dụng
dịch vụ, là một phƣơng pháp trìu tƣợng hóa để cô lập các giao thức của tầng trên,
tránh quan tâm đến thực chất của vấn đề, nhƣ việc truyền tải từng bit qua Ethernet
chẳng hạn, và phát hiện xung đột (collision detection), trong khi những tầng dƣới
không cần phải biết đến chi tiết của mỗi một chƣơng trình ứng dụng và giao thức của
nó.
Sự trìu tƣợng hóa này cho phép những tầng trên cung cấp những dịch vụ mà các
tầng dƣới không thể làm đƣợc, hoặc cố ý không làm. Chẳng hạn IP đƣợc thiết kế với
độ đáng tin cậy thấp, và đƣợc gọi là giao thức phân phát với khả năng tốt nhất (thay vì
với "độ tin cậy cao" hoặc "đảm bảo nhất"). Điều đó có nghĩa là tất cả các tầng giao
vận đều phải lựa chọn, hoặc là cung cấp dịch vụ đáng tin cậy, hoặc là không, và ở
mức độ nào. UDP đảm bảo sự toàn vẹn của dữ liệu (bằng cách dùng kiểm tra tổng
(checksum)), song không đảm bảo sự phân phát dữ liệu tới đích; TCP cung cấp cả hai,
sự toàn vẹn của dữ liệu, và đảm bảo sự phân phát dữ liệu tới đích (bằng cách truyền
tải lại gói dữ liệu, cho đến khi nơi nhận nhận đƣợc gói dữ liệu).
Trang 19
Hình 1.2: Mô hình phân lớp giao thức TCP/IP
Sau đây là miêu tả từng tầng trong bộ giao thức TCP/IP:
4.1. Tầng ứng dụng
Tầng ứng dụng là nơi các chƣơng trình mạng thƣờng dùng nhất làm việc nhằm liên
lạc giữa các nút trong một mạng.
Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu đƣợc
truyền từ chƣơng trình, trong định dạng đƣợc sử dụng nội bộ bởi ứng dụng này, và
đƣợc đóng gói theo một giao thức tầng giao vận.
Do chồng TCP/IP không có tầng nào nằm giữa ứng dụng và các tầng giao vận,
tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động nhƣ các giao
thức tại tầng trình diễn và tầng phiên của mô hình OSI. Việc này thƣờng đƣợc thực
hiện qua các thƣ viện lập trình.
Dữ liệu thực để gửi qua mạng đƣợc truyền cho tầng ứng dụng, nơi nó đƣợc đóng
gói theo giao thức tầng ứng dụng. Từ đó, dữ liệu đƣợc truyền xuống giao thức tầng
thấp tại tầng giao vận.
Hai giao thức tầng thấp thông dụng nhất là TCP và UDP. Mỗi ứng dụng sử dụng
dịch vụ của một trong hai giao thức trên đều cần có cổng. Hầu hết các ứng dụng thông
dụng có các cổng đặc biệt đƣợc cấp sẵn cho các chƣơng trình phục vụ HTTP - Giao
thức truyền siêu văn bản dùng cổng 80; FTP - Giao thức truyền tệp dùng cổng 21,
v.v..) trong khi các trình khách sử dụng các cổng tạm thời.
Trang 20
Các thiết bị định tuyến và thiết bị chuyển mạch không sử dụng tầng này nhƣng các
ứng dụng điều chỉnh thông lƣợng thì có dùng.
4.2. Tầng giao vận
Trách nhiệm của tầng giao vận là kết hợp các khả năng truyền thông điệp trực tiếp
không phụ thuộc vào mạng bên dƣới, kèm theo kiểm soát lỗi, phân mảnh và điều
khiển lƣu lƣợng. Việc truyền thông điệp trực tiếp hay kết nối các ứng dụng tại tầng
giao vận có thể đƣợc phân loại nhƣ sau:
+ định hƣớng kết nối (connection-oriented), ví dụ TCP
+ phi kết nối (connectionless), ví dụ UDP
Tầng giao vận có thể đƣợc xem nhƣ một cơ chế vận chuyển thông thƣờng, nghĩa là
trách nhiệm của một phƣơng tiện vận tải là đảm bảo rằng hàng hóa/hành khách của nó
đến đích an toàn và đầy đủ.
Tầng giao vận cung cấp dịch vụ kết nối các ứng dụng với nhau thông qua việc sử
dụng các cổng TCP và UDP. Do IP chỉ cung cấp dịch vụ phát chuyển nỗ lực tối đa,
tầng giao vận là tầng đâu tiên giải quyết vấn đề độ tin cậy.
Ví dụ, TCP là một giao thức định hƣớng kết nối. Nó giải quyết nhiều vấn đề độ tin
cậy để cung cấp một dòng byte đáng tin cậy:
+ Dữ liệu đến đích đúng thứ tự
+ Sửa lỗi dữ liệu ở mức độ tối thiểu
+ Dữ liệu trùng lặp bị loại bỏ
+ Các gói tin bị thất lại/loại bỏ đƣợc gửi lại
+ Có kiểm soát tắc nghẽn giao thông dữ liệu
Tuy các giao thức định tuyến động khớp về kỹ thuật với tầng giao vận trong bộ
giao thức TCP/IP (do chúng chạy trên IP), nhƣng chúng thƣờng đƣợc xem là một
phần của tầng mạng. Một ví dụ là giao thức OSPF (số hiệu giao thức IP là 89).
Trang 21
Giao thức mới hơn, SCTP (Stream Control Transmission Protocol|), cũng là một
cơ chế giao vận định hƣớng kết nối "đáng tin cậy". Giao thức này định hƣớng dòng ,
chứ không định hƣớng byte nhƣ TCP, và cung cấp nhiều dòng đa công trên một kết
nối. Nó còn hỗ trợ đa điểm, trong đó một đầu của kết nối có thể đƣợc đại diện bởi
nhiều địa chỉ IP (đại diện cho nhiều giao diện vật lý), sao cho, nếu một giao diện vật
lý thất bại thì kết nối vẫn không bị gián đoạn. Giao thức này ban đầu đƣợc phát triển
dành cho các ứng dụng điện thoại (để vận chuyển SS7 trên giao thức IP), nhƣng nó
cũng có thể đƣợc sử dụng cho các ứng dụng khác.
UDP là một giao thức đồ hoạ phi kết nối. Cũng nhƣ IP, nó là một giao thức nỗ lực
tối đa hay "không đáng tin cậy". Vấn đề duy nhất về độ tin cậy mà nó giải quyết là sửa
lỗi dữ liệu (dù chỉ bằng một thuật toán tổng kiểm tra yếu). UDP thƣờng đƣợc dùng
cho các ứng dụng nhƣ các phƣơng tiện truyền thông theo dòng chứa âm thanh và hình
ảnh, v.v.., trong đó, vấn đề gửi đến đúng giờ có vai trò quan trọng hơn độ tin cậy,
hoặc cho các ứng dụng truy vấn/đáp ứng đơn giản nhƣ tra cứu tên miền, trong đó, phụ
phí của việc thiết lập một kết nối đáng tin cậy lớn một cách không cân xứng.
Giao thức DCCP hiện đang đƣợc phát triển bởi IETF. Nó cung cấp nội dung điều
khiển lƣu lƣợng của TCP, trong khi đối với ngƣời dùng, nó giữ bề ngoài nhƣ mô hình
dịch vụ “datagram” của UDP.
Cả TCP và UDP đƣợc dùng cho một số ứng dụng bậc cao. Các ứng dụng tại các
địa chỉ mạng cho trƣớc đƣợc phân biệt bởi cổng TCP hay UDP của nó. Theo quy ƣớc,
các cổng một số cổng đƣợc định nghĩa và đƣợc liên kết với một số ứng dụng cụ thể.
RTP (Real-time Transport Protocol - giao thức giao vận thời gian thực) là một
giao thức biểu đồ đƣợc thiết kế cho dữ liệu thời gian thực chẳng hạn hình và tiếng
đƣợc truyền theo dòng RTP là một giao thức tầng phiên sử dụng định dạng gói tin
UDP làm căn bản. Tuy nhiên, nó đƣợc đặt vào tầng giao vận của chồng giao thức
TCP/IP.
Trang 22
4.3. Tầng mạng
Theo định nghĩa ban đầu, tầng mạng giải quyết các vấn đề dẫn các gói tin qua một
mạng đơn. Một số ví dụ về các giao thức nhƣ vậy là X.25, và giao thức Host/IMP của
mạng ARPANET.
Với sự xuất hiện của khái niệm liên mạng, các chức năng mới đã đƣợc bổ sung cho
tầng này, đó là chức năng dẫn đƣờng cho dữ liệu từ mạng nguồn đến mạng đích.
Nhiệm vụ này thƣờng đòi hỏi việc định tuyến cho gói tin quan một mạng lƣới của các
mạng máy tính, đó là liên mạng.
Trong bộ giao thức liên mạng, giao thức IP thực hiện nhiệm vụ cơ bản dẫn đƣờng
dữ liệu từ nguồn tới đích. IP có thể chuyển dữ liệu theo yêu cầu của nhiều giao thức
tầng trên khác nhau; mỗi giao thức trong đó đƣợc định danh bởi một số hiệu giao thức
duy nhất: giao thức ICMP là giao thức 1 và giao thức IGMP là giao thức 2.
Một số giao thức truyền bởi IP, chẳng hạn ICMP (dùng để gửi thông tin chẩn đoán
về truyền dữ liệu bằng IP) và IGMP (dùng để quản lý dữ liệu đa truyền ), đƣợc đặt lên
trên IP nhƣng thực hiện các chức năng của tầng liên mạng, điều này minh họa một sự
bất tƣơng thích giữa liên mạng và chồng TCP/IP và mô hình OSI. Tất cả các giao thức
định tuyến, chẳng hạn giao thức BGP, giao thức OSPF, và giao thức RIP, đều thực sự
là một phần của tầng mạng, mặc dù chúng có thể có vẻ thuộc về phần trên của chồng
giao thức.
4.4. Tầng liên kết
Tầng liên kết - phƣơng pháp đƣợc sử dụng để chuyển các gói tin từ tầng mạng tới
các máy chủ khác nhau - không hẳn là một phần của bộ giao thức TCP/IP, vì giao
thức IP có thể chạy trên nhiều tầng liên kết khác nhau. Các quá trình truyền các gói tin
trên một liên kết cho trƣớc và nhận các gói tin từ một liên kết cho trƣớc có thể đƣợc
điều khiển cả trong phần mềm điều vận thiết bị dành cho cạc mạng, cũng nhƣ trong hệ
điều hành hay các phiên bản hay các bộ vi sử lý chuyên dụng. Những thứ đó sẽ thực
hiện các chức năng liên kết dữ liệu chẳng hạn nhƣ bổ sung một tín đầu để chuẩn bị
cho việc truyền gói tin đó, rồi thực sự truyền khung dữ liệu qua một môi trƣờng vật lý.
Trang 23
Đối với truy nhập Internet qua modem quay số, các gói IP thƣờng đƣợc truyền
bằng cách sử dụng giao thức PPP. Đối với truy nhập Internet băng thông rộng nhƣ
ADSL hay modem cáp, giao thức PPPoE thƣờng đƣợc sử dụng. Mạng dây cục bộ
thƣờng sử dụng Ethernet, còn mạng không dây cục bộ thƣờng dùng chuẩn IEEE
802.11. Đối với các mạng diện rộng, các giao thức thƣờng đƣợc sử dụng là PPP đối
với các đƣờng T-carrier hoặc E-carrier, Frame relay, ATM, hoặc giao thức POS.
Tầng liên kết còn có thể là tầng nơi các gói tin đƣợc chặn để gửi qua một mạng
riêng ảo. Khi xong việc, dữ liệu tầng liên kết đƣợc coi là dữ liệu của ứng dụng và tiếp
tục đi xuống theo chồng giao thức TCP/IP để đƣợc thực sự truyền đi. Tại đầu nhận, dữ
liệu đi lên theo chồng TCP/IP hai lần (một lần cho mạng riêng ảo và lần thứ hai cho
việc định tuyến).
Tầng liên kết còn có thể đƣợc xem là bao gồm cả tầng vật lý - tầng là kết hợp của
các thành phần mạng vật lý thực sự (hub, các bộ lặp, cáp mạng, cáp quang, cáp đồng
trục, card mạng, card HBA và các thiết bị nối mạng có liên quan: RJ-45, BNC, etc),
và các đặc tả mức thấp về các tín hiệu (mức hiệu điện thế, tần số, v.v..).
5. Cửa sổ trƣợt
5.1. Giới thiệu về cửa sổ trƣợt
Thay vì chỉ truyền đi một khung tại một thời điểm (simplex), giao thức cửa sổ
trƣợt cho phép bên gửi có thể gửi đi nhiều khung.
Giao thức này sử dụng một cửa sổ để cho phép bên gửi theo dõi các khung mà nó
đƣợc phép gửi đi và các khung đó đang chờ báo nhận, gọi là cửa sổ gửi (Sending
Windows). Một cửa sổ khác để bên nhận theo dõi các khung mà nó đƣợc phép nhận,
gọi là cửa sổ nhận (Receiving Windows).
Cấu trúc của cửa sổ đƣợc mô tả nhƣ sau:
- Xem thêm -