Chƣơng trình sock gửi 128 gói tin, mỗi gói tin là 256 bytes từ máy slip đến dịch vụ
discard của máy vangogh. Tổng thời gian truyền là 45 giây và ở đây chỉ đề cập việc gửi các gói tin dữ liệu và nhận các gói tin báo nhận trong 3s đầu.
Trong khi truyền dữ liệu trên máy slip ngƣời ta chạy chƣơng trình tcpdump ghi lại thời điểm gửi và nhận các gói tin.
Trong hình 2.2 đánh số các gói tin từ 1 đến 13 và 15 theo thứ tự chúng đƣợc gửi và nhận trên máy slip.
Ba dấu ngoặc nhọn bên trái thể hiện ba gói tin đƣợc tính RTT. Không phải tất cả các gói tin đều đƣợc tính RTT.
Một bộ đếm thời gian cho kết nối này đƣợc khởi động khi gói tin số 1 đƣợc gửi đi và tắt khi gói tin báo nhận của nó (gói số 2) trở về đến máy slip. Khi gói tin số 3 đƣợc gửi đi thì bộ đếm thời gian này lại đƣợc bật. Khi gói tin 4 đƣợc gửi đi 2.4 (ms) sau thì nó sẽ không đƣợc định thời (và nhƣ vậy sẽ không đƣợc tính RTT) bởi vì bộ đếm thời gian đã đƣợc bật. Khi gói 5 trở về đến máy slip báo nhận dữ liệu đã đƣợc định thời thì giá trị RTT hiện tại đƣợc tính và bộ đếm thời gian cũng bị tắt. Bộ đếm thời gian lại đƣợc bật trở lại khi gói 6 đƣợc gửi đi và tắt khi gói tin báo nhận của nó (gói 10) trở về đến máy slip. Gói 7 và gói 9 không đƣợc định thời vì bộ đếm thời gian đã đƣợc bật. Cũng vậy khi gói 8 đƣợc nhận (ACK 769 tức là yêu cầu bên gửi gửi các byte dữ liệu từ 769) thì không có gì để cập nhật cho RTT bởi vì báo nhận đó không phải cho byte đã đƣợc định thời (byte đƣợc định thời là 1025 khi gói 6 đƣợc gửi đi).
Khi tắc nghẽn mạng trở nên nghiêm trọng, cửa sổ tắc nghẽn của tiến trình TCP phía gửi giảm xuống còn một gói tin và giả sử giá trị RTO đƣợc thiết lập tại thời điểm đó là minRTO (=1s) (điều này có thể xảy ra nếu minRTO > SRTT + max(G, 4 * RTTVAR) → RTO=minRTO). Khi đó tiến trình TCP phía gửi tăng gấp đôi RTO từ 1s lên thành 2s và phát lại gói tin. Sau khoảng thời gian RTO là 2s nếu gói tin vẫn chƣa đƣợc báo nhận thì giá trị RTO lại đƣợc tăng gấp đôi thành 4s và cứ nhƣ thế. Đây là cơ chế lùi thời gian phát lại gói tin theo hàm số mũ để tiến trình TCP bên gửi thực hiện khi có hiện tƣợng tắc nghẽn mạng nghiêm trọng xảy ra, nó đƣợc chọn để thực hiện một cuộc tấn công LDoS.
b) Điểm yếu của cơ chế Timeout
Cơ chế Timeout của giao thức TCP thích hợp với tắc nghẽn mạng nghiêm trọng xảy ra nhƣng mặt khác nó cũng có sự rủi ro tiềm tàng bởi lỗ hổng cơ bản của nó. Theo cơ chế này giá trị nhỏ nhất mà RTO có thể nhận là 1s và trong lúc lùi thời gian phát lại gói tin theo hàm số mũ thì RTO nhận các giá trị là bội của 1. Do đặc điểm này của thuật toán, kẻ tấn công có thể tấn công bằng cách sử dụng các khoảng thời gian cách đều nhau, trong mỗi khoảng thời gian đó kẻ tấn công gửi các gói tin với tốc độ cao để làm tràn bộ đệm của kết nối nghẽn cổ chai. Nếu kẻ tấn công biết thời gian của bên gửi, hắn sẽ thực hiện tấn công “xung vuông” đó và liên tiếp làm cho bên gửi rơi vào trạng thái timeout trong khi thông lƣợng của máy chủ xấp xỉ bằng không.
2.1.4 Tấn công từ chối dịch vụ tốc độ thấp nhằm vào giao thức TCP
Ý tƣởng cơ bản của loại tấn công này là khai thác điểm yếu của cơ chế Timeout. Trong loại tấn công này, kẻ tấn công sẽ truyền những xung vuông ngắn với chu kỳ gần với giá trị RTO của các kết nối TCP đang diễn ra. Các xung ngắn này làm cho các gói tin bị mất, dẫn đến các dòng TCP rơi vào trạng thái timeout, và liên tục thất bại khi cố gắng phát lại gói tin. Do đó, thông lƣợng hầu nhƣ là bằng không.