Trong phần dưới đây, thuật toán ước lượng tốc độ thực hiện trong router biên và thuật toán giảm gói thực hiện trong router lõi được nói đến. Nhiều chi tiết về CSFQ, chẳng hạn, giả mã cho thuật toán dùng trong router biên và lõi hay mở rộng cơ cấu CSFQ cơ bản, có thể tìm thấy trong [8] Ước lượng tốc độ mỗi luồng CSFQ trong router biên. Trong router biên tốc độ ước lượng i r ˆ của luồng i được cập nhật mỗi khi gói mới của luồng này đến. Ước lượng tốc độ luồng được thực hiện bằng cách dùng sự ước lượng dựa trên chuẩn hàm mũ. Với )(k i t và )(k i l lần lượt là thời gian đến (arrival time) và độ dài gói k của luồng i. Sau đó, i r ˆ được cập nhật như sau: old i KT k i k i KT new i re T l er k i k i ˆ 1 ˆ / )( )( / )()( (3.14) với )1()()( k i k i k i ttT và giá trị không đổi K. Mỗi gói của luồng i được dán nhãn với i r ˆ cập nhật mới nhất ii rlabel ˆ (3.15) Bổ sung vào sự ước lượng tốc độ mỗi luồng, thuật toán giảm gói của router lõi CSFQ được thực hiện trong router biên. Thuật toán giảm gói CSFQ trong router lõi Trong luồng lưu lượng, tốc độ đến tổng n luồng trong tuyến đơn của router lõi là: n i i rA 1 (3.16) Mỗi luồng đó phải sử dụng tốc độ phân bổ công bằng với tốc độ đường ra C của router lõi được khởi tạo: n i i rC 1 ,min (3.17) Khi các luồng được đóng gói, A và phải được ước lượng bởi A ˆ và ˆ . Sau đó tốc độ lưu lượng tổng được phép của router lõi có thể được ước lượng: n i i rF 1 ˆ , ˆ min ˆ (3.18) Tổng tốc độ đến router lõi được ước lượng dựa vào hàm mũ trung bình: old KTKT Ae T l e ˆ 1A ˆ // new (3.19) với thời gian đến T giữa gói trước và gói hiện tại và giá trị hằng số K . Đẳng thức dạng tương tự được dùng để ước lượng tốc độ lưu lượng tổng F ˆ cho phép bởi router. Nếu CA ˆ trong tất cả các khoảng K c , đường truyền được giả thiết bị tắc nghẽn. Nếu CA ˆ trong tất cả các khoảng K c , đường truyền giả thiết là không bị tắc nghẽn. Giá trị mới cho tốc độ phân bổ bình đẳng ước lượng ˆ chỉ được tính sau một khoảng mà trong đó đường truyền được phân loại thành bị tắc nghẽn và không tắc nghẽn. Nếu đường truyền bị tắc nghẽn thì ˆ được cập nhật như sau: oldnew F C ˆ . ˆ ˆ (3.20) Nếu đường truyền không tắc nghẽn thì new ˆ được thiết lập bằng tốc độ lớn nhất của luồng tích cực bất kỳ, tức là, đến nhãn lớn nhất trong gói, trong suốt khoảng thời gian K c . Thêm vào đó, hai phỏng đoán được dùng để giới hạn sự dao động giữa các tính toán ˆ liên tiếp nhau. Sau mỗi khi hàng bị tràn, ˆ bị giảm bởi 1 phân số nhỏ cố định, chẳng hạn, 0.01. Để tránh sự điều chỉnh lại, giảm ˆ phải giới hạn bởi 0.25 giá trị trước đó. ˆ khi đó được dùng để tính toán xác suất giảm gói của các luồng. Với luồng i, mỗi bit đang đến bị giảm trong router lõi với xác suất: i i r P ˆ ˆ 1,0max (3.21) Nếu các gói trong luồng i bị giảm, tốc độ mới i r của luồng i thay đổi đến xấp xỉ ˆ , khi tốc độ đến của luồng i tại router lõi hay biên tiếp theo là xấp xỉ ˆ . Do đó, các gói trong luồng i phải được dán nhãn lại với: old i new i labellabel , ˆ min (3.22) Do đó, sau khi gói đi qua router biên ở phía nhận của luồng đó nhãn của gói chứa tốc độ luồng hiện tại mà thành phần mạng CSFQ đã cung cấp. Thông tin này có thể được truyền đến phía nhận và truyền trở lại phía gởi để điều chỉnh tải mà phía gởi đặt vào mạng. Nhưng CSFQ không cung cấp cơ cấu phản hồi chống tắc nghẽn rõ. Chỉ có gói bị mất trong router lõi và biên của phần mạng có khả năng CSFQ được dùng để góp phần khai báo ẩn cho phía gởi về tắc nghẽn (đang đe dọa) trong 1 đoạn mạng. 3.3.4.2 FBA-TCP Phân bổ băng thông hợp lý cho TCP (FBA-TCP) [14] (Fair Bandwidth Allocation for TCP) là một phương pháp điều khiển lưu lượng TCP dựa trên thông tin phản hồi về mạng được cung cấp bởi CSFQ FBA-TCP dùng cơ cấu CSQB miêu tả trong phần trước để cải thiện điều khiển chống tắc nghẽn trong kết nối TCP. FBA-TCP làm việc như sau: trong router biên của vùng mạng (trong hình 3.3) FBA-TCP dùng thuật toán giống CSFQ để ước lượng tốc độ luồng và dán nhãn gói trong luồng với tốc độ luồng ước lượng. Trong mỗi router biên và lõi trong vùng mạng tốc độ phân bổ bình đẳng được ước lượng và các gói của luồng bị giảm theo đẳng thức (3.21) nếu nhãn của chúng lớn hơn phân bổ cân bằng. Hình 3.4 Kết nối TCP đơn đi qua vùng router có khả năng CSFQ. Đặc tính mới của FBA-TCP là router biên ở phía nhận của luồng không xoá nhãn khỏi mỗi gói. Router biên đặt nhãn của gói vào trong mào đầu Ipv4 (hay mào đầu mở rộng của Ipv6) để truyền trong suốt nhãn này đến TCP phía nhận qua phần mạng không có khả năng CSFQ. Nếu hệ thống đầu cuối phía nhận của kết nối TCP nhận gói với nhãn l hay tốc độ ước lượng r ˆ , nó gởi giá trị này đến TCP phía nhận để tính cửa sổ gởi mới mà TCP phía gởi cho phép. Cửa sổ gởi được phép= rRTT ˆ . (3.23) sử dụng RTT ước lượng. Do khả năng song công của TCP, tức là, TCP phía nhận đồng thời là TCP phía gởi và ngược lại, nó giả thiết rằng TCP phía nhận có sự ước lượng RTT thích hợp trong đường dẫn mạng. Giá trị nhỏ nhất của cửa sổ gởi và số bytes hiện thời mà TCP phía nhận có thể được nhận được từ TCP phía gởi là cửa sổ thông báo phía nhận của TCP phía nhận. Cửa sổ thông báo phía nhận này được gởi đến TCP phía gởi trong xác nhận TCP tiếp theo. 3.3.5 QS-TCP (Quick Start TCP): QS-TCP (Quick Start TCP) đã được đề xuất năm 2002 bởi Jain và Floyd trong [3] như là một cách để tăng cửa sổ khởi tạo của một kết nối TCP. Trong thủ tục thiết lập kết nối TCP (TCP SYN và TCP SYN/ACK) phía gởi TCP chèn một yêu cầu bắt đầu nhanh (Quick Start Request) vào gói TCP, đó chính là tốc độ khởi tạo mà phía gởi muốn truyền. Mỗi bộ định tuyến dọc theo đường truyền xác nhận liệu nó có thể đáp ứng yêu cầu lưu lượng mới này. Nếu nó có thể đáp ứng yêu cầu mới này thì nó sẽ truyền yêu cầu QS đi, ngược lại nó sẽ giảm tốc độ dữ liệu đến một giá trị phù hợp. Để làm được điều đó bộ định tuyến cần thiết phải giám sát sự khác nhau của trọng tải hiện tại và dung lượng sẵn sàng và những yêu cầu QS trong thời gian gần đây. Khi yêu cầu QS (QS request) tới TCP phía nhận, một đáp ứng QS (QS response) tương ứng được tạo ra và chèn vào một thông báo nhận được gởi trở về phía gởi. Nhận được đáp ứng QS, phía gởi điều chỉnh cửa sổ chống tắc nghẽn khởi tạo theo tốc độ dữ liệu chỉ ra trong đáp ứng QS. Để tránh lưu lượng bùng phát, phía gởi tăng dữ liệu từng bước vào cửa sổ khởi tạo. QSTCP đòi hỏi tất cả các bộ định tuyến, phía gởi và phía nhận hỗ trợ khởi tạo nhanh (QS). 3.4 Đánh giá chung Các phương pháp này được dùng trong mạng cơ sở IP tương lai dựa vào mức độ mong muốn tương thích với các phương thức truyền TCP và UDP triển khai hiện nay trong hệ thống đầu cuối. XCP, chẳng hạn, dường như là phương pháp mạnh nhất để cải thiện toàn bộ hiệu suất của mạng, ít nhất nếu mạng là mạng tốc độ cao. Nhưng XCP đòi hỏi đòi hỏi sự thích ứng của phương thức truyền thông trong hệ thống đầu cuối. Tương phản với XCP, (F)EWA không cần bất kì sự thay đổi nào trong hệ thống đầu cuối. Nhưng (F)EWA không mạnh như XCP, cửa sổ gởi của TCP phía gởi không thể được điều khiển chính xác như XCP. CSFQ không cung cấp phản hồi rõ cho (TCP) phía gởi. Nó phát triển chủ yếu để tăng tính bình đẳng giữa các luồng trong (phần) mạng. Do đó, độ gia tăng hiệu suất khá bị giới hạn. Nhưng FBA-TCP như là sự mở rộng của CSFQ có thể là ứng cử tiềm năng cho sự cải thiện điều khiển chống tắc nghẽn trong mạng cơ sở IP. Bất lợi chính của FBA-TCP là các router biên trong phần mạng có khả năng CSFQ phải chứa thông tin mỗi luồng để dán nhãn gói của luồng. Phương pháp này có thể chỉ làm việc nếu số luồng đi qua router biên là khá ít. Sự khác nhau của XCP và FBA-TCP là XCP dán nhãn các gói trong giao thức truyền của hệ thống đầu cuối trong khi FBA-TCP dán nhãn (lại) các gói trong các router của phần mạng có khả năng CSFQ. Khuyết điểm chính của XCP là nó có sự phức tạp lớn so với các phương pháp khác. Thêm vào đó, XCP không thể triển khai dần dần trong phần mạng. Nếu ít nhất 1 router hay hệ thống đầu cuối trong đường dẫn mạng không thể đương đầu với XCP, XCP không được thực hiện và TCP chuẩn được dùng thay cho nó. Nhưng XCP hứa hẹn hệ số hiệu suất mong muốn cao nhất so với các phương pháp - ít nhất trong mạng tốc độ cao. 3.5 Kết luận chương Chương này đã hệ thống các phương pháp điều khiển tắc nghẽn. Các phương pháp đó có thể triển khai dần và liệu hiệu suất của nó có giảm khi triển khai như thế không. Mỗi phương pháp hoạt động theo một nguyên tắc khác nhau và phù hợp với từng hoàn cảnh khác nhau. Theo ưu tiên, ứng cử viên đầy hứa hẹn cho việc điều khiển tắc nghẽn trong mạng cơ sở IP là XCP. Do đó, nó nên được nghiên cứu chi tiết trong các viễn cảnh và lưu lượng tải thay đổi khác nhau. Phần tiếp theo sẽ mô phỏng điều khiển tắc nghẽn dùng thuật toán tăng giảm trong các giao thức. Chương 4 CHƯƠNG TRÌNH MÔ PHỎNG ĐIỀU KHIỂN TẮC NGHẼN DÙNG THUẬT TOÁN TĂNG GIẢM 4.1 Giới thiệu chương Nội dung chương 4 mô phỏng thuật toán tăng giảm. Mục đích chính là phân tích sự hội tụ đến tính bình đẳng và hiệu quả của các thuật toán. Ở đây ta chỉ đề cập đến thuật toán tăng giảm tuyến tính, từ đó thấy rằng AIMD là thuật toán đảm bảo hội tụ đến tính hiệu quả và bình đẳng so với các thuật toán tăng giảm khác. Mô phỏng cho thuật toán này được phân tích trong 4.3.1. Ngoài ra chương 4 còn mô phỏng tính bình đẳng, hiệu quả của giao thức điều khiển tắc nghẽn TCP và XCP. Trên thực tế tính bình đẳng, hiệu quả còn chịu nhiều ảnh hưởng khác nhau như thời gian vòng truyền RTT không đồng nhất, sử dụng các dịch vụ khác nhau, số lượng luồng đang truyền dữ liệu, Công cụ mô phỏng là NS2, kết quả mô phỏng là các đồ thị và minh họa mạng NAM được phân tích trong 4.3.2. 4.2 Phương pháp và công cụ mô phỏng 4.2.1 Phương pháp phân tích Trong đề tài này, sinh viên chọn phương pháp mô phỏng trên máy tính với CAVT và NS-2 (Network Simulation v.2). CAVT [12] là ứng dụng Java nhỏ được Michael Welzl xây dựng dựa trên biểu đồ vectơ Chiu/Jain [7] đã được đề cập trong chương 2, nó cung cấp giao diện người dùng mà ta có thể thiết lập điểm bắt đầu và quan sát quỹ đạo tương ứng bằng cách kích chuột vào biểu đồ. NS-2 là phần mềm mã nguồn mở, mô phỏng các sự kiện rời rạc nhằm mục đích nghiên cứu mạng, nó hỗ trợ các giao thức mạng như TCP, UDP, hoạt động của những tài nguyên mạng như FPT, Telnet, Web, CBR và VBR, các cơ chế quản lý hàng đợi như Drop Tail, RED và CBR, các thuật toán định tuyến NS-2 được viết bằng C++ và OTcl. Hình 4.1 Tổng quan về NS dưới góc độ người dùng OTcl Script Kịch bản OTcl Simulation Program Chương trình Mô phỏng . muốn cao nhất so với các phương pháp - ít nhất trong mạng tốc độ cao. 3.5 Kết luận chương Chương này đã hệ thống các phương pháp điều khiển tắc nghẽn. Các phương pháp đó có thể triển khai. FBA-TCP dùng cơ cấu CSQB miêu tả trong phần trước để cải thiện điều khiển chống tắc nghẽn trong kết nối TCP. FBA-TCP làm việc như sau: trong router biên của vùng mạng (trong hình 3.3) FBA-TCP. gởi về tắc nghẽn (đang đe dọa) trong 1 đoạn mạng. 3.3.4.2 FBA-TCP Phân bổ băng thông hợp lý cho TCP (FBA-TCP) [14] (Fair Bandwidth Allocation for TCP) là một phương pháp điều khiển lưu