Kiểm soát luồng (flow control) là một tính năng có ở giao thức TCP, được thực hiện bởi bên gửi để điều chỉnh việc truyền dữ liệu cho phù hợp.
Ở bên nhận có một bộ đệm gồm hai phần:
- Phần dữ liệu đã được xử lý.
- Không gian trống (hay hàng đợi) mang một kích thước cố định nào đó.
Bộ đệm này chứa các gói tin đang trong trạng thái chờ để được chuyển lên tầng ứng dụng.

Khi mà bên nhận bị quá tải hàng đợi, nó sẽ gửi một gói tin chứa thông tin về kích thước hàng đợi tối đa (receive window) cho bên gửi.

Thông tin này sẽ giúp sender gửi chậm lại và gửi ít lại, đảm bảo dữ liệu không bị mất.