КАТЕГОРИИ: Архитектура-(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.
Порты в заголовке определяют протокол 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 и другая управляющая информация.
Надежность 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).
Дата добавления: 2014-11-29; Просмотров: 735; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |