Snoop TC P ••••:•

Một phần của tài liệu Nghiên cứu phương pháp đánh giá và cải thiện hiệu năng giao thức TCP cho mạng máy tính (Trang 109)

4 .] 3 New-Reno TCP

5.3 Snoop TC P ••••:•

Mục đích cửa cơ chế Snoop TCP là cải thiện hiệu năng của giao thức TCP trong

% 9

mạng có đường truyên không dây là chặng cuôi cùng của kêt nôi, không đòi hòi

f ___ / ê

phải sửa đôi giao thức TCP đã được cài đặt trên các máy tính kêt nôi Internet (mạng có dây), dồn2, thời cho phép tích hợp dễ dàng các thiết bị truyền thông di động đàng truyền thông qua các đườns truvền khôns, dây với phần còn lại cua Internet.

Chúng ta có thể đạt được mục tiêu này bằng cách cài đặt một phần mềm, gọi là

Snoop aoent,tại trạm cơ sở Fis. Snoop agent thực hiện việc nhớ bàn sao các gói sổ liệu mà nó (1a chuyển tiếp qua chặng không dây và thực hiện phát lại một cách

ĩhôn^ minh các gói sô liệu bị mát trên chặn^ không dây băng cách theo dõi các biên

nhận do bên nhận sinh ra và bằng cách sử dụng các đồng hồ điều khiển phát lụi cục bộ. Việc phát lọi dược thực hiện tại tâng Liên kẻt dữ liệu nhưng có sự nhận biết TCP (TCP-aware ỉ ink- ỉ ayer retransm iss ion) [16], [34].

FHr bên gửi Tilled Host)

1 lình 5.4 Nguyên lý hoạt ủộno của Snoop TCP

K ết nối T C P Phát lại cục bộ

- 4 ---

Neuyên lý hoạt động của Snoop TCP được minh hoạ trên hình 5.4. Snoop agent bao sồm hai thù tục (mô-dun) gắn kết với nhau là snoop_data() và snoop_ack(); snoop dataO xử lý và nhớ đệm các gói sô liệu gửi đôn cho M H ; còn snoop_ack() xử lý các biên nhận do M H gửi đi và sẽ tiên hành phát lại cục bộ các gói sô liệu bị mât hoặc lồi trẽn chặníí từ BS đến M H dựa trên đồng hồ điều khiển phát lại cục bộ và

•> N

kiêu của các bien nhận. Các thuật toán trong hai thủ tục trên được trinh bày băng lưu dồ trỏii lìình 5.5 và 5.6 và được oịải thích ớ tiểu mục 5.3.1 và 53.2 dưới đây. 5.3.1 Snoop data

Gói sỏ liệu của giao thức TCP được xác định một cách duy nhât bởi sô thứ tự của by te đàu liên và kích thước của sói sô liệu dó. Tại ÍỈS, snoop_data() luôn theo dõi sát số thứ tự oỏi số liệu mới nhất mà nỏ thấy trên kết nối và dựa vào số thứ tự gói số

* y \

liệu đên đè xử lý chúng theo các cách thích hợp. Lưu đô thuật toán của thủ tục snoop_data() được thể hiện trên hình 5.5; nó hoạt động như sau:

Trường hợp chung

1. T nrờỉíỊỊ h ự Ị) chung: Gỏi sổ liệu mới, cỏ số (hử tự tăng lẽn theo trình tự bình

r 9

thưởng, đên Snoop agent tạ i BS. Trong trường hợp này, gói sô liệu sẽ dược đưa

1 / ,

vào bộ nhớ đệm của snoop—data() và sẽ đưực chuyên tiêp đên M I I.

2. S ự p líá t lạ i của ngư ời g ử i: Gói sô liệu không đủng thứ tự đên, nó đã được nhớ

từ írước írong bộ nhớ đệm của snoop jỉo ta (). Trườnơ hợp này không phổ biến

băng trường hợp trên, xảy ra khi trong mạns Internet (hình 5.4) có gói sô liệu bị loại bó, gâv ra hêt giờ tại bên gửi. Nó cung có thê xảy ra khi bên gửi của kêt nôi TCP thực hiện phát lại nhanh (FRXT). Thù tục snoop_data() sẽ có các hành độnu khác nhau tuỳ thuộc vào việc sổ thứ tự của gói số liệu này lớn hơn hay nhỏ hơn cùa ẹói số liệu mới dược biên nhận sau cùng. Nếu số thír tự lớn hơn biên nhận cuối cùng mà snoop一data() đã thấy, rất có thể là gói số liệu này trước đó chưa tới M H và vỉ thê nỏ sẽ được chuyên tiêp. Mặt khác, nêu sô thứ tự nhỏ hơn biên nhận cuối cùng, chứng tỏ gói số liệu này M H đã nhận được, vì vậy, lựa chọn duy nhât đúng là loại bỏ gói sô liệu và tiêp tục công việc.

, f t r r

3. M àt do ìãc nghẽn: Gỏi sô liệu không đúng thử tự đen, trước đó g ó i sô liệu này

chưa được nhớ đệm, Trong trường hợp này, đã có gỏi số liệu trước nó bị mất

trons mạrm (có dây) do tắc nghẽn, hoặc là các aói số liệu đã được mạns phân phát không đúng thứ tự. Đẻ cho đơn siản. tron这 luận án này chúng tôi giả sử răng trong phân mạng có dây. không có sự mât gói sô liệu do tăc nghẽn và sự phân phái các gói số liệu sai thứ tự.

5.3.2 Snoop AC K s

Thủ tục snoop_ack() giám sát và xử lý các biên nhận (ACKs) do M H gửi trờ lại rà thực hiện các hành động khác nhau tuỳ thuộc vào loại và số biên nhận nó nhận lược (có ba loại biên nhận). Lưu đồ thuật toán của thủ tục snoop一ack() được thể

ìiện trcn hình 5.6; nó hoạt độns như sau:

1- Trường hợp ch iu tỊỊ: Bien nhạn mới. đây là tnrờno hợp phổ biến, khi kết nối

lâu như không có lôi và người sử dụng di chuyên ít. nó báo hiệu sự tăng cùa dãy

- I l l -

G i ả i p h ỏ n g b ộ đ ệ m : xoá tất cả các gỏi số liệu đã được biên nhận khỏi bộ đệm

của snoop—data().

Cập nhật ước lượng th ờ i gian khứ hôi: ước lượng cho thời gian khứ hôi của

đường truyền không dây cũns được cập nhật một cách thông minh, nó không được thực hiộn dôi với từnẹ eói sô liệu, mà chỉ dược thực hiện với một oỏ\ sô liệu trono

mỗi cửa sổ gửi và chỉ được cập nhật nếu trong cửa sổ dỏ không phải phát lại gói số

liệ u nào. Điều kiện thứ hai vừa nêu là cần thiết bởi vì nói chung, không có cách náo

f \ \ f

xác định được một biên nhận ià cho gói sô liệu phát đi lân đâu hay cho chính gói sô liệu đó ở lần phát lại.

•p f 1

C h u y ê n t i ê p b i ê n n h ộ n c h o ngư ời gửi', việc cuôi cùng là chuyên tiêp biên nhận

tới cho n íirờ i gửi - FH,

Bien nhận lặp đầu tiẽ ti

Bien nhận mới? (New ack?)

S n ơ ữ p a c k ộ

Bien nhân đi đến

Loại bỏ

(Discard) No

Biên nhận g iả mạo

Loai bỏ (Discard) No Biên ỉỉhận ỉặp kế tiếp Ves 1. Giải phóng bộ đệm 2. Cập nhật ước lượng

thòi gian khứ hồi 3. Chuyến tiếp bien nhận

tới người gửi

Trường hợp chung

1. Nêu gói tin có trong bộ nhớ đệm: Phát lại

+ với quyên ưu tiên cao

Yes + loại bỏ biên nhân lặp 2 Nêu không: cho biên

nhận lặp đi qua, về FH

2. Bien nhận giả mạo: là biên nhận cho gói số liệu có số thứ tự nhỏ hơn số thứ

, r f

tự gỏi SÔ liệu đã được biên nhận sau cùne mà snoop agent thây, tình huông này hiểm khi xảy ra. Biên nhận này sẽ bị loại bỏ và việc xử lý các gói số liệu sẽ tiếp tục.

f

3. Biên nhận lặp: là bien nhận hoàn toàn giông với một biên nhận tích luỹ cao

\ r \

nhcit dà nhận được trước dó. Khi bién nhận lặp đâu tiên đên snoop_ack(), điêu đó

« ______ 9 r r ^

nói lên răng M H không nhận được gói sô liệu cỏ sô thứ tự kê tiêp sô thứ tự chỉ ra tronç bien nhận lặp. Tuy nhiên, nếu Snoop asent tiếp tục nhận được các biên nhận lặp nữa, điều đó nói len ràng M H đã nhận được một số gói số liệu có thứ tự tiếp theo gói số liệu mà nó không nhận được. Lý do là vì, M H sẽ gửi một biên nhận lặp cho mỗi gói số liệu nó nhận được nhưng không đúng thứ tự. M ộ t trong các hành độns sau đây sẽ xảy ra tuỳ thuộc vào kiêu của biên nhận lặp và vào trạng thái hiện thời của snoop_data():

Biên nhận lặp đầu tiên (F irst one? = Yes): nếu gỏi số liệu cần phát lại không cỏ

tronạ bộ nhớ đệin của Snoop agent, thi nó sẽ phải được FH phát lại, do đó Snoop agent cần chuyển tiếp biên nhận lặp cho FH, bởi vì FH (thực thể gửi của kết nối TCP) cần có các thông tin trạng thái, dựa trên số biên nhận lặp nhận được dể quyết

định việc phát lại một gói sô liệu. Nêu Snoop agent cỏ gói sô liệu tương írns với biên nhận lặp này trong bộ nhớ đệm, thi nó cần phát lại gói số liệu đó và loại bỏ ^iên nhận lặp.

Biên nhận lặp kế íiếp (F irst one? = No): trường hợp này xảy ra khi một biên

ihận lặp nữa đên. Lúc này, gỏi sô liệu bị mât đã được phát lại khi biên nhận lặp thứ ihất dến. Nếu ước lượng số cực đại các biên nhận lặp cho cùng ẹói số liệu này bằng chông, biên nhận lặp này được loại bỏ ngay. Trong thực tế, gói số liệu được phát lại tôn Mí I trước hâu hêt các gói sô liệu có sô thứ tự sau nó, bời vì nó được phát lại với ]u\en ưu tien cao hơn, do đó. BS sè nhạn thấy sự tăng trons dãy biên nhận. Việc )hát lại các gói số liệu với quyền ưu tiên cao hơn ạiúp nâng cao hiệu năni> với mọi

Phút lạỉ một cách thông m inh k h i nhận được biên nhận lặp đâu tiên

Để làm cho số biên nhận lặp càng ít càng tốt, ngay sau khi phát hiện ra sự mất gói số liệu (khi nhận được biên nhận lặp đầu tiên), nỏ cẩn phải được phát lại càng

t s

nhanh càng tôt với quyên ưu tiên cao hơn các gỏi sô liệu bình thường. Có thê thực hiện dược điêu này băng cách tô chức hai hàng đợi tại tâng Liên kêt dữ liệu, một hàns dại cho các sói số liệu bình thirừns, từ FH mới đến, còn harm đợi kia chứa (bản sao) các gói số liệu đã được phát lại, có quyền ưu tiên cao hơn. Điều đó iàin cho các gói sổ liệu cỉirợc phát lại đến MH sớm hơn. làm giảm sổ biên nhận lặp và dân CÌCÌÌ tăns thônơ lượn2. Snoop_ack() bám sát sô lân phát lại cục bộ của một gỏi SÔ liệu và sẽ đặt lại cho sô này băng không khi nhận được chính gói sô liệu đó do bên gửi phát lại sau khi I1Ó bị hết giờ hoặc vào chế độ phát lại nhanh.

5.3.3 Phát lại cục bộ thông m inh trong Snoop TCP

Snoop agent ngoài việc phát lại các gói số liệu căn cứ vào số lượng và kiểu của biên nlìận,còn thực hiện việc phát lại theo thời gian hết giờ cục bộ trên chặng

\ t

không dây, thời gian này tât nhiên nhỏ hơn nhiêu thời aian hêt giờ mà bên gửi sử dụns. Do đặc trưng lỗi của đường truyền khône dây, thời gian khứ hồi cục bộ thay đổi rất nhanh, trong một miền rộng [14], [17],[46] cho nên thời gian hết giờ để phát lại - rto phải được tính một cách động, bám sát trạnei thái của đirờrì£ũ truyền. Khi đường truyền tốt, rto phải nhỏ; ngược lại,khi đườne truyền xấu, rto phải lớn.

Tương tự biểu thức tính RTO tại (5-3),thuật toán tính rto như sau:

rto = max(srtt + 4*rttvar, 1—bound) (5-4)

Trong đó, srtt là ước lượng thời gian khử hồi cục bộ trên chặng không dây, được làm trơn: rttvar là độ lệch chuẩn cùa thời gian khứ hồi rtt; 1—bound là giá trị được :họn làm cận dưới cho rto, việc chọn giá trị cho l_bound sẽ được trình bày dưới ỉây, tại tiểu mục 5.3.3.2. Người ta đă chím2; minh bans; các nçhiên cứu thực nshiệm •ằng. với các đặc diểm của đường truyền không dây* rtt thăng gian? mạnh, nhưna >rtt 卞 4*rttvar nói chung vần lởn han giá trị lớn nhất cùa rtu đảm bảo việc phát lại !à lủng dan [8]. [14], [17].

Thuật toán tính rltvar hoàn toàn giống thuậl toán tính D ở (1-4); trong mã nguồn của snoop agent mà clìún^ tỏi sứ dụns. nỏ dược cài đật cụ thế như sau [50]:

delta = rtt - srtt;

i f (delta < 0) delta = - delta;

i f (rttvar != 0) rttvar = e * delta + (1-g ) * rttvar; else rttvar = delta;

5.3.3.1 Chọn g iá t r ị cho hệ số làm trơn của bộ lọc tin h srít

ư ớ c lư ợ n g th ờ i oiarì k h ứ hồi CŨÌĨQ đ ư ợ c tín h q u a m ộ t b ộ lọc, t h e o t h u ậ t to á n s a i l:

srtt = e * srtt + (1-g) * rtt (5-5)

Biểu thức (5-5) có dạrm hoàn toàn giống biểu thức (1-2), với g tương tự tham số cx,là hẹ sô làm trơn của bộ lọc; rtt ttrơns tự tham sô M ,là thời gian khứ hôi đo được

^ f 1

đôi với gói sô liệu đã được biên nhận mới nhât. Tuy nhiên, đê giá trị rto tính theo (5-4) bám sát trạng thái của đường truyên,srtt phải thay đôi nhanh, bám sát sự thay đôi của rtt; chính vì vậy, hệ sô làm trơn ẹ phải đủ nhỏ. Điêu này đã được chúng tôi eiải thích trực quan trên hình 1.10.

Vậy phải chọn hệ số này bàng bao nhiêu là tốt nhất? Theo RFC-793 [49],hệ số z

này nên chọn bàng 0.1. Tuy nhiên, nếu biểu thức (5-5) sử dụne giá trị này cho g, thì sẽ phải sử dụng đến phép nhân, làm tăng chi phí thời gian tính srtt. Chủng tôi sử dụns ạiá trị g = 0,125 = 1/8 = 2"3, nhờ đó biểu thức (5-5) sẽ được thực hiện bàne phép tích dịch có tốc độ thực hiện cao thay cho phép nhân.

5.3.3.2 C l ĩ Ọ ĩ ĩ đơn vị th ờ i gian đồng hồ p h ả i lợ i (snoopTick) và cạn divới của rto

Đê thực hiện được chức năng phát lại cục bộ thông minh trên chặng không dây, snoop agent phải quản lý một đồng hồ phát lại cục bộ,đơn vị th ờ i gian của đỏĩĩíỊ hồ p h á t lạ i chủng tô i kỷ hiệu là snoop Tick. Đồng hồ này tính thời gian hết giờ để

3hủt lại cục bộ theo biểu tlìírc (5-4). được viết lại dưới đâv: rto = max(srtt + 4*rttvar, ]_bound)

1 1 V

Như chúng tôi đã phân tích tại nhỏm tiêu mục 5.1.2 (Đông hô phát lại), việc chọn giá trị snoopTick cần dung hoà hai yêu cầu trái ngược nhau:

I • SnoopTick càng lớn càns tôt. đê giảm chi phí xử lý ngăt đông hô.

y %

2. SnoopTick phải đủ nhỏ đê ước lượng thời gian khứ hôi được làm trơn (srtt + 4*rttvar) bám sát sự thay dôi của thời eian khứ hôi rtí trons một miên rât rộns, tránh sai lầm phát lại quá sớm .

\ f

Rõ rảns là,việc tim ra giá trị tôt nhât cho snoopTick bane Toán học là rât khỏ,

chính vì vậy, chúng tôi sẽ sử dụns công cụ mô phỏne để xác định giá trị snoopTick làm cho việc phát lại cục bộ đạt hiệu quà cao nhất.

Chọn ỊỊÌủ tr ị cận dư ớ i cho rto (ỉ bound):

Vì snoopTick là đơn vị thời eian cim đồng hồ phát lại, nên l_bound là một số n^uveiì lân đơn vị thời ẹian này; ngoài rà, 1 bound không được phép nhỏ hơn giá trị

# •» 、 %

nho nhât có thê có của thời gian klìứ hôi trên chặna khôn a dây (khi đường truyên không gây lôi). Từ hai ràng buộc trên đôi với 1—bound,chúng tôi có thê đưa ra nhận xét: nếu snoopTick được chọn có giá trị lớn hơn ơịá trị nhỏ nhất cỏ thể có của thời

% t

gian khứ hôi trên chặng không dây,thi giá tr ị nhỏ ìíhầt mà ch úng ta có thê chọn cho rto chính là snoopTick,

, , -y

Kêt quả nghiên cứu băng mô phỏng của chúng tôi tại nhóm tiêu mục 5.5.3 cho

r % % ^

thay, giá trị tôi tru của snoopTick cân phải băng 2 lân giá trị nhỏ nhât có thê có của

\

thời gian khứ hôi trên chặng không dây. Như vậy nhận xét trên của chúng tôi là

今 r

hoàn toàn có thê áp dụng được và đúng đăn.

5.3.3.3 Dặt giá tr ị cận trên cho rto bằng cách g iỏ i hạn số tần rú t lu i (backoff)

Khi dường truyền không dây ờ trạng thái xấu, ti suất lồi gói tin rất cao, việc phát

ỉỏ \ tin có thể bị thất bại liên tiếp. Mồi lần thất bại, snoop asent lại rút lui theo hàm nũ theo thuật toán tránh tăc nghẽn, nelìĩa là tăns rto lên eap đôi và sau khoảng thời

9 K %

ỉian dó sẽ phát lại gỏi tin. Sau một sô lân rút lui, giá trị cùa rto có thê khá lớn; khi

t 9 \ /

:ió, cỏ Ihê xảy ra một sô vân de khônu nions muôn như sau:

»7 'r \ r f

一 Rút lui quá lâu, có thê kéo dài hêt éiai đoạn đường truyên xâu và hêt cả giai đoạn đường truyền tốt xảy ra sau đỏ, gây lãng phí dải thông.

'f r _

— Thực tê, ngay trong trạng thái đường truỵên xâu. tỉ suât lôi gói tin cũng không phải là 100% và không theo phân bố đều, mà có phân bố hàm mũ [15]. Nếu để rto tăns quá lớn, sẽ không tận dụne được dải thông.

Rõ rang là snoop agent vừa phải “ cố gắng” phát lại với một mức độ “ kiên trì” nhất định, vừa phải thực hiện chính sách rút lui theo hàm mũ; tuy nhiên, chỉ nên rút lui một số lần,sau đó khôns tăng rto lên nữa. Nói cách khác, cần p h ả i đặt một cận trên cho rtOy nghĩa là giói hạn số lần rút lui.

Để việc phân tích tiếp theo được thuận tiện, chúng tôi đưa ra một số ký hiệu:

Một phần của tài liệu Nghiên cứu phương pháp đánh giá và cải thiện hiệu năng giao thức TCP cho mạng máy tính (Trang 109)

Tải bản đầy đủ (PDF)

(136 trang)