Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Transfer Control Protocol — TCP




User Datagram Protocol


User Datagram Protocol — UDP — один из двух протоколов транспортного уровня, используемых в стеке протоколов TCP/IP. UDP позволяет прикладной программе передавать свои сообще­ния по сети с минимальными издержками, связанными с преоб­разованием протоколов уровня приложения в протокол IP. Одна­ко при этом прикладная программа сама должна обеспечивать подтверждение того, что сообщение доставлено по месту назначе­ния. Заголовок UDP-датаграммы (сообщения) имеет вид, пока­занный на рис. 5.11.

   
Source Port Destination Port
Length Checksum
Application Data
Рис. 5.11. Структура заголовка UDP-сообщения

 

Порты в заголовке определяют протокол UDP как мульти­плексор, который позволяет собирать сообщения от приложений и отправлять их на уровень протоколов. При этом приложение использует определенный порт. Взаимодействующие через сеть приложения могут использовать разные порты, что и отражает заголовок пакета. Всего можно определить 216 разных портов. Первые 256 портов закреплены за так называемыми «well known services (WKS)» (см., например, табл. 5.4).

Поле Length определяет общую длину сообщения. Поле Checksum служит для контроля целостности данных. Приложе­ние, которое использует протокол UDP, должно поддерживать целостность данных, анализируя поля Checksum и Length. Кро­ме этого, при обмене данными по UDP прикладная программа сама должна заботиться о контроле получения данных адреса­том. Обычно это достигается обменом подтверждениями о до­ставке между прикладными программами.

Наиболее известными сервисами, основанными на UDP, яв­ляются служба доменных имен BIND и распределенная файло­вая система NFS. Собственно, именно сообщение UDP и посы­лается в сеть, но при этом используется такой порт, который не имеет обслуживания, поэтому порождается ICMP-пакет, кото­рый и определяет отсутствие сервиса на принимающей машине, когда пакет наконец достигает машины-адресата.

В том случае, когда контроль качества передачи данных по сети имеет особое значение для приложения, используется прото­кол TCP. Этот протокол также называют надежным, ориентиро­ванным на соединение потокоориентированным протоколом. Рассмотрим формат передаваемой по сети датаграммы (рис. 5.12). Согласно этой структуре в TCP, как и в UDP, используются пор­ты. В поле Sequence Number определен номер пакета в последо­вательности пакетов, которая составляет сообщение, затем идет поле подтверждения Asknowledgment Number и другая управ­ляющая информация.

  ---------------------------------------------------- Bits 0 |4 18 112 16 120 124 128
1_ Source Port Destination Port
  Sequence Number
(0 3 Asknowledgment Number
о. ^ 4 Offset Reserved Flags Window
  Chesksum Urgent Pomter
  Options Padding
  Data
Рис. 5.12. Структура пакета TCP

 

Надежность TCP обеспечивается тем, что источник данных повторяет их передачу, если только не получит в определенный промежуток времени от адресата подтверждение об их успешном получении. Этот механизм называется Positive Asknowledgement with Re-transmission (PAR). В заголовке TCP предусмотрено поле контрольной суммы. Если при пересылке данные повреждены, то по контрольной сумме модуль, вычленяющий ТСР-сегменты из пакетов IP, уничтожает поврежденный пакет (сообщение ис­точнику не передается). Если же данные не были повреждены, то они пропускаются на сборку сообщения приложения, а в ад­рес источника отправляется подтверждение.

Ориентация на соединение определяется тем, что, прежде чем отправить сегмент с данными, модули TCP-источника и получа­теля обмениваются управляющей информацией. Такой обмен называется handshake (буквально «рукопожатие»), В TCP исполь­зуется трехфазный handshake:

• источник устанавливает соединение с получателем, посы­лая ему пакет с флагом «синхронизации последовательно­сти номеров» (Synchronize Sequence Numbers — SYN). Номер в последовательности определяет номер пакета в со­общении приложения. Это не обязательно должен быть О или 1, но все остальные номера будут использовать его в качестве базы, что позволит собрать пакеты в правильном порядке;

• получатель отвечает номером в поле подтверждения полу­чения syn, который соответствует установленному источ­ником номеру. Кроме того, в поле «Номер в последова­тельности» может также сообщаться номер, который запра­шивался источником;

• источник подтверждает, что принял сегмент получателя и отправляет первую порцию данных.

После установки соединения источник посылает данные по­лучателю и ждет от него подтверждений об их получении, затем снова посылает данные и т. д., пока сообщение не закончится. Заканчивается сообщение, когда в поле флагов выставляется бит FIN, что означает «больше нет данных».

Потоковый характер протокола определяется тем, что syn определяет стартовый номер для отсчета переданных байтов, а не пакетов. Это значит, что если syn был установлен в 0 и было передано 200 байтов, то номер, установленный в следующем па­кете, будет равен 201, а не 2.

Потоковый характер протокола и требование подтверждения получения данных порождают проблему скорости передачи дан­ных. Для ее решения используется поле Window (окно). Идея применения окна достаточно проста: передавать данные, не до­жидаясь подтверждения об их получении. Это значит, что источ­ник передает некоторое количество данных, равное window, без ожидания подтверждения об их приеме, и только после этого ос­танавливает передачу и ждет подтверждения. Если он получит подтверждение только на часть переданных данных, то начнет пе­редачу новой порции с номера, следующего за подтвержденным.

Контрольные вопросы

1. Перечислите по порядку уровни в архитектуре протокола TCP/IP.

2. Какую функцию выполняет протокол TCP?

3. Какую функцию выполняет протокол IP?

4. Что входит в систему адресов Internet?

5. Какую структуру имеет адрес Ethernet?

6. Какую структуру имеет IP-адрес?

7. Что такое зарезервированные IP-адреса?

8. Что из себя представляет система доменных имен?

9. Что такое сервер доменных имен?

10. Что такое адреса UUCP и SMTP?

11. Какие разновидности URL вам известны?

12. Какие протоколы транспортного уровня вы знаете?

13. Что такое инкапсуляция и фрагментация?

14. Что такое TCP/UDP-порт?

15. Что представляют собой протоколы управления маршрутизацией?

16. Какова структура пакета TCP?

17. Что представляет собой ARP?

18. Что такое класс локальной сети, входящей в Internet?


Глава 6

ИНФОРМАЦИОННЫЕ РЕСУРСЫ INTERNET И ПРОТОКОЛЫ ПРИКЛАДНОГО УРОВНЯ

В дальнейшем мы предполагаем рассмотреть основные про­токолы прикладного уровня, обеспечивающие доступ к инфор­мационным ресурсам Internet (и не только к ним), а также соот­ветствующее программное обеспечение (программы-клиенты и программы-серверы). К указанным средствам относятся:

• протокол эмуляции терминала — Telnet,

• протоколы электронной почты — SMTP, UUCP,

• протоколы распределенных файловых систем — NNTP, Gopher, FTP;

• протокол пересылки гипертекста — HTTP.

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

Кроме того, к протоколам прикладного уровня Internet отно­сится Z39.50 — протокол управления поиском в распределенных базах данных.

Могут быть выделены два основных класса средств доступа и организации ИР:

• распределенные файловые системы (Usenet, FTP, Gopher);

• распределенные информационные системы (WWW, WAIS).

В настоящей главе наряду с протоколами и сервисами Telnet

и SMTP/UUCP будут рассмотрены средства доступа к информа­ционным ресурсам Internet, входящим в категорию распределен­ных файловых систем.

6.1. Протокол эмуляции удаленного терминала Telnet

Протокол эмуляции удаленного терминала Telnet — одна из самых старых информационных технологий Internet, и по степе­ни проработанности она значительно отличается от ранее упо­минавшихся технологий передачи файлов (Zmodem, Kermit) и организации хост-систем (BBS).

Протокол Telnet впервые описан в RFC-854 (май, 1983 г.) и его авторы J. Postel и J. Reynolds во введении к документу опре­делили его назначение:

«Назначение Telnet-протокола — дать общее описание, насколь­ко это возможно, двунаправленного восьмибитового взаимодейст­вия, главной целью которого является обеспечение стандартного метода взаимодействия терминального устройства и терми- нал-ориентированного процесса. Этот протокол может быть ис­пользован и для организации взаимодействий "терминал — терми­нал "(связь) и "процесс — процесс"(распределенные вычисления)».

Telnet строится как прикладной протокол над транспортным протоколом TCP и базируется на следующих основных понятиях:

• концепция сетевого виртуального терминала;

• принцип договорных опций (согласование параметров взаимодействия);

• симметрия связи «терминал — процесс».

Сетевой виртуальный терминал (Network Virtual Terminal — NVT) — это стандартное описание наиболее широко используемых возможностей реальных физических терминальных устройств, что позволяет описать и преобразовать в стандартную форму спо­собы отображения и ввода информации. Терминальная программа («user») и процесс («server»), работающий с ней, преобразовывают характеристики физических устройств в спецификацию NVT, что позволяет, с одной стороны, унифицировать характеристики физи­ческих устройств, а с другой — обеспечить принцип совместимо­сти устройств с разными возможностями. Характеристики диалога диктуются устройством с меньшими возможностями. Если взаимо­действие осуществляется по принципу «терминал — терминал» или «процесс — процесс», то «user» — это сторона, инициирующая со­единение, a «server» — пассивная сторона.

Принцип договорных опций или команд позволяет согласовать возможности представления информации на терминальных уст­ройствах. NVT — это минимально необходимый набор параметров, которые дают возможность работать по Telnet даже очень старым устройствам, однако реальные современные устройства обладают гораздо большими возможностями представления информации. Принцип договорных команд позволяет использовать эти возмож­ности. Например, NVT является терминалом, который не может использовать функции управления курсором, а реальный терми­нал, с которого осуществляется работа, имеет такие возможности. Используя команды договора, терминальная программа предлагает обслуживающему процессу использовать Esc-последовательности для управления выводом информации. Получив такую команду, процесс начинает вставлять управляющие последовательности в данные, предназначенные для отображения.

Симметрия взаимодействия по протоколу Telnet позволяет в течение одной сессии nporpaMMe-«user» и nporpaMMe-«server» ме­няться местами. Это принципиально отличает взаимодействие в рамках Telnet от традиционной схемы «клиент — сервер». Сим­метрия взаимодействия связана с процессом согласования фор­мы обмена данными между участниками Telnet-соединения. Ко­гда речь идет о работе на удаленной машине в режиме терминала, то возможности ввода и отображения информации определяются только конкретным физическим терминалом, и договорной про­цесс сводится к заказу терминальной программой характеристик этого терминала. Все гораздо сложнее, когда речь идет об обмене информацией между двумя терминальными программами в ре­жиме «терминал — терминал». В этом случае каждая из сторон может выступать инициатором изменения принципов представ­ления информации, и здесь проявляется еще одна особенность протокола Telnet. Протокол не использует принцип «запрос — подтверждение», а применяет принцип «прямого действия». Это значит, что если пользователь терминальной программы хочет расширить возможности представления информации, то она де­лает это (например, вставляет в информационный поток Esc-no- следовательности), и если в ответ она получает информацию в новом представлении, то это означает, что попытка удалась, в противном случае происходит возврат к стандарту NVT.

Обычно процесс согласования форм представления инфор­мации происходит в начальный момент организации Telnet-co- единения. Каждый из процессов старается установить макси­мально возможные параметры сеанса. Однако эти параметры могут быть изменены и позже, в процессе взаимодействия (на­пример, после запуска прикладной программы).

В Unix-системах параметры терминалов обычно содержатся в файлах описания терминалов termcap. При инициировании Telnet-соединения обычно именно эти параметры используются в процессе согласования формы представления данных, причем не все функции данного терминала будут задействованы. В про­цессе договора останутся только те, которые поддерживаются на обоих концах соединения.

В стандарте Telnet NVT определен как двунаправленное сим­вольное устройство, состоящее из принтера и клавиатуры. Прин­тер предназначен для отображения приходящей по сети инфор­мации, а клавиатура — для ввода данных, передаваемых по сети, и, если включен режим echo, — вывода их на принтер. По умол­чанию предполагается, что для обмена информацией использу­ется 7-битовый код US ASCII, каждый символ которого разме­щен в 8-битовом поле. Любое преобразование символов являет­ся расширением стандарта NVT.

Принтер имеет неограниченные ширину и длину страницы и может отображать все символы US ASCII (коды 32—127), рас­ширенный набор символов (коды 128—255), а также распознает управляющие коды (0—31 и 127). Некоторые из них имеют спе­циальные значения (табл. 6.1).

Таблица 6.1. Коды управления терминалами
Код Интерпретация
Обязательные коды
null Нет операции
Перевод строки Line Feed (lf) Переход на другую строку с сохранением текущей позиции в строке
Возврат каретки Carrige Return (cr) Устанавливает в качестве текущей первую позицию текущей строки
Рекомендованные коды
звонок (bel) Звуковой сигнал
Сдвиг на одну позицию назад (back space) Перемещает каретку на одну позицию назад в теку­щей строке
Горизонтальная табуляция Horizontal Tab (нт) Перемещение к следующей позиции горизонтальной табуляции ■
Вертикальная табуляция Vertical Tab (vt) Перемещение курсора к следующей позиции верти­кальной табуляции
Прогон страницы Form Feed (ff) Переход к новой странице

 




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


Дата добавления: 2014-11-29; Просмотров: 684; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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