Một chiến lược tránh tắc nghẽn (CA, Congestion Avoidance) như đề xuất trong [20],[27],[29] bao gồm: thứ nhất: mạng phải có khả năng gửi tín hiệu đến cho các thực thể ở đầu cuối của các kết nối (endpoint), báo cho chúng biết là tắc nghẽn đang xảy ra hoặc sắp xảy ra; thứ hai: các endpoint phải có chính sách giảm lưu lượng đưa vào mạng nếu nhận được các tín hiệu báo và tăng thêm lưu lượng đưa vào mạng nếu không nhận được tín hiệu báo này.
Chính sách của TCP đối với tắc nghẽn:
Đó chính là chính sách tăng theo cấp số cộng, giảm theo cấp số nhân (AIMD), như đã được triển khai thực hiện trong phiên bản TCP trên BSD [18][34]; chính sách đó được giải thích như sau:
Mỗi khi xảy ra sự kiện hết giờ, đặt giá trị cửa sổ tắc nghẽn cwnd bằng một phần hai giá trị cửa sổ hiện thời. Đó là sự giảm theo cấp số nhân.
Mỗi khi nhận được một biên nhận cho gói số liệu mới, tăng cwnd thêm một lượng bằng 1/cwnd, đây là sự tăng theo cấp số cộng. (Trong giao thức TCP, kích thước cửa sổ và kích thước gói số liệu được tính bằng byte, vì thế sự tăng nói trên được chuyển thành maxseg*maxseg/cwnd, trong đó maxseg là kích thước gói số liệu cực đại và cwnd là cửa sổ tắc nghẽn, được tính bằng bytes).
Khi gửi, sẽ gửi đi số gói số liệu bằng số bé hơn trong hai số: kích thước cửa sổ mà bên nhận đã đề nghị và cwnd.
Bởi vì mức độ tắc nghẽn tăng lên theo hàm mũ, do khi có tắc nghẽn, các gói tin không đến được bên nhận nhanh chóng, chưa kể bị vứt bỏ khỏi các hàng đợi tại các nút mạng, bên gửi không nhận được biên nhận sau khoảng thời gian chờ đợi, bên gửi sẽ tiếp tục gửi lại các gói tin này, làm cho hiện tượng tắc nghẽn thêm trầm trọng. Nếu tắc nghẽn được phát hiện sớm, thì chỉ cần một vài điều chỉnh nhỏ đối với cửa sổ của người gửi cũng có thể giải quyết được vấn đề; Tuy nhiên, phát hiện tắc nghẽn sớm một cách tin cậy là khó do bản chất luôn thăng giáng mạnh của lưu lượng.