II. Điều khiển lưu lượng, tránh tắc nghẽn
5. Lược đồ WLDA+
Trong thực tế, các ứng dụng Real-time thường sử dụng chung băng thông với các ứng dụng dữ liệu nên việc tính toán sự chia sẻ băng thông cho những luồng khác nhau cũng là một vấn đề cần quan tâm.
Padhye [4] trình bày một mô hình phân tích cho việc chia sẻ băng thông trung bình cho một kết nối TCP (rTCP).
Với M là kích cỡ gói tin, l là phân số mất dữ liệu, tout là giá trị timeout, trtt là round trip delay và D là số những gói tin TCP biên nhận.
Với cách tính này, thực thể gửi xác định độ trễ toàn phần và tình trạng mất dữ liệu dựa trên những biên nhận. Trong trường hợp xảy ra mất dữ liệu, thực thể gửi giới hạn tốc độ truyền lại của nó tương đương tỷ lệ TCP tính toán với biểu thức trên. Ngược lại, nếu không mất dữ liệu, thực thể gửi phát tăng gấp đôi. Tuy nhiên, cũng cần cân nhắc về trường hợp sự tăng tốc độ trong suốt tình trạng dưới tải có thể dẫn đến kết quả phân bố băng thông không đều.
Lược đồ WLDA+ (Wireless loss-delay based adaptation algorithm) là thuật toán thích nghi dựa trên độ trễ và tỉ lệ mất dữ liệu trên đường truyền không dây. Thuật toán này điều chỉnh tốc độ truyền của những luồng đa phương tiện đang chạy trên giao thức UDP theo tình trạng tắc nghẽn trong mạng theo cách thức của TCP (TCP-friendly).
Thứ nhất, lược đồ này sử dụng thuật toán LDA+ quy định tốc độ truyền của thực thể gửi theo các thông tin được phản hồi về tình trạng mất dữ liệu, độ trễ và khả năng băng thông được đo bởi thực thể nhận qua giao thức RTP đồng thời ước lượng băng thông nơi cổ chai của đường truyền. Thứ hai, thuật toán WLDA+ còn sử dụng những lược đồ khác để phân biệt tình trạng mất dữ liệu là do quá tải (tắc nghẽn) hay do tình trạng đường truyền lỗi xuất hiện tạm thời. Khi không có sự tắc nghẽn xảy ra, thực thể gửi có thể tăng tốc độ truyền thêm vào thay vì việc giảm tốc độ truyền xuống. Hai thuật toán được sử dụng trong WLDA+ để phân biệt tình trạng tắc nghẽn là Spike-trains và Inter-arrival. Vậy nên, ta có thể hiểu rằng: lược đồ WLDA+ chính là lược đồ có sự kết hợp của lược đồ LDA+ với hai lược đồ phân biệt tình trạng mất dữ liệu Spike-trains, Inter- arrival trong mạng hỗn hợp có dây và không dây.
Thuật toán LDA+ thuộc loại AIMD rate-base dựa trên giao thức RTP để nhận các thông tin phản hồi từ thực thể nhận. Thông tin này
chính là các gói tin điều khiển RTCP trong giao thức RTP được các thành viên tham gia liên lạc nhóm gửi đều đặn cho các thành viên khác. Thời gian trung bình giữa hai gói tin được truyền đi thường là 5 giây, trong gói tin này đã mang những thông tin về tình trạng mất dữ liệu và độ trễ trong mạng được đo bằng cách đếm các khoảng trống của trường số tuần tự trong phần header của RTP. Thông tin xử lý gói tin từ lúc nhận sender report cuối cùng đến khi gửi receiver report được truyền cho thực thể gửi trong gói tin RTCP, sau đó thực thể gửi sử dụng các thông tin này cùng với dấu thời gian lúc gửi sender report và thời gian nhận receiver report để ước lượng Round trip delay. Ngoài ra, RTP còn được cải tiến để có thể ước lượng băng thông nơi cổ chai dựa trên một cặp gói tin thăm dò. Tức là, thêm vào trong các gói tin RTP của một ứng dụng, trong đó định nghĩa một số tuần tự SEQ của gói dữ liệu bắt đầu một luồng các gói tin thăm dò và số n của những gói tin thăm dò sẽ được gửi đi. Tại thực thể nhận, băng thông cổ chai R được tính:
Hình 2.5 Băng thông cổ chai
Sau khi nhận thông tin và tính toán RTT, thực thể gửi quyết định điều chỉnh tốc độ truyền. Giá trị tăng hoặc giảm được xác định một cách rất động dựa trên tình trạng mạng hiện thời và sự chia sẻ băng thông cho các luồng đang sử dụng chung tuyến đường. Cụ thể là, sau khi nhận được receiver report, thực thể gửi ước lượng băng thông chia sẻ rm tùy thuộc vào các trường hợp sau:
Không mất dữ liệu: Trong trường hợp này, thực thể gửi có thể tăng
tốc độ gửi thêm một lượng là A. Nhưng để việc tăng giá trị A được đều
đặn, không quá đột biến và để những luồng có băng thông được chia sẻ nhỏ hơn có điều kiện tăng tốc độ truyền nhanh hơn tốc độ truyền của
những luồng tương tranh được chia sẻ băng thông nhiều hơn. A được xác định một cách phụ thuộc với băng thông chia sẻ lúc trước, rm-1 và R là băng thông nơi cổ chai; A được xác định như sau:
Hình 2.6 Cách tính tham số A thứ nhất
Nhưng A cũng không thể tăng lên vượt ngưỡng cho phép. Để giới hạn tốc độ tăng tối đa so với băng thông nơi cổ chai, một giá trị thứ hai của A được xác định. Theo luật số mũ:
Hình 2.7 Cách tính tham số A thứ 2
Cuối cùng, để ngăn ngừa việc một luồng RTP có thể chiếm băng thông chia sẻ nhanh hơn một luồng TCP trên cùng một đường liên kết. Trong T giây, là khoảng thời gian trung bình giữa việc nhận hai receiver
report và độ trễ toàn phần một kết nối TCP có thể tăng cửa sổ truyền của nó là P gói tin với P đặt là
Hình 2.8 Số gói tin tăng thêm
Kích cỡ cửa sổ được tăng lên 1 gói tin sau một khoảng thời gian trễ toàn phần. Với kích cỡ gói tin là M và thời gian trung bình T, thực thể nhận RTP tăng tối đa sự ước lượng của nó về sự chia sẻ băng thông:
Hình 2.9 Cách tính tham số A thứ 3
Và giá trị tăng thêm vào (Am) được xác định là:
Hình 2.10 Tốc độ phát tăng thêm
Từ đó thực thể gửi sẽ xác định băng thông chia sẻ rm là:
Hình 2.11 Thực thể gửi tính băng thông chia sẻ
Mất dữ liệu: Đối với trường hợp mất dữ liệu được chỉ ra
trong gói tin RTCP thì tốc độ truyền (rm) được giảm xuống như sau:
Hình 2.12 Tốc độ truyền khi mất dữ liệu
Với rtcp được xác định trong biểu thức:
Trường hợp tốc độ truyền hiện tại thấp hơn rtcp thực thể gửi được phép tăng thêm tốc độ truyền của nó đến ngưỡng bằng rtcp.
Xét tiếp 2 lược đồ trong thuật toán WLDA+: Chúng ta đã biết việc mất dữ liệu trong mạng cố định có tỷ lệ nhỏ do chất lượng đường truyền tương đối tốt nên lý do thường là vì tắc nghẽn vì tình trạng mạng bị quá tải, nhưng trong mạng không dây, những gói tin bị mất có thể bị hủy vì một vài lý do khác như hỏng kênh truyền, mất điều khiển, sự suy giảm cường độ tín hiệu v.v. Do đó trong môi trường có mạng không dây hoạt động, thông lượng có thể bị các cơ chế điều khiển tắc nghẽn làm cho giảm không cần thiết vì các cơ chế đó không phân biệt được các gói tin bị mất do các lỗi không phải vì lý do tắc nghẽn. Làm sao để phân biệt sự
mất dữ liệu nào là do tắc nghẽn, sự mất dữ liệu nào là do những nguyên nhân khác? Phiên bản TCP Westwood (TCPW) cài đặt thuật toán điều khiển cửa sổ tắc nghẽn bằng cách đưa thêm vào một lược đồ khác cho mạng hỗn hợp gọi là lược đồ ước lượng kết hợp giải thông và tốc độ truyền – CRB (Combine Rate and Bandwidth). CRB suy luận nguyên nhân nổi trội của những gói tin bị mất (do tắc nghẽn hoặc do lỗi ngẫu nhiên trên đường truyền) sử dụng thông tin thu được từ ACK đã nhận tại thực thể gửi. Chính xác hơn, CRB là phương pháp lai kết hợp cả sự ước lượng băng thông TCPW. Bộ ước lượng bằng cách lấy mẫu giải thông BSE (Bandwidth Sampling Estimator) tính toán đến từng cặp ACK độc lập để thu được một mẫu băng thông, các mẫu này được lọc bằng bộ lọc thông thấp (thực chất là một hàm tính trung bình theo thời gian) và trả lại kết quả băng thông chia sẻ mà thực thể gửi TCP đã ước lượng từ mạng. Một bộ ước lượng khác được gọi là RE (Rate Estimator) giám sát tổng số các biên nhận theo một khoảng thời gian cố định T, sau đó cung cấp các mẫu cho một bộ lọc thông thấp thích hợp để có được tốc độ ước tính trung bình. Thuật toán WLDA+ đề xuất hai lược đồ là spike-strains và lược đồ Inter-arrival nhằm tách biệt nguyên nhân mất dữ liệu và từ đó có cách xử lý phù hợp.
Lược đồ Inter-arrival
Lược đồ này được đề xuất bởi Biaz [11], dùng thời gian inter- arrival giữa những gói tin liên tiếp để tách biệt việc mất dữ liệu là bởi tắc nghẽn mạng hay mất dữ liệu vì lý do mạng không dây. Chính xác hơn, lược đồ này phân biệt mất dữ liệu do mạng không dây (lwrls) và mất dữ liệu do tắc nghẽn (lcong) dùng thời gian inter-arrival bé nhất (Tmin) giữa hai gói tin liên tiếp nhau quan sát được bởi thực thể nhận trong kết nối. Lấy Pi biểu diễn gói tin tuần tự cuối cùng trước khi hiện tượng mất dữ liệu xảy ra, lấy Pi+n+1 biểu diễn gói tin nhận được bị out-of-order đầu tiên sau khi mất dữ liệu và n là số những gói tin bị mất theo khỏang thời gian này.
Tg biểu thị thời gian đến giữa hai gói tin Pi và Pi+n+1 và giả sử rằng các gói tin có cùng kích cỡ:
Hình 2.13 Dùng thời gian đến giữa hai gói tin Qua đó xác định được gói tin bị mất là do đâu.
Lược đồ này được xét trong những điều kiện sau đây:
- Chỉ liên kết cuối cùng trong đường dẫn là không dây. - Liên kết không dây là thắt cổ chai của kết nối
- Thực thể gửi thực hiện phần chủ yếu truyền dữ liệu.
Lược đồ Spike- train
Lược đồ được phát triển bởi Tobe [17], dùng thời gian trễ một chiều tương đối –ROTT( Relative One-way Trip Time (ROTT) như là tín hiệu để đánh giá mức độ tắc nghẽn trong mạng. ROTT là thời gian cần thiết để chuyển một gói tin từ thực thể gửi tới thực thể nhận. Lược đồ Spike-train xuất phát từ tên của nó trong thực tế. Thời gian ROTT tăng đột biến trong những giai đoạn xảy ra tắc nghẽn trong mạng. Bằng cách đánh giá những giá trị ROTT một cách liên tục có thể phát hiện ra sự quá tải của mạng. Ví dụ, một gói tin với giá trị ROTT lớn có thể cho biết được xác định là tắc nghẽn mạng đã xảy ra trên một liên kết mà nó đi qua.
Đối với việc mất dữ liệu thông thường (do tắc nghẽn), thuật toán WR0-LDA+ định nghĩa 2 ngưỡng chính là Bspike_start và Bspike_stop. Để đảm
bảo độ chính xác, người ta khuyến cáo rằng nên cố định những giá trị của các ngưỡng với K=1/2 và B=1/3.
Hình 2.14 Ngưỡng mất dữ liệu
Thời gian ROTTmax và ROTTmin biểu diễn giá trị ROTT lớn nhất và bé nhất trong kết nối. Nếu kết nối ở trong spike state thì mất dữ liệu được coi là do tình trạng tắc nghẽn và ngược lại. Spike state được xác định như sau: nếu nhận được một gói tin với seq là i và kết nối hiện tại đang không phải ở trạng thái spike state đồng thời ROTT của gói tin thứ i này vượt quá ngưỡng Bspikestart thì thuật toán đi vào giai đoạn spike state. Ngược lại nếu kết nối đang nằm trong spike state và ROTT của gói tin này nhỏ hơn Bspikeend thì thuật toán đi ra khỏi giai đoạn spike state.
Thuật toán LDA+ được thiết kế và tối ưu cho môi trường mạng cố định. Tức là xem việc những gói tin bị mất như là biểu hiện của sự tắc nghẽn mạng. Để làm giảm việc mất dữ liệu do tắc nghẽn, thực thể gửi giảm tỷ lệ truyền và do đó giảm tình trạng tải của mạng. Tuy nhiên, như đã đề cập trong môi trường mạng không dây, mất dữ liệu cũng có thể xuất hiện vì lỗi do đường truyền và những lỗi ngẫu nhiên khác. Như vậy, việc mất dữ liệu trong mạng không dây không liên quan tới tình trạng quá tải của mạng, việc giảm tốc độ truyền có thể không cải thiện được tình trạng
mất dữ liệu mà chỉ có thể làm giảm việc dùng băng thông của liên kết không dây. Tất nhiên là điều không mong muốn.
Để triển khai LDA+ trong môi trường mạng không dây, WLDA+ dùng hai kỹ thuật trên để phân biệt tình trạng tắc nghẽn và mất dữ liệu trong mạng không dây thành hai phiên bản tách biệt là Wireless- Intearrival- LDA+ và Wireless-ROTT-LDA+.
Về cơ bản, WLDA+ chỉ xem xét việc mất dữ liệu là do tắc nghẽn. Với mục đích đó, đối số l trong biểu thức tính tốc độ truyền khi hiện
tượng mất dự liệu xảy ra (Hình 2.12) được thay bằng giá trị lcong, giá trị này chỉ biểu diễn tình trạng mất dữ liệu do tắc nghẽn được phát hiện trong mỗi lược đồ. Cả hai lược đồ xác định việc mất dữ liệu dựa trên số tuần tự của hai gói tin nhận được liên tiếp. Nếu mất dữ liệu xảy ra thì nguyên nhân là bởi tắc nghẽn, đối số lcong trong thực thể nhận được tăng lên. Mặt khác, nếu mất dữ liệu trong mạng không dây, đối số lcong được giữ cùng một giá trị. Những lược đồ giải quyết vấn đề mất dữ liệu được tích hợp với LDA+ sẽ là:
Wireless – Interarrival – LDA+: Dựa trên lược đồ Inter-arrival,
Wireless-interarrival-LDA+ (WIN-LDA+) dùng thời gian của những gói
tin RTP liên tiếp nhau để phân biệt tình trạng tắc nghẽn mạng. Khi cấu hình thuật toán này, giá trị Tmin được xác định trong một khoảng thời gian quan sát là Tobs. Thời gian quan sát này được định nghĩa như một giai đoạn mà thực thể nhận giám sát liên tục thời gian inter-arival. Sau khoảng thời gian này (WIN-LDA+) sử dụng được giá trị Tmin. Tsi là dấu thời gian (timestamp) từ gói thứ i và Tri là thời gian đến tương ứng với 2 gói tin liên tục i và i-1, thời gian Tg sẽ được đo bằng biểu thức sau:
Wireless-ROOT_LDA + (WR0LDA+): Là mở rộng của lược đồ spike-train. Về cơ bản, WR0LDA+ tạo ra kỹ thuật chuỗi Markov xen kẽ giữa hai trạng thái tắc nghẽn – C (Congestion) và dưới tải -U (Underload) một cách tách biệt. Những sự kiện xác định sự chuyển tiếp giữa hai trạng thái được định nghĩa với ngưỡng đã đề cập trong trong hình 2.14. Dùng ROTT hiện tại được ước lượng bởi ROTTc, tình trạng hiện tại (Sc) được xác định với những điều kiện sau:
Hình 2.16 Ngưỡng tắc nghẽn trong thuật toán WR0LDA+
Mạng quá tải khi khi ước lượng ROTTc nằm trong khoảng “tình trạng tắc nghẽn”. Cho nên nguyên nhân chính đối với những gói tin bị huỷ bỏ là vì tắc nghẽn trong mạng. Mặt khác, xác định được mạng không dây mất dữ liệu là kết quả việc xác định mạng ở tình trạng dưới tải (underload), khi đó mức độ tắc nghẽn của mạng là thấp và gói tin bị huỷ bỏ là vì lỗi đường truyền không dây. Để tăng hoặc giảm tốc độ truyền theo đối số ROTT một cách hợp lý, kết nối sẽ giữ nguyên Sc bằng biến tình trạng lúc trước Sp (previous state) khi mà ROTTc nằm trong khoảng giá trị Bspike_start và Bspike_end; Khi thiết bị nhận phát hiện ra mất dữ liệu, tình trạng hiện tại của thiết bị nhận sẽ được xác định qua Sc để biết loại mất dữ liệu là do mạng không dây hay do tắc nghẽn.
Việc phân tích độ trễ một chiều (ROTT) để phát hiện ra tắc nghẽn trong mạng nên nghiên cứu sự khác nhau bởi sự thay đổi (skew) và sự chênh lệch (offset) giữa các đồng hồ của thực thể gửi và thực thể nhận. Để đạt được phép đo độ trễ một chiều một cách chính xác Tobe đã đề xuất là loại bỏ skew và offset nơi thực thể nhận. Trong thực tế, lỗi trong mạng không dây xuất hiện trong kênh là độc lập với tải trong liên kết mạng không dây, nghĩa là mất dữ liệu trong mạng không dây có thể xuất
hiện khi liên kết có dây là quá tải hoặc dưới tải. Với cách tiếp cận này, mất dữ liệu mạng không dây được xem như mất dữ liệu do lỗi đường truyền.
Qua tìm hiểu lược đồ hay kỹ thuật WLDA+ ta thấy rằng ngoài tính