XCP (Explicit Control Protocol)

Một phần của tài liệu BÁO CÁO ĐỀ TÀI CÔNG NGHỆ VỆ TINH ĐIỀU KHIỂN TẮC NGHẼN TRONG NGN (Trang 51)

CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TẮC NGHẼN

3.3.3XCP (Explicit Control Protocol)

XCP là giao thức truyền thông liên quan đến TCP. Không như TCP, XCP cung cấp phản hồi chống tắc nghẽn rõ từ router có khả năng XCP đến XCP phía gởi. Do đó, XCP phía gởi có thể điều khiển cửa sổ gởi thích hợp hơn để đạt được tính hiệu quả, bình đẳng, điều khiển tắc nghẽn có thể mở rộng qui mô và ổn định trong toàn mạng. Thuật toán điều khiển chống tắc nghẽn phản hồi trong router có khả năng XCP được phân thành 2 phần: thuật toán hiệu quả và bình đẳng. Với phương pháp này, tính hiệu quả và tính bình đẳng giữa các kết nối XCP trong 1 router có thể được quản lý 1 cách tách biệt nhau.

3.3.3.1 Mào đầu chống tắc nghẽn

Mỗi gói dữ liệu của 1 kết nối XCP mang theo phần mào đầu chống tắc nghẽn (CH) hình 3.2. Hai giá trị đầu tiên, Hcwnd và Hrtt, được thiết lập bởi XCP phía gởi là cửa sổ chống tắc nghẽn hiện thời và RTT ước lượng hiện thời và giữ nó không đổi trong suốt quá trình truyền thông. Giá trị thứ ba, Hfeedback, được dùng cho phản hồi chống tắc nghẽn của router. Nó được khởi tạo bởi XCP phía gởi đến giá trị tăng theo yêu cầu cửa sổ chống tắc nghẽn và có thể được điều chỉnh bởi router dựa vào 2 giá trị đầu và thuật toán điều khiển tính hiệu quả và bình đẳng thực hiện trong router.

Hcwnd Hrtt Hfeedback

Hình 3.2. Header chống tắc nghẽn trong gói dữ liệu/xác nhận XCP

Nếu XCP phía gởi có tốc độ gởi yêu cầu , giá trị khởi tạo cho Hfeedback trong mào đầu có thể tính toán như sau:

(3.5) Trong gói đầu tiên của kết nối XCP, Hfeedback được khởi tạo bằng 0, khi XCP phía gởi có RTT ước lượng hiện thời không hợp lệ trong đường dẫn.

XCP phía nhận sao chép mào đầu chống tắc nghẽn của gói dữ liệu đến sang xác nhận ACK và gởi xác nhận bao gồm mào đầu chống tắc nghẽn đến XCP phía gởi. Sau khi xác nhận ACK đến nơi, XCP phía gởi sửa lại cửa sổ chống tắc nghẽn mới theo phản hồi router chứa trong mào đầu chống tắc nghẽn:

(3.6) với s là kích cỡ gói.

3.3.3.2 Bộ điều khiển chống tắc nghẽn

Như đã đề cập, bộ điều khiển chống tắc nghẽn trong router có khả năng XCP được chia thành điều khiển hiệu quả (EC) và điều khiển bình đẳng (FC). Nhiệm vụ của bộ điều khiển hiệu quả là tận dụng kết nối lớn nhất, tốc độ mất gói nhỏ nhất và hàng của đường dẫn ổn định. Chỉ đề cập đến EC khi lưu lượng đường truyền ổn định và không quan tâm sự bình đẳng giữa các luồng có lưu lượng ổn định. Đây là nhiệm vụ của bộ điều khiển bình đẳng. Dùng thông tin phản hồi chống tắc nghẽn trên mỗi kết nối hiện thời được tính toán bởi EC, FC tính thông tin phản hồi chống tắc nghẽn trên mỗi gói hiện thời cho mỗi luồng. Thông tin chống tắc nghẽn được chứa trong trường Hfeedback của mào đầu chống tắc nghẽn trong tất cả các gói và truyền lại cho mỗi XCP phía gởi.

Với mỗi kết nối, router duy trì bộ định thời điều khiển được thiết lập xấp xỉ đến giá trị RTT ước lượng trung bình của XCP phía gởi trên kết nối đó. Sau khi hết thời gian chờ (time-out) của bộ định thời điều khiển mỗi luồng, EC và FC được dùng để tính giá trị hiện thời của phản hồi điều khiển chống tắc nghẽn cho luồng XCP đi qua đường dẫn này. Các thuật toán điều khiển chống tắc nghẽn và điều

khiển bình đẳng của bộ định tuyến XCP có đặc điểm là không đòi hỏi thông tin trạng thái của mỗi luồng. Thay vào đó, bộ định tuyến khai thác thông tin lưu lượng tổng bằng cách tích luỹ thông tin từ tất cả các gói truyền qua bộ định tuyến trong một khoảng thời gian nhất định.

Bộ điều khiển hiệu quả (EC)

Mục đích của bộ điều khiển hiệu quả là tăng tính sử dụng đường truyền trong khi tối thiểu hóa tốc độ mất gói và hàng đợi ổn định. Nó chỉ xét lưu lượng tổng và không chú ý đến tính hiệu quả cũng như luồng mà gói có liên quan.

EC tính số byte mà lưu lượng tổng tăng hay giảm theo mong muốn trong khoảng thời gian điều khiển (RTT trung bình). Phản hồi tổng (tính theo byte) được tính trong mỗi khoảng điều khiển:

(3.7) Với d là RTT ước lượng trung bình cho kết nối, S là băng thông dự trữ (spare bandwidth) của đường truyền được định nghĩa là hiệu số giữa tốc độ lưu lượng vào và dung lượng đường truyền. Và Q là kích cỡ hàng ổn định của đường truyền (tính theo bytes) với kích cỡ hàng không tiêu hao trong thời gian trễ truyền (đi và về). Q được ước tính như là giá trị nhỏ nhất trong tất cả kích cỡ hàng bởi vài gói. α và β là tham số hằng có giá trị lần lượt là và . Phản hồi chống tắc nghẽn tổng phải tỉ lệ với S, bởi nếu đường truyền sử dụng khôg đúng mức (S>0) hay tắc nghẽn (S<0), thông tin phản hồi dương hay âm phải được gởi đến XCP phía gởi. Nhưng phải tỉ lệ với –Q để tiêu hao hàng. Chẳng hạn, nếu tốc độ lưu lượng đầu vào bằng dung lượng đường truyền, tức là, S = 0, phản hồi chống tắc nghẽn tổng phải là giá trị âm để giảm số gói tại hàng. Đẳng thức

(3.7) đảm bảo rằng phản hồi chống tắc nghẽn tổng của đường truyền tỉ lệ với S và –Q.

Để đạt được tính hiệu quả, chúng ta phân bố phản hồi tổng đến từng gói qua Hfeedback. EC chỉ phân phối với trạng thái tổng, nó không quan tâm đến gói nào có phản hồi và mỗi luồng riêng thay đổi cửa sổ chống tắc nghẽn bao nhiêu. Tất cả các yêu cầu của EC là lưu lượng tổng phải thay đổi 1 lượng trong khoảng thời gian điều khiển. Làm thế nào chúng ta chia phản hồi chính xác giữa các gói (và giữa các luồng) chỉ ảnh hưởng đến tính bình đẳng, và đó là công việc của bộ điều khiển bình đẳng.

Bộ điều khiển bình đẳng XCP

Công việc của bộ điều khiển bình đẳng (FC) là chia nhỏ phản hồi đến các gói riêng rẻ để đạt được tính bình đẳng. FC dựa vào nguyên lý giống như TCP dùng để hội tụ đến bình đẳng, gọi là tăng cộng giảm nhân (AIMD). Do đó, chúng ta muốn tính toán phản hồi trên mỗi gói theo nguyên lý:

- Nếu >0, lưu lượng của tất cả các luồng tăng giống nhau.

- Nếu <0, lưu lượng của một luồng giảm tỉ lệ với lưu lượng hiện thời. Nguyên lý này bảo đảm độ hội tụ đến tính bình đẳng liên tục nếu khác 0. Nhưng nếu tính hiệu quả là gần tối ưu, tức là, , sự hội tụ có thể không được đảm bảo. Để ngăn ngừa điều này, khái niệm băng thông xáo trộn (bandwidth shuffling) được dùng trong mỗi khoảng điều khiển, một lượng nhỏ lưu lượng h với:

(3.8) với hằng số và lưu lượng vào y trong RTT trung bình, được phân bố lại theo nguyên lý AIMD trên tất cả các luồng.

Với luồng phản hồi chống tắc nghẽn mỗi gói H_feedbacki có thể được xem như là sự kết hợp tuyến tính của phản hồi dương pi và phản hồi âm ni:

(3.9) Trong khoảng điều khiển đơn, pi và ni được tính toán bằng cách dùng các giá trị

(3.10)

và (3.11)

pi và ni có thể được tính toán như sau:

(3.12) (3.13) Trong XCP, bộ điều khiển hiệu quả và bình đẳng được tách riêng. Đặc biệt, bộ điều khiển hiệu quả EC dùng quy tắc MIMD, tăng mức lưu lượng tỉ lệ với băng thông dự trữ trong hệ thống (thay vì tăng 1 MSS/RTT/luồng như TCP). Điều này cho phép XCP nhanh chóng có được băng thông dự trữ dương ngay cả trên đường truyền dung lượng lớn. Bộ điều khiển tính bình đẳng FC dùng quy tắc AIMD, hội tụ đến tính bình đẳng. Do đó, việc tách cho phép mỗi bộ điều khiển dùng các quy tắc điều khiển thích hợp.

Thông thường, nếu XCP được dùng thì mất gói là rất hiếm. Nhưng nếu mất gói xảy ra, quá trình phát lại trong XCP phía gởi giống trong TCP. (adsbygoogle = window.adsbygoogle || []).push({});

Thực hiện XCP trong hệ thống đầu cuối là tương đối đơn giản. Chỉ thay đổi 1 ít trong mã nguồn của TCP phía gởi và TCP phía nhận để làm cho chúng có khả năng XCP. Trang bị router với khả năng XCP khá tốn kém, sự phức tạp của XCP trong router là tương đối cao. Tuy nhiên, XCP là ứng cử đầy hứa hẹn trong việc cải thiện điều khiển chống tắc nghẽn trong mạng cơ sở IP trong tương lai.

XCP có thể phát triển 1 cách nhanh chóng trong mạng cơ sở IP. Hai trường hợp được phân biệt thành:

- Vài router và phía nhận không có khả năng XCP.

- Sự kết hợp kết nối XCP và không XCP cùng tồn tại trong mạng.

Trong trường hợp đầu tiên, XCP phía gởi phải kiểm tra rằng tất cả các router trong đường truyền và phía nhận có khả năng XCP. Điều này có thể thực hiện với cơ cấu XCP và IP hiện hành. Nếu chúng không có khả năng XCP, XCP phía gởi không thể sử dụng giao thức XCP và phải chuyển mạch sang giao thức truyền thông theo lối cổ truyền, chẳng hạn, TCP. Trong trường hợp thứ 2, router có khả năng XCP phải được xử lí bình đẳng 2 loại lưu lượng. Để thực hiện, router có khả năng XCP có thể phân biệt giữa lưu lượng XCP và không XCP và xếp hàng chúng 1 cách tách biệt. Nó có thể thực hiện được với cơ cấu xếp hàng chờ xử lý cân bằng thích nghi động theo phương pháp TCP-Friendly Rate Control (TFRC).

3.3.4 FBA-TCP

3.3.4.1 CSFQ (Core-Stateless Fair Queueing)

Ý tưởng của CSFQ (Core-Stateless Fair Queueing) là phân đoạn mạng trong một vùng router và phân biệt giữa biên và lõi trong 1 vùng.

Hình 3.3. Vùng router biên (E) và lõi ( C) với khả năng CSFQ

Mỗi router biên ước lượng tốc độ mỗi luồng cho mọi gói đi qua router biên trong mạng có khả năng CSFQ. Để tính toán, các router biên cần chứa trạng thái mỗi luồng. Tốc độ ước lượng mỗi luồng được dùng để dán nhãn gói bằng cách chèn tốc độ ước lượng vào trong mào đầu gói của mỗi luồng. Router lõi được trang bị với xếp hàng FIFO và không có chứa trạng thái luồng bất kỳ nào. Đặc tính này của router lõi được gọi là core-stateless. Router lõi thực hiện thuật toán giảm xác suất cho gói đến dựa vào lưu lượng tổng và thông tin chứa trong nhãn của gói. Mục đích chính của thuật toán giảm gói theo xác suất là đạt được sự phân bổ băng thông hợp lý giữa các luồng đi qua router lõi.

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 lượng tốc độ mỗi luồng CSFQ trong router biên.

Trong router biên tốc độ ước lượng 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 và lần lượt là thời gian đến (arrival time) và độ dài gói k của luồng i. Sau đó, được cập nhật như sau:

(3.14)

với và giá trị không đổi K. Mỗi gói của luồng i được dán nhãn với cập nhật mới nhất:

(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à:

(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:

(3.17) Khi các luồng được đóng gói, A và phải được ước lượng bởi và . Sau đó tốc độ lưu lượng tổng được phép của router lõi có thể được ước lượng:

Tổng tốc độ đến router lõi được ước lượng dựa vào hàm mũ trung bình:

(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ố . Đẳng thức dạng tương tự được dùng để ước lượng tốc độ lưu lượng tổng cho phép bởi router.

Nếu trong tất cả các khoảng Kc, đường truyền được giả thiết bị tắc nghẽn. Nếu trong tất cả các khoảng Kc, đườ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:

(3.20) Nếu đường truyền không tắc nghẽn thì đượ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 Kc. 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:

(3.21) Nếu các gói trong luồng i bị giảm, tốc độ mới của luồng i thay đổi đến xấp xỉ (adsbygoogle = window.adsbygoogle || []).push({});

, 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:

(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) (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 hay tốc độ ước lượng , 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= (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.

Một phần của tài liệu BÁO CÁO ĐỀ TÀI CÔNG NGHỆ VỆ TINH ĐIỀU KHIỂN TẮC NGHẼN TRONG NGN (Trang 51)