Home

Page 32
Page 32
background image

необязательных опций не может превысить 40 байт, т.е. все числа идентичны аналогичным числам 
заголовка IP, следовательно, запомнить их будет проще.  

Постепенно, поле за полем, будем изображать поля заголовка TCP и кратко, в той степени, в 

которой  на  данном  этапе  Вы  сможете  понять  назначение  полей  заголовка,  даем  краткие 
комментарии.  

Итак, первое четырехбайтовое слово заголовка: 

 

Source Port

Destination Port

  

Данные  поля,  как  уже  говорилось  выше  при  изучении  заголовка UDP, полностью 

аналогичны  соответствующим  полям  заголовка UDP. Первое  поле  адресует  процесс,  пославший 
данный сегмент (на локальном узле, уникальности в составной сети порт не имеет, уникальностью 
в  составной  сети  обладает  СОКЕТ – совокупность IP узла  и  порта  на  этом  узле),  второе  поле 
адресует  процесс-получатель  сегмента  на  узле  получателе.  Как  и  в  случае UDP для  присвоения 
номеров  портов  серверным  службам  используется  техника  хорошо  известных  портов,  клиентские 
приложения  обычно  получают  динамически  назначаемые  номера  портов.  Как  и  в  случае  с UDP, 
клиентское  приложение  заранее  знает  номер  порта  серверной  службы,  а  серверное  приложение 
узнает  номер  порта  подключившегося  клиента  из  первого  сегмента,  полученного  от  клиента. 
Отличия  использования  портов  в TCP: отправитель  не  может  заполнить  значением 00 00 адрес 
порта  отправителя  (в  отличие  от UDP), причина: TCP устанавливает  соединение,  т.е.  в  любом 
случае имеет место обмен данными по протоколу TCP между сторонами, даже в том случае, если 
полезные  данные  передаются  только  в  одном  направлении,  поэтому  отказаться  от  адресации 
приложения пославшего пакет сегмент – это бы означало отказ от приема любых сегментов в ответ, 
что  противоречит  концепции TCP. В  остальном  все,  что  ранее  было  сказано  о  портах UDP 
полностью справедливо и для портов TCP, основная задача данных полей – мультиплексирование 
данных многих приложений.  

Далее рассматриваем сразу два следующих четырехбайтовых слова: 

 

Source Port

Destination Port

  Sequence Number   

Acknowledgment Number

 

Как  уже  говорилось  выше,  единственным  способом  обеспечения  гарантий  правильной 

доставки данных является их нумерование и квитирование. Данные поля как раз и предназначены 
для решения этой задачи. Как говорилось выше, транспортный протокол может присваивать номера 
как  передаваемым  пакетам,  так  и  отдельным  байтам, TCP является  протоколом  второго  типа,  т.е. 
нумерует отправляемые байты. Разумеется, это не значит, что каждый байт отправляется в линию 
связи в отдельном сегменте, это означает, что когда в линию связи отправляется очередная порция 
байт,  она  снабжается  числом,  которое  представляет  собой  номер  первого  байта  этой  порции.  Так 
как  порция  байт  обычно  содержит  в  себе  более  одного  байта  (хотя  в  частном  случае  может 
содержать  и  один  байт),  то  следующий  отправляемый  в  сеть  пакет  будет  иметь  этот  номер  не  на 
единицу больше предыдущего, а на то количество байт, которое было передано в прошлом пакете. 
Например, в соединении передается сегмент, его первый байт имеет номер 345, а длина данных – 12 
байт. В таком случае следующий сегмент будет иметь номер 357 (несет в себе байты с 357), так как 
в прошлом сегменте были переданы байты с 345 до 356 (всего 12 байт).  

Поле Sequence Number как  раз  и  используется  для  присвоения  передаваемой  в TCP 

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


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.