А. Робачевский - Операционная система UNIX (1114671), страница 76
Текст из файла (страница 76)
Модуль протокола IP производит ло!гическую операцию "И" между маской и конкретным адресом, и такимобразом определяет, предназначена ли этаданному хосту (длямодуля протокола хоста), или датаграмма адресована непосредственноподключенной подсети, или ее необходимо передать другому шлюзу дляпоследующей доставки. Использование маски сети показано на рис.
6.8.Если хост или шлюз "не знает", какую маску использовать, он формируетсообщение ADDRESS MASK REQUEST (запрос маски адреса) протоколаICMP и направляет его в сеть, ожидая сообщенияADDRESS MASKREPLY от соседнего шлюза.Ряд IP!адресов имеют специальное значение и не могут присваиваться се!тевым элементам (хостам, шлюзам и т. д.). Эти значения приведены втабл. 6.3.Конечно, в изолированной сети (или сетях), не имеющей выхода в глобальнуюInternet, вы вольны использовать адреса любого класса.Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.comГлава 6.400сети операционной системе UNIXРис.
6.8. ПодсетиТаблица 6.3. Специальные IP%адресаАдресПримерСеть:0, Хост:0Сеть:0, Хост:НАдрес:Адрес сети: 192.85.160.0Маска: 255.255.255.240 Адрес подсети: 2Адрес хоста: 40.0.0.0Данный хост в данной сети0.0.0.5Определенный хост в данной сети(только для адреса источника)Групповой адрес всех хостов данной255.255.255.255подсетиСеть:1111...1Подсеть :SХост:1111...1127Интерпретация192.85.160.255Групповой адрес всех хостов всех под%сетей сети N192.85.160.47Групповой адрес всех хостов подсети Sсети N127.0.0.1Адрес внутреннего логического хостаПротоколы транспортного уровняВ соответствии с моделью DARPA, рассмотренной нами ранее, протоколытранспортного уровня работают исключительно на хостах, являющихсяwww.books-shop.comтранспортного уровняточками обмена информацией — источниках или получателях датаграмм.Поскольку основная функция шлюзов заключается в выборе пути и после!дующей передачекоторые непосредственно шлюзу не адресо!ваны, протоколы этого уровня обычно не задействованы в шлюзах.Два протокола этого уровня — TCP и UDP обеспечивают транспорт дан!ных с заданными характеристиками между источником и получателем.Поскольку на каждом хосте как правило существует несколько процессов!получателей данных, протоколы этого уровня должны располагать необхо!димой информацией для доставки данных требуемому протоколу уровняприложений.Как было показано, каждый уровень протоколов DARPA имеет собствен!ную систему адресации.
Например, для уровня сетевого интерфейса(соответствующего физическому уровню и уровню канала данных моделиOSI) в локальных сетях используется физический адрес интерфейса. Онпредставляет собой 48!битный адрес, как правило, записанный в памятьплаты. Для отображения физического адреса в адрес протокола верхнегоуровня (Internet) используется специальный протокол трансляции адресаAddress Resolution Protocol (ARP).Уровень Internet (или сетевой уровень модели OSI) в качестве адресов ис!пользует уже рассмотренные нами IP!адреса. Для адресации протоколаверхнего уровня используется поле Protocol заголовкаПротоколы транспортного уровня замыкают систему адресации DARPA.Адреса, которые используются протоколами этого уровня и называютсяномерами портов (port number), служат для определения процесса (при!ложения), выполняющегося на данном хосте, которому адресованы дан!ные. Другими словами, для передачи сообщения от источника к получате!лю требуется шесть адресов — по три с каждой стороны (физический ад!рес адаптера, IP!адрес и номер порта) — для однозначного определенияпути.
Номер порта адресует конкретный процесс (приложение) и содер!жится в заголовке TCP! или UDP!пакета. IP!адрес определяет сеть и хост,на котором выполняется процесс, и содержится в заголовке IP!Адрес сетевого адаптера определяет расположение хоста в фи!зической сети.Номера портов занимают 16 бит и стандартизированы в соответствии с ихназначением. Полный список стандартных номеров портов приведен вRFC 1700 "Assigned Numbers". Часть из них в качестве примера приведенав табл. 6.4.Таблица 6.4. Некоторые стандартные номера портовНомер портаНазваниеНазначение (протокол уровня приложений)720echoftp%dataEchoПередача данных по протоколу FTP21ftpУправляющие команды протокола FTPwww.books-shop.comГлава 6.402сети в операционной системе UNIXТаблица 6.4 (продолжение)Номер портаНазваниеНазначение (протокол уровня приложений)2325telnetУдаленный доступ (Telnet)Электронная почта (Simple Mail Transfer Protocol)53domainbootpsbootpcСервер доменных имен (Domain Name Server)Сервер загрузки Bootstrap Protocol6768697080gopher110119123рорЗnntpntp161179bgpКлиент загрузки Bootstrap ProtocolПередача файлов (Trivial File Transfer Protocol)Информационная система GopherWorld Wide Web (HyperText Transfer Protocol)Электронная почта (POP версии З)Телеконференции (Network News Transfer Protocol)Синхронизация системных часов (Network TimeProtocol)Менеджмент/статистика (Simple Network Manage%ment Protocol)Маршрутизационная информация (Border GatewayProtocol)User Datagram Protocol (UDP)является протоколом транспортного уровня и, как следует из назва!ния, обеспечивает логический коммуникационный канал между источни!ком и получателем данных без предварительного установления связи.Другими словами, сообщения, обрабатываемые протоколом не имеют другк другу никакого отношения с точки зренияДля передачи датаграммиспользует протокол IP и так же, как и последний, не обеспечиваетнадежности передачи.
Поэтому приложения, использующие этот транс!портный протокол, должны при необходимости самостоятельно обеспе!чить надежность доставки, например, путем обмена подтверждениями иповторной передачей недоставленных сообщений.Однако благодаря минимальной функциональности протокола UDP, пере!дача данных с его использованием вносит гораздо меньшие накладныерасходы по сравнению, скажем, с парным ему транспортным протоколомTCP. Размер заголовка UDP, показанного на рис. 6.9, составляет всего 8октетов.Первые два поля, каждое из которых занимает по 2 октета, адресуют соот!ветственно порты источника и получателя. Указание порта источника яв!www.books-shop.comПротоколы транспортного уровня403ляется необязательным и это поле может быть заполнено нулями. ПолеLength содержит длинукоторая не может быть меньше 8 ок!тетов.
Поле Checksum используется для хранения контрольной суммы ииспользуется только если протокол верхнего уровня требует этого. Есликонтрольная сумма не используется, это поле заполняется нулями. В про!тивном случае она вычисляется по псевдозаголовку, содержащему IP!адресаисточника и получателя датаграммы и поле Protocol из IP!заголовка. Видпсевдозаголовка представлен на рис. 6.10. То, что вычисление контроль!ной суммы включает IP!адреса, гарантирует, что полученнаядоставлена требуемому адресату.
Заметим, что для протокола UDP значе!ние поля Protocol равно 17.Рис. 6.10. Псевдозаголовок UDPВ качестве примеров протоколов уровня приложений, которые используютв качестве транспортного протокол UDP, можно привести:Протокол взаимодействия с сервером доменных имен DNS, порт 53.Протокол синхронизации времени Network Time Protocol, порт 123.Протокол удаленной загрузки ВООТР, порты 67 и 68 для клиента исервера соответственно.www.books-shop.com404Глава 6.сети вПротокол удаленного копирования Trivial FTPУдаленный вызов процедур RPC, портсистеме UNIXпорт 69.Для всех перечисленных протоколов и соответствующих им приложенийпредполагается, что в случае недоставки сообщения необходимые действияпредпримет протокол верхнего уровня (приложение).
Как правило, прило!жения, использующие протокол UDP в качестве транспорта, обмениваютсяданными, имеющими статистический повторяющийся характер, когда поте!ря одного сообщения не влияет на работу приложения в целом. Приложе!ния, требующие гарантированной надежной доставки данных, используютболее сложный протокол транспортного уровня, в значительной степенидополняющего функциональность протокола IP, — протокол TCP.Transmisson Control Protocol (TCP)TCP является протоколом транспортного уровня, поддерживающим на!дежную передачу потока данных с предварительным установлением связимежду источником информации и ее получателем. На базе протокола TCPреализованы такие протоколы уровня приложений, как Telnet, FTP илиHTTP.Протокол TCP характеризуется следующими возможностями, делающимиего привлекательным для приложений:Перед фактической передачей данных необходимо установление свя!зи, т.
е. запрос на начало сеанса передачи данных источником и под!тверждение получателем. После обмена данными сеанс передачидолжен быть явно завершен.Доставка информации является надежной, не допускающей дублиро!вания или нарушения очередности получения данных.Возможность управления потоком данных для избежания перепол!нения и затора.Доставка экстренных данных.Эти возможности протокола позволяют протоколам верхнего уровня и,соответственно, приложениям, их реализующим, не заботиться о надежно!сти, последовательности доставки и т.