phần mở đầu của đề tài, khi dùng kỹ thuật phần mềm để kiểm soát tắc nghẽn trong mạng TCP/IP, thì ngoài cách kiểm soát bằng giao thức truyền thông còn có hướng tiếp cận khác là dùng cơ chế quản lý hàng đợi tại các nút mạng. Có hai phương pháp quản lý hàng đợi, quản lý hàng đợi thụ động và quản lý hàng đợi tích cực: Quản lý hàng đợi thụ động là kỹ thuật thiết lập một giá trị chiều dài cực đại cho mỗi hàng đợi, gói tin được chấp nhận đưa vào hàng đợi cho đến khi hàng đợi đạt giá trị này. Sau đó, sẽ loại bỏ những gói tin được chuyển đến tiếp theo cho đến khi các gói trong hàng đợi được giảm nhờ vào các gói đã được truyền đi. Quản lý hàng đợi tích cực là một kỹ thuật mà các nút mạng chủ động loại bỏ gói từ ngay trong hàng đợi nhằm tránh tràn hàng đợi và thông báo dấu hiệu tắc nghẽn về nguồn gửi, để nguồn gửi điều chỉnh tốc độ gửi gói hay định tuyến lại tránh tắc nghẽn.7 trình bày mô hình quản lý hàng đợi tích cực trong mạng TCP/IP [10].
9 Các luồng vào Hàng đợi X bps Luồng ra C bps B M X AQM Hình 1. Mô hình quản lý hàng đợi tích cực Khi các gói tin từ các nguồn khác nhau đến nút mạng với thông lượng (𝑋 𝑏𝑝𝑠), nút mạng sắp xếp các gói vào các hàng đợi (𝐵) và lập lịch để đưa các gói tin đến vùng đệm (𝑀) của các cổng ra thích hợp với thông lượng (𝐶 𝑏𝑝𝑠). Sau đó, gói tin được chuyển đến các nút mạng tiếp theo để đến được máy nhận. Quản lý hàng đợi tích cực tại nút mạng Mục tiêu quan trọng nhất của cơ chế quản lý hàng đợi tích cực là ngăn ngừa sự tắc nghẽn trước khi nó thực sự xảy ra, duy trì chiều dài hàng đợi ổn định nhằm giảm bớt sự mất mát các gói, đạt được lưu lượng truyền dữ liệu cao và độ trễ hàng đợi thấp [10][17][18].
Trước hết, tác giả trình bày kiến trúc và việc kiểm soát tắc nghẽn của quản lý hàng đợi tích cực tại các nút mạng. Các nút mạng có kiến trúc CQS (Classification-Queue-Schedular) nhằm hỗ trợ kiểm soát tắc nghẽn tại nút cổ chai.8 trình bày kiến trúc CQS này [17][62]. Hàng đợi 1 Chuyển gói tin đi Các gói tin đến Hàng đợi 2 Phân Lập lớp lịch Hàng đợi n Quá trình lập lịch Gói tin bị rơi khi hàng đợi đầy Hình 1. Mô hình CQS tại nút mạng Nhìn chung một gói tin khi đến nút mạng, được chuyển qua 3 khối xử lý: phân lớp gói tin, quản lý hàng đợi, lập lịch gói tin.
10 Phân lớp gói tin: Việc truyền thông trên mạng TCP/IP ngày càng trở nên phức tạp, do nó phải truyền tải quá nhiều loại lưu lượng với các đặc tính khác nhau. Việc truyền tải lưu lượng, điều khiển truy nhập và đáp ứng các dịch vụ khác nhau đòi hỏi có sự phân biệt các gói dựa trên cơ sở đa trường trong phần đầu của mỗi gói (PH: Packet Header), được gọi là phân lớp gói tin. Mạng sẽ đặt ra các mức ưu tiên cho các gói, dựa vào mức ưu tiên này để điều khiển mạng khi có tắc nghẽn xảy ra. Gói nào có độ ưu tiên cao hơn sẽ được ưu tiên truyền trước, các gói có độ ưu tiên thấp hơn có thể bị loại bỏ khi có tắc nghẽn.
Quản lý hàng đợi: Các nút mạng TCP/IP được cấu hình với nhiều hàng đợi có kích thước lớn, do đó các gói truyền trong mạng sẽ phải mất một thời gian dài để truyền trong hàng đợi. Trễ hàng đợi thậm chí còn lâu hơn cả trễ truyền trong mạng. Để giải quyết vấn đề này, chúng ta sử dụng các thuật toán quản lý hàng đợi nhằm kiểm soát chiều dài của hàng đợi ổn định. Quản lý hàng đợi bao gồm các hoạt động: thêm gói vào hàng đợi khi hàng đợi chưa đầy, loại bỏ gói nếu hàng đợi đã đầy, quản lý mức độ chiếm giữ hàng đợi, đánh dấu các gói khi hàng đợi chuẩn bị đầy và thông báo tình trạng tắc nghẽn về máy gửi để điều tiết lưu thông trong mạng.
Lập lịch gói tin: Bộ lập lịch sẽ quyết định xem gói tin được đưa ra giao diện đầu ra nào, sau đó hướng nó tới nút mạng tiếp theo. Tại các nút mạng có hỗ trợ kiến trúc CQS thì mỗi giao diện có tầng lập lịch để cùng chia sẻ khả năng của giao diện đầu ra có cùng các hàng đợi liên quan. Quá trình lập lịch này giúp cho các gói từ nhiều hàng đợi ra cùng một giao diện đầu ra không phải tranh chấp đầu ra, tránh được tắc nghẽn tại đầu ra. Kỹ thuật thông báo tắc nghẽn rõ ràng Kỹ thuật thông báo tắt nghẽn rõ ràng (ECN: Explicit Congestion Notification) là kỹ thuật cho phép một nút mạng cung cấp thông tin phản hồi rõ ràng cho máy gửi về tình trạng tắc nghẽn tại nó.
Thông tin tắc nghẽn thường được chuyển qua các nút mạng trung gian trên đường đi từ máy gửi đến máy nhận, bằng cách đánh dấu hay cập nhật tiêu đề của gói tin để cho biết tình trạng tắc nghẽn và sau đó gửi trở lại từ máy nhận dưới dạng một thông báo tắc nghẽn rõ ràng.9 trình bày hoạt động của kỹ thuật thông báo tắc nghẽn rõ ràng [37][44]. 11 ACKs Máy gửi Máy nhận Tắc nghẽn ECT=1 Gửi gói với 2 Đặt ECE=1 trong 1 ECT=1, CE=0 CE=1 3 ACKs tiếp theo Giảm cwnd, Các gói tin Chỉ đặt ECE=1 trong 4 đặt CWR=1 5 ACKs khi CE=1 Hình 1. Cơ chế hoạt động của ECN ECN dùng bit 6 và 7 trong trường ToS của IP Header (trong Hình 1.4) để thiết lập thông báo tắt nghẽn rõ ràng, bit 6 là ECT (ECN Capable Transport) và bit 7 là CE (Congestion Experienced), hoạt động của ECN gồm 5 bước như sau: Bước 1: Bit ECT được thiết lập từ nguồn, chỉ cho các nút trong mạng TCP/IP biết các gói tin có thể chọn để đánh dấu ECN và dựa vào bit CE để nút mạng phát hiện tắc nghẽn. Bước 2: Khi một nút mạng dự đoán được tắc nghẽn, nó thiết lập bit CE =1 và bit ECT = 1 để báo hiệu tắc nghẽn cho hệ thống đầu cuối.
Ngoài ra, ECN còn dùng bit thứ 6 là bit ECE (ECN-Echo) và thứ 7 là bit CWR (Congestion Window Reduced) trong trường Reserver của TCP Header (trong Hình 1.3) để máy gửi và máy nhận bắt tay nhau khi dùng kỹ thuật ECN. Bước 3: Khi nhận được gói tin có thiết lập ECN, máy nhận thiết lập bit ECE của gói ACK bằng 1 rồi gửi về máy gửi. Bước 4: Tại máy gửi, sau khi nhận gói ACK có ECE=1, máy gửi sẽ thực hiện pha tránh tắc nghẽn và thiết lập bit CWR bằng 1 và gửi về máy nhận. Bước 5: Máy nhận sau khi bắt tay với máy gửi sẽ thiết lập ACK theo ECN.
Hiệu quả của việc kiểm soát tắc nghẽn trong mạng TCP/IP sẽ tốt hơn khi tại các nút mạng dùng các cơ chế AQM có tích hợp ECN. Điều này đã được Aleksandar Kuzmanovic kiểm chứng khi đưa ECN vào cơ chế RED [9][26]. Kết quả cài đặt và mô phỏng cho thấy, cơ chế ECN-GREEN cải tiến đã làm giảm tỉ lệ mất gói và mức độ sử dụng hàng đợi, tăng mức độ sử dụng đường truyền và tỉ lệ cân bằng đáng kể so với cơ chế GREEN truyền thống. Phân tích và đánh giá các cơ chế quản lý hàng đợi tích cực Quản lý hàng đợi tích cực RED Dựa theo chiều dài hàng đợi FRED.
BLUE Dựa theo tải nạp SFB. REM Dựa theo chiều dài GREEN hàng đợi và tải nạp. Phân loại các cơ chế quản lý hàng đợi tích cực Dựa trên tiêu chí đo lường mức độ sử dụng hàng đợi và băng thông đường truyền, các cơ chế quản lý hàng đợi tích cực được phân thành ba nhóm: quản lý hàng đợi tích cực dựa trên chiều dài hàng đợi, quản lý hàng đợi tích cực dựa trên tải nạp, quản lý hàng đợi tích cực dựa trên chiều dài hàng đợi và tải nạp.10 thể hiện sự phân loại các cơ chế quản lý hàng đợi tích cực [2][29][55]. Theo kết quả phân tích, đánh giá các cơ chế quản lý hàng đợi tích cực trong thời gian gần đây, đề tài chọn các cơ chế quản lý hàng đợi tích cực điển hình để phân tích và đánh giá: RED và FRED đại diện cho nhóm cơ chế quản lý hàng đợi tích cực dựa trên chiều dài hàng đợi; BLUE và SFB tiêu biểu cho nhóm cơ chế quản lý hàng đợi tích cực dựa trên tải nạp; REM và GREEN điển hình cho nhóm cơ chế quản lý hàng đợi tích cực dựa trên chiều dài hàng đợi và tải nạp [6][29][55].
Các cơ chế AQM dựa trên chiều dài hàng đợi Trong các cơ chế quản lý hàng đợi dựa trên chiều dài hàng đợi, hiện tượng tắc nghẽn được thể hiện dựa trên độ dài tức thời hoặc độ dài trung bình của hàng đợi và mục đích của quá trình điều khiển là làm ổn định chiều dài hàng đợi tại các nút mạng. Các cơ chế tiêu biểu cho nhóm này là cơ chế RED và FRED [9][21][25]. Sally Floyd và cộng sự đã đề xuất cơ chế RED [24] [25][42] để phát hiện sớm tắc 13 nghẽn, RED kiểm soát tắc nghẽn tại nút mạng bằng cách kiểm tra độ dài trung bình hàng đợi khi các gói tin đến và đưa ra quyết định nhận gói, đánh dấu hoặc loại bỏ gói tin theo các bước sau: Khi gói tin đến tại nút mạng, cơ chế quản lý hàng đợi tích cực RED tính chiều dài hàng đợi trung bình theo công thức 𝑘̂ = (1 − 𝜔) ∗ 𝑘̂ + 𝜔 ∗ 𝑘, với (0 1) là trọng số hàng đợi để kiểm soát biến động của chiều dài hàng đợi trung bình và 𝑘 là chiều dài hàng đợi tức thời. Sau đó, RED so sánh chiều dài hàng đợi trung bình với hai ngưỡng cực tiểu 𝑚𝑖𝑛𝑡ℎ và cực đại 𝑚𝑎𝑥𝑡ℎ.
Nếu chiều dài hàng đợi trung bình nhỏ hơn 𝑚𝑖𝑛𝑡ℎ thì không có gói nào bị đánh dấu (hay xác suất đánh dấu bằng 0). Khi chiều dài hàng đợi trung bình lớn hơn 𝑚𝑎𝑥𝑡ℎ thì tất cả các gói đến đều bị đánh dấu (hay xác suất đánh dấu bằng 1) và trên thực tế các gói này bị loại bỏ. Khi chiều dài hàng đợi trung bình nằm trong khoảng 𝑚𝑖𝑛𝑡ℎ và 𝑚𝑎𝑥𝑡ℎ thì mỗi gói đến đều được đánh dấu bằng một xác suất 𝑝𝑎 ∈ [0, 𝑚𝑎𝑥𝑝 ] được xác định theo công thức (1.5) sau: kˆ minth pb max p (1.4) maxth minth pb pa (1.