Tải bản đầy đủ (.docx) (27 trang)

BÁO CÁO MÔN MẠNG TRUYỀN THÔNG: TÌM HIỂU CHUNG VỀ GIAO THỨC TCPIP, TCP RENO TCP VEGAS

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 (2.04 MB, 27 trang )

DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT

Cơ sở kĩ thuật mạng truyền thông

MỤC LỤC
I. Giới Thiệu Chung Về Giao Thức TCP................................................................................................5
1.1. Lịch sử ra đời..................................................................................................................................5
1.2. Giới Thiệu Chung..........................................................................................................................5
1.3. Đặc điểm của giao thức TCP........................................................................................................8
1.3.1. Đặc điểm về gói tin TCP..........................................................................................................8
1.3.2. Các pha kết nối.......................................................................................................................10
II. Giới thiệu về giao thức TCP Reno và TCP Vegas...........................................................................14
2.1. TCP Reno......................................................................................................................................14
2.1.1. Các cơ chế của TCP Reno......................................................................................................14
2.1.2 TCP NewRENO.........................................................................................................................17
2.2. Giới thiệu về giao thức TCP Vegas.............................................................................................18
2.2.1 Giao thức TCP Vegas...............................................................................................................18
2.2.2 Thuật toán điều khiển của TCP Vegas.....................................................................................19
2.2.3. Ảnh hưởng của các tham số trong thuật toán TCP Vegas......................................................20
2.2.4. Một số cải tiến của TCP Vegas............................................................................................21
2.2.5 TCP Vegas +............................................................................................................................22
2.3. So sánh cơ chế điều khiển tắc nghẽn của TCP Reno và TCP Vegas......................................23
2.3.1. TCP Reno................................................................................................................................23
2.3.2. TCP Vegas...............................................................................................................................24
III. CÁC CHUẨN CỦA TCP.............................................................................................................24
3.1. Quá trình phát triển....................................................................................................................24
3.2. Một số tài liệu về các chuẩn của TCP.......................................................................................25
KẾT LUẬN...................................................................................................................................................26
Tài liệu tham khảo..................................................................................................................................27

DANH MỤC HÌNH ẢN


Hình 1: Bài báo "Giao thức cho mạng truyền thông kiểu gói" (tạm dịch)................................................5
Hình 2: Mô hình TCP/IP và mô hình OSI..................................................................................................6
Hình 3:Cấu trúc header gói tin TCP...........................................................................................................8
Hình 4: Một số port của các ứng dụng thông dụng....................................................................................9
Hình 5: Thiết lập kết nối...........................................................................................................................11
Hình 6: Truyền dữ liệu..............................................................................................................................13
Hình 7: Kết thúc phiên..............................................................................................................................13
Hình 8: Cơ chế của TCP Reno..................................................................................................................14
Hình 9: Ví dụ về cơ chế phục hồi nhanh..................................................................................................16
Hình 10: Ví dụ cơ chế phục hồi nhanh của TCP NewReno.....................................................................18


DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT

Cơ sở kĩ thuật mạng truyền thông

Hình 11: Mô hình mạng ví dụ...................................................................................................................21
Hình 12: Cửa sổ tắc nghẽn của TCP Reno và Vegas................................................................................22

DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT
TCP
IP
WWW

IEEE
UDP
OSI
ACK
ISN
SCTP

CRC
PPP
CWND
RTT
MWND
ssthresh
EFS
RFC
ECN
SYN-ACK
FIN
TOS
TTL

Transmission Control Protocol

Giao thức truyền tin kiểm
soát
Internet Protocol
Giao thức internet
World wide web
Mạng lưới toàn cầu là một
không gian thông tin toàn
cầu mà mọi người có thể
truy cập (đọc và viết) qua
các thiết bị kết nối với mạng
Internet
Institute of Electrical and Viện kỹ nghệ Điện và Điện
Electronics Engineers
tử

User Datagram Protocol
Giao thức truyền tin người
dùng
Open Systems Interconnection Mô hình tham chiếu kết nối
Reference Model
hệ thống mở
Acknowledge
Bản tin ACK
Initial Sequence Number
Số thứ tự ban đầu
Stream Control Transmission Giao thức điều khiển luồng
Protocol
Cyclic Redundancy Check
Kiểm dư chu trình
Point-to-Point Protocol
Giao thức kết nối điểm tới
điểm
Congest Windows
Cửa sổ nghẽn
Round Trip Time
Thời gian truyền 1 vòng
Maximum Windows
Cửa sổ cực đại
Slow-start thresh
Ngưỡng bắt đầu chậm
Estimate Flight Size
Kích thước truyền ước
lượng
Request for Comments
Tài liệu đề nghị duyệt thảo

và bình luận
Explicit
Congestion Thông báo tắc nghẽn rõ
Notification
ràng
Synchronize-ACK message
Bản tin ACK đồng bộ
End of data
Kết thúc của dữ liệu
Type of Services
Loại dịch vụ
Time to Live
Thời gian gian sống của gói
tin


Lời mở đầu

Cơ sở kĩ thuật mạng truyền thông

LỜI MỞ ĐẦU
Ngày nay, các dịch vụ trên mạng Internet không ngừng được cải tiến để đáp
ứng nhu cầu ngày càng tăng của người sử dụng. Do đó chúng ta cần xây dựng một
giao thức phù hợp để đảm bảo chất lượng mạng. Trong các giao thức thì giao thức TCP
là giao thức truyền thông được sử dụng phổ biến nhất trong mạng Internet. Trong phần
lớn lưu lượng trên mạng Internet, lưu lượng TCP/IP đóng góp một phần đáng kể vì
phần lớn ứng dụng trên mạng Internet, ví dụ như lướt Web và truyền file, đều sử dụng
giao thức TCP/IP. Do vậy, có thể thấy rằng hiệu năng của TCP/IP sẽ có ảnh hưởng lớn
đến hiệu năng của mạng và trực tiếp ảnh hưởng đến chất lượng dịch vụ của mạng. Tuy
nhiên số lượng người tham gia vào mạng ngày càng tăng và có ngày càng nhiều dịch

vụ hỗ trợ điều này đòi hỏi chúng ta phải không ngừng cải tiến và nâng cao hiệu năng
giao thứcTCP/IP.
Từ khi ra đời đến nay giao thức TCP đã có nhiều phiên bản cải tiến, đặc biệt với
sự đóng góp của phiên bản TCP Reno đã làm các cơ chế điều khiển truyền thông linh
hoạt. Giao thức TCP Vegas là phiên bản cải tiến của TCP Reno. Trong khuôn khổ tiểu
luận này, chúng em sẽ tìm hiểu về giao thức TCP Reno và TCP Vegas.
Chúng em rất mong nhận được sự góp ý của các thầy cô!
Đại diện nhóm sinh viên thực hiện


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

I. Giới Thiệu Chung Về Giao Thức TCP
1.1. Lịch sử ra đời
Tháng 5 năm 1974, viện điện và kỹ sư điện tử (IEEE) xuất bản một bài báo có
tiêu đề "A Protocol for Packet Network Intercommunication" tác giả của tờ báo, Vint
Cerf và Bob Kahn, mô tả một giao thức liên mạng để chia sẻ tài nguyên bằng cách sử
dụng chuyển mạch gói giữa các nút, kết hợp với các khái niệm từ dự án FRENCH
CYCLADES được chỉ đạo bởi Louis Pouzin.

Hình 1: Bài báo "Giao thức cho mạng truyền thông kiểu gói" (tạm dịch).

1.2. Giới Thiệu Chung
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ủ.

Nền tảng của Internet là TCP, nó bao gồm các quy tắc để định dạng các tin
nhắn, xử lý tắc nghẽn, sửa lỗi và cung cấp thông tin về nơi mà một gói tin cần được
gửi đi, cho dù nó đến quá nhanh cho máy tính nhận và liệu nó đã đến tất cả. Về cơ bản
TCP là chất keo đảm bảo điều kiện mạng hoạt động trơn tru.
TCP và UDP là 2 protocol hoạt động ở lớp thứ 04 (Transport Layer) của mô
hình OSI và ở lớp thứ 02 (Transport Layer) mô hình TCP/IP.


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

Hình 2: Mô hình TCP/IP và mô hình OSI

Mục đích chính của TCP là cung cấp các giải pháp tin cậy, mạch logic hoặc
dịch vụ kết nối giữa các cặp quy trình. Để cung cấp dịch vụ này trên đầu trang của một
internet kém tin cậy, hệ thống thông tin liên lạc đòi hỏi các cơ sở trong các lĩnh vực
sau:
- Chuyển dữ liệu cơ bản:
TCP có thể truyền một luồng octet liên tục trong mỗi hướng giữa người dùng
bằng cách đóng gói một số octet phân đoạn để truyền qua hệ thống internet. Nói
chung, các TCPs quyết định khi nào để chặn và chuyển tiếp dữ liệu của riêng mình.
Đôi khi người dùng cần phải chắc chắn rằng tất cả dữ liệu họ có gửi đến TCP đã được
truyền đi. Đối với mục đích này một đẩy chức năng được xác định. Để đảm bảo dữ
liệu được gửi tới TCP là thực sự truyền tải cho người sử dụng chỉ ra rằng nó phải là
đẩy qua người dùng nhận. Một đẩy gây ra các TCPs để nhanh chóng chuyển tiếp và
cung cấp dữ liệu đến điểm đó cho người nhận. Điểm đẩy chính xác có thể không hiển
thị cho người dùng nhận và chức năng đẩy không cung cấp một mốc đánh dấu biên
giới.
- Độ tin cậy:

TCP có nhiệm vụ phải phục hồi các dữ liệu hỏng, mất, nhận không đúng thứ
tự bởi hệ thống truyền thông internet. Điều này đạt được bằng cách gán các thứ tự cho
mỗi octet truyền đi, và yêu cầu gửi 1 bản tin ACK từ phía nhận. Nếu ACK không nhận
được trong khoảng thời gian chờ, dữ liệu được truyền lại. Tại máy thu, trình tự số được
sử dụng để phân đoạn chính xác để có thể nhận được ra lệnh và để loại bỏ các bản sao.
Thiệt hại được xử lý bởi thêm checksum cho mỗi phân đoạn truyền, kiểm tra nó tại
nhận, và loại bỏ các phân đoạn bị hư hỏng. Miễn là các TCPs tiếp tục hoạt động đúng


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

và hệ thống internet không trở thành phân vùng hoàn toàn, không truyền lỗi sẽ ảnh
hưởng đến việc phân phối dữ liệu chính xác. TCP phục hồi từ lỗi hệ thống truyền
thông internet.
- Kiểm soát lưu lượng:
TCP cung cấp một phương tiện để người nhận điều chỉnh lượng dữ liệu được
gửi bởi người gửi. Điều này đạt được bằng cách trả về một "cửa sổ" với mỗi ACK chỉ
ra một loạt các số thứ tự chấp nhận được ngoài segment cuối cùng đã nhận được thành
công. Cửa sổ cho biết số octet được phép mà người gửi có thể truyền trước khi cho
phép nhận thêm.
- Ghép Kênh:
Để cho phép nhiều quy trình trong một máy chủ duy nhất sử dụng TCP các
phương tiện truyền thông đồng thời, TCP cung cấp một bộ địa chỉ hoặc cổng trong mỗi
máy chủ. Liên kết với mạng và các địa chỉ host từ lớp truyền thông internet, được gọi
là cổng (virtual port). Một cặp cổng nhận diện một kiểu kết nối. Một cổng có thể được
dùng trong nhiều kết nối khác nhau.
Việc ràng buộc các cổng vào các quá trình được xử lý độc lập bởi mỗi host.
Tuy nhiên, nó rất hữu ích khi gắn các quá trình thường xuyên sử dụng (ví dụ, một

"logger" hoặc dịch vụ chia sẻ thời gian thực (timesharing ) ) để cố định cổng được
được công bố rộng rãi. Các dịch vụ này sau đó có thể được truy cập thông qua các địa
chỉ đã biết.
- Kết nối:
Các cơ chế kiểm soát độ tin cậy và lưu lượng được mô tả ở trên yêu cầu rằng
TCPs khởi tạo và duy trì thông tin trạng thái nhất định cho mỗi luồng dữ liệu. Sự kết
hợp của thông tin này, bao gồm các cổng, số thứ tự, và kích cỡ cửa sổ, được gọi là kết
nối. Mỗi kết nối được chỉ định bởi một cặp cổng xác định hai bên.
Khi hai bên muốn truyền đạt, đầu tiên TCP thiết lập một kết nối (khởi tạo
thông tin trạng thái trên mỗi bên). Khi giao tiếp hoàn tất, kết nối phải chấm dứt hoặc
đóng lại để giải phóng tài nguyên cho các mục đích sử dụng khác.
Vì các kết nối được thiết lập giữa các máy không đáng tin cậy và qua hệ
thống truyền thông internet không đáng tin cậy, một cơ chế bắt tay với số thứ tự dựa
trên đồng hồ được sử dụng để tránh khởi tạo sai của các kết nối.
- Ưu tiên và bảo mật:
Người sử dụng TCP có thể chỉ ra sự an toàn và sự ưu tiên của giao tiếp. Các
giá trị mặc định được sử dụng khi những tính năng này không cần thiết.


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

1.3. Đặc điểm của giao thức TCP
1.3.1. Đặc điểm về gói tin TCP
TCP là giao thức truyền thông tin cậy, đảm bảo tất cả dữ liệu có thể truyền từ
nguốn đến đích. Do vậy cấu trúc header của TCP khác phức tạp.

Hình 3:Cấu trúc header gói tin TCP


Source port (0-655535):
Số hiệu xác định cổng của chương trình ứng dụng, do máy tính tự động sinh ra.
Destination port (0-655535)
Tại lớp 4 Transport Data sẽ được chia nhỏ thành các khối khối dữ liệu
nhỏ hơn có kích thước phù hợp, sau đó chúng sẽ được đóng gói lại bằng một
tiêu đề header,header này được thêm vào nhằm theo dõi luồng dữ liệu và đánh
dấu thứ tự các khối data này nhằm tập hợp dữ liệu tại máy nhận. Những gói tin
nhỏ được đóng thêm header ở đầu này gọi là các Segment.
Có rất nhiều ứng dụng, dịch vụ chạy trên mỗi máy tính, nên để chuyển
chính xác dữ liệu cho các ứng dụng dịch vụ, lớp Transport gán cho mỗi
application một định danh gọi là port number. Mọi ứng dụng muốn truy cập
mạng đều được gán port number, port number này là độc nhất trên máy tính đó.
Ví dụ một số port number dành cho một số ứng dụng thông dụng tại hình 4
Sequence number (0-4294967295)
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.


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

Hình 4: Một số port của các ứng dụng thông dụng

Acknowledgement number (0-4294967295)
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 quy định độ dài của phần header (tính theo đơn vị từ 32

bít). 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).
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ự


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

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)
Checksum
16 bít kiểm tra cho cả phần header và dữ liệu.
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.

1.3.2. Các pha kết nối
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
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 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:
1. Client yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (gói tin TCP) tới
server, trong gói tin này, tham số sequence number được gán cho một giá trị
ngẫu nhiên X.
2. Server hồi đáp bằng cách gửi lại phía client bản tin SYN-ACK, trong gói tin
này, tham số acknowledgment number được gán giá trị bằng X + 1, tham số
sequence number được gán ngẫu nhiên một giá trị Y…
3. Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tin
ACK, trong bản tin này, tham số sequence number được gán cho giá trị bằng X
+ 1 còn tham số acknowledgment number được gán giá trị bằng Y + 1.
Tại thời điểm này, cả client và server đều được xác nhận rằng, một kết nối đã
được thiết lập.


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

Hình 5: Thiết lập kết nối


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 (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 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 4byte với số thứ tự ban đầu là 100 (theo lý thuyết thì
4byte 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 2byte 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.


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

Giả sử ta có 10.000byte được gửi đi trong 10 gói tin 1.000byte 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 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ị checksum.
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 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 đó. Đ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 (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 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 sổ TCP nhận: Khi chuỗi thứ tự tăng đến tối đa thì lại quay lại về
0. 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.
Dãn kích thước cửa sổ: Để 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à 2byte 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.535byte 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 TCP Tuning.
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 giã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).


Chương I: Giới thiệu chung

Cơ sở kĩ thuật mạng truyền thông

Hình 6: Truyền dữ liệu

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.

Hình 7: Kết thúc phiên


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông


II. Giới thiệu về giao thức TCP Reno và TCP Vegas.
2.1. TCP Reno
2.1.1. Các cơ chế của TCP Reno.
Để điều khiển truyền thông TCP Reno sử dụng hầu hết các cơ chế điều khiển
như: Cơ chế cửa sổ trượt, cơ chế bắt đầu chậm, cơ chế tránh tắc nghẽn, cơ chế truyền
lại nhanh và cơ chế phục hồi nhanh.
TCP Reno sử dụng cửa sổ tắc nghẽn (CWND) để điều khiển lượng dữ liệu
truyền đi trong thời gian một vòng quay (RTT) và một cửa sổ cực đại (MWND) để
giới hạn giá trị lớn nhất của cwnd. Cơ chế hoạt động của TCP Reno được mô tả như
hình vẽ:

1. Cơ chế bắt đầu chậm (slow-start):
Khi một kết nối bắt đầu hoặc bị trễ xảy ra, trạng thái bắt đầu chậm bắt
đầu hoạt động. Giá trị ban đầu của cwnd được đặt là 1 gói tin cho trạng thái ban
đầu trong trường hợp này. Trạm gửi tăng cwnd theo hàm mũ bằng cách thêm
mỗi lần một gói khi nó nhận được ACK. Cơ chế bắt đầu chậm điều khiển kích
thước cửa sổ chon đến khi cwnd đạt đến mức đã được thiết lập trước đó gọi là
ngưỡng bắt đầu chậm (ssthresh). Khi cwnd vượt ra khỏi ssthresh, việc tránh tắc
nghẽn sẽ bắt đầu.

Hình 8: Cơ chế của TCP Reno


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

2. Cơ chế tránh tắc nghẽn (Congestion avoidance):
Khi kích thước cửa sổ trong trạng thái bắt đầu chậm vượt qua hàm mũ,
những gói tin gởi đi trong thời điểm này tăng lên một cách nhanh chóng nên

gây ra sự tắc nghẽn. Để giải quyết vấn đề này cơ chế “tránh tắc nghẽn” được
khởi tạo khi cwnd vượt quá ssthresh. Trong trường hợp này, cwnd được cộng
thêm 1/cwnd gói mỗi lần nó nhận được ACK để tăng kích thước cửa sổ theo
hàm tuyến tính.

3. Cơ chế truyền lại nhanh (Fast retransmission):
Nếu gói phản hồi ACK là một gói không đúng thủ tục nhận được của bên
nhận, trạm gửi xử lý nó như một tín hiệu cho gói bị mất hoặc gói bị trễ. Nếu 3
hoặc nhiều hơn gói hồi đáp ACK được nhận tại một dòng, bên gửi sẽ thực hiện
cơ chế truyền lại nhanh, nhưng gói được truyền là những gói bị lỗi mà không
cần đợi thời gian để coarse-grain[*] [RFC2988] kết thúc.

4. Cơ chế phục hồi nhanh (Fast recovery):
Truyền lại nhanh yêu cầu người gửi thiết lập cwnd = 1 vì kênh đã nghẽn
và không có ACK đến. Phục hồi nhanh là một kỹ thuật thường cho phép người
gửi tránh nghẽn kênh, và chuyển từ cwnd sang cwnd / 2 trong không gian của
một RTT.
Ý tưởng là sử dụng cặp ACK song song (dup-ACK) đến để tăng tốc độ
truyền lại. Giả định rằng mỗi lần đến dupACK chỉ ra rằng một số gói dữ liệu
sau gói bị mất đã được gửi thành công; nó không chỉ ra vấn đề của gói tin. Khi
phát hiện ra gói bị mất thông qua Fast Retransmit, chúng ta đặt cwnd = cwnd /
2; bước tiếp theo là tìm hiểu xem chúng ta phải chờ bao nhiêu gói bộ nhớ trước
khi chúng ta có thể tiếp tục truyền dữ liệu mới.
Ban đầu, ít nhất, giả định rằng chỉ có một gói dữ liệu bị mất, mặc dù
trong phần sau chúng ta sẽ thấy rằng nhiều tổn thất có thể được xử lý thông qua
một sửa đổi nhẹ của chiến lược Phục hồi Nhanh.Trong quá trình khôi phục,
chúng ta không thể sử dụng trực tiếp cwnd, vì cửa sổ trượt không thể nhúc
nhích cho đến khi gói bị mất được truyền lại. Thay vào đó, chúng ta sẽ sử dụng
khái niệm về ước tính kích thước (Estimate Flight Size-EFS) là dự đoán tốt nhất
của phía gửi với số lượng các gói tin chưa được xử lý. Trong trường hợp bình

thường, EFS cũng giống như cwnd. Sự quan trọng quan trọng Phục hồi nhanh
là EFS nên được giảm đi 1 cho mỗi dup-ACK đến.
Đầu tiên chúng ta phác thảo một trường hợp chung, và sau đó xem xét
một ví dụ cụ thể. Cho phép cwnd = N, và giả sử gói 1 bị mất (số gói ở đây có
thể được dùng là tương đối). Cho đến khi gói 1 được truyền lại, người gửi chỉ


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

có thể gửi qua gói tin N (Dữ liệu [N] chỉ có thể được gửi sau khi ACK [0] đến
người gửi). Người nhận sẽ gửi N-1 dupACK [0] đại diện cho các gói từ 2 đến
N.
Tại thời điểm dupACK thứ ba, khi mất dữ liệu [1] được phát hiện, người
gửi tính như sau: EFS là cwnd = N. Ba dup-ACKs đã đến, đại diện cho ba gói
tin sau đó không còn trong chuyến gửi, do đó, EFS bây giờ N-3. Tại thời điểm
này, người gửi nhận ra gói đã bị mất, làm cho EFS = N-4, nhưng gói đó sau đó
được truyền lại ngay lập tức, đưa EFS trở về N-3.
Người gửi mong đợi vào thời điểm này để nhận thêm N-4 dupACKs,
tiếp theo là một ACK mới để truyền lại gói bị mất. ACK cuối cùng này sẽ là cho
toàn bộ thời gian ban đầu.
Mục tiêu mới cho cwnd là N / 2 (cho đơn giản, chúng ta sẽ giả sử N là số
chẵn). Vì vậy, chúng ta chờ N / 2 - 3 thêm dup-ACKs để đến, tại đó điểm EFS
là N-3- (N / 2-3) = N / 2. Sau thời điểm này, người gửi sẽ tiếp tục gửi gói tin
mới; nó sẽ gửi một gói tin mới cho mỗi N / 2-1 sau đó các dup-ACK đến (nhớ
lại rằng có tất cả N-1 dup-ACK). Các đợt truyền mới này sẽ là dữ liệu [N + 1]
thông qua dữ liệu [N + (N / 2-1)].
Sau khi các dup-ACK cuối cùng sẽ đến ACK tương ứng với việc truyền
lại gói tin bị mất; nó sẽ là ACK [N], thừa nhận tất cả các cửa sổ ban đầu. Tại

thời điểm này, có N / 2 - 1 unacknowledged các gói dữ liệu [N +1] thông qua
dữ liệu [N (N / 2) -1]. Người gửi bây giờ gửi dữ liệu [N + N / 2] và do đó có thể
tiếp tục cửa sổ trượt với cwnd = N / 2: người gửi đã nhận được ACK [N] và có
chính xác một cửa sổ đầy đủ chưa được xử lý cho giá trị mới cwnd= N / 2.
Đây là một sơ đồ minh hoạ Phục hồi nhanh cho cwnd = 10. Dữ liệu [10]
bị mất.


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

Hình 9: Ví dụ về cơ chế phục hồi nhanh

5. Cơ chế truyền lại trễ (Timeout retransmission):
Đối với mỗi gói tin, trạm gửi sẽ giữ nó trong khoảng thời gian đến hồi
đáp, thời gian này được dùng để kiểm tra gói bị trễ hoặc gói không nhận được
ACK. Nếu việc trễ xảy ra, trạm gửi cài đặt lại cwnd về 1 và khởi động cơ chế
bắt đầu chậm. Giá trị mặc định thời gian được dùng trong mỗi lần quay vòng là
500ms, trạm gửi kiểm tra với mỗi lần là 500ms.
2.1.2 TCP NewRENO
TCP NewReno, được mô tả trong RFC 2582 (hiện tại là RFC 6582), là một
bước tinh chỉnh khiêm tốn Fast Recovery giúp cải thiện đáng kể việc xử lý trường hợp
khi hai hoặc nhiều gói dữ liệu bị mất trong một cửa sổ. Nó được coi là một phần của
TCP Reno đương đại. Nếu hai gói dữ liệu bị mất và gói đầu tiên được truyền lại, người
nhận sẽ thừa nhận dữ liệu ngay trước gói thứ hai, và sau đó tiếp tục gửi dup-ACK này
cho đến khi gói tin bị mất thứ hai cũng được truyền lại. Các ACK này của dữ liệu đến
trước gói thứ hai đôi khi được gọi là ACKs một phần, bởi vì retransmission của gói
đầu tiên bị mất không dẫn đến ACK của tất cả các dữ liệu chưa được xử lý. Cơ chế
NewReno sử dụng các ACK một phần này làm bằng chứng để truyền lại gói tin bị mất

sau đó và cũng để giữ tốc độ Fast Recovery.
Trong sơ đồ dưới đây, các gói 1 và 4 bị mất trong một cửa sổ 0…11 của kích
thước 12. Ban đầu, người gửi sẽ nhận được dupACK [0] 's; 11 ACK đầu tiên (đường
nét từ phải sang trái) là ACK [0] và 10 dupACK [0]. Khi gói 1 được truyền lại thành


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

công khi nhận được dupACK thứ ba, phản hồi của người nhận sẽ là ACK [3] (đường
đứt mạnh). Đây là ACK một phần đầu tiên (ACK đầy đủ sẽ là ACK [12]). Khi nhận
được bất kỳ ACK một phần nào trong quá trình Phục hồi Nhanh, TCP NewReno giả
định rằng gói dữ liệu ngay lập tức bị mất và truyền lại ngay lập tức; người gửi không
chờ đợi ba gói dup-ACK bởi vì nếu gói dữ liệu sau đây không bị mất, không có trường
hợp nào của ACK một phần đã từng được tạo ra, ngay cả khi gói lại gói đã xảy ra.
Phản ứng của người gửi TCP NewReno ở đây có hiệu quả để xử lý từng ACK
thành phần dưới dạng dupACK [0], ngoại trừ việc người gửi cũng truyền lại gói dữ
liệu dựa trên việc nhận ACK một phần - nó có thể suy luận rằng bị mất. NewReno tiếp
tục tiến hành nhanh chóng Phục hồi nhanh bởi bất kỳ ACK nào đến, cho dù đó là các
gói tin gốc hoặc sau đó là một phần ACK hoặc dup-ACKs.

Hình 10: Ví dụ cơ chế phục hồi nhanh của TCP NewReno

2.2. Giới thiệu về giao thức TCP Vegas
2.2.1 Giao thức TCP Vegas
Năm 1994 Lawren S. Brakmo và đồng sự là Larry L. Peterson ở trường Đại học
Arizona đề xuất một thuật toán cải tiến mới cho TCP gọi là TCP Vegas. Nó là một
phiên bản cải tiến của TCP Reno. Trong báo cáo, họ cho rằng TCP Vegas có thể đạt
được thông lượng cao hơn từ 37% đến 71% so với TCP Reno trên Internet.



Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

Sự phát lại các segments của nó chỉ bằng từ 1/5 đến 1/2 của TCP Reno và cho
rằng sự cải tiến thông lượng trên đường truyền là làm sao giảm được các gói tin bị mất
và giảm sự phát lại các gói tin.
Năm 1995 Ahn và các đồng sự đã kiểm nghiệm TCP Vegas trên SunOS 4.1.3 và
cho chúng cạnh tranh trên mạng diện rộng và trên internet. Họ tuyên bố TCP Vegas đạt
dược thông lượng cao, giảm sự phát lại và thời gian trung bình của RTT ngắn hơn TCP
Reno, bởi vì TCP Vegas giữ dữ liệu ít trên mạng. Trong khoảng thời gian hơn 10 năm
trở lại đây có nhiều nghiên cứu về TCP Vegas. Trong các tài liệu của mình, các tác giả
đều chỉ ra những ưu điểm và các khuyết điểm của TCP Vegas.
Khuyết điểm lớn nhất của TCP Vegas là nếu có sự cạnh tranh trên đường truyền
giữa TCP Vegas và các phiên bản TCP khác thì TCP Vegas tỏ ra kém cạnh tranh, từ đó
họ đưa ra các cải tiến để khắc phục các nhược điểm của nó.
Hiện nay TCP Vegas vẫn chưa được sử dụng rộng rãi trên Internet, vì vẫn còn
một số hạn chế nhất định trong việc xác định các tham số ảnh hưởng trong từng thời
điểm nhất định, để tăng hiệu quả đường truyền, đây là vấn đề mở mà các nhà nghiên
cứu rất quan tâm.
2.2.2 Thuật toán điều khiển của TCP Vegas
Ý tưởng then chốt của TCP Vegas là ngăn ngừa các segment bị mất trong quá
trình truyền thông và tránh tắc nghẽn mạng. TCP Vegas điều khiển kích thước cửa sổ
tắc nghẽn bằng cách theo dõi các RTT. RTT là thời gian được tính từ khi một segment
được gửi đi từ trạm phát đến trạm nhận, cho đến khi trạm phát nhận được segment hồi
đáp ACK, chứa thông tin về segment đó đã được nhận thành công. Nếu thời gian của
các RTT được theo dõi tăng, thì TCP Vegas nhận biết mạng sắp bị tắc nghẽn và thực
hiện cơ chế tránh tắc nghẽn. Nếu thời gian của các RTT giảm thì TCP Vegas nhận biết

mạng được khai thông và TCP Vegas thực hiện cơ chế tăng kích thước cửa sổ để tận
dụng thông lượng của đường truyền. Trong quá trình điều khiển truyền thông, TCP
Vegas sử dụng các cơ chế : Cơ chế cửa sổ trượt, cơ chế bắt đầu chậm, tránh tắc nghẽn,
phát lại nhanh, phục hồi nhanh và cơ chế điều khiển truyền thông của nó. Cơ chế bắt
đầu chậm được TCP Vegas sử dụng khi bắt đầu một kết nối. Cơ chế phát lại nhanh và
phục hồi nhanh được thực hiện khi nó nhận được 1 hoặc 3 segment ACK trùng lặp số
hiệu.
Thuật toán TCP Vegas thực hiện như sau:
Ký hiệu:
rtt[sec]: là thời gian RTT được theo dõi
base_rtt: là giá trị nhỏ nhất của các RTT được theo dõi
 và  là các trị hằng
Thuật toán điều khiển của TCP Vegas :


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

Trong pha bắt đầu chậm TCP Vegas ước tính diff và so sánh nó với 1 ngưỡng γ
(thường chọn bằng 1) nếu diff < γ thì cửa sổ tắc nghẽn sẽ được tăng gấp đôi trong mỗi
lần nhận được ACK hồi đáp. Sau pha bắt đầu chậm TCP Vegas thực hiện pha tránh tắc
nghẽn. Khi TCP Vegas nhận 3 ACK trùng lặp số hiệu nó thực hiện cơ chế phát lại
nhanh và phục hồi nhanh, tuy nhiên trong pha này TCP Vegas có cải tiến là nó đặt cửa
sổ xuống còn 3/4 cửa sổ hiện hành trong khi TCP Reno đặt là 1/2. Khi phát hiện có
segment bị Time Out TCP Vegas thực hiện giống TCP Reno.
Ước lượng băng thông:
Hiện nay, cơ chế này sử dụng trong TCP Vegas để ước lượng băng thông có giá
trị là khác cơ bản so với TCP Reno là chủ định không phải là nguyên nhân của việc
mất gói tin. Do đó cơ chế này sẽ xóa bỏ trạng thái không ổn định từ TCP Vegas và đạt

thông lượng hiệu quả trung bình cao hơn. Ngoài ra, mỗi kết nối chỉ giữ một vài gói
trong bộ đệm Switch.
Cơ chế truyền lại:
Một cơ chế khác được bổ sung thêm trong TCP Vegas hơn TCP Reno là cơ chế
truyền lại. Trong TCP Reno bộ đếm thời gian kém hơn được sử dụng ước lượng RTT
và sự thay đổi, kết quả là việc ước lượng sơ sài.
2.2.3. Ảnh hưởng của các tham số trong thuật toán TCP Vegas
TCP Vegas dựa vào sự quan sát các RTT để điều khiển truyền thông. Các tham
số như : độ trễ d, độ trễ D của các RTT và việc thiết lập các giá trị α, β. Các tham số
trên có ảnh hưởng lớn đến việc điều khiển truyền thông của TCP Vegas trên mạng.
Trong một mạng chỉ dùng TCP Vegas thì thông lượng tăng, khả năng tránh tắc
nghẽn tốt, tỷ lệ mất gói tin giảm, nhưng khi mạng có sự tham gia của TCP Reno thì
khả năng cạnh tranh của nó tỏ ra kém hơn TCP Reno. Dễ thấy điều này qua thuật toán
của nó.
Các hằng số α, β thường được chọn là 1 và 3 (hoặc là 2 và 4). TCP Vegas tăng
kích thước cửa sổ lên 1 khi . Tỷ số luôn dương và thường nhỏ hơn 1. Do vậy khi cửa
sổ của nó đủ lớn, lưu lượng trên đường truyền cao, độ trễ của các RTT tăng (Do thời
gian chờ của các segment trên hàng đợi tăng) thì khả năng tăng kích thước cửa sổ rất


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

khó xảy ra vì khi đó . Nếu lớn hơn β TCP Vegas sẽ giảm kích thước cửa sổ xuống 1.
Điều này cho thấy TCP Vegas tăng hoặc giảm kích thước cửa sổ linh hoạt, dựa vào sự
quan sát độ trễ của các RTT và cách thiết lập trị số cho các hằng α, β. Trong trường
hợp dung lượng đường truyền nhỏ, độ trễ của đường truyền cao, chiều dài hàng đợi
hạn chế, khả năng xử lý tại hàng đợi chậm, khả năng nghẽn mạng có thể xảy ra. Nếu
mạng chỉ sử dụng giao thức TCP Vegas thì thông lượng đường truyền được nâng cao

rõ rệt nhờ kích thước cửa sổ luôn được giữ ở mức cao. Rõ ràng TCP Vegas ra đời
nhằm đáp ứng những hạn chế về tài nguyên phần cứng của mạng.
TCP Reno tăng kích thước cửa sổ cho đến khi phát hiện sự mất các segment,
bất chấp RTT có tăng hay không. Với cơ chế như vậy nên khi TCP Vegas tham gia
truyền thông cùng với TCP Reno thì khả năng chiếm giữ đường truyền và hàng đợi của
TCP Reno nhiều hơn. TCP Vegas khó có cơ hội tăng kích thước cửa sổ, do độ trễ trên
hàng đợi tăng, trị số của α, β thiết lập nhỏ, làm số lượng các segment trên mạng của
TCP Vegas giảm.
Để tạo sự công bằng và tăng thông lượng trên mạng người ta có thể tăng năng
lực phần cứng như : tăng bộ đệm tại các router và tăng tốc độ xử lý tại các routers,
hoặc cải tiến thuật toán của TCP Vegas. Người ta thường cải tiến thuật toán kết hợp
với việc cải tiến cách quản lý hàng đợi để giảm bớt segment bị mất và giảm thời gian
chi phí cho việc xử lý, hoặc thiết lập giá trị các hằng số α, β một cách phù hợp. Giá trị
ban đầu của α, β ảnh hưởng rất lớn đến sự cạnh tranh của TCP Vegas. Nếu các giá trị
này được thiết lập đủ lớn một cách phù hợp, sao cho khi TCP Reno tăng kích thước
cửa sổ thì TCP Vegas cũng tăng kích thước cửa sổ, cho đến giới hạn của sự cạnh tranh,
có thể làm tăng thông lượng trên đường truyền và tăng sức cạnh tranh của TCP Vegas
trên mạng.
2.2.4. Một số cải tiến của TCP Vegas
Một số nghiên cứu đã chỉ ra các thiếu sót của TCP Vegas. Từ đó đã có một số
cải tiến TCP Vegas nhằm khắc phục các thiếu sót, tăng năng lực cạnh tranh của TCP
Vegas và nâng cao chất lượng truyền thông. Các cải tiến của TCP Vegas đều nhằm vào
việc cải tiến cách quản lý hàng đợi sao cho có thời gian D là nhỏ nhất trên đường
truyền và thiết lập các giá trị α, β.
Ví dụ mô hình mạng được sử dụng


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông


Hình 11: Mô hình mạng ví dụ

Trong đó: hai nguồn TCP Vegas là TCP Reno cùng chia sẻ Router và đường
truyền, hàng đợi trên đường truyền có kích thước B (segment), dung lượng của đường
truyền là (  d>B). Các giả định trong mô hình:
Nếu các nguồn nhận được 3ACK trùng lặp số liệu thì sử dụng cơ chế phát lại
nhanh và phục hồi nhanh.
Nếu các nguồn phát hiện sự mất segment bằng Timeout thì sử dụng cơ chế
tránh tắt nghẽn.
Bộ đệm trên đường truyền là rỗng tại thời điểm bắt đầu của pha tránh tắt nghẽn.
Sự mấy Segment xảy ra đồng thời trên cả hai nguồn.
Với mô hình và các giả định như trên ta có thể biểu diễn một chu kỳ của pha
tránh tắt nghẽn như sau

Hình 12: Cửa sổ tắc nghẽn của TCP Reno và Vegas


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

2.2.5 TCP Vegas +
Trong TCP Vegas +, chúng ta chỉ thay đổi thuật toán cập nhật cho kích thước
cửa sổ ở gốc TCP Vegas, và không thay đổi đối với các chức năng khác, bao gồm thuật
toán phát hiện mất gói, và cơ chế khởi động chậm chậm. TCP Vegas + thường hoạt
động giống hệt với TCP Vegas, tuy nhiên, nó lại đi vào chế độ khác để tăng kích thước
cửa sổ của nó một cách mạnh mẽ hơn khi nó nhận thấy có các kết nối cạnh tranh của
TCP Reno. Cụ thể hơn, TCP Vegas + có hai chế độ để cập nhật kích thước cửa sổ của
nó:

 Chế độ vừa phải (Moderate Mode): Ở chế độ vừa phải, người gửi TCP Vegas +
hoạt động giống hệt với giao thức TCP Vegas ban đầu, tức là kích thước cửa sổ
được cập nhật theo thuật toán trên của TCP Vegas.
 Chế độ Tấn công (Aggressive Mode): Trong chế độ tấn công, máy chủ người
gửi TCP Vegas + hoạt động giống hệt với TCP Reno. Tức là, nó cập nhật kích
thước cửa sổ theo công thức của TCP Reno. Chế độ này dành cho TCP Vegas +
giữ thông tin công bằng đối với các kết nối TCP Reno.
Điều quan trọng nhất là chuyển đổi giữa hai chế độ trên. Với mục đích này,
chúng tôi giới thiệu các biến mới count và countmax. Đầu tiên, count được cập nhật
theo thuật toán sau.
1. Mỗi lần nhận một gói ACK, người gửi sẽ quan sát kích thước cửa sổ và giá
trị RTT. Nếu RTT lớn hơn giá trị trước đó trong khi kích thước cửa sổ không
tăng thì số lượng gửi sẽ tăng thêm 1.
2. Mặt khác, nếu RTT trở nên nhỏ hơn, người gửi giảm giá trị của count đi 1
đơn vị.
3. Nếu gói tin bị mất được phát hiện bởi thuật toán truyền lại nhanh, count sẽ
giảm đi một nửa.
4. Nếu packet bị mất do hết thời hạn, count được reset lại là 0. TCP Vegas + sau
đó thay đổi chế độ theo giá trị count; Chế độ trung bình (Moderate Mode)→
Chế độ Tấn công (Aggressive Mode): Nếu tính đến một giá trị ngưỡng nhất
định countmax, người gửi sẽ thay đổi chế độ của nó từ chế độ vừa phải sang
chế độ tấn công.
Một lý do đằng sau các thuật toán trên là như sau; nếu giá trị RTT trở nên lớn
hơn trong khi kích thước cửa sổ không thay đổi thì có thể xem xét sự gia tăng của RTT
không phải do kết nối TCPVegas +, mà bởi các kết nối TCP Reno khác, làm tăng kích
thước cửa sổ của nó mạnh hơn kết nối TCP Vegas +. Sau đó kết nối TCP Vegas + sẽ
làm tăng kích thước cửa sổ của nó mạnh hơn để cạnh tranh bình đẳng với các kết nối
khác. Khi mất gói tin được phát hiện, mặt khác, TCP Vegas + nên thay đổi chế độ của



Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

nó từ chế độ tích cực sang chế độ tấn công. Đó là bởi vì sự mất gói cho thấy sự xuất
hiện của tắc nghẽn mạng, và tắc nghẽn có thể là do sự gia tăng tích cực của kích thước
cửa sổ của chính nó.
2.3. So sánh cơ chế điều khiển tắc nghẽn của TCP Reno và TCP Vegas
Phần này sẽ tóm tắt cơ chế điều khiển tắc nghẽn của hai phiên bản của TCP:
TCP Reno và TCP Vegas. Điểm cốt yếu của cơ chế điều khiển tắc nghẽn của TCP là tự
động điều khiển kích thước cửa sổ tùy theo mức tắc nghẽn của mạng. Ký hiệu kích
thước cửa sổ hiện tại của trạm gửi ở thời điểm t là cwnd(t).
2.3.1. TCP Reno
Đối với TCP Reno, kích thước cửa sổ được thay đổi đều đặn theo các trạng thái
đặc trưng. Kích thước cửa sổ tiếp tục được tăng cho đến khi xuất hiện gói tin rơi. TCP
Reno có hai pha trong việc tăng kích thước cửa sổ của nó. Pha bắt đầu chậm (slow
start) và pha tránh tắc nghẽn (congestion avoidance). Khi có một gói ACK được nhận
bởi TCP tại trạm gửi tại thời điểm t+tA [sec], kích thước cửa sổ hiện tại cwnd(t+tA)
được cập nhật từ cwnd(t) như sau:

Trong đó ssth(t) [packets] là ngưỡng giá trị mà TCP thay đổi từ giai đoạn bắt
đầu chậm đến giai đoạn tránh tắc nghẽn. Khi gói tin rơi được phát hiện khi hết thời
gian chờ, cwnd(t) và ssth(t) được cập nhật như:
ssth(t) = cwnd(t)/2; cwnd(t) = 1

(2)

Trong trường hợp khác, khi TCP phát hiện gói tin rơi bởi thuật toán phát lại
nhanh, nó thay đổi cwnd(t) và ssth(t) là:
ssth(t) = cwnd(t)/2; cwnd(t) = ssth(t)


(3)

2.3.2. TCP Vegas
TCP Vegas điều khiển kích thước cửa sổ tắc nghẽn bằng cách theo dõi các RTT
(Round Trip Time) của những gói tin mà trạm gửi đã gửi trước đó [4], (RTT là thời
gian được tính từ khi một Segment được gửi đi từ trạm phát đến trạm nhận, cho đến
khi trạm phát nhận được Segment hồi đáp ACK, chứa thông tin về Segment đó đã
được nhận thành công). Nếu thời gian của các RTT được theo dõi tăng, TCP Vegas
nhận biết mạng sắp bị tắc nghẽn, thực hiện cơ chế giảm tắc nghẽn bằng cách giảm kích


Chương II: Giới thiệu về giao thức TCP Reno&Vegas

Cơ sở kĩ thuật mạng truyền thông

thước cửa sổ. Nếu thời gian của các RTT giảm thì TCP Vegas nhận biết rằng mạng
được khai thông và TCP Vegas thực hiện cơ chế tăng kích thước cửa sổ để tận dụng
thông lượng của đường truyền. Vì vậy, kích thước cửa sổ trong trạng thái lý tưởng dự
kiến được chuyển về giá trị thích hợp.

III. CÁC CHUẨN CỦA TCP
3.1. Quá trình phát triển.
TCP là một giao thức phức tạp. Tuy nhiên, trong khi các cải tiến đáng kể đã
được thực hiện và đề xuất trong những năm qua, hoạt động cơ bản nhất của nó vẫn
không thay đổi đáng kể kể từ RFC 675 đặc tả đầu tiên vào năm 1974, và đặc tả
v4 RFC 793 , xuất bản tháng 9 năm 1981. RFC 1122 , Yêu cầu máy chủ cho Internet
Máy chủ, làm rõ một số yêu cầu thực hiện giao thức TCP. Một danh sách 8 yêu cầu
đặc điểm kỹ thuật và hơn 20 cải tiến mạnh mẽ khuyến khích có sẵn trong RFC
7414 . Trong số các danh sách này là RFC 2581 , Kiểm soát tắc nghẽn TCP, một trong

những RFC quan trọng nhất liên quan đến TCP trong những năm gần đây, mô tả thuật
toán cập nhật để tránh tình trạng tắc nghẽn quá mức. Năm 2001, RFC 3168 được viết
để mô tả thông báo nghẽn rõ ràng (ECN), cơ chế báo hiệu tắc nghẽn.
Thuật toán tránh xung đột TCP ban đầu được gọi là "TCP Tahoe", nhưng nhiều
thuật toán thay thế đã được đề xuất (bao gồm TCP Reno , TCP Vegas , FAST
TCP , TCP Mới Renovà TCP Hybla ).
Vào thời điểm đầu thế kỷ 21, khoảng 95% gói tin trên Internet là TCP. Các ứng
dụng tiêu biểu sử dụng TCP là HTTP/HTTPS (World Wide Web), SMTP/POP3/IMAP
(e-mail) và FTP (truyền file). Sự phổ biến của TCP chứng tỏ rằng nó đã được thiết kế
rất tốt …


Chương III: Các chuẩn của TCP

Bài tập lớn Cơ sở kĩ thuật mạng truyền thông

3.2. Một số tài liệu về các chuẩn của TCP
RFC1122 -Các yêu cầu của mạng Internet – đưa ra một số yêu cầu khi thực hiện TCP.
Các thuật toán: khởi động chậm, tránh tắc nghẽn, truyền lại nhanh và phục hồi nhanh
sử dụng chúng với TCP được chuẩn hóa trong [RFC1122].
RFC 3168: Mô tả một cơ chế báo hiệu chống nghẽn mạng có tên là thông báo nghẽn
mạng.
RFC 813 (Chiến lược cửa sổ và xác nhận trong TCP): Thảo luận về hệ thống cửa sổ
xác nhận, mô tả một số vấn đề có thể xảy ra và phương thức để chỉnh sửa chúng.
RFC879 (Kích thước segment tối đa và các chủ đề liên quan): Thảo luận tham số kích
thước segment tối đa điều khiển kích thước của thông điệp TCP và mối quan hệ của
tham số này với kích thước gói dữ liệu IP.
RFC 896 (Điều khiển tắc nghẽn trong liên mạng IP/TCP): Thảo luận về các vấn đề tắc
nghẽn và cách thức sử dụng TCP để xử lý chúng.
RFC1323 (Các mở rộng về hiệu năng cao của TCP): Định nghĩa các mở rộng của TCP

cho các liên kết tốc độ cao và các tùy chọn mới.
RFC2018 (Các tùy chọn xác nhận lựa chọn của TCP): Một mở rộng của chức năng cơ
bản của TCP cho phép các thiết bị TCP lựa chọn các segment cụ thể để truyền lại dữ
liệu.
RFC 2581 (Điều khiển tắc nghẽn TCP): Mô tả bốn thuật toán sử dụng để điều khiển
tắc nghẽn trong mạng TCP: khởi đầu chậm, tránh tắc nghẽn, truyền lại và phục hồi
nhanh chóng.
RFC2988 (Bộ xác định thời gian truyền lại của TCP): Thảo luận các phát sinh liên
quan đến thiết lập bộ xác định thời gian truyền lại kiểm soát thời gian mà một thiết bị
nhận được xác nhận của dữ liệu được gửi trước khi truyền lại.


×