Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Блок управления передачей




Состояние системы

Соединения протокола TCP переходят из одного состояния в другое в ответ на определенные события — запросы клиента, приход сегментов с флагами SYN, АСК, RST, FIN — или по истечении заданного времени. Соединение может на­ходиться в одном из следующих состояний:

q LISTEN — ожидание запроса на соединение со стороны внешних (чужих) портов и внешних (чужих) программ TCP.

q SYN-SENT — ожидание парного запроса на установление соединения (со стороны отправителя запрос уже сделан).

q SYN-RECEIVED — ожидание подтверждения после того, как запрос на установление соединения уже принят и отправлен.

q ESTABLISHED — соединение установлено. Принимаемые от приложения данные можно передать пользователю.

q FIN-WAIT-1 — ожидание запроса от чужой программы TCP или подтвер­ждение ранее отправленного запроса на закрытие соединения.

q FIN-WAIT-2 — ожидание запроса на закрытие соединения со стороны чужой программы TCP.

q CLOSE-WAIT — ожидание запроса на закрытие соединения со стороны своего клиента.

q CLOSING — ожидание подтверждения запроса о закрытии соединения со стороны чужой программы TCP.

q LAST-ACK — ожидание ответного запроса на закрытие соединения на посланный запрос о закрытии соединения, который был ранее отправлен чужой программе TCP.

q TIME-WATT — соединение находится в этом состоянии на протяжении времени, достаточного для того, чтобы быть уверенным, что чужая про­грамма TCP получила подтверждение своего запроса на закрытие соеди­нения.

q CLOSED — соединение закрыто.

Основное состояние соединения — ESTABLISHED (соединение установле­но). В этом состоянии происходит обмен данными между абонентами.

 

Для обеспечения надежной передачи данных по установленным логическим со­единениям между прикладными программами протокол TCP должен обеспечи­вать следующие функции:

q передачу данных;

q проверку достоверности данных при передаче;

q управление потоком данных;

q разделение каналов связи;

q обслуживание установленных соединений;

q соблюдение установленного приоритета пользователей;

q обеспечение соответствующего уровня безопасности.

Для одновременного использования протокола TCP несколькими приклад­ными программами на одном компьютере он представлен набором адресов и портов. Поскольку идентификаторы портов выбираются каждой программой протокола TCP независимо, то они не будут уникальны. Уникальна совокуп­ность идентификатора порта и IP-адреса. Эта совокупность называется сокет. Соединение между отправителем и получателем полностью определяются двумя сокетами на его концах. Это соединение можно использовать для передачи данных в обоих направлениях, то есть оно поддерживает дуплексный режим передачи.

Существует несколько основополагающих концепций связи портов с при­кладными программами при любой реализации протокола TCP.

Для сохранения всей совокупности информации, необходимой для создания и поддержки соединения, каждый раз при установлении соединения создается структура данных, называемая блоком управления передачей (Transmission Control Block, TCB). Блок управления передачей ТСВ хранит всю постоянную информацию по созданному соединению и текущие значения нескольких пе­ременных, например, определяющих очередность отправления. К постоянной информации относятся: номера локального и удаленного сокетов, флаги безо­пасности и приоритета для данного соединения, указатели на буферы отправки и приема. Блок ТСВ поддерживает несколько переменных, определяющих оче­редность отправления и получения сегментов. К ним относятся переменные, связанные с отправкой:

q SND.UNA — посылка не подтверждена;

q SND.NXT — послать следующий сегмент;

q SND.WND — отправить окно;

q SND.UP — отправить срочный указатель;

q SND.WL1 — номер в очереди сегмента, использованный для обновления последнего окна;

q SND.WL2 — номер подтверждения в сегменте, используемый для обнов­ления последнего окна;

q ISS — первоначальный номер в очереди отправки;

и переменные, связанные с получением:

q RCV.NXT — получить следующий сегмент;

q RCV.WND - получить окно;

q RCV.UP — получить срочный указатель;

q IRS — первоначальный номер в очереди получения.

Часто используются переменные, берущие свое значение из полей очередного сегмента. К ним относятся:

q SEG.SEQ — номер в очереди для сегмента;

q SEG.ACK — номер подтверждения для сегмента;

q SEG.LEN — длина сегмента;

q SEG.WND — окно для сегмента;

q SEG.UP — срочный указатель для сегмента;

q SEG.PRC — приоритет для сегмента.

На рис. 7.4 показана последовательность этапов отправки и приема данных.

 

 

На примере рис. 7.4 рассмотрим принцип использования некоторых перемен­ных. Отправитель данных с помощью переменной SND.NXT отслеживает следу­ющий номер сегмента в очереди, подлежащего отправке. Получатель данных с помощью переменной RCV.NXT отслеживает номера прибывающих сегментов. В поле переменной SND.UNA отправитель данных помещает самый старый номер сегмента, который уже был отправлен, но на который еще не получено подтверждение (АСК). Когда отправитель создает и посылает новый сегмент, он увеличивает значение своей переменной SND.NXT. Адресат при получении этого сегмента увеличивает значение своей переменной RCV.NXT и отправляет подтверждение. При получении подтверждения увеличивается значение пере­менной SND.UNA отправителя. Разность значений переменных SND.NXT и SND.UNA может служить мерой задержки сегментов в сети. Переменные увели­чиваются на длину поля данных в сегменте.

 




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


Дата добавления: 2015-07-13; Просмотров: 416; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.