Hai phương pháp CSCC và BPCC ở trên có chung một nhược điểm là chỉ thực hiện việc chống tắc nghẽn tức là khi tắc nghẽn đã xảy ra trên mạng. Phương pháp Marking có gắng giải quyết vấn đề này. Để phân tích phương pháp này ta xét lần lượt từng thành phần tham gia vào việc điều khiển tắc nghẽn trong phương pháp này: Layer 3 BPCC Layer 2 Layer 1 - TCP Layer 3 BPCC Layer 2 Layer 1 - TCP Destination Queue state Source
Hàng đợi: Trên mỗi nút duy trì một hàng đợi chứa các truy vấn tới. Ta sử dụng
các hàng đợi này để phản hồi tình trạng tắc nghẽn thông qua việc thêm một cờ h vào trong header. Mục đích là giữ cho các nút được chia sẻ tài nguyên đang bị bottleneck một cách công bằng mà không làm quá tải nút đang tắc nghẽn. Cờ h có kích thước 1 bit, mặc định được tắt trong gói tin truy vấn tại nguồn. Cờ h tắt thể hiện tình trạng mạng không tắc nghẽn, h bật thể hiện tình trạng tắc nghẽn. Mỗi nút đặt giá trị x thể hiện tốc độ truy vấn hiện tại của nó vào trong header của gói tin. Ngoài ra mỗi nút lưu số lượng trung bình xavg các gói tin, được tính toán thông qua giá trị x nhận được từ một số gói tin đến trước đó. Cờ h được bật với xác suất q được xác định thông qua việc xét xem gói tin đến có tốc độ nhanh hay chậm hơn giá trị trung bình xavg và giá trị trung bình kích thước của hàng đợi, cụ thể như sau:
s: là số lượng gói tin trong hàng đợi δ: giá trị làm mềm, ví dụ bằng 0.9
s: số lượng trung bình các gói tin trong hàng đợi t: giá trị ngưỡng tối đa sẽ gửi phản hồi
γ: giá trị đảm bảo độ công bằng
s= (1 − δ) · s + δ · s q=min ( ) ,1 avg x x s t t s (10)
Công thức 10 bao gồm 2 phần: phần thứ nhất dùng cho việc điều khiển tắc nghẽn, giá trị số gói tin trung bình scàng gần đến ngưỡng t sẽ làm tăng xác suất q dẫn tới việc khả năng cờ h được bật tăng. Nếu s≥t, q=1 thì cờ h sẽ được bật với xác suất bằng 1. Giá trị ngưỡng t được đặt nhỏ hơn khả năng tối đa mà hàng đợi có thể lưu trữ, để đảm bảo khả năng phục vụ kể cả trong trường hợp có lượng lớn gói tin trong một thời điểm ngắn. Ngoài ra còn có thêm giá trị δ trong việc tính toán giá trị s để tránh việc bật cờ h trong trường hợp tốc độ truy vấn thay đổi đột biến trong thời gian ngắn. Phần thứ hai được dùng cho mục đích đảm bảo công bằng: khi tốc độ truy vấn x của một nút nguồn nhỏ hơn tốc độ trung bình xavg của truy vấn đến mà nút đích nhận được thì q giảm. Ngược lại
nếu x > xavg thì q tăng, thể hiện việc nút nguồn sẽ bị giới hạn tốc độ nếu như chiếm phần lớn tài nguyên của nút đích. Giá trị γ xác định xem mức độ quan trọng của việc chia sẻ công bằng. Nếu γ = 0 sẽ bỏ qua việc đảm bảo công bằng. γ càng lớn thì độ lệch giữa x và xavg sẽ ảnh hưởng càng nhiều đến xác suất p. Một khi cờ h được bật nó sẽ không bị tắt trên suốt quãng đường truyền tới đích cuối cùng. Nút đích sao chép giá trị của h vào gói tin overlay-acknowledgement được gửi trả lại cho nút nguồn kèm với trả lời cho truy vấn.
Nút nguồn: Một nút sẽ nhận được gói tin trả lời truy vấn với overlay-ack có cờ
h. Nếu h tắt, tức là không có tắc nghẽn, nút tăng tốc độ truy vấn của nó như sau:
x c x x:
c+ là một hằng số dương nhỏ thể hiện mức độ một nút kiểm tra lượng băng thông còn có thể sử dụng khi nhận được thông báo không tắc nghẽn.
Với cờ h được bật nút giảm tốc độ truy vấn của nó như sau:
x c x:
với 0 < c- < 1 là hằng số, thể hiện mức độ một nút giảm tốc độ truy vấn khi có tắc nghẽn xuất hiện.
Qua hai công thức trên có thể thấy ta tăng tốc độ truy vấn theo cấp số cộng và giảm theo cấp số nhân của một nút tương tự như trong TCP. Giá trị c+ và c- được chọn dựa vào RTT và khả năng phục vụ của mạng.
Lựa chọn giá trị RTT: Mỗi nút lưu một giá trị RTT ước lượng cho các truy vấn: với mỗi truy vấn RTT được tính dựa trên thời gian gửi và thời gian nhận được phản hồi. Giá trị RTT được sử dụng cho toàn mạng nghĩa là không phụ thuộc vào đích đến của truy vấn. Do thông thường mỗi truy vấn đến một nút khác nhau trong mạng do đó giá trị RTT có sự thay đổi rất lớn. Nếu như sau thời gian RTT mà nút không nhận được trả lời cho truy vấn, một nút giảm tốc độ gửi truy vấn và gửi lại truy vấn.
Do không phải loại bỏ gói tin cũng như cơ chế gọn nhẹ trong việc gửi phản hồi tình trạng tắc nghẽn cho nút nguồn nên phương pháp Marking có kết quả về
thông lượng đạt được cũng như thời gian trả lời truy vấn tốt hơn nhiều so với hai phương pháp CSCC và BPCC đã trình bày ở phần trước.