ПРОЦЕДУРЫ ПРОТОКОЛА TCP


Процедура установления соединения

В связи с крайней ненадежностью нижележащих протокольных уровней TCP использует процедуру троекратного рукопожатия для установления соединения (см. рис. 6.18.).

На рисунке 6.18 ПВУ - один из протоколов вышележащего уровня (HTTP. FTP и т.д.). Последовательность следующая:

1. ПВУ А посылает в свой объект TCP примитив «Открыть», указав адрес и параметры.

2. TCP А посылает TCP В сегмент SYN с номером, к примеру, 55.(флаг SYN=1, «номер в последовательности» = 55). Этот начальный номер будет затем использоваться в процедуре передачи данных. Начальный порядковый номер устанавливается с помощью специального генератора случайных чисел, который увеличивает свои значения каждые 4 мкс, работая по модулю 232. Это значит, что следующий раз такой номер встретится через 4,5 часа.

3. TCP В подтверждает получение запроса на соединение посылкой пакета SYN-ACK (SYN=1, ACK-1) с собственным начальным номером (например, 202) и с установленным в поле подтверждения номером 56 (следующий ожидаемый на приеме номер).

4. TCP А посылает сегмент АСК с номером 203 (номер следующего ожидаемого байта).

5. TCP А уведомляет ПВУ А об открытии соединения.

6. Получив АСК 203, TCP В уведомляет примитивом «успешное открытие» ПВУ В.

Процедура передачи данных

Рассмотрим простейший случай. Из А в В передается 30 байт, а из В в А посылается 100 байт. Соединение является дуплексным. Последовательность обмена следующая (рис.6.19.):

7) ПВУ А выдает в TCP А примитив «Передать» и сообщение длиной 30 байт.

8) TCP А помещает 30 байт в сегмент. В заголовке указывается порядковый номер первого байта в сегменте — 56.

9) TCP В получает сегмент, передает его ПВУ В и посылает сегмент подтверждения (АСК 86). Последний полученный байт будет иметь номер 85 (55+50). Так как в АСК указывается номер следующего ожидаемого байта, то это будет 86.

10) ПВУ В выдает TCP В примитив «Передать» и сообщение длиной 100 байт.

11) TCP В отправляет сегмент с порядковым номером 203 (202+1) — номером первого байта в этом сегменте.

12) TCP А передает сообщение ПВУ А и посылает подтверждение AСК (303), т.е. с указанием номера следующего ожидаемого байта.

Так как протокол дуплексный и подтверждения могут включаться в состав передаваемого сегмента, то этапы 9 и 11 могут быть объединены (посылкой сегмента данных с N=203, АСК=86).

Завершение соединения

На рисунке 6.20 показаны этапы процедуры разъединения.

13) ПВУ А посылает TCP А примитив «Завершить».

14) TCP А выдает пакет FIN (с порядковым номером 86, без данных).

15) О закрытии сообщается ПВУ В (примитивом «Закрытие») и посылается АСК (87).

16) ПРУ В посылает примитив «Завершить» и посылается FIN (303)

17) О закрытии извещается ПВУ А и выдается подтверждение АСК 304/

18) Об окончании процедуры извещается ПВУ В.

Особенности протокола TCP

1. С помощью флага URG могут передаваться срочные данные.

2. Соединение является надежным за счет:

- использования режима обнаружения ошибок;

- присвоения порядковых номеров каждому байту сообщения

- использования тайм-аута ожидания подтверждения, по его истечении сегмент передается повторно.

3. Управление потоком путем использования окна передачи W.

 



Дата добавления: 2016-10-07; просмотров: 1637;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.