Snoop ACKs

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 112)

Thủ tục snoop_ack() giám sát và xử lý các biên nhận (ACKs) do MH gửi trở lại và 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

được (có ba loại biên nhận). Lưu đồ thuật toán của thủ tục snoop_ack() được thể

hiện trên hình 5.6; nó hoạt động như sau:

1. Trường hp chung: Biên nhận mới, đây là trường hợp phổ biến, khi kết nối hầ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 gói số liệu nhận được tại MH. Thủ tục snoop_ack() thực hiện các thao tác sau:

Gii phóng 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().

Cp nht ước lượng thi gian kh hi: ước lượng cho thời gian khứ hồi của

đường truyền không dây cũng được cập nhật một cách thông minh, nó không được thực hiện đối với từng gói số liệu, mà chỉ được thực hiện với một gói số liệu trong mỗi cửa sổ gửi và chỉđược cập nhật nếu trong cửa sổđó 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 xác định được một biên nhận là 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.

Chuyn tiếp biên nhn cho người gi: việc cuối cùng là chuyển tiếp biên nhận tới cho người gửi - FH.

2. Biên nhn gi mo: là biên nhận cho gói số liệu có số thứ tự nhỏ hơn số thứ

tự gói số liệu đã được biên nhận sau cùng 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.

3. Biên nhn lp: là biên nhận hoàn toàn giống với một biên nhận tích luỹ cao nhất đã nhận được trước đó. Khi biên nhận lặp đầu tiên đến snoop_ack(), điều đó nói lên rằng MH không nhận được gói số liệu có số thứ tự kế tiếp số thứ tự chỉ ra trong biên nhận lặp. Tuy nhiên, nếu Snoop agent tiếp tục nhận được các biên nhận lặp nữa, điều đó nói lên rằng MH đã 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ì, MH 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

động 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 nhn lp đầu tiên (First one? = Yes): nếu gói số liệu cần phát lại không có trong bộ nhớ đệm của Snoop agent, thì 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 để 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 ứng với biên nhận lặp này trong bộ nhớ đệm, thì nó cần phát lại gói số liệu đó và loại bỏ

biên nhận lặp.

Biên nhn lp kế tiếp (First one? = No): trường hợp này xảy ra khi một biên nhậ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ứ

nhất đến. Nếu ước lượng số cực đại các biên nhận lặp cho cùng gói số liệu này bằng khô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

đến MH 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 quyền ưu tiên cao hơn, do đó, BS sẽ nhận thấy sự tăng trong dãy biên nhận. Việc phát lại các gói số liệu với quyền ưu tiên cao hơn giúp nâng cao hiệu năng với mọi tỉ suất lỗi đường truyền.

Phát li mt cách thông minh khi nhn được biên nhn lp đầ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 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 đượ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àng đợi cho các gói số liệu bình thường, từ FH mới đến, còn hàng đợ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 đó làm cho các gói số liệu đượ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 đến tăng thông lượng. 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 nó bị hết giờ hoặc vào chếđộ phát lại nhanh.

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 112)

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

(138 trang)