Trong mạng máy tính, **điều khiển lưu lượng** (tiếng Anh: *flow control*) là quy trình quản lý số khung truyền dữ liệu giữa hai đầu kết nối của mạng lưới. Chúng ta cần phân biệt khái niệm này với khống chế tắc nghẽn (*congestion control*) - điều khiển luồng dữ liệu khi tắc nghẽn đã xảy ra. Các cơ chế điều khiển lưu lượng có thể được phân loại tùy theo việc máy nhận có gửi thông tin phản hồi (*feedback*) lại cho máy gửi hay không.

Điều khiển lưu lượng có vai trò quan trọng, vì tình trạng một máy tính gửi thông tin tới một máy tính khác, với một tốc độ cao hơn tốc độ mà máy tính đích có thể nhận và xử lý có thể xảy ra. Tình huống này có thể xảy ra nếu các máy tính nhận phải chịu tải giao thông về dữ liệu cao hơn máy tính nhận, hoặc nếu máy tính nhận có năng lực xử lý kém hơn máy tính gửi.

Điều khiển lưu lượng truyền
---------------------------

Điều khiển lưu lượng truyền được áp dụng khi dữ liệu được truyền từ thiết bị đầu cuối (*terminal equipment* - DTE) sang một trung tâm chuyển mạch (*switching center*) nào đấy, hoặc được truyền thông giữa hai thiết bị DTE với nhau. Tần số truyền tin phải được khống chế vì các yêu cầu của mạng lưới hoặc của các thiết bị truyền tin (DTE).

Điều khiển lưu lượng truyền có thể được áp dụng biệt lập trên mỗi chiều mà tín hiệu được truyền thông, cho phép tần số truyền tin trên mỗi chiều khác nhau. Phương pháp điều khiển lưu lượng truyền có hai cách, hoặc là dùng chế độ "ngưng-và-truyền" (*stop-and-go*) hoặc dùng hình thức cửa sổ di động (*sliding window*).

Điều khiển lưu lượng truyền có thể được thực hiện thông qua các đường điều khiển trong một giao diện truyền thông dữ liệu (xem cổng serial (*serial port*) và RS 232), hoặc bằng cách dành riêng một số ký hiệu cho việc điều khiển (*in-band control characters*) nhằm báo hiệu cho lưu lượng truyền bắt đầu hoặc ngừng lại (chẳng hạn các mã ASCII cho giao thức XON/XOFF). Các đường điều khiển thông dụng của RS 232 bao gồm 

1. **RTS** (*Request To Send* - Máy địa phương sẵn sàng nhận dữ liệu, yêu cầu gửi dữ liệu sang).
2. **CTS** (*Clear To Send* - Máy ở xa sẵn sàng nhận dữ liệu).
3. **DSR** (*Data Set Ready* - Bộ điều chế dữ liệu (như modem) sẵn sàng để liên lạc (gọi hoặc nhận cuộc gọi) với máy ở xa.
4. **DTR** (*Data Terminal Ready* - Thiết bị nhận dữ liệu tại địa phương (như PC) sẵn sàng nhận dữ liệu, cho phép bộ điều chế dữ liệu (modem) liên lạc (gọi hoặc nhận cuộc gọi) với máy ở xa.

Phương pháp điều khiển trên thường được gọi là "điều khiển lưu lượng bằng phần cứng" (*hardware flow control*). Còn XON/XOFF thường được coi là "điều khiển lưu lượng bằng phần mềm" (*software flow control*).

Điều khiển lưu lượng mạch vòng mở
---------------------------------

Cơ chế điều khiển lưu lượng mạch vòng mở (*Open-loop flow control*) có đặc điểm là nó không có thông tin phản hồi giữa máy nhận và máy truyền tin. Phương pháp điều khiển truyền thông đơn giản này được sử dụng rộng rãi. Việc bố trí tài nguyên phải theo kiểu "đặt chỗ trước" (*prior reservation*) hoặc "từ nút tới nút" (*hop-to-hop*). Điều khiển lưu lượng mạch vòng mở có một số vấn đề cố hữu về việc cố gắng sử dụng tối đa tài nguyên trong mạng ATM. Việc cấp phát tài nguyên - như dung lượng bộ nhớ dùng làm bộ đệm chứa dữ liệu chẳng hạn - được thực hiện khi thiết lập kết nối bằng CAC (*Connection Admission Control* - điều khiển đầu vào dành cho mạng ATM). Việc cấp phát này được tiến hành dựa trên những thông tin mà khi kết nối hoạt động thì các thông tin này đã trở nên cũ. Thường thì dung lượng tài nguyên được cấp phát vượt quá mức độ cần thiết. Điều khiển lưu lượng mạch vòng mở được sử dụng trong các dịch vụ CBR (*Constant Bit Rate - Tần số bit bất biến*), VBR (*Variable Bit Rate - Tần số bit thay đổi*) và UBR (*Unspecified Bit Rate - Tần số bit không xác định*) (Xem thêm hợp đồng giao thông (*traffic contract*) và khống chế tắc nghẽn (*congestion control*)) 
.

Điều khiển lưu lượng mạch vòng kín
----------------------------------

Cơ chế điều khiển lưu lượng mạch vòng kín (*Closed-loop flow control*) có đặc điểm là mạng có khả năng thông báo lại sự tắc nghẽn còn tồn đọng trong mạng cho máy truyền tin. Máy truyền tin dùng thông tin này dưới nhiều hình thức để điều chỉnh hoạt động của nó cho thích ứng với các điều kiện hiện tại của mạng. Điều khiển lưu lượng mạch vòng kín được dùng trong các dịch vụ ABR (*Available Bit Rate - Tần số bit khả dụng*) (Xem thêm hợp đồng giao thông (*traffic contract*) và khống chế tắc nghẽn (*congestion control*)).
.

Xem thêm
--------

* Mạng máy tính
* Khống chế tắc nghẽn (*Congestion control*)
* Khoa học dự báo và hoạch định lưu thông mạng dải tần rộng từ xa (*Teletraffic engineering in broadband networks*)
* Khoa học dự báo và hoạch định lưu thông mạng từ xa (*Teletraffic engineering*)
* Điều khiển lưu lượng trong mạng Ethernet

Tham khảo
---------

1. **^**  Network Testing Solutions, ATM Traffic Management White paper last accessed 15 March 2005.