Nguyên lý bảo toàn gói tin trong điều khiển lưu lượng TCP: ”giữ cho số gói số liệu có mặt trong mạng của một kết nối không thay đổi”
2.4.1. Việc áp dụng cơ chế điều khiển lưu lượng trong phiên bản TCP đầu tiên là: Tahoe TCP
đầu tiên là: Tahoe TCP
Tahoe TCP thêm vao các thuật toán mới, cũng như tự tinh chế và làm cho nó thực thi tốt hơn so với TCP trước đó. Các thuật toán được thêm vào bao gồm: Slow Start, congestion avoidance, và fast retransmiss. Tahoe TCP còn tinh chế bộ ước lượng RTT được sử dụng để thiết lập các giá trị time-out chuyển vận lại.
Thuật toán phát lại nhanh là sự quan tâm đặc biệt trong sự thực thi này. Với thuật toán này, sau khi nhận được một số lượng nhỏ của các biên nhận lặp cho cùng một TCP segment, người gửi sẽ kết luận rằng một gói tin đã bị thất lạc và sẽ gửi lại gói tin ấy mà không phải chờ cho đến khi bộ thời gian chuyển vận lại hết hạn, điều đó làm cho hiệu suất kết nối và sử dụng kênh truyền được nâng cao.
Như vậy, nếu trên mạng xảy ra hiện tượng mất mát gói tin, người gửi sẽ gửi lại dữ liệu sau khi nhận được ba biên nhận lặp, tránh phải đợi time-out, và việc khởi đầu lại được bắt đầu với Slow Start.
Hình vẽ 19 cho thấy hoạt động của Tahoe TCP:
Hình 19. Hoạt động của Tahoe TCP
Hình 20. Tahoe TCP với một gói tin bị loại bỏ
Ở dưới cho trường hợp có một gói tin bị loại bỏ từ cửa sổ dữ liệu, Tahoe TCP sử dụng thuật toán Slow Start để khôi phục lại từ một gói tin bị mất mát. Như trên hình 20, các gói tin từ 0 đến 13 được gửi đi và không có lỗi xảy ra khi cửa sổ tắc nghẽn TCP được người gửi tăng theo hàm mũ từ 1 đến 15, phụ thuộc theo thuật toán Slow Start.
Vào lúc cuối của cửa sổ dữ liệu lần gửi thứ tư (lúc này kích thước cửa sổ đã tăng lên đến 8), xảy ra hiện tượng mất mát gói tin do hàng đợi của bộ định tuyến bị đầy, nó là nguyên nhân làm cho gói 14 bị loại bỏ (dropped). Bởi vì bẩy gói trước đó của cửa sổ dữ liệu lần gửi thứ tư đã được phân phát thành công, khi bảy ACKs đã về tới người gửi, kích thước cửa sổ người gửi sẽ tăng lên từ 8 đến 15 và tiếp tục gửi đi 14 gói nữa, từ 15 đến 28.
Sau khi nhận ACK đầu tiên của gói tin 13, người nhận gửi nhận 14 biên nhận lặp ACK cho gói tin 13 tương ứng với việc nhận thành công các gói tin từ 15 đến 28 của người nhận.
Biên nhận lặp ACK thứ ba đã đạt tới ngưỡng, và thuật toán Retransmission và Slow Start được gọi đến. Thêm nữa, ngưỡng Slow Start, ssthresh, được giảm giá trị
thành 7 tức ((8+7)/2). TCP người gửi thiết lập lại cửa sổ tắc nghẽn tới 1 và gửi lại gói tin 14.
Người nhận đã nhận được các gói tin từ 15 đến 28, và nhận gói tin 14 đã được gửi lại. Biên nhận cho gói 28 là nguyên nhân làm cho người gửi tăng lên cửa sổ tắc nghẽn bởi 1 và tiếp tục truyền số liệu từ gói 29. Trong khi truyền , khi cửa sổ bắt đầu với gói tin 35, ngưòi gửi đạt tới ngưỡng trên của thuật toán Slow Start và bắt đầu tiến hành thuật toán tránh tắc nghẽn (congestion avoidance). Trong suốt việc truyền thông sau đó, cửa sổ người gửi được tăng lên bởi một gói tin qua mỗi khoảng thời gian khứ hồi round-trip-time.
Hình 21 cho chúng ta thấy rõ hơn các quá trình hoạt động ở trên:
Hình 21. Hoạt động chi tiết của Tahoe TCP với một gói tin bị loại bỏ