2.4.1 Kỹ thuật đo lưu lượng và màu hóa lưu lượng
Với giải pháp thực hiện hạn chế lưu lượng, bộ định tuyến sử dụng kỹ thuật đo lưu lượng nhằm xác định tốc độ lưu lượng đầu vào có phù hợp với tốc độ thực tế hay không. Các khối đo lưu lượng thường sử dụng mô hình toán gọi là gáo rò token để xác định và hạn chế tốc độ lưu lượng. Mô hình gáo rò token gồm hai thành phần: Token mang ý nghĩa về sự cho phép một số lượng bit được đưa vào mạng; gáo rò là nơi lưu trữ các token, độ sâu của gáo thể hiện các kích thước của gói.
Đo lưu lượng và màu hoá lưu lượng gồm hai dạng sau: Đánh dấu 3 màu tốc độ đơn srTCM (single rate Three Color Marker) và đánh dấu 3 màu hai tốc độ trTCM (two rate Three Color Marker).
(i) Đánh dấu 3 màu tốc độ đơn
Kỹ thuật đánh dấu 3 màu tốc độ đơn (srTCM) được định nghĩa trong RFC 2696 [10], nó được sử dụng để đặt chính sách cho một luồng đơn tốc độ cùng CIR. srTCM đo tốc độ lưu lượng và dựa trên kết quả đo đánh dấu các gói theo 3 màu là xanh, vàng và đỏ thể hiện cấp độ tương thích lưu lượng theo thứ tự giảm dần.
srTCM có hai chế độ điều hành: Chế độ mù màu giả thiết các gói tin đến chưa được đánh dấu màu và chế độ rõ màu giả thiết các gói tin IP đến đã được đánh dấu màu từ thực thể phía trước. Mục tiêu của srTCM là đảm bảo tốc độ lưu lượng trung bình dài hạn của người sử dụng trong tốc độ thông tin cam kết CIR.
Mục tiêu của chính sách là xác định các luồng lưu lượng vi phạm các tốc độ thoả thuận trước và đánh dấu các gói tin để chuyển chúng đi nên khoảng thời gian dài hạn không tương thích với khoảng thời gian áp dụng chính sách. Do đó các gói sẽ chuyển đi ngay mà không lưu tại bộ định tuyến một thời gian dài để chờ CIR được xác định dựa trên thời gian dài hạn. Vì vậy, áp dụng chính sách phải dựa trên một khoảng thời gian ngắn, sử dụng hai tham số phụ là CBS và EBS thay cho CIR.
Hình 2.13. Khoảng thời gian CBS trong CIR của tốc độ lưu lượng đầu vào đơn
Đánh dấu 3 màu tốc độ đơn srTCM gồm hai kiểu gáo token: gáo token C và gáo token E tại hình 2.14(a) như sau:
Hình 2.14. Chế độ mù màu srTCM với gáo C và gáo E
Độ sâu của gáo C là kích thước bùng nổ cam kết CBS, gáo C được khởi tạo đầy với số lượng token Tc=CBS. Độ sâu của gáo E là kích thước bùng nổ quá hạn EBS. Gáo E cũng được khởi tạo đầy với số lượng Te=EBS. Cả hai bộ đếm token Tc và Te được cập nhật tại tốc độ CIR, ví dụ tại các thời điểm 1/CIR giây.
Hình 2.14(b) chỉ ra phương pháp hoạt động của chế độ mù màu srTCM. Một gói không đánh dấu có kích thước B byte đến tại thời điểm t:
Đầu tiên, bộ đếm so sánh kích thước B với token hiện thời của gáo C (Tc). Nếu gáo C đủ chỗ (B ≤ Tc) thì gói được đánh dấu màu xanh, Tc sẽ giảm đi một lượng B (Tc:=Tc-B).
Nếu không đủ chỗ trong C (B> Tc) bộ đếm kiểm tra gáo thứ 2 (gáo E), nếu gáo E còn đủ chỗ (B ≤ Te) gói sẽ được đánh dấu màu vàng và Te:=Te-B. Khi đó gáo C không sử dụng nên Tc không thay đổi trạng thái.
Cuối cùng, nếu gáo E cũng không đủ chỗ (B>Te), gói sẽ được đánh dấu màu đỏ và cả Tc và Te không thay đổi trạng thái.
Thuật toán cập nhật của hai gáo như sau:
Tại khoảng thời gian cập nhật, nếu gáo C không đầy (Tc<CBS) thì Tc sẽ tăng lên 1 (Tc:=Tc+1).
Nếu gáo C đầy mà gáo E không đầy (Tc= CBS và Te<EBS) thì Tc không thay đổi và Te tăng lên 1 (Te:=Te+1).
Nếu cả hai gáo đầy thì không có gáo nào thay đổi trạng thái.
Chế độ hoạt động rõ màu của srTCM, nó tương tự như trong chế độ mù màu:
Hình 2.15. Chế độ hoạt động rõ màu srTCM
Các gói màu xanh kích thước B bytes đến tại thời điểm t.
Vẫn giữ màu xanh nếu Tc ≥ B và Tc:=Tc-B.
Được đánh dấu màu vàng nếu Tc ≤ B ≤Te và Te:=Te-B.
Đánh dấu màu đỏ nếu Te<B và không có sự thay đổi của Te và Tc.
Các gói màu vàng có thể giữ nguyên màu vàng hoặc chuyển sang màu đỏ và không thể chuyển sang màu xanh. Các gói màu đỏ luôn giữ màu đỏ và không bao giờ được chuyển lên cấp độ cao hơn (màu xanh hoặc màu vàng).
(ii) Đánh dấu 3 màu hai tốc độ
Bộ đánh dấu 3 màu hai tốc độ được định nghĩa bởi RFC 2698 [10]. trTCM được sử dụng cho cả tốc độ thông tin đỉnh PIR và tốc độ thông tin cam kết CIR. Giống như srTCM, trTCM có hai chế độ hoạt động: mù màu và rõ màu. Đánh dấu 3 màu hai tốc độ được cấu hình bởi các chế độ hoạt động và các tham số PIR, CIR, PBS và CBS.
trTCM hoạt động với hai gáo rò: Gáo rò token C và gáo rò token P. Gáo rò C được sử dụng để điều khiển CIR và gáo dò P điều khiển PIR. Gáo rò C trong trTCM tương tự như trong srTCM, gáo rò P có độ sâu cân bằng với kích thước bùng nổ đỉnh PBS và được cập nhật tại tốc độ PIR.
Hình 2.16. Gáo rò C, P và chế độ hoạt động mù màu của trTCM
Giả thiết các gói không màu có kích thước B đến tại thời điểm t. Gói tin kích thước B sẽ so sánh với token trong gáo rò P.
Nếu gáo P không đủ chỗ (B > Tp), gói tin sẽ được đánh dấu màu đỏ bất kể C có đủ hay không.
Nếu gáo P đủ chỗ (Tp ≥ B), gói kích thước B được so sánh với bộ đếm token trong gáo C, Tc.
Nếu (Tc ≥ B), gói được đánh dấu màu xanh và Tp := Tp - B và Tc := Tc-B.
Nếu (Tc < B) gói được đánh dấu màu vàng và Tp := Tp-B.
Đối với chế độ hoạt động rõ màu của trTCM cũng giống như chế độ hoạt động của srTCM, các gói đến không thể cải thiện cấp độ tốt hơn (luôn luôn bằng hoặc nhỏ hơn cấp độ đưa tới). Giả thiết các gói đã được đánh dấu màu tới:
Nếu gói đã được đánh dấu màu đỏ, gói sẽ được đánh dấu lại màu đỏ và các gáo rò được bỏ qua.
Nếu gói đã được đánh dấu màu vàng, nó được đánh dấu màu đỏ khi B ≤ Tp và Tp:=Tp-B; được đánh dấu màu vàng nếu Tp>B.
Nếu gói đã được đánh dấu màu xanh, nó được chuyển sang màu: Đỏ, nếu Tp < B;
Vàng, nếu Tc<B ≤ Tb và Tp:=Tp-B;
Xanh, nếu Tc ≥ B, Tp ≥ B và Tc:=Tc-B, Tp:=Tb-B.
2.4.2 Kỹ thuật quản lý hàng đợi tích cực
Có 3 kiểu cơ bản trong kỹ thuật quản lý hàng đợi tích cực là: RED, WRED và ECN.
i) Kỹ thuật loại bỏ sớm ngẫu nhiên RED
Hình 2.18 thể hiện sơ đồ nguyên lý hoạt động của kỹ thuật loại bỏ sớm ngẫu nhiên: phát hiện trên tập tắc nghẽn và loại bỏ gói ngẫu nhiên từ bộ đệm.
Hình 2.18. Sơ đồ nguyên lý hoạt động của RED
Chức năng của module dự đoán tắc nghẽn là đánh giá hành vi lưu lượng trong bộ đệm theo thời gian và phát hiện khả năng tắc nghẽn. Tiếp cận đơn giản nhất là dựa vào chiều dài hàng đợi (N) và xác định trạng thái tắc nghẽn dựa trên cơ sở hàng đợi đầy (so sánh với kích thước bộ đệm (B)).
Một phương pháp khác sử dụng để dự đoán tắc nghẽn dựa trên thuật toán tính toán thời gian trung bình của hàng đợi, đầu ra của module dự đoán tắc nghẽn là chiều dài hàng đợi trung bình trọng số (nN). Mặc dù nó phản ánh độ dài hàng đợi hiện thời, nhưng (nN) không phải là chiều dài hàng đợi thực tế mà là phép đo cho hiện tượng tắc nghẽn. Gọi α là phần trăm (%) điền đầy bộ đệm được tính theo công thức sau:
N
n B
(2.3) Trong đó B là kích thước bộ đệm.
Hồ sơ loại bỏ gói là một phương pháp tham chiếu giữa % bộ đệm đầy và xác suất loại bỏ gói, khi α đạt một giá trị nào đó thì RED được kích hoạt, khi α đạt giá trị lớn nhất (<100%) thì xác suất loại bỏ gói =1. Cơ chế loại bỏ gói chuyển sang theo phương pháp cắt đuôi lưu lượng.
ii) Kỹ thuật loại bỏ gói sớm theo trọng số WRED
Kỹ thuật loại bỏ gói sớm theo trọng số WRED là kỹ thuật loại bỏ gói sớm RED với nhiều hồ sơ loại bỏ gói. Thay vì sử dụng một hồ sơ loại bỏ gói cho tất cả các hàng đợi, WRED sử dụng nhiều hồ sơ loại bỏ gói cho một hàng đợi.
iii) Thông báo tắc nghẽn tường minh ECN
Thông báo tắc nghẽn tường minh ECN được đề xuất từ 1999 trong RFC 2481 [10] như là một bổ sung trong kiến trúc IP, được ứng dụng cho các lưu lượng TCP. Trong ECN tắc nghẽn được thông tin tới các hệ thống cuối bằng cách đánh dấu trong trường chức năng đặc biệt của tiêu đề IP và TCP với các chỉ thị tắc nghẽn thay vì loại bỏ gói. Một thuật toán tương tự như trong kỹ thuật loại bỏ gói sớm được thực hiện để chỉ ra ngưỡng và thời điểm thông báo tắc nghẽn.
Hình 2.19. Hoạt động thông báo tắc nghẽn tường minh ECN
ECN yêu cầu đánh dấu trên cả hai tiêu đề IP và TCP, sử dụng 2 bit dự phòng trong tiêu đề TCP và 2 bit dự phòng trong tiêu đề IP. Hai bit dự phòng cuối cùng trong 8 bit của trường kiểu dịch vụ ToS trong tiêu đề IPv4 và 8 bit trường phân lớp lưu lượng trong IPv6 sử dụng để đánh dấu ECN.
2.4.3 Kỹ thuật lập lịch cho gói tin
Kỹ thuật lập lịch cơ bản sử dụng trong bộ định tuyến gồm có: Hàng đợi FIFO; Hàng đợi ưu tiên PQ; hàng đợi cân bằng FQ; hàng đợi quay vòng trọng số WRR; hàng đợi cân bằng trọng số WFQ và hàng đợi dựa theo lớp cân bằng trọng số CBQ.
i) Hàng đợi FIFO
Hàng đợi vào trước - ra trước FIFO là kỹ thuật hàng đợi ngầm định, các gói tin đến được đưa vào trong một hàng đợi đơn và được gửi ra đầu ra theo đúng thứ tự. FIFO đối xử với tất cả các gói theo cùng một cách, không cần sử dụng thuật toán điều khiển, vì
vậy nó rất thích hợp với mạng nỗ lực tối đa (Best effort). Mặt khác FIFO không thể cung cấp các dịch vụ phân biệt và tất cả các luồng lưu lượng đều bị suy giảm chất lượng khi có tắc nghẽn xảy ra.
ii) Hàng đợi ưu tiên PQ
Trong hàng đợi ưu tiên PQ, N hàng đợi được tạo ra với các mức ưu tiên từ 1 tới N. Thứ tự lập lịch được xác định bởi thứ tự ưu tiên và không phụ thuộc vào vị trí của gói tin. Các gói trong hàng đợi thứ j được xử lý khi không còn gói nào trong hàng đợi có thứ tự cao hơn (các hàng đợi từ 1 tới (j-1)).
Hình 2.20. Hàng đợi ưu tiên PQ
Hàng đợi ưu tiên có ưu điểm là cung cấp phương tiện đơn giản nhất để phân biệt lớp lưu lượng. Nhược điểm của hàng đợi ưu tiên là luôn hướng tới xử lý mức ưu tiên cao, nên các hàng đợi có mức ưu tiên thấp có thể không có cơ hội để gửi gói đi.
iii) Hàng đợi cân bằng FQ
Trong hàng đợi cân bằng FQ các gói tin đến được phân loại thành N hàng đợi. Mỗi một hàng đợi nhận 1/N băng thông đầu ra. Bộ lập lịch kiểm tra các hàng đợi theo chu kỳ và bỏ qua các hàng đợi rỗng. Mỗi khi bộ lập lịch tới một hàng đợi, một gói tin được truyền ra khỏi hàng đợi. Nếu một hàng đợi mới được thêm vào N hàng đợi có trước đó, bộ lập lịch tự động đặt lại băng thông theo thực tế bằng 1/(N+1). Đơn giản chính là ưu điểm của hàng đợi cân bằng.
Nhược điểm chính của hàng đợi cân bằng là:
Khi băng thông đầu ra được chia thành N hàng đợi 1/N, nếu các lớp lưu lượng đầu vào có yêu cầu băng thông khác nhau, thì FQ không thể phân bố lại được băng thông của đầu ra để đáp ứng yêu cầu đầu vào.
Khi kích thước gói không được quan tâm trong FQ, kích thước các gói sẽ ảnh hưởng đến phân bố băng thông thực tế, thậm chí bộ lập lịch vẫn hoạt động đúng trên cơ sở công bằng, các hàng đợi có gói kích thước lớn sẽ chiếm nhiều băng thông hơn các hàng đợi khác.
Hình 2.21. Hàng đợi cân bằng FQ
iv) Hàng đợi quay vòng trọng số WRR
Hàng đợi quay vòng theo trọng số WRR chia băng thông cổng đầu ra với các lớp lưu lượng đầu vào phù hợp với băng thông yêu cầu.
Hình 2.22. Hàng đợi quay vòng theo trọng số WRR
Các luồng lưu lượng đầu vào được nhóm thành m lớp tương ứng với trọng số được xác định bởi băng thông yêu cầu. Tổng các trọng số của các lớp bằng 100%.
m i i = 1
W100%
(2.4)
Trong đó, m là số lớp lưu lượng; Wi là % trọng số của lớp i.
Các luồng lưu lượng riêng được lập lịch theo nguyên tắc hàng đợi cân bằng FQ đối với một lớp. Đặt số lượng các hàng đợi FQ trong lớp i là Ni, tổng số hàng đợi FQ trong lược đồ WRR được tính theo công thức 2.5 sau đây:
1 WRR m i i TotalFQ N (2.5)
Hàng đợi quay vòng theo trọng số WRR gồm hai lớp lập lịch quay vòng:
Bộ lập lịch thứ nhất chỉ tới các lớp trong khoảng từ lớp 1 đến lớp m.
Khi bộ lập lịch dừng lại tại một lớp, bộ lập lịch quay vòng thứ 2 sẽ quay vòng trong các hàng đợi FQ.
Băng thông cổng đầu ra tính theo % được gán vào lớp i, trọng số của lớp i (Wi) thể hiện lượng thời gian tiêu tốn của bộ lập lịch cho lớp i. Ví dụ, Wi=20% có nghĩa là bộ lập lịch sẽ tiêu tốn 20% chu kỳ thời gian quay vòng cho lớp i. Với các hàng đợi FQ trong lớp i, thời gian cho các hàng đợi là cân bằng, vì vậy lượng thời gian cho một hàng đợi trong Ni hàng đợi là (1/Ni). Trọng số cho mỗi một hàng đợi FQ được tính như sau:
ij i i
W = W * (1/N ) (2.6)
trong đó Wij là trọng số của hàng đợi thứ j trong lớp i; Wi là trọng số lớp i. Từ (2.6), ta có thể viết lại Wi = Wij * Ni, hay:
i
N
j = 1
W = W (2.7)
Trọng số của lớp i sẽ được tính bằng tổng các yêu cầu lưu lượng trong lớp i. WRR sử dụng Wi thay cho 1/m như trong trường hợp FQ, tạo ra m lớp lưu lượng khác nhau tại các cổng đầu ra. Đây chính là cải thiện của WRR so với FQ nhằm tránh nhược điểm đầu của FQ.
v) Hàng đợi cân bằng trọng số WFQ và hàng đợi cân bằng trọng số phân lớp CBWFQ
Mặc dù WRR đã chỉ ra được cách khắc phục nhược điểm thứ nhất của hàng đợi cân bằng FQ nhưng WRR chưa giải quyết được ảnh hưởng của kích thước gói tin đối với băng thông chia sẻ. Tiếp cận hàng đợi cân bằng trọng số WFQ cũng nhằm cải thiện nhược điểm thứ hai của hàng đợi FQ. Giống như hàng đợi FQ, lưu lượng đầu vào được nhóm m hàng đợi. Tuy nhiên, băng thông cổng đầu ra được phân bổ tới m hàng đợi theo trọng số được xác định bởi các yêu cầu băng thông của lớp lưu lượng thay vì chia đều.
Hàng đợi cân bằng trọng số phân lớp CB-WFQ tương tự như hàng đợi quay vòng theo trọng số WRR, sự khác biệt cơ bản của CB-WFQ so với WRR là cách sử dụng cơ chế cân bằng theo trọng số tại các lớp i thay vì sử dụng cơ chế hàng đợi cân bằng. Tiếp cận này theo hướng mềm hoá hơn nữa đối với các yêu cầu băng thông không đồng nhất.
2.4.4 Kỹ thuật cắt lưu lượng
Các kỹ thuật chia cắt lưu lượng gồm: Chia cắt lưu lượng thuần, chia cắt lưu