Cỏc giải phỏp được đề cập ở đõy bao gồm: - Tăng kớch thước cửa sổ khởi đầu truyền dẫn. - Sử dụng giao thức TCP với tuỳ chọn SACK. - Cỏc giải phỏp thụng bỏo mất gúi do lỗi.
4.3.1. Giải phỏp tăng kớch thƣớc cửa sổ khởi đầu truyền dẫn
4.3.1.1. Nguyờn lý thực hiện
Trong pha khởi đầu chậm của giao thức TCP chuẩn, thuật toỏn khởi đầu chậm chỉ tăng kớch thước cửa sổ truyền dẫn (luụn được khởi tạo giỏ trị bằng 1 gúi tin), sau đú giỏ trị này được tăng lờn 1 mỗi khi cú một gúi tin xỏc nhận tới đớch. Cơ
chế này cú hai hạn chế sau:
(1) Phải mất nhiều thời gian để kớch thước cửa sổ truyền dẫn phớa phỏt cú thể tăng đến giỏ trị cửa sổ phớa thu, dẫn đến thụng lượng hiệu dụng của kết nối giảm.
82
(2) Số lượng cỏc gúi tin được phỏt vào mạng ở pha khởi đầu chậm ớt hơn so với khả năng đỏp ứng của mạng, tức là hiệu suất sử dụng độ rộng băng tần của kết nối TCP thấp.
Giải phỏp được đưa ra để giải quyết hai vấn đề trờn là tăng kớch thước cửa sổ khởi đầu truyền dẫn. Sự thay đổi cửa sổ khởi đầu kết nối được bắt đầu từ khoảng thời gian RTT đầu tiờn sau thủ tục bắt tay ba đường của TCP. Cả hai gúi tin SYN/ACK và gúi tin xỏc nhận ACK trong thủ tục bắt tay đều khụng thể tăng kớch thước cửa sổ khởi đầu. Nếu gúi tin SYN hay SYN/ACK bị mất, cửa sổ khởi đầu được sử dụng bởi phớa phỏt sau khi truyền lại gúi tin SYN phải cú kớch thước bằng 1 gúi tin [6].
Như trờn đó trỡnh bày, TCP sử dụng thuật toỏn khởi đầu chậm trong ba
trường hợp sau đõy:
- Khởi đầu một kết nối (khởi tạo cửa sổ).
- Truyền lại sau khoảng thời gian dài mà kết nối khụng truyền gỡ cả (khởi tạo
lại cửa sổ).
- Truyền lại sau khi chờ RTO (mất gúi tin). Trong ba trường hợp trờn, kớch thước cửa sổ khởi đầu lớn hơn 1 chỉ được ỏp dụng trong trường hợp 1. Trường hợp 2, cửa sổ khởi tạo lại được thiết lập bằng giỏ trị nhỏ nhất giữa giỏ trị cửa sổ khởi đầu (trường hợp 1) và giỏ trị hiện tại của biến cwnd. Trong trường hợp 3, giỏ trị cửa sổ khởi đầu luụn nhận bằng 1, do lỳc này TCP cho rằng mạng bị tắc nghẽn nờn nếu tăng kớch thước cửa sổ truyền dẫn sẽ làm cho mạng tắc nghẽn thờm.
Như vậy việc tăng kớch thước cửa sổ khởi đầu là mang tớnh tuỳ chọn và chỉ được ỏp dụng ở pha khởi đầu chậm của một kết nối TCP mới được khởi tạo.
4.3.1.2. Cỏc kết quả thực nghiệm với cửa sổ khởi đầu kớch thước lớn
Những thực nghiệm này được thực hiện trờn hệ thống mụ phỏng hệ thống vệ tinh thụng tin của trường đại học tổng hợp Ohio. Cỏc thực nghiệm được tiến hành
bằng cỏch sử dụng giao thức FTP để truyền những file cú kớch thước khỏc nhau qua thiết bị mụ phỏng. Thiết bị mụ phỏng được thiết lập với hai trường hợp sau đõy:
- Kớch thước cửa sổ thu nhỏ để khụng xảy ra tắc nghẽn trong mạng. - Kớch thước cửa sổ thu lớn hơn để cú thể xảy ra tắc nghẽn trong mạng. Hỡnh 4.8 mụ tả sự cải thiện của thụng lượng hiệu dụng của cỏc kết nối với kớch thước cửa sổ khởi đầu lớn so với kết nối cú kớch thước cửa sổ khởi đầu bằng 1 gúi tin [5].
83
Hỡnh 4.8. Sự cải thiện thụng lƣợng của kết nối TCP khi khụng cú tắc nghẽn
Trong đú, cỏc nột gạch khỏc nhau biểu thị cho cỏc file cú kớch thước khỏc nhau.
Hỡnh 4.8 cho thấy rằng sự tăng kớch thước cửa sổ khởi đầu làm tăng thụng
lượng của kết nối, đặc biệt là khi truyền những file cú kớch thước nhỏ. Cụ thể, khi truyền một file cú kớch thước 30kB, nếu sử dụng cửa sổ khởi đầu cú kớch thước bằng 32 gúi tin, thụng lượng tăng lờn xấp xỉ 180% so với cửa sổ khởi đầu kớch thước bằng 1 gúi tin, nếu sử dụng cửa sổ khởi đầu cú kớch thước bằng 4 gúi tin thụng lượng tăng lờn 27%. Sự tăng thụng lượng với trường hợp truyền dẫn những file nhỏ là do tiết kiệm được thời gian truyền dẫn khi sử dụng cửa sổ khởi đầu cú kớch thước lớn hơn. Đối với những trường hợp truyền dẫn những file cú kớch thước lớn, thụng lượng khụng được cải thiện như trường hợp những file nhỏ. Nguyờn nhõn là do thời gian tiết kiệm được khi sử dụng cửa sổ khởi đầu kớch thước lớn vào khoảng vài RTT rất nhỏ so với tổng thời gian truyền dẫn. Cụ thể, khi truyền một file cú kớch thước 5MB với cửa sổ khởi đầu cú kớch thước bằng 32 gúi tin, thụng lượng chỉ cải thiện được khoảng 3% so với kớch thước cửa sổ khởi đầu bằng 1.
Hỡnh 4.9 là kết quả của thực nghiệm tương tự như trờn nhưng với cửa sổ thu cú giỏ trị lớn hơn đủ để làm tràn cỏc hàng đợi của cỏc router trung gian. Điều này làm cho thời gian tồn tại cỏc kết nối lõu hơn, do đú giỏ trị kớch thước cửa sổ phỏt cú thể đạt tới được giỏ trị của kớch thước cửa sổ thu trước khi kết nối kết thỳc.
84
Hỡnh 4.9: Sự cải thiện thụng lƣợng của kết nối TCP khi cú tắc nghẽn
Trong đú, cỏc nột gạch khỏc nhau biểu thị cho cỏc file cú kớch thước khỏc nhau.
Căn cứ vào hỡnh 4.9 ta thấy khi truyền những file trung bỡnh: 30kB, 100kB, 200kB, kết quả gần giống như những thực nghiệm trờn. Điều này cho thấy phớa phỏt phỏt xong cỏc gúi tin trước khi biến cwnd đủ lớn để làm tràn cỏc hàng đợi ở cỏc
router trung gian. Khi truyền những file cú kớch thước lớn 1MB hay 5MB thụng lượng thay đổi khụng đỏng kể với những cửa sổ khởi đầu cú giỏ trị khỏc nhau. Trong cả hai trường hợp thụng lượng khi truyền những file cú kớch thước lớn 5MB là tương đương. Do với những file cú kớch thước lớn thời gian truyền dẫn dài, trong khi đú mạng cú tắc nghẽn xảy ra nờn khoảng thời gian mà pha khởi đầu chậm tiết
kiệm được khụng đỏng kể so với thời gian tồn tại của kết nối.
Trong trường hợp mạng cú tỉ lệ mất gúi cao, hỡnh 4.10 chỉ ra sự tăng số lượng gúi tin bị mất trong mạng ở một kết nối khi sử dụng cửa sổ khởi đầu kớch thước lớn so với cửa sổ khởi đầu kớch thước bằng 1 gúi tin.
85
Hỡnh 4.10. Số lƣợng gúi tin phải phỏt lại ở mạng cú tỉ lệ mất gúi cao
Căn cứ vào hỡnh 4.10 ta thấy, khi kớch thước cửa sổ khởi đầu truyền dẫn lớn hơn 5 gúi tin, lượng gúi tin phải phỏt lại trong một kết nối tăng tuyến tớnh khi giỏ trị cửa sổ khởi đầu truyền dẫn tăng.
Như vậy, việc tăng kớch thước cửa sổ khởi đầu truyền dẫn cải thiện được chất lượng những kết nối TCP qua đường truyền vật lý tốc độ cao, lượng dữ liệu cần truyền nhỏ. Tuy vậy, trong trường hợp mạng cú tỉ lệ mất gúi lớn, sự tăng kớch thước cửa sổ truyền dẫn làm cho tăng số lượng gúi tin cần phải phỏt lại trong một kết nối, do đú dẫn đến chất lượng của kết nối TCP trong trường hợp này giảm.
4.3.2. Giải phỏp TCP với tuỳ chọn SACK
Cơ chế phỏt lại của giao thức TCP chuẩn phỏt lại cỏc gúi tin bị mất dựa trờn hai dấu hiệu sau đõy:
- Quỏ thời gian truyền lại mà khụng nhận được gúi tin xỏc nhận từ phớa thu. - Phớa phỏt nhận được ba gúi tin xỏc nhận ACK cú chỉ số ACK giống nhau. Cơ chế này cú nhược điểm là:
- Phớa phỏt chỉ cú thể phỏt lại được một gúi tin trong một cửa sổ truyền dẫn. - Phớa phỏt cú thể phỏt lại một cỏch khụng cần thiết cỏc gúi tin đó tới đớch. Thật vậy, giả sử phớa phỏt phỏt đi 20 gúi tin, gúi tin thứ 11 và 12 bị mất, cỏc gúi tin 13, 14 và 15 tới đớch.
Trường hợp thứ nhất, nếu quỏ thời gian RTO mà phớa phỏt khụng nhận được
gúi tin xỏc nhận ACK cho gúi tin thứ 11, phớa phỏt giảm kớch thước cửa sổ truyền dẫn xuống cũn 1 gúi tin và khởi động thuật toỏn khởi đầu chậm để truyền lại cỏc gúi tin bắt đầu từ gúi tin thứ 11, như vậy phớa phỏt phải phỏt lại cỏc gúi tin 13, 14 và 15 một cỏc khụng cần thiết.
86
Trường hợp thứ hai, mỗi khi cỏc gúi tin 13, 14, 15 tới đớch phớa thu phỏt đi
một gúi tin xỏc nhận ACK trong đú trường ACK cú giỏ trị bằng 11. Như vậy phớa phỏt chỉ cú thể phỏt lại một gúi tin là gúi tin thứ 11, cũn gúi tin thứ 12 khụng được phỏt lại được vỡ phớa phỏt khụng nhận được bất cứ thụng tin nào về gúi tin này.
Nguyờn nhõn của hạn chế này là do gúi tin xỏc nhận ACK từ phớa thu với trường ACK chỉ đủ để mang thụng tin về một gúi tin. TCP với tuỳ chọn SACK (Selective Acknowlegedmen t- Xỏc nhận lựa chọn) cú thể khắc phục được nhược điểm trờn bằng cỏch sử dụng thờm trường Option của gúi tin TCP để mang thụng tin xỏc nhận cho nhiều gúi tin hơn. TCP với tuỳ chọn SACK chỉ sử dụng trường Option của gúi tin TCP, cỏc thuật toỏn điều khiển tắc nghẽn của TCP chuẩn khụng thay đổi cơ chế hoạt động.
Để thấy rừ hiệu quả của TCP với tuỳ chọn SACK, thực nghiệm được tiến
hành với hai thiết bị như sau:
- Thiết bị mụ phỏng đường truyền vệ tinh: Thiết bị này được thiết lập những tham số giống hệt với đường truyền vệ tinh. Thiết bị cú ưu điểm là mềm dẻo trong việc thiết lập cỏc tham số mụ phỏng đường truyền. Cấu hỡnh thiết bị như sau :
Hỡnh 4.11. Cấu hỡnh của thiết bị mụ phỏng SACK
Trong đú: Eror/Delay Box là thiết bị cú tỏc dụng làm trễ gúi, mất gúi, gõy ra lỗi tương tự như đường truyền vệ tinh thật.
87
Hỡnh 4.12. Mụ hỡnh thực nghiệm dựng vệ tinh địa tĩnh
Trong cả hai trường hợp, thiết bị của khỏch hàng và mỏy chủ để thực nghiệm đều cú cấu hỡnh là: bộ xử lý Pentium IV chạy trờn hệ điều hành Linux.
a. Kết quả thực nghiệm với thiết bị mụ phỏng
Thiết bị mụ phỏng cú đặc điểm là cú thể thay đổi cỏc tham số mụ phỏng một cỏch dễ dàng, chớnh vỡ vậy thực nghiệm được tiến hành nhiều lần trờn thiết bị này với cỏc tham số được điều chỉnh khỏc nhau:
- Thiết bị mụ phỏng được thiết lập ở chế độ “no corruption”.
Thiết bị mụ phỏng cú cỏc thụng số sau: RTT=510ms, tốc độ đường truyền 10MBps, khụng cú lỗi đường truyền. Cỏc file cú độ lớn khỏc nhau: 100KB, 1MB và 10MB được gửi đi từ thiết bị đầu cuối khỏch hàng tới mỏy chủ. Cửa sổ phỏt TCP cú kớch thước biến đổi từ 32KB đến 1024KB (Ở đõy dựng giao thức TCP với kớch thước cửa sổ lớn bằng cỏch sử dụng thờm phần tuỳ chọn trong tiờu đề gúi tin TCP, giỏ trị trong phần tuỳ chọn này là hệ số nhõn. Kớch thước cửa sổ lỳc này bằng hệ số nhõn với kớch thước cửa sổ tiờu chuẩn là 216 byte. Giỏ trị của hệ số nhõn khụng được vượt quỏ 214).
88
Kớch thước cửa sổ (KB)
Hỡnh 4.13. Thụng lƣợng đạt đƣợc khi truyền cỏc file 100KB trong trƣờng hợp “no corruption”.
Kớch thước cửa sổ KB
Hỡnh 4.14. Thụng lƣợng đạt đƣợc khi truyền cỏc file 1MB, 10MB trƣờng hợp “no corruption”.
Trong đú, cỏc nột nối khỏc nhau là cỏc trường hợp giao thức TCP SACK và giao thức TCP chuẩn (TCP NewReno) được sử dụng.
Từ hỡnh 4.13 và hỡnh 4.14 ta thấy:
- Thụng lượng khi truyền cỏc file nhỏ 100KB và 1MB thấp hơn thụng lượng khi truyền cỏc file lớn 10MB. Nguyờn nhõn là do kớch thước cỏc file 100KB và 1MB khụng đủ để tận dụng được kớch thước cửa sổ lớn và tốc độ của đường truyền. - Trong mụi trường thực nghiệm khụng cú lỗi, sự khỏc nhau giữa TCP với tuỳ chọn SACK và TCP chuẩn là rất rừ ràng, trừ trường hợp với kớch thước cửa sổ lớn. Do TCP với tuỳ chọn SACK cú khả năng xử lớ những gúi tin bị mất bằng cỏch sử dụng những khối tuỳ chọn SACK nờn thụng lượng đạt được lớn hơn so với TCP chuẩn. Khi truyền cỏc file 10MB với cửa sổ cú kớch thước 1024 KB, thụng lượng ở cả TCP chuẩn và TCP với tuỳ chọn SACK đều giảm, tuy nhiờn ở TCP chuẩn giảm nhiều hơn. Giải thớch như sau: với những đường truyền cú băng tần 10MB và RTT=510ms, tớch BDP bằng 652,8KB, do đú với những cửa sổ cú kớch thước cửa
sổ lớn hơn giỏ trị này sẽ xảy ra tắc nghẽn và thụng lượng giảm. Do đú nếu cứ tăng kớch thước cửa sổ thỡ sẽ ảnh hưởng xấu đến thụng lượng ngay cả khi SACK được sử dụng.
- Thiết bị mụ phỏng được đặt ở chế độ “corruption”. Thiết bị mụ phỏng được thiết lập với những thụng số sau đõy: Tỉ lệ mất gúi 1% tương ứng với BER = 0,9x10-6, RTT=510ms, tốc độ đường truyền 10MBps. Cỏc file cú kớch thước bằng
89
1MB và 10MB được truyền với những cửa sổ cú kớch thước khỏc nhau. Kết quả được cho trờn hỡnh 4.15.
Kớch thước cửa sổ (KB)
Hỡnh 4.15. Thụng lƣợng khi truyền file cú kớch thƣớc 1MB và 10MB, tỉ lệ mất gúi 1%.
Từ hỡnh 4.15 ta thấy TCP với tuỳ chọn SACK cú thụng lượng lớn hơn so với TCP chuẩn. Giống như trường hợp trước, thụng lượng giảm khi kớch thước cửa sổ lớn hơn giỏ trị BDP=652,8KB do cú sự hiện diện của tắc nghẽn và mất gúi do lỗi bit. Khi truyền dẫn những file cú kớch thước 10MB, so với trường hợp trước thỡ thụng lượng giảm nhiều hơn do tỉ lệ mất gúi. Thực nghiệm trờn được lặp lại với kớch thước file 10MB, tỉ lệ mất gúi 2% và 0,5%. Kết quả được chỉ ra trờn hỡnh 4.16:
Hỡnh 4.16. Thụng lƣợng khi truyền dẫn cỏc file 10MB, tỉ lệ mất gúi là 2% và 5%.
Thụng lượng trong cỏc trường hợp truyền dẫn file 10MB với kớch thước cửa sổ bằng 1024MB, tỉ lệ mất gúi khỏc nhau được túm tắt trong bảng sau:
Tỉ lệ mất gúi Thụng lƣợng TCP với tuỳ chọn SACK
Thụng lƣợng của TCP chuẩn
Chờnh lệch
90
1% 29509 29798 289
2% 18463 18684 221
Với kớch thước cửa sổ lớn (1024KB), tỉ lệ mất gúi lớn thỡ chất lượng của TCP với tuỳ chọn SACK xấp xỉ so với TCP chuẩn. Điều này là do hai nguyờn nhõn:
Thứ nhất: trường tuỳ chọn SACK giới hạn trong 4 khối dữ liệu trong khi đú
thể cú nhiều hơn 4 khối dữ liệu bị mất do tắc nghẽn và do mất gúi. Do đú trường tuỳ chọn khụng đủ khụng gian để thụng bỏo cho phớa phỏt biết cỏc gúi tin bị mất.
Thứ hai: vỡ tỉ lệ mất gúi lớn nờn cú những trường hợp phớa thu khụng nhận
được một gúi tin nào cả, do đú cũng khụng cú gúi tin xỏc nhận nào được phỏt trở lại phớa phỏt.
Cả hai trường hợp này đều dẫn tới truyền lại dựa trờn RTO do vậy thụng lượng giảm.
b. Kết quả thực nghiệm với đường truyền vệ tinh
Kờnh truyền vệ tinh cú tốc độ 2Mbps và RTT bằng 510ms. Cỏc file cú kớch thước 1MB và 10MB được truyền từ thiết bị đầu cuối của khỏch hàng tới mỏy chủ. Kớch thước cửa sổ phỏt bằng 64KB, 128KB và 256KB.
Kết quả ghi trờn bảng sau được lấy trung bỡnh cộng của thụng lượng qua 5 lần thực nghiệm.
Truyền file 1MB Truyền file 10MB
TCP chuẩn SACK TCP chuẩn SACK
64KB 13 14 16,5 17,6
128KB 13,75 15 16,5 18,5
256KB 12,5 13 15,75 17,75
Cỏc kết quả thu được cũng tương đương như kết quả thực nghiệm trờn thiết bị mụ phỏng. Tất cả cỏc trường hợp SACK đều cho kết quả tốt hơn TCP chuẩn. Thụng lượng giảm khi kớch thước cửa sổ tăng đặc biệt là khi kớch thước cửa sổ bằng 256KB lớn hơn tớch BDP của đường truyền (2Mbpsx510ms=130,56KB).