Управление потоком

Управление потоком (flow control) заключается в том, что целевая система TCP-соединения передает системе-источнику сведения, которые позволяют регулировать скорость передачи данных. В каждой системе предусмотрено некое ограниченное буферное пространство для хранения принимаемой информации. Данные остаются в буфере, пока система не отправит сообщение с подтверждением их приема. Если система-источник передает данные слишком быстро, буферы приемника переполняются, и информация начинает теряться.

Во избежание этого принимающая система с помощью поля Window сообщений АСК информирует отправителя о том, сколько буферного пространства доступно в данный момент времени. Передающая система с помощью величин из полей Window и Acknowledgment Number определяет, какие данные последовательности ей можно передавать. Например, если в поле Acknowledgment Number сообщения АСК содержится число 150000, а значение поля Window равно 500, передающая система понимает, что данные последовательности до 150000 байта приняты успешно, и теперь можно передавать байты с 150001 до 150500. Если к моменту окончания передачи этих 500 байтов дополнительные подтверждения приема все еще не получены, передачу нужно приостановить до тех пор, пока они не придут.

Такой способ управления потоком называется методом скользящего окна (sliding window). Предложенное окно представляет собой набор байтов, передачу которых разрешила принимающая система. По мере того как принимающая система подтверждает прием байтов, левая граница окна сдвигается вправо. Одновременно байты, прием которых подтвержден, передаются принимающей системой тому процессу прикладного уровня, номер порта которого указан в поле Destination Port. При этом правый край окна также сдвигается вправо. Таким образом, окно скользит вдоль потока входящих байтов слева направо.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: