Запрос CLOSE

Состояние CLOSED (например, нет блока TCB)

Если клиент не имеет доступа к такому соединению, вернуть сообщение "error: connection illegal for this process". В противном случае вернуть сообщение "error: connection does not exist".

Состояние LISTEN

Любые остающиеся неудовлетворенными запросы RECEIVE будут завершены с сообщением "error: closing". Стереть блок TCB, перейти в CLOSED состояние и вернуть управление клиенту.

Состояние SYN-SENT

Стереть блок TCB и вернуть сообщение "error closing" для любых еще остающихся в очередях запросов SEND или RECEIVE.

Состояние SYN-RECEIVED

Если не сделано каких-либо запросов SEND и нет данных, ожидающих отправки, то сформировать FIN сегмент и послать его, а затем перейти в FIN-WAIT-1 состояние. В противном случае поместить данные в очередь для рассмотрения после установления ESTABLISHED состояния.

Состояние ESTABLISHED

Поместить запрос в очередь в ожидании, когда все данные предшествующих команд будут сегментированы. Тогда сформировать FIN сегмент и отправить его партнеру. В любом случае перейти в FIN-WAIT-1 состояние.

Состояние FIN-WAIT-1

Состояние FIN-WAIT-2

Строго говоря, такая ситуация является ошибочной и должна привести к получению клиентом сообщения "error: connection closing". Однако может быть приемлемым также ответ "Ok", пока не отправлен второй FIN (хотя первый FIN может быть отправлен повторно).

Состояние CLOSE-WAIT

Поместить этот запрос в очередь, пока все предшествующие запросы SEND не будут помещены в сегменты. Затем послать сегмент с сигналом FIN, перейти в CLOSING состояние.

Состояния

      CLOSING
      LAST-ACK
      TIME-WAIT

Возвратить сообщение "error: connection closing".

Hosted by uCoz