КАТЕГОРИИ: Архитектура-(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; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |