Các yếu tố ảnh hưởng tới hiệu năng của TCP/IP trong môi trường VSAT

Mục tiêu của cửa sổ phát là cho phép phía thu TCP kiểm soát xem có bao nhiêu dữ liệu được phát đi tại một thời điểm nhất định. Phía thu báo kích thước cửa sổ tới phía phát, đó là số đơn vị dữ liệu mà phía phát có thể phát. Sự khác nhau giữa trường số tuần tự và cửa sổ là các số tuần tự dùng để giúp phía phát theo dõi được trình tự các gói dữ liệu được phát đi còn mục tiêu cửa sổ là điều khiển tốc độ nhận dữ liệu.

Phạm Hùng Sơn

3. Hiệu năng giao thức TCP/IP trong môi trường VSAT
3.1. Ảnh hưởng của kích thước cửa sổ TCP
Mục tiêu của cửa sổ phát là cho phép phía thu TCP kiểm soát xem có bao nhiêu dữ liệu được phát đi tại một thời điểm nhất định. Phía thu báo kích thước cửa sổ tới phía phát, đó là số đơn vị dữ liệu mà phía phát có thể phát. Sự khác nhau giữa trường số tuần tự và cửa sổ là các số tuần tự dùng để giúp phía phát theo dõi được trình tự các gói dữ liệu được phát đi còn mục tiêu cửa sổ là điều khiển tốc độ nhận dữ liệu.
Rõ ràng là khi kích thước cửa sổ phía thu nhỏ (do hạn chế về buffer…) sẽ làm hạn chế tốc độ phát. Kích thước cửa sổ thông thường khoảng vài Kbytes. Tuy vậy đối với môi trường có trễ lớn như là VSAT thì đây lại là một vấn đề lớn cần nghiên cứu. Kích thước cửa sổ cực đại của TCP là 64Kbytes (Do trường cửa sổ sử dụng 16 bit), với thời gian trễ trong VSAT 2 hop RTT khoảng 540 ms thì tốc độ cực đại có thể sử dụng là:

Thử tưởng tượng liên kết vệ tinh với tốc độ DS3 là 45 Mbps nhưng các ứng dụng TCP chỉ có thể chạy với tốc độ cực đại < 1Mbps? Thất là bất tiện! Như vậy, với các mạng VSAT nói riêng cũng như trong môi trường truyền dẫn có độ trễ lớn thì kích thước cửa sổ cần phải được mở rộng. Hình 4 cho thấy cải thiện về hiệu năng khi kích thước cửa sổ lớn. Cùng với việc đưa ra khái niệm về Timestamp IETF cũng tìm cách mở rộng trường cửa sổ bằng cách đàm phán mở rộng cửa sổ TCP cho các mạng có độ trễ lớn như trong môi trường vệ tinh. ý tưởng là đặt ra một hệ số tỉ lệ (window scale), ví dụ nếu hệ số là 4 – như vậy nếu mỗi lần cửa sổ báo về tăng lên 1 có nghĩa là phía thu mở rộng cửa sổ thêm 4 bytes. Với cách làm này kích thước cửa sổ có thể đạt đến 230 và tốc độ cực đại của các ứng dụng sử dụng giao thức TCP qua môi trường VSAT có thể đạt tới 15 Gb/s.


Hình 4. Cải thiện về hiệu năng với kích thước cửa sổ là 8 K (phải) so với 2 K (trái), trễ truyền dẫn là 280 ms[1]

Bảng dưới đây cho thấy hiệu năng của TCP thay đổi khi thay đổi các tham số TCP socket size, Window scale, Max Window size, phép đo thử được thực hiện với vệ tinh địa tĩnh Koreasat-2, hoạt động trên băng tần Ku giữa hai trạm mặt đất tại Anyang và Taejeon cách nhau 100 km. Trong Linux kernel 2.4, kích thước cửa sổ được quyết định một cách tự động qua hệ điều hành. Trong kernel 2.2 và các hệ điều hành khác, TCP socket size và kích thước cửa sổ gần như tương tự nhau [3].
TCP socket [byte]Win. ScaleMax Win. [byte]Throughput [bps]40000600069064800009140135752160000182802591763200 00365605170646400018226011509689600011279601404704 1280002182800140463216000022285001404688

Bảng 1. Quan hệ giữa TCP socket size, Window scale và kích thước cửa sổ cực đại với thông lượng

3.2. Ảnh hưởng của tỉ lệ lỗi bít và kích thước bản tin
Hầu hết các giao thức mạng được thiết kế cho môi trường các mạng mặt đất, môi trường mà tỉ lệ bit lỗi có thể nói là khá thấp (thông thường nhỏ hơn 10-10). Trong môi trường thông tin vệ tinh, tỉ lệ lỗi bit có thể cao hơn nhiều, thông thường là 10-2 tới 10-6. Điều này có thể dẫn đến hai vấn đề, thứ nhất nó gây ra lỗi trong các Datagram và do đó phải truyền lại các Datagram này. Thứ hai TCP cho rằng việc mất mát các datagram như là dấu hiệu của sự tắc nghẽn mạng khiến cho hiệu năng của toàn bộ hệ thống giảm. Vấn đề khắc phục hai vấn đề này thế nào?
Thứ nhất cần phải giảm tỉ lệ lỗi tới mức chấp nhận được và tìm cách cho TCP phân biệt được việc mất gói do lỗi truyền dẫn hay mạng bị tắc nghẽn (và do đó TCP không phải giảm tốc độ truyền). Nhưng tỉ lệ lỗi bit như thế nào là chấp nhận được trong môi trường TCP/IP? Việc trả lời câu hỏi này không phải đơn giản, thực tế người ta thường tính tới tần suất khởi tạo biện pháp tránh tắc nghẽn và tìm kiếm tỉ lệ BER nhỏ hơn tần suất này. Giả thiết ta nghiên cứu về hiệu năng của hiệu năng TCP qua một kết nối khác không phải trong môi trường trễ lớn như vệ tinh. Mỗi lần khởi tạo Slow-Start, kết nối TCP được thiết lập sẽ đặt ở hai chế độ sau:
– Thực hiện thuật toán tránh tắc nghẽn cho tới khi 1 segmnent bị rơi, lúc đó cửa sổ TCP sẽ giảm một nửa và thực hiện thuật toán tránh tắc nghẽn.
– Thường xuyên thực hiện thuật toán Slow-start khi lỗi xảy ra. Trong phần lớn thời gian thực hiện thuật toán tránh tắc nghẽn, TCP sẽ sử dụng hầu hết dung lượng của kết nối. Nói cách khác, quá trình kéo dài trong p RTT, trong đó p là giá trị lớn nhất thoả mãn bất đẳng thức:
trong đó b là buffer (tính theo segment) tại điểm thắt cổ chai trên đường nối [3]. Nói chung chúng ta đều mong muốn tránh việc kết thúc thuật toán tránh tắc nghẽn sớm vì nó khiến cho TCP có thể ước lượng sai băng thông sẵn sàng và mong muốn một kết nối có tỉ lệ lỗi bit đủ nhỏ, đủ để thuật toán tránh tắc nghẽn hạn chế kết thúc bởi lỗi đường truyền.
“Dạy” cho TCP bỏ qua lỗi đường truyền:
Cùng với việc giảm tỉ lệ lỗi bit trên đường truyền vệ tinh chúng ta mong muốn giao thức TCP có thể “thông minh” hơn trong việc xử lý lỗi đường truyền. Có hai hướng tiếp cận vấn đề này, đó là tìm cách thông báo cho TCP đang có lỗi đường truyền – hướng tiếp cận này gặp phải khó khăn đó là TCP/IP hiếm khi biết được bởi vì các lớp truyền dẫn thường loại bỏ các datagram lỗi mà không chuyển chúng tới TCP và IP. Hướng tiếp cận thứ hai là tìm cách cho TCP có thể phỏng đoán lỗi đường truyền đang xảy ra và phân biệt nó với việc mạng bị tắc nghẽn bằng cách sử dụng thông tin trong trường ACK. Tỷ lệ lỗi bit cũng có ảnh hưởng tới hiệu năng của hệ thống. Hình 5 dưới đây mô tả quan hệ giữa thông lượng và tỉ lệ bit lỗi và độ dài bản tin (kích thước cửa sổ là 8K):


Hình 5. Mối quan hệ giữa thông lượng với tỷ lệ lỗi và độ dài bản tin

Theo hình vẽ thông lượng cực đại đạt được khi chiều dài bản tin là 256 Byte (từ 52.3 Kbps đến 64 Kbps). Theo kết quả này giao thức này rất tốt trong điều kiện truyền sóng bình thường.
Đường cong thứ hai chỉ ra chỉ tiêu của giao thức TCP trong điều kiên tỉ lệ lỗi bít cao hơn. Qua đó chúng ta thấy được đáp ứng của của TCP khi có một sự thay đổi nhỏ về điều kiện truyền sóng. Nó hầu như không thể duy trì một phiên truyền FTP thành công khi công suất phát giảm khoảng 1.3 dB. Nếu sự thay đổi này tiếp tục thì TCP thậm chí không thể duy trì được một kết nối rlogin qua đường truyền vệ tinh [1].
3.3. Ảnh hưởng của thuật toán bắt đầu chậm
Như ta đã nói ở phần trước, có hai vấn đề cần quan tâm khi sử dụng thuật toán Slow-Start với các mạng tốc độ cao và độ trễ lớn:
Vấn đề đầu tiên là thuật toán dò tìm băng thông theo kiểu slow-start có thể mất rất nhiều thời gian để đạt tốc độ cực đại, đặc biệt là trong môi trường trẽ lớn như VSAT. Với các mạng vệ tinh tốc độ Gb/s với RTT khoảng 0.5s cần 29 RTT hay 14.5 giây để khởi tạo thành công. Như vậy toàn bộ dải thông sẽ không được tận dụng hết ngay và trong lớn thời gian băng thông của mạng sẽ bị lãng phí. Thậm chí trong rất nhiều trường hợp toàn bộ quá trình truyền dữ liệu đã kết thúc song thuật toán Slow-Start vẫn chưa chấm dứt. Người sử dụng không có nhu cầu sử dụng băng thông nữa và toàn bộ thời gian truyền sẽ bị tiêu tốn trong thuật toán Slow – Start. Các trường hợp phổ biến khi xảy ra các hiện tượng này là các ứng dụng sử dụng HTTP. Gần đây IETF cũng đã xem xét tới việc cho phép TCP có thể phát nhiều hơn một segment (các đề nghị gần đây cho phép phát từ 2 – 4 segment) tại thời điểm bắt đầu khởi tạo thuật toán Slow-Start. Nếu còn dung lượng trên đường truyền, thay đổi này sẽ làm giảm bớt thời gian khoảng 3 lần RTT.


Hình 6. Ảnh hưởng của hiệu ứng “Slow-Start” [5]

Hình trên cho thấy phải mất khoảng 30000 ms để có thể đạt tốc độ kết nối cực đại (Việc đo đạc được tiến hành với mạng VSAT của Hughes, mô phỏng X.25, tốc độ bit 9600 bps [5]).
IW, buf (Kbytes)Transmission Time (s)Throughput1, 6449,21356,6556, 6447,5558,8891, 32015,87175,696, 32013,96199,812

Bảng 2. Quan hệ giữa kích thước cửa sổ khởi tạo với thông lượng

Vấn đề thứ hai là sự nhầm lẫn giữa tắc nghẽn mạng và lỗi do đường truyền. TCP không phân biệt được hai lỗi này và nó cho rằng khi bị mất gói có nghĩa là do mạng tắc nghẽn. Do thật toán dò tìm là tuyến tính hơn là luỹ thừa, giả sử nếu xuất hiện các segment bị lỗi ngay từ đầu thì thời gian cần thiết để đạt tốc độ tối đa là rất dài, thậm chí với các mạng VSAT có thể tốn hàng giờ.
Cải thiện thuật toán Slow-Start:
Một trong những cố gắng khác nhằm cải thiện Slow-start là kỹ thuật “TCP spoofing”. Kỹ thuật này dựa trên ý tưởng là tạo cho router gần với phía kết nối vệ tinh gửi trả tín hiệu báo nhận (ACK) đối với các gói dữ liệu TCP nhằm tạo cho phía gửi có cảm giác đang tham gia vào một quá trình truyền dẫn với khoảng cách khá ngắn. Khi có tín hiệu báo nhận thực sự (ACK) từ phía thu router sẽ huỷ bỏ và router cũng chịu trách nhiệm phát lại các datagram bị lỗi.


Hình 7. TCP “spoofing” [6]

Có một số vấn đề cần phải lưu ý tới khi áp dụng thuật toán này. Trước hết, router phải làm khá nhiều công việc sau khi nó gửi tín hiệu báo nhận. Nó phải có bộ đệm cho các segment dữ liệu để đề phòng trường hợp cần phải phát lại (vì phía phát có thể đã huỷ bỏ tín hiệu này), vấn đề thứ hai là cơ chế này cần sử dụng kiểu đường truyền đối xứng: dữ liệu và các tín hiệu ACK cần truyền trên cùng đường truyền giữa các router tuy nhiên như chúng ta đã biết, đối với các dịch vụ Internet thì việc truyền bất đối xứng là phổ biến. Vấn đề thứ ba là cơ chế này có thể bị ảnh hưởng do lỗi. Khi thay đổi đường nối hoặc các router hỏng – dữ liệu có thể bị mất. Dữ liệu thậm chí có thể bị lỗi ngay sau khi phía gửi phát dữ liệu nhưng router vẫn gửi ACK và do đó phía phát vẫn được báo là việc truyền dẫn đã thành công.
Kỹ thuật Selective Acknowledgment: Gần đây IETF đã đưa vào áp dụng những mở rộng mới đối với giao thức TCP gọi là phương pháp ACK có lựa chọn (Selective Acknowlegments – SACKs). Phương pháp này cho phép TCP có thể Acknowledge các dữ liệu nhận được mà không theo thứ tự. SACKs có hai ưu điểm lớn. Trước hết nó tăng tính hiệu qủa của việc truyền lại TCP bằng cách giảm chu kỳ truyền lại. Nếu tiếp cận theo dòng lịch sử có thể coi phương pháp này mô phỏng lại giao thức selective-repeat ARQ song SACKs cho phép TCP truyền lại nhiều segment bị mất trong một chu kỳ. Người ta đã chứng minh được với SACKs TCP cho phép nâng cao hiệu năng của hệ thống trong trường hợp trễ lớn. Nhược điểm của SACKs là phương pháp này đòi hỏi phải sửa đổi giao thức ở cả hai phía thu, phát. Hình vẽ dưới đây thể hiện sự thay đổi về hiệu năng TCP trong trường hợp có nhiễu và so sánh khi áp dụng SACKs:


Hình 8. Quan hệ giữa tham số BER với Eb/No (a) (QPSK 3/4, Viterbi) và thông lượng với Eb/No (b)

Do TCP không phân biệt được lỗi do truyền dẫn nên trong trường hợp lỗi lớn hiệu năng TCP giảm một cách đáng kể và nó bắt đầu giảm cửa sổ tắc nghẽn phía phát. Trong hình, các đường nét đứt thể hiện việc có áp dụng SACKs. Phép đo được thực hiện với vệ tinh địa tĩnh Koreasat-2, hoạt động trên băng tần Ku giữa hai trạm mặt đất tại Anyang và Taejeon cách nhau 100 km [3], để tạo môi trường ‘sạch’ (error free) người ta tiến hành tăng công suất phát phần IF của Modem sao cho Eb/No ở hai phía đạt xấp xỉ 9.5 dB (BER 1E-10) . Mặc dù trong môi trường BER lớn (Eb/No: 6.5-7.5 dB) việc sử dụng SACKs không cải thiện thông lượng đáng kể nhưng có thể giảm đáng kể việc truyền lại các gói dữ liệu (thậm chí có thể giảm được 50% [6]).


Hình 9. Giảm thiểu việc phát lại dữ liệu (Retransmission) khi áp dụng SACKs-đường nét đứt

Một vài kết luận về hiệu năng TCP/IP qua môi trường VSAT:
Các mạng thông tin hiện nay có thể cung cấp một dải các băng thông từ rất bé (một vài kênh thoại có nén) hoặc rất rộng như mạng thông tin vệ tinh tiên tiến, tốc độ có thể đạt tới 622-Mbps) Bảng 3 cho thấy dải băng thông thông thường với các ứng dụng TCP và các thay đổi, điều chỉnh như PAWS hay sử dụng kích thước cửa sổ lớn…

1.5 Mb/s45 Mb/s155 Mb/sLANLEOGEOLANLEOGEOLANLEOGEORequires PAWSNoNoNoNoNoNoYesYesYesRequires Large WindowsNoNoYesNoYesYesYesYesYesSlow start time0.01s1.8s5.6s0.2s3.5s9.8s1.9s4.1s11.3sSlow start data (in bytes)1,76076,600197,870115,9002,405,0006,003,0004,123,8148,292,00020,650,000
Bảng 3. Khuyến cáo sử dụng các kỹ thuật cải thiện TCP/IP với các môi trường truyền dẫn khác nhau

Thời gian trễ thông thường đối với mạng LAN khoảng 5ms (một chiều), với vệ tinh quĩ đạo thấp là 100ms và với vệ tinh địa tĩnh là 250 ms (một chiều). Trong bảng cũng cho thấy thời gian cần thiết để đạt tới tốc độ cực đại đối với thuật toán Slow-Start, với giả thiết kích thước các Datagram sử dụng là 1 KB (kích thước thông thường) và tốc độ dữ liệu có thể truyền tải trong mỗi lần kích hoạt Slow-Start. Qua bảng ta thấy muốn đạt được hiệu năng TCP/IP cao qua mạng VSAT (ứng với trường hợp vệ tinh địa tĩnh GEO) cần phải có kích thước cửa sổ rộng và áp dụng thuật toán PAWS. Một điểm cần lưu ý khác thông qua bảng 1 là khoảng thời gian khởi tạo của Slow-Start đối với trường hợp trễ lớn (GEO) và tốc độ cao (155 Mb/s) là rất dài.
Để đạt được hiệu năng cao cần phải áp dụng các kỹ thuật tiên tiến (sử dụng cửa sổ kích thước lớn, PAWS, SACK…) và giảm ảnh hưởng của slow-start bằng một số biện pháp đã trình bày.
Dưới đây là các phương pháp cải thiện TCP cũng như các chuẩn tương ứng:

Các kỹ thuật áp dụngSử dụngNơi sử dụngChuẩnPath MTU DiscoveryRec.SRFC 1191FECRec.L-TCP Congestion Control
– Slow Start
– Congestion Avoidance
– Fast Retransmit
– Fast Recovery
Req.
Req.
Rec.
Rec.
S
S
S
SRFC 1122
RFC 2581

TCP Large Windows
– Windows scaling
– PAWS
– RTTM
Rec.
Rec.
Rec.
S,R
S,R
S,RRFC 1323

TCP SACKsRec.S,RRFC 2018
Bảng 4. Một số các chuẩn đã được IETF thông qua trong việc cải tiến TCP/IP [5]

Trong bảng, Rec. có nghĩa là chuẩn này được khuyến cáo dùng trong môi trường trễ lớn như vệ tinh, Req.có nghĩa là các kỹ thuật này phải được áp dụng. Các ký tự “S”, “L”, “R” có nghĩa là các kỹ thuật này nên áp dụng cho hướng phát (Sender), lớp Link layer và Thu (Receiver). Các kỹ thuật này hiện đang được áp dụng trong hầu hết các hệ điều hành thông dụng [3].
Kết luận
Bài báo đề cập tới hiệu năng họ giao thức TCP/IP, các yếu tố ảnh hưởng tới hiệu năng TCP/IP trong môi trường VSAT ( trễ truyền dẫn lớn, tham số BER lớn, kích thước cửa sổ, thuật toán Slowstart, giao thức lớp Datalink…) cũng như một số kỹ thuật, nghiên cứu gần đây được chuẩn hoá bởi IETF để khắc phục những hạn chế đó. Những năm gần đây có rất nhiều nghiên cứu về vấn đề này và một vài áp dụng trong việc áp dụng TCP/IP trong môi trường trễ lớn như vệ tinh đã được chuẩn hoá song hướng nghiên cứu về vấn đề này vẫn là một hướng mở. Trong tương lai gần, khi chúng ta sở hữu vệ tinh riêng chắc chắn các ứng dụng dựa trên giao thức điều khiển truyền/giao thức liên mạng sẽ được phát triển. Cùng với việc nghiên cứu thiết kế các mạng VSAT cho riêng mình, việc lựa chọn các áp dụng mới đối với TCP/IP cũng cần được cân nhắc, xem xét.
Tài liệu tham khảo
[1] C.T.Spracklen, “Digital Communications protocols in the satellite environment”, IEEE Colloquium on Intergration of Satellite and Terrestrial OCS 1997.
[2] Craig Partridge and Timothy J.Shepard, “TCP/IP performance over Satellite links”, IEEE Network, september/november 1997, Vol 11, page 44-49.
[3] Dong-Joon Choi, Seoung-Nam Choi, Nae-Soo Kim, “Experiments and Analysis of the standard TCP Mechanisms using ATM based satellite network”, International conference on ATM and High speed Intelligent Internet Symposium, 2001, page 349-353.
[4] Douglas E.Comer, “Internetworking with TCP/IP”, Prentice Hall 2000.
[5] Javier Gaviland & AlejandroBereca, “LAN internetworking using VSAT sytems”, IEEE, Universal Personal Communications, third annual International Conference, page 305-309.
[6] Nasir Ghani and Sudhir Dixit, “TCP/IP Enhancements for Satellite Networks”, IEEE Communication Magazine , July 1999, Vol 37, page 64-72.
[7] Y.Chotikapong and Z.Sun, “Evaluation of Application Performance for TCP/IP via Satellite links”, IEE Seminar on Satellite services and the Internet, Feb. 2000, page 4/1-4/4.

1 Comment »

  1. 1
    phuongsun Says:

    Cho mình hỏi “Kích thước cửa sổ cực đại của TCP là 64Kbytes (Do trường cửa sổ sử dụng 16 bit” Tại sao lại nói được với trường cửa sổ là 16bit thì kích thước của sổ cực đại của TCP thu lớn nhất là 64kbps?có công thức?


RSS Feed for this entry

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: