Mô tả tốt nhất mà tôi từng nghe có ý nghĩa về phương pháp điều chỉnh vốn có của TCP là tắt một podcast Security Now gần đây . Trích dẫn Steve Gibson:
Vì vậy, theo thỏa thuận phổ quát, TCP là giao thức rất thông minh này, nó thực hiện một thứ gọi là "khởi đầu chậm". Nó thường được cho phép gửi một số lượng gói mà không cần xác nhận. Vì vậy, ý tưởng là, hãy để mọi thứ di chuyển ở đây. Và thông thường con số đó là hai. Và khi TCP khởi động, nó có thể gửi hai gói đi, từng gói một. Nếu không có cái đầu tiên được thừa nhận, nó sẽ gửi cái thứ hai. Nhưng rồi nó chờ. Và sau đó, quy tắc cho điều chỉnh là chúng tôi cho phép số lượng gói chưa được xác nhận tăng thêm một cho mỗi xác nhận chúng tôi nhận được.
Vậy hãy nghĩ về điều đó. Chúng tôi cho phép số lượng gói tin chưa được xác nhận tăng thêm một cho mỗi xác nhận chúng tôi nhận được. Vì vậy, trước tiên chúng tôi gửi đi hai gói như đã bắt đầu theo thỏa thuận của chúng tôi. Họ được thừa nhận. Vì vậy, chúng tôi có sự thừa nhận đầu tiên của chúng tôi. Chúng tôi đã cho phép mình gửi hai. Bây giờ, với việc nhận được xác nhận đầu tiên này, chúng tôi tăng nó lên một đến ba. Vì vậy, bây giờ chúng tôi có thể gửi thêm ba gói nữa mà không cần xác nhận thêm. Khi một xác nhận trở lại cho bất cứ điều gì chúng tôi đã gửi trước đó, chúng tôi sẽ tăng lên bốn. Điều này được gọi là "cửa sổ tắc nghẽn." Đó không phải là một cửa sổ từng được gửi trên đường dây, nghĩa là nó không giống như cửa sổ nhận, đó là 16 bit của tiêu đề TCP cho chúng ta biết chúng ta có thể gửi bao nhiêu dữ liệu. Cái này là - nó là một cửa sổ. Nó '
Nếu chúng tôi tiếp tục tăng số lượng gói chưa được xác nhận, chúng tôi được phép gửi cho mỗi lần chúng tôi nhận được xác nhận, đến một lúc nào đó chúng tôi sẽ đạt đến giới hạn. Và cái hay của hệ thống này là nó sẽ, khi chúng ta bắt đầu gửi các gói nhanh hơn liên kết yếu nhất, theo nghĩa đen, giữa các bộ định tuyến, tại một số điểm chúng ta thấy điểm liên kết yếu nhất bị phá vỡ. Nó làm giảm các gói chúng tôi đang cố gửi vì chúng tôi đang cố gửi chúng quá nhanh. Vì vậy, các xác nhận từ đầu kia dừng lại vì dữ liệu không còn được thông qua.
Và những gì TCP làm là, nếu nó không nhận được - và điều này thay đổi trong các chiến lược. Theo thời gian, chiến lược, chiến lược tránh tắc nghẽn thực tế đã thay đổi rất nhiều. Có những cái tên như Tahoe và Reno, và một loạt những cái khác mà bạn sẽ thấy nếu bạn thực hiện một số Google và Wikipedia, trong đó cụ thể chính xác hành vi đó là gì. Nhưng ý tưởng là, khi người gửi nhận ra rằng dữ liệu của họ không còn được thông qua vì nó thiếu các xác nhận, nó sẽ cắt giảm tốc độ gửi nhanh chóng. Thông thường, nó chia nó một nửa. Vì vậy, nó quy mô đáng kể nó trở lại, và sau đó quay trở lại để tăng nó.
Vì vậy, về cơ bản điều này có nghĩa là việc mất các gói là chức năng báo hiệu cho "Chúng tôi không thể gửi dữ liệu nhanh hơn" và người gửi TCP ở mỗi đầu của một kết nối, trên Internet, luôn luôn là - chúng ' Đang cố gắng đi nhanh hơn tốc độ tối đa có sẵn giữa hai điểm cuối, nghĩa là liên kết yếu nhất, bất cứ nơi nào và họ luôn đẩy nó đến giới hạn. Vì vậy, có một điểm ở đâu đó yếu hơn khả năng gửi gói của họ, họ sẽ tìm thấy điểm đó vì họ sẽ bơm các gói ra. Miễn là có dữ liệu được gửi và họ có kết nối băng thông cao, người gửi sẽ tăng tốc độ gửi, nghĩa là, số lượng gói tin còn tồn tại, các gói được phép ở ngoài đó dưới dạng xác nhận quay lại tích cực tiếp tục di chuyển số đó lên trên cho đến khi nó đẩy nó đi quá xa. Sau đó, nó lùi lại rất nhiều, và một lần nữa di chuyển về phía trước.
Vì vậy, đây là những gì thực sự xảy ra giữa các kết nối TCP, có lẽ, tôi có thể không biết bao nhiêu phần trăm, nhưng phần trăm lưu lượng truy cập lớn nhất trên Internet là trên các kết nối TCP. Tất cả các hệ điều hành của chúng tôi trong kernel, trong ngăn xếp được gọi là TCP, đều có các bộ đếm này. Và khi chúng tôi gửi một tệp, khi chúng tôi tải lên một tệp lớn hoặc chúng tôi đang nhận một trang web, máy chủ ở đầu kia đang làm điều tương tự. Đó là việc đẩy, trên cơ sở kết nối riêng lẻ, vì nhiều gói chưa được thừa nhận hết mức có thể, làm tăng tốc độ gói cho đến khi nó chạm đến điểm bắt đầu bị lỗi hoặc bị giật. Sau đó, nó lùi lại, để cho phép mọi thứ phục hồi, và sau đó bắt đầu hoạt động trở lại.
Và do đó, cuối cùng trở thành một loại hệ thống tự điều tiết, với những hạn chế, ý tôi là, nó thực sự có vẻ hơi kỳ cục và thô thiển. "