Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Nâng cao hiệu năng giao thức TCP

Improving Performance of TCP Protocol


Phạm Đạo, Lê Xuân Vinh

Abstract: The Internet is composed of many tố ảnh hưởng đến hoạt động điều khiển tắc nghẽn của
heterogenous networking technologies and efficiently giao thức này. Phần 3 xem xét các dạng biến thể của
supports the decentralized multiplexing of these resources; TCP và phân tích ảnh hưởng của chúng. Một số tiêu
this ability has been instrumental of its sucess. Among the chí để đánh giá và đo kiểm hiệu năng của giao thức
traffic crisscrosses the Internet, TCP/IP traffic takes a TCP sẽ được trình bày trong phần 4. Phần cuối cùng
large share due to the majority of Internet applications, tóm tắt nội dung của bài báo.
such as Web surfing or file transfer, is TCP/IP based. As a
result, the performance of TCP/IP greatly affects the II. CƠ CHẾ ĐIỀU KHIỂN TẮC NGHẼN
performance of the network, and has a direct impact on the
overall quality of service. Studies on improving TCP Tắc nghẽn xảy ra trong mạng thông tin khi lưu
performance remains a hot topic despite TCP is an lượng gửi vào mạng vượt quá dung lượng truyền dẫn.
invention of the 80s. This paper studies congestion control Cơ chế điều khiển tắc nghẽn TCP [1] được phát triển
mechanism, an essential part in the protocol operation and nhằm giải quyết hiện tượng tắc nghẽn trong mạng
point out several criteria in evaluating and testing TCP Internet. Nhờ vào cơ chế điều khiển tắc nghẽn, tài
performance. nguyên mạng được chia sẻ giữa các luồng tin trong
thời gian xảy ra tắc nghẽn. Việc chia sẻ này cho phép
I. GIỚI THIỆU các luồng tin có thời gian trễ RTT (Round trip Time)
giống nhau đạt được thông lượng như nhau và tránh
Mạng Internet là mạng máy tính rộng lớn sử dụng việc một luồng tin bị tắc nghẽn hoàn toàn. TCP đã rất
nhiều công nghệ mạng khác nhau và cho phép chia sẻ thành công trong việc chia sẻ băng thông trong khi
tài nguyên mạng một cách phân tán. Chính khả năng vẫn tận dụng tối đa dung lượng hiện có trong nhiều
này là nguyên nhân chính đem lại sự thành công to điều kiện tải khác nhau.
lớn của công nghệ 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 Thuật toán điều khiển luồng TCP sử dụng cơ chế
phần đáng kể vì phần lớn ứng dụng trên mạng cửa sổ và thông báo đã nhận (ACK) đầu cuối tới đầu
Internet, ví dụ như lướt Web và truyền file, đều sử cuối để đảm bảo truyền tin một cách tin cậy trong
dụng giao thức TCP/IP. Do vậy, có thể thấy rằng hiệu mạng. Bên gửi duy trì một cửa sổ tắc nghẽn, c wnd ,
năng của TCP/IP sẽ có ảnh hưởng lớn đến hiệu năng
đây là số gói tin có thể được máy gửi đi trong khi chờ
của mạng và trực tiếp ảnh hưởng đến chất lượng dịch
bản tin ACK từ bên nhận. Sau khi nhận được gói tin
vụ của mạng. Việc nghiên cứu các phương thức giúp
số liệu, bên nhận chuẩn bị một bản tin ACK để thông
nâng cao hiệu năng giao thức TCP/IP vẫn còn hết sức
báo cho bên gửi về các bản tin đã nhận được. Bên
nóng hổi mặc dù giao thức TCP/IP đã được phát minh
nhận cũng thông báo cho bên gửi một cửa sổ nhận,
từ đầu thập niên 80. Bài báo này sẽ xem xét cơ chế
điều khiển tắc nghẽn, một thành phần quan trọng rwnd , là kích thước của bộ đệm dành cho kết nối này.
trong hoạt động của giao thức TCP/IP và đề ra một số Bên gửi không được nhiều hơn min{c wnd , rwnd } gói
tiêu chí để đánh giá và đo kiểm hiệu năng TCP/IP. tin trong khi chờ nhận bản tin ACK. Cửa sổ nhận cho
Bài báo được chia làm 5 phần. Phần đầu tiên sẽ mô phép bên nhận điều khiển luồng vì nếu bên nhận
tả sơ lược hoạt động của cơ chế điều khiển tắc nghẽn không thể xử lý kịp thông tin với tốc độ hiện thời, cửa
trong giao thức TCP. Sau đó, phần 2 phân tích các yếu sổ nhận sẽ được làm nhỏ đi, và bên gửi sẽ giảm tốc độ
gửi của mình. Cửa sổ tắc nghẽn có nhiệm vụ điều tắc nghẽn là:
khiển luồng trong điều kiện tắc nghẽn. Việc mất gói 1. RTT
tin được phát hiện thông qua timeout của các gói tin
2. Xác suất gói bị lỗi hay mất gói
chưa được thông báo nhận hoặc nhận được nhiều bản
tin ACK giống nhau, hoặc nhận được bản tin SACK 3. Băng thông đầu cuối tới đầu cuối
từ bên nhận [2]. Với giao thức TCP, việc mất gói tin Kích thước của cửa sổ tắc nghẽn tỷ lệ nghịch với
đồng nghĩa với tắc nghẽn trong mạng vì mất gói tin giá trị của cả 3 đại lượng trên. RTT càng lớn thì thời
được giả thiết là do tràn bộ đệm do lưu lượng vượt gian kích thước cửa sổ tăng lên 1 đơn vị sẽ tăng. Xác
quá dung lượng trên tuyến kết nối đầu cuối tới đầu suất lỗi hay mất gói lớn, thì xác suất không nhận được
cuối. Bên gửi cập nhật kích thước cửa sổ tắc nghẽn bản tin ACK hoặc nhận được bản tin ACK lặp lại sẽ
khi nhận được bản tin ACK cho các gói tin gửi đi và lớn, đồng nghĩa với việc kích thước cửa sổ bị giảm đi.
khi phát hiện tắc nghẽn. Sau một RTT không có tắc Băng thông đầu cuối tới đầu cuối càng lớn thì thời
nghẽn, cho mỗi bản tin ACK nhận được, cửa sổ tắc gian để cửa sổ tắc nghẽn, sau khi tắc nghẽn xảy ra, có
nghẽn được cập nhật theo công thức: được kích thước như cũ (còn được gọi là thời gian
1 phục hồi) sẽ tăng lên.
c wnd = c wnd + (1)
c wnd Ta có thể thấy rằng, cả 3 đại lượng trên đều phụ
thuộc vào mạng kết nối bên gửi và bên nhận chứ
và khi phát hiện tắc nghẽn trong một RTT:
không phụ thuộc vào bên gửi. Như vậy, để tăng thông
c wnd lượng của TCP, ngoài việc nâng cao chất lượng mạng
c wnd = (2)
2 (giảm RTT và xác suất lỗi), ta có thể thay đổi thuật
Quy trình tăng giảm kích thước cửa sổ tắc nghẽn toán cập nhật cửa sổ tắc nghẽn ở bên gửi.
cho phép TCP tận dụng băng thông hiện có trên một
IV. CÁC BIẾN THỂ CỦA TCP
tuyến kết nối đầu cuối tới đầu cuối.
Mức độ “linh hoạt” của thuật toán điều chỉnh kích Phần lớn các biến thể TCP đều tập trung vào việc
thước cửa sổ có thể được đánh giá dựa trên việc xem nâng cao thông lượng kết nối TCP trong môi trường
xét thời gian cần thiết để cửa sổ tắc nghẽn có kích mạng tốc độ cao thông qua việc thay đổi cách thức
thước như cũ sau một lần tắc nghẽn. Giả sử kết nối có cập nhật kích thước cửa sổ tắc nghẽn. Như ta đã thấy
RTT là 200 ms và kích thước gói tin là 1500 byte. ở phần trên, khi băng thông đầu cuối tới đầu cuối lớn,
Băng thông 1Gb/s sẽ tương ứng với cửa sổ tắc nghẽn thuật toán điều khiển tắc nghẽn tăng kích thước cửa sổ
có kích thước tương ứng với 17000 gói tin. Sau một rất chậm. Bảng 1 cho thấy ảnh hưởng của băng thông
lần tắc nghẽn, c wnd được điều chỉnh xuống còn 8500 lên thời gian phục hồi của kết nối TCP có RTT là 200
ms.
gói tin, tương ứng với thông lượng 500 Mb/s. Để đạt
được tốc độ gửi 1Gb/s, sẽ cần tới 8500 RTT, tức là 28 Biến thể đầu tiên là TCP Vegas [3-5]. TCP Vegas
phút. Điều này dẫn tới hiệu suất sử dụng thấp đối với coi trễ bộ đệm trong mạng (chứ không phải là mất gói
các kết nối tốc độ cao. như TCP truyền thống) là tín hiệu của sự tắc nghẽn
mạng. Do vậy, nếu trễ bộ đệm trong mạng có thể được
III. CÁC YẾU TỐ ẢNH HƯỞNG điều khiển và sử dụng như một cơ chế báo hiệu tắc
Xem xét thuật toán điều khiển tắc nghẽn TCP, nghẽn thì có thể đạt được hiệu suất sử dụng mạng rất
chúng ta thấy kích thước cửa sổ tắc nghẽn và cửa sổ cao. Thuật toán cập nhật cửa sổ tránh tắc nghẽn được
nhận sẽ quyết định hiệu năng (thông lượng) của TCP. thực hiện như phương thức thông thường (đã trình bày
Do số lượng gói tin bên gửi có thể gửi đi trước khi ở trên). Cách tiếp cận này có thể tốt nhưng rất khó
nhận bản tin ACK bằng min{c wnd , rwnd } nên c wnd và thực hiện được. Để đạt được hiệu quả cao, mã TCP
Vegas phải hoạt động ổn định trong môi trường có
rwnd càng lớn thì bên gửi có thể gửi càng nhiều gói nhiều yếu tố ảnh hưởng đến việc ước lượng trễ mạng
tin, tức là thông lượng kết nối sẽ càng lớn. Các yếu tố như cơ chế bộ đệm khác nhau, cơ chế định thời của hệ
quyết định kích thước và tốc độ thay đổi của cửa sổ điều hành, hoạt động của firewall mạng, và các lưu
lượng không có cơ chế điều khiển trễ bộ đệm như 4. Độ ổn định.
TCP và UDP cổ điển. Đường cong đáp ứng cho thấy mối quan hệ giữa
Bảng 1. Ảnh hưởng của băng thông đến thời gian phục hồi kích thước cửa sổ tắc nghẽn và tốc độ báo hiệu đầu
của thuật toán điều khiển tắc nghẽn truyền thống. cuối tới đầu cuối. Hình 1 minh hoạ đường cong đáp
Băng thông Kích thước cửa Thời gian ứng của TCP cổ điển và Scalable TCP [7]. Đường
sổ (gói) phục hồi cong đáp ứng của giao thức càng nằm trên cao thì kích
1Mbit/s 17 1.7 s thước cửa sổ tắc nghẽn của kết nối TCP sử dụng giao
10Mbit/s 170 17s thức đó càng lớn và băng thông dành cho kết nối đó sẽ
100Mbit/s 1700 2m 50s cao hơn các kết nối TCP dùng giao thức khác.
1 Gbit/s 17000 28 m
10 Gbit/s 170000 4h 43m
Cơ chế tạo một kết nối logic TCP từ nhiều kết nối
TCP cũng có thể tăng thông lượng của kết nối. Cơ chế
này có thể được thực hiện ở lớp truyền tải [6] hoặc ở
lớp ứng dụng. Mỗi luồng kết nối TCP sẽ sử dụng cơ
chế cập nhật cửa sổ như thông thường nhưng do sử
dụng cùng lúc nhiều kết nối và do tính chất “háu ăn”
của thuật toán cập nhật cửa sổ nên thông lượng tăng
hơn so với chỉ sử dụng một luồng kết nối TCP duy
nhất. Tuy nhiên, sẽ rất khó lựa chọn các tham số hoạt
động phù hợp để đảm bảo giao thức hoạt động tốt mà
không làm ảnh hưởng đến lưu lượng hiện có trong Hình 1. Đường cong đáp ứng của TCP cổ điển và Scalable
TCP.
trường hợp tắc nghẽn xảy ra.
Một dạng biến thể khác đề xuất một công thức cập Tốc độ tức thời của một kết nối TCP biến thiên
nhật kích thước cửa sổ mới, giúp thời gian phục hồi xung quanh giá trị trung bình của nó. Biến thiên tốc
của kết nối không phụ thuộc vào băng thông, do vậy độ tức thời càng nhỏ càng tốt vì biến thiên tốc độ tức
thích hợp với mạng tốc độ cao hơn. Scalable TCP [7] thời nhỏ đồng nghĩa với sự thay đổi kích thước cửa sổ
tăng giảm kích thước cửa sổ theo công thức sau: quanh giá trị trung bình nhỏ.
c wnd = c wnd + a Tốc độ hội tụ của giao thức có ý nghĩa hết sức quan
c wnd = c wnd − ⎡b ⋅ c wnd ⎤ trọng vì nó ảnh hưởng đến thời gian thích nghi của
giao thức. Trên lý thuyết, sự hội tụ phải xảy ra tức thì.
trong đó, a và b là hai hằng số có giá trị thích hợp
Tuy nhiên, trên thực tế, điều này rất khó thực hiện do
trong khoảng (0,1) . Nếu thời gian phục hồi của TCP
việc báo hiệu tắc nghẽn lại thông qua mất gói tin và
cổ điển là C 2 RTT thì Scalable TCP có thời gian phải đảm bảo được sự tương thích giữa các biến thể
phục hồi là log(1 − b) log(1 + a ) . Như vậy, thời gian TCP cùng hoạt động trên mạng. Tốc độ hội tụ được
tính bằng thời gian (tính theo RTT) cần thiết để TCP
phục hồi của Scalable TCP luôn không đổi với bất kỳ
giảm tốc độ xuống ½ sau khi có tắc nghẽn và để tăng
băng thông nào, trong khi thời gian phục hồi của TCP
tốc độ lên gấp đôi sau khi hết tắc nghẽn.
cổ điển tăng theo độ lớn của băng thông.
Độ ổn định của giao thức phải được chứng minh
V. TIÊU CHÍ ĐÁNH GIÁ VÀ ĐO KIỂM trên lý thuyết. Lý thuyết điều khiển thường được sử
Với bất kỳ biến thể nào của TCP, chúng ta cần xem dụng để đánh giá độ ổn định của giao thức xung
xét đánh giá trên lý thuyết các đặc tính sau: quanh điểm cân bằng của nó. Các tham số của giao
1. Đường cong đáp ứng và phân chia băng thông. thức phải được lựa chọn sao cho độ ổn định phải được
đảm bảo với các giá trị RTT và topo mạng khác nhau.
2. Biến thiên tốc độ tức thời.
3. Tốc độ hội tụ. Thông lượng của kết nối TCP sử dụng các biến thể
TCP khác nhau có thể được kiểm tra trên cấu hình
mạng trên Hình 2. nối với nhau qua kết nối 2.4Gbit/s với RTT là 120ms.
Kết quả thu được được trình bày trong bảng 2 dưới
đây.
Bảng 2. Tốc độ hội tụ và biến thiên tốc độ tức thời

A B B a T1/2 (ms) T2 (ms) Biến thiên

0,5 0,04 0,12 2,124 0,72

0,25 0,02 0,2892 4,2 0,502

0,125 0,01 0,6228 8,364 0,354


Hình 2. Cấu hình đo kiểm.
0,0625 0,005 1,2084 16,68 0,257
Trong cấu hình thử nghiệm này, các hình tròn là các
Độ ổn định của Scalable TCP đã được đánh giá trên
server dùng giao thức TCP, A và B là hai router. Các
lý thuyết trong [8].
đường thẳng liền nét giữa máy tính và router là các
kết nối Ethernet tốc độ cao (để đảm bảo băng thông và VII. KẾT LUẬN
trễ trên kết nối này tốt hơn mức cần thiết), và giữa hai
router A và B là kết nối có băng thông và trễ RTT Bài báo này xem xét vấn đề nâng cao hiệu năng của
theo yêu cầu thử nghiệm (băng thông và trễ RTT trên giao thức TCP, cụ thể là các phương thức nâng cao
kết nối này sẽ được cấu hình theo yêu cầu của bài đo). thông lượng của kết nối TCP. Một số biến thể TCP
cùng với các kỹ thuật giúp tăng thông lượng của kết
Trong bước kiểm tra đầu tiên, cấu hình n cặp
nối đã được giới thiệu. Đặc biệt, các tiêu chí để đánh
server bên A và máy nhận bên B trao đổi file dữ liệu
giá một biến thể TCP và đo kiểm hiệu năng của nó
kích thước 2GB, cấu hình bộ đệm bên gửi và bên
cũng đã được trình bày.
nhận theo yêu cầu sao cho một luồng tin sẽ sử dụng
hết băng thông hiện có. Việc truyền file được thực Ngoài các kỹ thuật cập nhật cửa sổ tắc nghẽn, còn
hiện liên tục giữa server. Thời gian truyền file được nhiều phương pháp khác góp phần nâng cao hiệu năng
ghi nhận. Giao thức TCP có số lần truyền file thành của TCP như thay đổi cơ chế phát hiện lỗi,v.v... Bài
toán tối ưu hoá TCP do vậy vẫn là một bài toán mở,
công trong khoảng thời gian nhỏ hơn một giá trị T
cần được nghiên cứu thêm.
cho trước nhiều nhất là giao thức cho thông lượng lớn
nhất. TÀI LIỆU THAM KHẢO
Bước kiểm tra thứ hai đánh giá ảnh hưởng (tiêu [1] V. Jacobson. “Congestion Avoidance and Control.”
cực) của biến thể TCP tới các lưu lượng TCP cổ điển. In SIGCOMM 1988.
Ở đây, m cặp server và bên nhận được cấu hình để [2] M. Mathis, J. Mahdavi, S. Floyd, and A. Romanow.
tạo lưu lượng Web. Một cặp server và máy nhận được “TCP Selective Acknowledgment Options.” Internet
cấu hình để truyền 8 cuộc truyền file kích thước 2 GB RFC 2018, October 1996.
một lúc. Mọi sự thay đổi thông lượng của lưu lượng [3] L. S. Brakmo and L. L. Peterson. “TCP Vegas: End to
Web được ghi nhận. Thông lượng Web không thay End Congestion Avoidance on a Global Internet.” IEEE
đổi chứng tỏ biến thể TCP không làm ảnh hưởng đến Journal on Selected Areas in Communications,
hoạt động của TCP truyền thống. 13(8):1465–1480, October 1995.
VI. THỬ NGHIỆM [4] E. Weigle and W. Feng. “A Case for TCP Vegas in
High-Performance Computational Grids.” In Proc. of
Chúng tôi dùng công cụ mô phỏng ns-2 đánh giá the 9th IEEE International Symposium on High
hiệu năng của Scalable TCP theo các tiêu chí đánh giá performance Distributed Computing (HPDC’01), San
trình bày ở trên với cấu hình mạng mô phỏng sau. Francisco, CA, August 2001.
Mỗi đầu gồm 06 server chạy Scalable-TCP kết nối với [5] D. H. Choe and S. H. Low. “Stabilized Vegas.” In
router qua kết nối Gigabit Ethernet. Hai router được Proc. of the 39th Annual Allerton Conference on
Communication, Control, and Computing, Monticello, [8] G. Vinnicombe. On the stability of networks
IL, October 2002. operating TCP-like congestion control. In Proc. of the
[6] J. Crowcroft and P. Oechslin. “Differentiated End-to- 15th IFAC World Congress on Automatic Control,
End Internet Services using a Weighted Proportional Barcelona, Spain, July 2002.
Fair Sharing TCP.” Computer Communication Review, Ngày nhận bài: 19/09/2005
28(3), July 1998.
[7] T. Kelly. “Scalable TCP: Improving Rerformance in
Highspeed Wide Area Networks”, Computer
Communication Review 32(2), April 2003.

SƠ LƯỢC TÁC GIẢ


LÊ XUÂN VINH
PHẠM ĐẠO Sinh năm 1967.
Tốt nghiệp kỹ sư tại Học viện Bưu điện Bắc kinh Tốt nghiệp kỹ sư Vô tuyến điện tử – Thông tin tại
năm 1963. Được công nhận tiến sỹ kỹ thuật tại Đại trường Đại học Bách khoa – Hà nội, năm 1989. Đang
học Kỹ thuật Buđapet, Hungary. Được phong Phó là nghiên cứu sinh tại Học viện Công nghệ Bưu chính
Giáo sư năm 1992. Viễn thông.
Nguyên Giám đốc Học viện Công nghệ Bưu chính Hiện công tác tại Phòng Nghiên cứu Kỹ thuật
Viễn thông. Chuyển mạch - Viện Khoa học Kỹ thuật Bưu điện.
Lĩnh vực quan tâm: Thông tin hữu tuyến, lý thuyết Lĩnh vực quan tâm: chuyển mạch và kỹ thuật đo
mạng. lường.
Email: vinh.le@hn.vnn.vn

You might also like