Tải bản đầy đủ (.pdf) (85 trang)

Các thủ tục lớp giao vận internet và TCP, UDP cho mạng không dây

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 85 trang )

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)

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)

Bít 0 – 3
4 - 9
10 - 15
16 - 32
0
Source Port ( cổng nguồn)
Destination Port (cổng đích)
32
Sequence Number (Số trình tự)
64
Acknowledgement Number
96
Data Offset
Reserved
Flags
Window
128
Checksum
Urgent Pointer
160
Options (optional)
160/12+

Data ( dữ liệu)


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 -
9
10 - 15
1 - 31
0
Source address (Địa chi nguồn)
2
Destination address (địa chỉ đích)
64
Zeros
Protocol
TCP length

96
Source Port (cổng nguồn)
Destination Port (Cổng đích)
128
Sequence Number (Số trình tự)
160
Acknowledgement Number
19
Data
Offset
Reserved
Flags
Window
225
Checksum
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ỹ:
4
Tầng
ứ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.
3
Tầng
giao
vận
TCP, UDP, DCCP, SCTP, IL, RUDP, …


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
liên kết
Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, Frame Relay,
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:
Trang 24


Hình 1.3: Cấu trúc cửa sổ trƣợt
 Phần tô đen là phạm vi của cửa sổ gồm có cửa trƣớc và cửa sau cùng di
chuyển theo một chiều.
 Kích thƣớc của cửa sổ là chiều của cung giới hạn từ cửa sau đến cửa trƣớc.
 Kích thƣớc của cửa sổ có thể thay đổi. Khi cửa trƣớc di chuyển, cửa sổ đƣợc
mở rộng ra. Ngƣợc lại khi cửa sau di chuyển, kích thƣớc của cửa sổ bị thu hẹp
lại và nó làm cho cửa sổ thay đổi vị trí, trƣợt / quay quanh một tâm của vòng
tròn.

 Kích thƣớc nhỏ nhất của cửa số là 0, khi đó cửa trƣớc và cửa sau nằm cùng một
vị trí. Giả sử, có n=2
k
vị trí cho các cửa, khi đó kích thƣớc tối đa của cửa sổ là
n-1 (không là n để phân biệt với kích thƣớc là 0).
 Giả sử ta dùng k bit để đánh số thứ tự cho các khung. Ta sẽ có 2
k
khung, đánh
số từ 0 đến 2
k
-1. Khi đó cửa sổ trƣợt sẽ đƣợc chia thành 2
k
vị trí tƣơng ứng với
2
k
khung.
 Đối với cửa sổ gởi, các vị trí nằm trong cửa sổ trƣợt biểu hiện số thứ tự của các
khung mà bên gởi đang chờ bên nhận báo nhận. Phần bên ngoài cửa sổ là các
khung có thể gởi tiếp. Tuy nhiên phải đảm bảo rằng, cửa sổ gởi không đƣợc
vƣợt quá kích thƣớc tối đa của cửa sổ.
 Đối với bên nhận, các vị trí nằm trong cửa sổ biểu hiện số thứ tự các khung mà
nó đang sẳn sàng chờ nhận.
 Kích thƣớc tối đa của cửa sổ biểu thị dung lƣợng bộ nhớ đệm của bên nhận có
thể lƣu tạm thời các gói tin nhận đƣợc trƣớc khi xử lý chúng. Giả sử bên nhận
có một vùng bộ nhớ đệm có khả năng lƣu trữ 4 khung nhận đƣợc. Khi đó, kích
thƣớc tối đa của cửa sổ sẽ là 4.
Trang 25

5.2. Cách hoạt động của cửa sổ trƣợt
Cửa sổ trƣợt hoạt động tuần tự theo nhƣng bƣớc sau:

1. Các dãy số hiện hành của ngƣời gửi TCP là y.
2. Thu TCP xác định kích thƣớc cửa sổ thƣơng lƣợng hiện tại x trong gói hàng.
Điều này thƣờng đƣợc chỉ định bởi hệ điều hành hoặc ứng dụng, nếu không nó
bắt đầu từ 536 byte.
3. Ngƣời gửi TCP gửi đi một datagram với số lƣợng dữ liệu byte bằng với kích
thƣớc cửa sổ của ngƣời nhận x và chờ đợi cho một ACK từ nhận. Kích thƣớc
cửa sổ có thể đƣợc nhiều ngàn byte!
4. Nhận sẽ gửi một ACK với các giá trị y + x nghĩa là thừa nhận rằng x byte cuối
cùng đã đƣợc nhận OK và tiếp nhận các dự kiến khác truyền byte bắt đầu từ
byte y + x.
5. Sau khi nhận thành công, kích thƣớc cửa sổ tăng thêm một x, điều này đƣợc
gọi là Bắt đầu chậm cho các kết nối mới.
6. Ngƣời gửi sẽ gửi một datagram với 2x byte, sau đó 3x byte và nhƣ vậy cho đến
MSS nhƣ chỉ ra trong Tùy chọn TCP.
7. Nếu ngƣời nhận có một bộ đệm đầy đủ, sau đó kích thƣớc cửa sổ đƣợc giảm
xuống bằng không. Trong trạng thái này, cửa sổ đƣợc gọi là đông lạnh và
ngƣời gửi không thể gửi bất kỳ byte nữa cho đến khi nó nhận đƣợc một
datagram từ nhận với một kích thƣớc cửa sổ lớn hơn số không.
8. Nếu dữ liệu không đƣợc nhận nhƣ đƣợc xác định bởi bộ đếm thời gian đó đƣợc
đặt ngay sau khi dữ liệu đƣợc thiết lập cho đến khi nhận đƣợc ACK một, sau đó
kích thƣớc cửa sổ là cắt giảm một nửa ví dụ nhƣ từ 4x đến 2x. Thất bại có thể
là do sự tắc nghẽn ví dụ nhƣ một bộ đệm đầy đủ về nhận, hoặc lỗi trên các
phƣơng tiện truyền thông.
9. Trên truyền dẫn tới thành công, đoạn đƣờng lên bắt đầu chậm lại.


Trang 26

5.3. Kích thƣớc của cửa sổ trƣợt
Kích thƣớc cửa sổ có thể đƣợc sử dụng trong một phân đoạn đã đƣợc định nghĩa

trƣớc đó, tuy nhiên nó thƣờng đƣợc sử dụng cửa sổ lên bởi một số phân khúc của hàng
trăm byte trong mỗi một kích thƣớc cửa sổ có nghĩa là mỗi byte của dữ liệu đƣợc yêu
cầu để đƣợc công nhận trƣớc đó có thể chuyển tiếp tới ngƣời nhận. Điều này là không
hiệu quả và do đó kích thƣớc cửa sổ thƣờng lớn hơn nhiều và thƣờng là một cửa sổ
trƣợt (nhƣ mô tả trƣớc đó) là một giao thức động trong TCP và phụ thuộc vào số lỗi
xảy ra trong một kết nối. Các 'trƣợt' là một yếu tố mô tả các octet đƣợc phép đƣợc
truyền từ một dòng các octet đã hình thành trong một đoạn dữ liệu. Nhƣ việc truyền
dữ liệu này đƣợc tiến hành thành từng đoạn, các hoạt động và trình bày cửa sổ dọc
theo octet nhƣ octet đƣợc truyền và nhận dữ liệu ví dụ nhƣ là công nhận những dữ liệu
trong octec dọc theo cửa sổ. Khi ngƣời gửi nhận đƣợc một ACK, điều này sẽ xác định
nơi cửa sau của cửa sổ trƣợt. Các cửa sổ nhận có kích thƣớc xác định bất kỳ dữ liệu
nào không đựoc gửi có thể đƣợc gửi ngay lập tức vì điều này ngụ ý rằng có phòng
trong bộ đệm nhận Nếu kích thƣớc cửa sổ sau đó từ từ giảm nó cho thấy rằng các
ứng dụng đang chạy chậm để lấy dữ liệu ra khỏi ngăn xếp TCP. Nếu nhận thấy một
kích thƣớc cửa sổ là 0, sau đó ngƣời gửi không thể gửi bất kỳ byte nữa cho đến khi
nhận gửi một gói với kích thƣớc cửa sổ lớn hơn 0.
Đi theo kịch bản mà ngƣời gửi có một chuỗi các byte để gửi, nói rằng số 1-20, với
một bộ tiếp nhận những ngƣời có kích thƣớc cửa sổ của mƣời. Ngƣời gửi sau đó sẽ
diễn ra một cửa sổ quanh mƣời byte đầu tiên và truyền chúng đi. Sau đó nó sẽ chờ đợi
một sự thừa nhận tiếp theo. Theo sau đó nó sẽ gửi một ACK của 11 có nghĩa là nó
thành công đã nhận đƣợc 10 byte đầu tiên, và bây giờ là hy vọng byte 11 tiếp theo.
Tại thời điểm này, ngƣời gửi di chuyển cửa sổ trƣợt (có kích thƣớc 10) 10 byte cùng
để trang trải byte 11-20. Ngƣời gửi sau đó truyền các byte thứ 11 tới 20 đi tiếp.
Ứng dụng xác định kích thƣớc cửa sổ ban đầu và bạn có thể thấy kích thƣớc này
cho mỗi thiết bị đồng bộ ở ban đầu (bắt tay ba bƣớc). Windows sử dụng 8.760 byte
cho Ethernet theo mặc định, mặc dù điều này có thể đƣợc thay đổi trong trƣờng đăng
ký. Số 6 là 8.760 x 1.460 là số lƣợng dữ liệu một khung Ethernet toàn có thể thực hiện
và là MSS cho Ethernet theo mặc định, đƣợc chia sẻ trong khi đồng bộ hóa này. Khi
Trang 27


định cỡ một cửa sổ, 6-8 lần kích thƣớc gói tin đƣợc coi là hiệu quả nhất. Những sai
sót nhỏ xảy ra trên mạng, các cửa sổ lớn hơn đƣợc cho phép để có đƣợc và băng thông
hơn đƣợc sử dụng cho dữ liệu. Vấn đề duy nhất với kích thƣớc cửa sổ lớn là nếu có
một sự thất bại truyền tại bất kỳ điểm nào, toàn bộ các phân khúc sẽ đƣợc gửi lại qua
đó chiếm băng thông một đƣờng bất kỳ.
Một điều đƣợc nhận thức với các giao thức TCP có khởi động chậm hơn so với của
kích thƣớc cửa sổ. Ví dụ, nếu bạn đang gửi một file 10Mb bằng cách sử dụng FTP, có
thể mất 1Mb chuyển giao trƣớc khi chuyển giao xảy ra ở tốc độ tối ƣu. Điều này là do
kích thƣớc cửa sổ bắt đầu giảm nhỏ để cho nhiều các lƣu lƣợng ban đầu là tiêu đề chứ
không phải là dữ liệu. Tải tập tin nhỏ bằng cách sử dụng FTP không đạt đƣợc tốc độ
tải dữ liệu tối ƣu, tải các tập tin lớn là hiệu quả hơn. Cơ chế này đƣợc gọi là Slow
Start .
Kích thƣớc cửa sổ là số tối đa của byte dữ liệu có thể đƣợc truyền đi trong một
đoạn mà không ghi nhận. Cách nhìn này là kích thƣớc cửa sổ quyết định số lƣợng dữ
liệu có thể đƣợc gửi trong RTT. Dƣới đây là một số ví dụ:
 Một kích thƣớc cửa sổ có 8KB sẽ mất 32ms để đƣợc truyền vào một liên kết nối
tiếp 2Mbps ((8192 * 8) / 2048000 = 0.032s). RTT là do đó 64ms. Vì vậy, cho mỗi
64ms, 8KB đƣợc truyền đi bởi vì các gói tin chỉ có thể đƣợc gửi cho 32ms thời
gian mà nhƣ chúng ta đang phải chờ đợi cho Acks nghĩa là chúng tôi không thể sử
dụng những khả năng đầy đủ của các băng thông. Điều này chứng tỏ một cửa sổ
8KB cho chúng ta một thông lƣợng dữ liệu tối đa là 8192 * 8 * 1000/64 =
1024000bps (1Mbps), không phân biệt tốc độ tiềm năng của liên kết.
 Một kích thƣớc cửa sổ có 8KB sẽ mất 400ms vào một liên kết vệ tinh một chiều.
RTT là do đó 800ms. Vì vậy, cho mọi 800ms, 8KB đƣợc truyền đi bởi vì các gói
tin chỉ có thể đƣợc gửi cho 400ms thời gian mà nhƣ chúng ta đang phải chờ đợi
cho Acks tức là một lần nữa chúng tôi không thể sử dụng những khả năng đầy đủ
của các băng thông. Điều này chứng tỏ một cửa sổ 8KB cho chúng ta một thông
lƣợng dữ liệu tối đa là 8192 * 8 * 1000/800 = 81920bps hoặc về 82kbps, không
phân biệt tốc độ tiềm năng của liên kết. Điều này là do của sự chậm trễ rất lớn.
Trang 28


 Một kích thƣớc cửa sổ có 8KB sẽ mất 7s để đƣợc truyền vào một liên kết nối
9600bps ((8192 * 8) / 9600 = 6.83s). Hầu hết các cửa sổ 8KB sẽ đƣợc lƣu trong
bộ nhớ đệm vì sự chậm trễ khi liên kết nhƣ bit sẽ gửi chậm hơn.
TCP có trƣờng cửa sổ 16-bit cho phép một kích thƣớc lớn nhất là 65.535 byte
(64KB) có thể đƣợc gửi bởi mỗi RTT. Đối với một liên kết vệ tinh với RTT 800ms
thông lƣợng tối đa với tối đa kích thƣớc cửa sổ đƣợc cho bởi 65535 * 8 * 1000/800 =
655350bps hay khoảng 660Kbps. Một vệ tinh có tốc đọ 2Mb cho phép bạn quy mô
kích thƣớc TCP có trƣờng cửa sổ lên đến 30-bit, một lĩnh vực này là cửa sổ Tùy chọn
Quy mô tả trong RFC 1323.
Nó sẽ là thích hợp hơn để có một kích thƣớc cửa sổ phù hợp với kích thƣớc của
liên kết. Sẽ có ít bộ nhớ đệm thừa, các Acks sẽ trở lại nhanh hơn và nhiều hơn nữa ,
các băng thông sẽ đƣợc sử dụng lý tƣởng mà bạn đang tìm kiếm một thƣớc Cửa sổ>.
= Băng thông * RTT. Vì vậy, một 128Kbps nối liền với một RTT của 40ms sẽ yêu
cầu một kích thƣớc cửa sổ ít nhất là 128000 / 8 * 0,04 = 640 byte Tƣơng tự nhƣ vậy,.
2Mbps một liên kết với một RTT 20ms sẽ cần một kích thƣớc cửa sổ ít nhất là
2000000 / 8 * 0,02 = 5.000 byte. Vì vậy, một liên kết vệ tinh 128Kbps với RTT của
800ms sẽ yêu cầu một kích thƣớc cửa sổ ít nhất là 128000 / 8 * 0,8 = 12800 byte Một
kỹ thuật nhƣ này (mặc dù phức tạp hơn) đƣợc sử dụng bởi các sản phẩm nhƣ đóng gói.
Rằng TCP kết nối giữa khách hàng và máy chủ, và sửa đổi các kích thƣớc cửa sổ theo
các đặc tính của liên kết giữa chúng để phù hợp nhất đối với từng quá trình truyền gói
tin trong mạng.
5.4. Ví dụ TCP và kích thƣớc cửa sổ
Hãy xem xét một ví dụ về việc chuyển giao thức TCP trong phân đoạn sau đây.
Chúng tôi chỉ tập trung vào các số thứ tự TCP và kích thƣớc của những cửa sổ này:

Loại phân khúc
160.221.172.250
160.221.73.26
SYN

Seq.no. 17768656

×