Thursday, Sep 09th

Last update09:09:00 PM GMT

Вы находитесь на: FreeBSD Сетевые протоколы Алгоритмы TCP. Состояние соединения.

Алгоритмы TCP. Состояние соединения.

Теперь, представив состояние соединения TCP, его конечный автомат и его пространство последовательности, мы можем начать исследовать реализацию протокола в FreeBSD. Несколько аспектов реализации протокола зависят от общего состояния соединения.

Состояние соединения TCP, состояние вывода и изменения состояния соединения зависят от внешних событий и таймеров. Обработка TCP происходит в ответ на одно из трех событий.

  1. Запроса от пользователя, такого, как отправка данных, удаление данных из приемного буфера сокета или открытия или закрытия и состояния соединения.
  2. Приема пакета для соединения.
  3. Истечения времени таймера.

Эти события обрабатываются в процедурах tcp_usr_send(), tcp_input() и наборе процедур таймера. Каждая процедура обрабатывает текущее событие и делает все необходимые изменения в состоянии соединения. Затем для любого перехода, которому может потребоваться отправка пакета, вызывается процедура tcp_output(), чтобы сделать любой необходимый вывод.

Критерии для отправки пакета с данными или управляющей информацией сложны, и поэтому политика отправки алгоритмов TCP является самой интересной и важной частью реализации протокола. Например, в зависимости от параметров управления состоянием соединения и потоком для соединения любое из следующего может позволить отправить данные, которые не могли быть отправлены ранее.

  • Пользовательский вызов отправки помещает в очередь отправки новые данные.
  • Прием обновления окна от другого узла.
  • Истечение срока таймера повторной передачи.
  • Истечение срока таймера обновления окна.

Кроме того, процедура tcp_output() может решить отправить пакет с управляющей информацией, даже если данные не могут быть отправлены, по любой из следующих причин.

  • Изменение в состоянии соединения (например, запрос открытия, запрос закрытия).
  • Получение данных, которые должны быть подтверждены.
  • Изменение приемного окна из-за удаления данных из приемной очереди.
  • Запрос отправки со срочными данными.
  • Разрыв соединения.

Большинство этих решений мы более подробно рассмотрим после описания использующихся состояний и таймеров. Мы начнем с алгоритмов, использующихся для согласования во времени, установки соединения и отключения; они распределены по разным местам кода. Мы продолжим описание обработки нового ввода и обзора обработки и алгоритмов вывода.

Сейчас 20 гостей онлайн

Реклама на сайте:

Советы по аренде квартир - снять квартиру. Сайты о квартирах.