RFC1180 Семейство протоколов TCP/IP в переводе Брежнева и Смелянского
Оригинал - RFC1180 T.Socolofsky and C.Kalehttp://www.alcpress.com/rfc/tcpip/rfc1180.htm Перевод с английского: Брежнев А.Ф., Смелянский Р.Л. Содержание
1. Введение ....................................................... 1 2. Основы TCP/IP .................................................. 1 2.1. Модуль IP создает единую логическую сеть ..................... 12.2. Структура связей протокольных модулей ........................ 22.3. Терминология ................................................. 32.4. Потоки данных ................................................ 32.5. Работа с несколькими сетевыми интерфейсами ................... 5 3. Ethernet ....................................................... 63.1. Аналогия с разговором ........................................ 7 4. Протокол ARP ................................................... 74.1. ARP-таблица для преобразования адресов ....................... 84.2. Порядок преобразования адресов ............................... 84.3. Запросы и ответы протокола ARP ............................... 94.4. Продолжение преобразования адресов ........................... 10 5. Межсетевой протокол IP ......................................... 115.1. Прямая маршрутизация ......................................... 115.2. Косвенная маршрутизация ...................................... 125.3. Правила маршрутизации в модуле IP ............................ 145.4. IP-адрес ..................................................... 155.5. Выбор адреса ................................................. 175.6. Подсети ...................................................... 175.7. Как назначать номера сетей и подсетей ........................ 185.8. Имена ........................................................ 195.9. IP-таблица маршрутов ......................................... 205.10. Подробности прямой маршрутизации ............................ 215.11. Порядок прямой маршрутизации ................................ 225.12. Подробности косвенной маршрутизации ......................... 225.13. Порядок косвенной маршрутизации ............................. 23 6. Установка маршрутов ............................................ 256.1. Фиксированные маршруты ....................................... 256.2. Перенаправление маршрутов .................................... 266.3. Слежение за маршрутизацией ................................... 286.4. Протокол ARP с представителем ................................ 30 7. Протокол UDP ................................................... 327.1. Порты ........................................................ 337.2. Контрольное суммирование ..................................... 33 8. Протокол TCP ................................................... 34 9. Протоколы прикладного уровня ................................... 359.1. Протокол TELNET .............................................. 369.2. Протокол FTP ................................................. 379.3. Протокол SMTP ................................................ 379.4. r-команды .................................................... 379.5. NFS .......................................................... 389.6. Протокол SNMP ................................................ 389.7. X-Window ..................................................... 38 10. Взаимозависимость протоколов семейства TCP/IP ................. 39 Приложение 1. Путеводитель по RFC ................................. 40 Приложение 2. Стандарты семейства протоколов TCP/IP ............... 75 -- 11 -- * 1. Введение *
Семейство протоколов TCP/IP широко применяется во всем мире дляобъединения компьютеров в сеть Internet. Единая сеть Internet состоит измножества сетей различной физической природы, от локальных сетей типаEthernet и Token Ring, до глобальных сетей типа NSFNET. Основное внима-ние в книге уделяется принципам организации межсетевого взаимодействия.Многие технические детали, исторические вопросы опущены. Более подробнуюинформацию о протоколах TCP/IP можно найти в RFC (Requests For Comments)- специальных документах, выпускаемых Сетевым Информационным Центром(Network Information Center - NIC). Приложение 1 содержит путеводительпо RFC, а приложение 2 отражает положение дел в области стандартизациипротоколов семейства TCP/IP на начало 1991 года. В книге приводятся примеры, основанные на реализации TCP/IP в ОСUNIX. Однако основные положения применимы ко всем реализациям TCP/IP. Надеюсь, что эта книга будет полезна тем, кто профессионально рабо-тает или собирается начать работать в среде TCP/IP: системным администра-торам, системным программистам и менеджерам сети. * 2. Основы TCP/IP *
Термин "TCP/IP" обычно обозначает все, что связано с протоколами TCPи IP. Он охватывает целое семейство протоколов, прикладные программы идаже саму сеть. В состав семейства входят протоколы UDP, ARP, ICMP, TEL-NET, FTP и многие другие. TCP/IP - это технология межсетевого взаимо-действия, технология internet. Сеть, которая использует технологиюinternet, называется "internet". Если речь идет о глобальной сети, объе-диняющей множество сетей с технологией internet, то ее называют Internet. 2.1. Модуль IP создает единую логическую сеть
Архитектура протоколов TCP/IP предназначена для объединенной сети,состоящей из соединенных друг с другом шлюзами отдельных разнородныхпакетных подсетей, к которым подключаются разнородные машины. Каждая изподсетей работает в соответствии со своими специфическими требованиями иимеет свою природу средств связи. Однако предполагается, что каждая под-сеть может принять пакет информации (данные с соответствующим сетевымзаголовком) и доставить его по указанному адресу в этой конкретной под- -- 22 -- сети. Не требуется, чтобы подсеть гарантировала обязательную доставкупакетов и имела надежный сквозной протокол. Таким образом, две машины,подключенные к одной подсети могут обмениваться пакетами. Когда необходимо передать пакет между машинами, подключенными к раз-ным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз(шлюз подключен к подсети также как обычный узел). Оттуда пакет направ-ляется по определенному маршруту через систему шлюзов и подсетей, пока недостигнет шлюза, подключенного к той же подсети, что и машина-получатель;там пакет направляется к получателю. Объединенная сеть обеспечиваетдатаграммный сервис. Проблема доставки пакетов в такой системе решается путем реализацииво всех узлах и шлюзах межсетевого протокола IP. Межсетевой уровеньявляется по существу базовым элементом во всей архитектуре протоколов,обеспечивая возможность стандартизации протоколов верхних уровней. 2.2. Структура связей протокольных модулей Логическая структура сетевого программного обеспечения, реализующегопротоколы семейства TCP/IP в каждом узле сети internet, изображена нарис.1. Прямоугольники обозначают обработку данных, а линии, соединяющиепрямоугольники, - пути передачи данных. Горизонтальная линия внизурисунка обозначает кабель сети Ethernet, которая используется в качествепримера физической среды; "o" - это трансивер. Знак "*" - обозначает ------------------------------ | прикладные процессы | | ... \ | / ... \ | / ... | | ------- ------- | | | TCP | | UDP | | | ------- ------- | | \ / | | ------ | | ------- | IP | | | | ARP | -*---- | | ------- | | | \ | | | -------- | | | ENET | | | ---@---- | | | | ------------|----------------- | -------------------o-------- кабель EthernetРис.1. Структура протокольных модулей в узле сети TCP/IP -- 33 -- IP-адрес, а "@" - адрес узла в сети Ethernet (Ethernet-адрес). Пониманиеэтой логической структуры является основой для понимания всей технологииinternet. В дальнейшем мы будем часто ссылаться на эту схему. 2.3. Терминология
Введем ряд базовых терминов, которые мы будем использовать в даль-нейшем. Драйвер - это программа, непосредственно взаимодействующая с сетевымадаптером. Модуль - это программа, взаимодействующая с драйвером, сете-выми прикладными программами или другими модулями. Драйвер сетевогоадаптера и, возможно, другие модули, специфичные для физической сетипередачи данных, предоставляют сетевой интерфейс для протокольных модулейсемейства TCP/IP. Название блока данных, передаваемого по сети, зависит от того, накаком уровне стека протоколов он находится. Блок данных, с которым имеетдело сетевой интерфейс, называется кадром; если блок данных находитсямежду сетевым интерфейсом и модулем IP, то он называется IP-пакетом; еслион - между модулем IP и модулем UDP, то - UDP-датаграммой; если междумодулем IP и модулем TCP, то - TCP-сегментом (или транспортным сообще-нием); наконец, если блок данных находится на уровне сетевых прикладныхпроцессов, то он называется прикладным сообщением. Эти определения, конечно, несовершенны и неполны. К тому же онименяются от публикации к публикации. Более подробные определенияможно найти в RFC-1122, раздел 1.3.3. 2.4. Потоки данных
Рассмотрим потоки данных, проходящие через стек протоколов, изобра-женный на рис.1. В случае использования протокола TCP (Transmission Con-trol Protocol - протокол управления передачей), данные передаются междуприкладным процессом и модулем TCP. Типичным прикладным процессом,использующим протокол TCP, является модуль FTP (File Transfer Protocol -протокол передачи файлов). Стек протоколов в этом случае будетFTP/TCP/IP/ENET. При использовании протокола UDP (User Datagram Protocol- протокол пользовательских датаграмм), данные передаются между приклад-ным процессом и модулем UDP. Например, SNMP (Simple Network ManagementProtocol - простой протокол управления сетью) пользуется транспортнымиуслугами UDP. Его стек протоколов выглядит так: SNMP/UDP/IP/ENET. Модули TCP, UDP и драйвер Ethernet являются мультиплексорами n x 1.Действуя как мультиплексоры, они переключают несколько входов на одинвыход. Они также являются демультиплексорами 1 x n. Как демультиплек-соры, они переключают один вход на один из многих выходов в соответствиис полем типа в заголовке протокольного блока данных (рис.2). Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet,он может быть направлен либо в модуль ARP (Address Resolution Protocol -адресный протокол), либо в модуль IP (Internet Protocol - межсетевой про-токол). На то, куда должен быть направлен Ethernet-кадр, указывает зна-чение поля типа в заголовке кадра. Если IP-пакет попадает в модуль IP, то содержащиеся в нем данныемогут быть переданы либо модулю TCP, либо UDP, что определяется полем"протокол" в заголовке IP-пакета. Если UDP-датаграмма попадает в модуль UDP, то на основании значенияполя "порт" в заголовке датаграммы определяется прикладная программа,которой должно быть передано прикладное сообщение. Если TCP-сообщениепопадает в модуль TCP, то выбор прикладной программы, которой должно бытьпередано сообщение, осуществляется на основе значения поля "порт" в заго-ловке TCP-сообщения. Мультиплексирование данных в обратную сторону осуществляетсядовольно просто, так как из каждого модуля существует только один путьвниз. Каждый протокольный модуль добавляет к пакету свой заголовок, наосновании которого машина, принявшая пакет, выполняет демультиплексирова-ние. 1 2 3 .... n | 1 2 3 .... n ^ \ | | / | \ | | / | ----------------- поток ------------------- поток | мультиплексор | данных | демультиплексор | данных ----------------- | ------------------- | | | ^ | v V | | 1 1 Рис.2. Мультиплексор n x 1 и демультиплексор 1 x n -- 55 -- Данные от прикладного процесса проходят через модули TCP или UDP,после чего попадают в модуль IP и оттуда - на уровень сетевого интер-фейса. Хотя технология internet поддерживает много различных сред передачиданных, здесь мы будем предполагать использование Ethernet, так какименно эта среда чаще всего служит физической основой для IP-сети.Машина на рис.1 имеет одну точку соединения с Ethernet. ШестибайтныйEthernet-адрес является уникальным для каждого сетевого адаптера и рас-познается драйвером. Машина имеет также четырехбайтный IP-адрес. Этот адрес обозначаетточку доступа к сети на интерфейсе модуля IP с драйвером. IP-адрес дол-жен быть уникальным в пределах всей сети Internet. Работающая машина всегда знает свой IP-адрес и Ethernet-адрес. 2.5. Работа с несколькими сетевыми интерфейсами Машина может быть подключена одновременно к нескольким средам пере-дачи данных. На рис.3 показана машина с двумя сетевыми интерфейсами Eth-ernet. Заметим, что она имеет 2 Ethernet-адреса и 2 IP-адреса. Из представленной схемы видно, что для машин с несколькими сетевымиинтерфейсами модуль IP выполняет функции мультиплексора n x m и демуль-типлексора m x n (рис.4). --------------------------------- | прикладные процессы | | ... \ | / .... \ | / ... | | ------- ------- | | | TCP | | UDP | | | ------- ------- | | \ / | | ------ | | ------- | IP | ------- | | | ARP | -*--*- | ARP | | | ------- | | ------- | | \ | | / | | -------- -------- | | | ENET | | ENET | | | ---@---- ---@---- | | | | | ----------|---------|------------ | | | ---o-----------------------------o---- Ethernet 2 Ethernet 1Рис.3. Узел сети TCP/IP с двумя сетевыми интерфейсами -- 66 -- 1 2 3 .... n | 1 2 3 ...... n ^ \ | | / | \ | | / | ----------------- поток ------------------- поток | мультиплексор | данных | демультиплексор | данных ----------------- | ------------------- | / | | ... \ V / | | ..... \ | 1 2 3 m 1 2 3 m Рис.4. Мультиплексор n x m и демультиплексор m x n Таким образом, он осуществляет мультиплексирование входных и выходныхданных в обоих направлениях. Модуль IP в данном случае сложнее, чем впервом примере, так как может передавать данные между сетями. Данныемогут поступать через любой сетевой интерфейс и быть ретранслированычерез любой другой сетевой интерфейс. Процесс передачи пакета в другуюсеть называется ретрансляцией IP-пакета. Машина, выполняющая ретрансля-цию, называется шлюзом. [1] Как показано на рис.5, ретранслируемый пакет не передается модулямTCP или UDP. Некоторые шлюзы вообще могут не иметь модулей TCP и UDP. * 3. Ethernet *
В этом разделе мы кратко рассмотрим технологию Ethernet. Кадр Ethernet содержит адрес назначения, адрес источника, поле типаи данные. Размер адреса в Ethernet - 6 байт. Каждый сетевой адаптеримеет свой Ethernet-адрес. Адаптер контролирует обмен информацией, про- ------- ------- | TCP | | UDP | ------- ------- \ / ---------- | | | IP | | ____ | | / \ | ---------- / \ данные данные поступают отправляются отсюда сюда Рис.5. Пример межсетевой ретрансляции пакета модулем IP ____________________ [1] В документации по TCP/IP термины шлюз (gateway) и IP-маршрутизатор (IP-router) часто используются как синонимы. Мы сочли воз-можным использовать более распространенный термин "шлюз".исходящий в сети, и принимает адресованные ему Ethernet-кадры, а такжеEthernet-кадры с адресом "FF:FF:FF:FF:FF:FF" (в 16-ричной системе), кото-рый обозначает "всем", и используется при широковещательной передаче. Ethernet реализует метод МДКН/ОС (множественный доступ с контролемнесущей и обнаружением столкновений). Метод МДКН/ОС предполагает, чтовсе устройства взаимодействуют в одной среде, в каждый момент времениможет передавать только одно устройство, а принимать могут все одновре-менно. Если два устройства пытаются передавать одновременно, то происхо-дит столкновение передач, и оба устройства после случайного (краткого)периода ожидания пытаются вновь выполнить передачу. 3.1. Аналогия с разговором
Хорошей аналогией взаимодействиям в среде Ethernet может служитьразговор группы вежливых людей в небольшой темной комнате. При этом ана-логией электрическим сигналам в коаксиальном кабеле служат звуковые волныв комнате. Каждый человек слышит речь других людей (контроль несущей). Вселюди в комнате имеют одинаковые возможности вести разговор (множественныйдоступ), но никто не говорит слишком долго, так как все вежливы. Есличеловек будет невежлив, то его попросят выйти (т.е. удалят из сети).Все молчат, пока кто-то говорит. Если два человека начинают говоритьодновременно, то они сразу обнаруживают это, поскольку слышат друг друга(обнаружение столкновений). В этом случае они замолкают и ждут некотороевремя, после чего один из них вновь начинает разговор. Другие люди слы-шат, что ведется разговор, и ждут, пока он кончится, а затем могут начатьговорить сами. Каждый человек имеет собственное имя (аналог уникальногоEthernet-адреса). Каждый раз, когда кто-нибудь начинает говорить, онназывает по имени того, к кому обращается, и свое имя, например, "СлушайПетя, это Андрей, ... ля-ля-ля ..." Если кто-то хочет обратиться ко всем,то он говорит: "Слушайте все, это Андрей, ... ля-ля-ля ..." (широковеща-тельная передача). * 4. Протокол ARP *
В этом разделе мы рассмотрим то, как при посылке IP-пакета определя-ется Ethernet-адрес назначения. Для отображения IP-адресов в Ethernet-адреса используется протокол ARP (Address Resolution Protocol - адресныйпротокол). Отображение выполняется только для отправляемых IP-пакетов,так как только в момент отправки создаются заголовки IP и Ethernet. 4.1. ARP-таблица для преобразования адресов
Преобразование адресов выполняется путем поиска в таблице. Эта таб-лица, называемая ARP-таблицей, хранится в памяти и содержит строки длякаждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса.Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется записьс соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы. --------------------------------------------- | IP-адрес Ethernet-адрес |--------------------------------------------- | 223.1.2.1 08:00:39:00:2F:C3 | | 223.1.2.3 08:00:5A:21:A7:22 || 223.1.2.4 08:00:10:99:AC:54 | --------------------------------------------- Табл.1. Пример ARP-таблицы Принято все байты 4-байтного IP-адреса записывать десятичными чис-лами, разделенными точками. При записи 6-байтного Ethernet-адреса каждыйбайт указывается в 16-ричной системе и отделяется двоеточием. ARP-таблица необходима потому, что IP-адреса и Ethernet-адреса выби-раются независимо, и нет какого-либо алгоритма для преобразования одногов другой. IP-адрес выбирает менеджер сети с учетом положения машины всети internet. Если машину перемещают в другую часть сети internet, тоее IP-адрес должен быть изменен. Ethernet-адрес выбирает производительсетевого интерфейсного оборудования из выделенного для него по лицензииадресного пространства. Когда у машины заменяется плата сетевого адап-тера, то меняется и ее Ethernet-адрес. 4.2. Порядок преобразования адресов
В ходе обычной работы сетевая программа, такая как TELNET, отправ-ляет прикладное сообщение, пользуясь транспортными услугами TCP. МодульTCP посылает соответствующее транспортное сообщение через модуль IP. Врезультате составляется IP-пакет, который должен быть передан драйверуEthernet. IP-адрес места назначения известен прикладной программе,модулю TCP и модулю IP. Необходимо на его основе найти Ethernet-адресместа назначения. Для определения искомого Ethernet-адреса используетсяARP-таблица. 4.3. Запросы и ответы протокола ARP
Как же заполняется ARP-таблица? Она заполняется автоматически моду-лем ARP, по мере необходимости. Когда с помощью существующей ARP-таблицыне удается преобразовать IP-адрес, то происходит следующее: 1) По сети передается широковещательный ARP-запрос. 2) Исходящий IP-пакет ставится в очередь. Каждый сетевой адаптер принимает широковещательные передачи. Вседрайверы Ethernet проверяют поле типа в принятом Ethernet-кадре и пере-дают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так: "Есливаш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-адрес".Пакет ARP-запроса выглядит примерно так: ----------------------------------------------------------- | IP-адрес отправителя 223.1.2.1 | | Ethernet-адрес отправителя 08:00:39:00:2F:C3 | ----------------------------------------------------------- | Искомый IP-адрес 223.1.2.2 | | Искомый Ethernet-адрес <пусто> | ----------------------------------------------------------- Табл.2. Пример ARP-запроса Каждый модуль ARP проверяет поле искомого IP-адреса в полученномARP-пакете и, если адрес совпадает с его собственным IP-адресом, то посы-лает ответ прямо по Ethernet-адресу отправителя запроса. ARP-ответ можноинтерпретировать так: "Да, это мой IP-адрес, ему соответствует такой-тоEthernet-адрес". Пакет с ARP-ответом выглядит примерно так: ----------------------------------------------------------- | IP-адрес отправителя 223.1.2.2 | | Ethernet-адрес отправителя 08:00:28:00:38:A9 | ----------------------------------------------------------- | Искомый IP-адрес 223.1.2.1 | | Искомый Ethernet-адрес 08:00:39:00:2F:C3 | ----------------------------------------------------------- Табл.3. Пример ARP-ответа Этот ответ получает машина, сделавшая ARP-запрос. Драйвер этоймашины проверяет поле типа в Ethernet-кадре и передает ARP-пакет модулюARP. Модуль ARP анализирует ARP-пакет и добавляет запись в свою ARP-таблицу. Обновленная таблица выглядит следующим образом: --------------------------------------------- | IP-адрес Ethernet-адрес | --------------------------------------------- | 223.1.2.1 08:00:39:00:2F:C3 | | 223.1.2.2 08:00:28:00:38:A9 | | 223.1.2.3 08:00:5A:21:A7:22 | | 223.1.2.4 08:00:10:99:AC:54 |--------------------------------------------- Табл.4. ARP-таблица после обработки ответа 4.4. Продолжение преобразования адресов Новая запись в ARP-таблице появляется автоматически, спустя нес-колько миллисекунд после того, как она потребовалась. Как вы помните,ранее на шаге 2 исходящий IP-пакет был поставлен в очередь. Теперь сиспользованием обновленной ARP-таблицы выполняется преобразование IP-адреса в Ethernet-адрес, после чего Ethernet-кадр передается по сети.Полностью порядок преобразования адресов выглядит так: 1) По сети передается широковещательный ARP-запрос. 2) Исходящий IP-пакет ставится в очередь. 3) Возвращается ARP-ответ, содержащий информацию о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу. 4) Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав- ленного в очередь, используется ARP-таблица. 5) Ethernet-кадр передается по сети Ethernet. Короче говоря, если с помощью ARP-таблицы не удается сразу осущест-вить преобразование адресов, то IP-пакет ставится в очередь, а необходи-мая для преобразования информация получается с помощью запросов и ответовпротокола ARP, после чего IP-пакет передается по назначению. Если в сети нет машины с искомым IP-адресом, то ARP-ответа не будети не будет записи в ARP-таблице. Протокол IP будет уничтожать IP-пакеты,направляемые по этому адресу. Протоколы верхнего уровня не могут отли-чить случай повреждения сети Ethernet от случая отсутствия машины с иско-мым IP-адресом. Некоторые реализации IP и ARP не ставят в очередь IP-пакеты на товремя, пока они ждут ARP-ответов. Вместо этого IP-пакет просто уничтожа-ется, а его восстановление возлагается на модуль TCP или прикладной про-цесс, работающий через UDP. Такое восстановление выполняется с помощьютаймаутов и повторных передач. Повторная передача сообщения проходитуспешно, так как первая попытка уже вызвала заполнение ARP-таблицы. Следует отметить, что каждая машина имеет отдельную ARP-таблицу длякаждого своего сетевого интерфейса. * 5. Межсетевой протокол IP *
Модуль IP является базовым элементом технологии internet, а цент-ральной частью IP является его таблица маршрутов. Протокол IP используетэту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содер-жание таблицы маршрутов определяется администратором сети. Ошибки приустановке маршрутов могут заблокировать передачи. Чтобы понять технику межсетевого взаимодействия, нужно понять то,как используется таблица маршрутов. Это понимание необходимо для успеш-ного администрирования и сопровождения IP-сетей. 5.1. Прямая маршрутизация
На рис.6 показана небольшая IP-сеть, состоящая из 3 машин: A, B и C.Каждая машина имеет такой же стек протоколов TCP/IP как на рис.1. Каждыйсетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети дол-жен присвоить машинам уникальные IP-адреса. A B C | | | --------------o------o------o------ Ethernet 1 IP-сеть "development"Рис.6. Простая IP-сеть Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в полеотправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в полеотправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в полеполучателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получа-теля Ethernet-адрес B. ----------------------------------------------------- | адрес отправитель получатель | ----------------------------------------------------- | IP-заголовок A B || Ethernet-заголовок A B |----------------------------------------------------- Табл.5. Адреса в Ethernet-кадре, передающем IP-пакет от A к B В этом простом примере протокол IP является излишеством, котороемало что добавляет к услугам, предоставляемым сетью Ethernet. Однакопротокол IP требует дополнительных расходов на создание, передачу и обра-ботку IP-заголовка. Когда в машине B модуль IP получает IP-пакет отмашины A, он сопоставляет IP-адрес места назначения со своим и, еслиадреса совпадают, то передает датаграмму протоколу верхнего уровня. В данном случае при взаимодействии A с B используется прямая маршру-тизация. 5.2. Косвенная маршрутизация
На рис.7 представлена более реалистичная картина сети internet. Вданном случае сеть internet состоит из трех сетей Ethernet, на базе кото-рых работают три IP-сети, объединенные шлюзом D. Каждая IP-сеть включаетчетыре машины; каждая машина имеет свои собственные IP- и Ethernet-адреса. ----- D ------- A B C | | | E F G | | | | | | | | |----o-----o-----o-----o-- | --o-----o-----o-----o--- Ethernet 1 | Ethernet 2 IP-сеть "development" | IP-сеть "accounting" | | H I J | | | | --o----o-----o-----o---------- Ethernet 3 IP-сеть "fuctory"Рис.7. Сеть internet, состоящая из трех IP-сетей За исключением D все машины имеют стек протоколов, аналогичный пока-занному на рис.1. Шлюз D соединяет все три сети и, следовательно, имееттри IP-адреса и три Ethernet-адреса. Машина D имеет стек протоколовTCP/IP, похожий на тот, что показан на рис.3, но вместо двух модулей ARPи двух драйверов, он содержит три модуля ARP и три драйвера Ethernet.Обратим внимание на то, что машина D имеет только один модуль IP. Менеджер сети присваивает каждой сети Ethernet уникальный номер,называемый IP-номером сети. На рис.7 IP-номера не показаны, вместо нихиспользуются имена сетей. Когда машина A посылает IP-пакет машине B, то процесс передачи идетв пределах одной сети. При всех взаимодействиях между машинами, подклю-ченными к одной IP-сети, используется прямая маршрутизация, обсуждавшаясяв предыдущем примере. Когда машина D взаимодействует с машиной A, то это прямое взаимо-действие. Когда машина D взаимодействует с машиной E, то это прямое вза-имодействие. Когда машина D взаимодействует с машиной H, то это прямоевзаимодействие. Это так, поскольку каждая пара этих машин принадлежитодной IP-сети. Однако, когда машина A взаимодействует с машинами, включенными вдругую IP-сеть, то взаимодействие уже не будет прямым. Машина A долженаиспользовать шлюз D для ретрансляции IP-пакетов в другую IP-сеть. Такоевзаимодействие называется "косвенным". Маршрутизация IP-пакетов выполняется модулями IP и является прозрач-ной для модулей TCP, UDP и прикладных процессов. Если машина A посылает машине E IP-пакет, то IP-адрес и Ethernet-адрес отправителя соответствуют адресам A. IP-адрес места назначенияявляется адресом E, но поскольку модуль IP в A посылает IP-пакет через D,Ethernet-адрес места назначения является адресом D. ---------------------------------------------------- | адрес отправитель получатель | ---------------------------------------------------- | IP-заголовок A E || Ethernet-заголовок A D |---------------------------------------------------- Табл.6. Адреса в Ethernet-кадре, содержащем IP-пакет от A к E (до шлюза D) Модуль IP в машине D получает IP-пакет и проверяет IP-адрес местаназначения. Определив, что это не его IP-адрес, шлюз D посылает этотIP-пакет прямо к E. ---------------------------------------------------- | адрес отправитель получатель | ---------------------------------------------------- | IP-заголовок A E | | Ethernet-заголовок D E | ---------------------------------------------------- Табл.7. Адреса в Ethernet-кадре, содержащем IP-пакет от A к E (после шлюз D) Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителясоответствуют адресам того узла, который послал IP-пакет, а IP- иEthernet-адреса места назначения соответствуют адресам получателя. Прикосвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар. В данном примере сеть internet является очень простой. Реальныесети могут быть гораздо сложнее, так как могут содержать несколько шлюзови несколько типов физических сред передачи. В приведенном примере нес-колько сетей Ethernet объединяются шлюзом для того, чтобы локализоватьшироковещательный трафик в каждой сети. 5.3. Правила маршрутизации в модуле IP
Выше мы показали, что происходит при передаче сообщений, а теперьрассмотрим правила или алгоритм маршрутизации. Для отправляемых IP-пакетов, поступающих от модулей верхнего уровня,модуль IP должен определить способ доставки - прямой или косвенный - ивыбрать сетевой интерфейс. Этот выбор делается на основании результатовпоиска в таблице маршрутов. Для принимаемых IP-пакетов, поступающих от сетевых драйверов, модульIP должен решить, нужно ли ретранслировать IP-пакет по другой сети илипередать его на верхний уровень. Если модуль IP решит, что IP-пакет дол-жен быть ретранслирован, то дальнейшая работа с ним осуществляется также,как с отправляемыми IP-пакетами. Входящий IP-пакет никогда не ретранслируется через тот же сетевойинтерфейс, через который он был принят. Решение о маршрутизации принимается до того, как IP-пакет передаетсясетевому драйверу, и до того, как происходит обращение к ARP-таблице. 5.4. IP-адрес Менеджер сети присваивает IP-адреса машинам в соответствии с тем, ккаким IP-сетям они подключены. Старшие биты 4-х байтного IP-адреса опре-деляют номер IP-сети. Оставшаяся часть IP-адреса - номер узла (хост-номер). Для машины из табл.1 с IP-адресом 223.1.2.1 сетевой номер равен223.1.2, а хост-номер - 1. Напомним, что IP-адрес узла идентифицируетточку доступа модуля IP к сетевому интерфейсу, а не всю машину. Существуют 5 классов IP-адресов, отличающиеся количеством бит всетевом номере и хост-номере. Класс адреса определяется значением егопервого октета. В табл.8 приведено соответствие классов адресов значениям первогооктета и указано количество возможных IP-адресов каждого класса. 0 8 16 24 31 --------------------------------------------------- Класс A |0| номер сети | номер узла | --------------------------------------------------- --------------------------------------------------- Класс B |10| номер сети | номер узла | --------------------------------------------------- --------------------------------------------------- Класс C |110| номер сети | номер узла | --------------------------------------------------- --------------------------------------------------- Класс D |1110| групповой адрес | --------------------------------------------------- --------------------------------------------------- Класс E |11110| зарезервировано | --------------------------------------------------- Рис.8. Структура IP-адресов ------------------------------------------------------- | Класс Диапазон значений Возможное Возможное | | первого октета кол-во сетей кол-во узлов | ------------------------------------------------------- | A 1 - 126 126 16777214 | | B 128-191 16382 65534 | | C 192-223 2097150 254 | | D 224-239 - 2**28 | | E 240-247 - 2**27 | ------------------------------------------------------- Табл.8. Характеристики классов адресов Адреса класса A предназначены для использования в больших сетяхобщего пользования. Они допускают большое количество номеров узлов.Адреса класса B используются в сетях среднего размера, например, сетяхуниверситетов и крупных компаний. Адреса класса C используются в сетях снебольшим числом компьютеров. Адреса класса D используются при обраще-ниях к группам машин, а адреса класса E зарезервированы на будущее. Некоторые IP-адреса являются выделенными и трактуются по-особому. ------------------------------ | все нули | Данный узел ------------------------------ ------------------------------ | номер сети | все нули | Данная IP-сеть ------------------------------ ------------------------------ | все нули | номер узла | Узел в данной (локальной) IP-сети ------------------------------ ------------------------------ | все единицы | Все узлы в данной (локальной) IP-сети ------------------------------ ------------------------------ | номер сети | все единицы | Все узлы в указанной IP-сети ------------------------------ ------------------------------ | 127 | что-нибудь (часто 1) | "Петля" ------------------------------ Рис.9. Выделенные IP-адреса Как показано на рис.9, в выделенных IP-адресах все нули соответст-вуют либо данному узлу, либо данной IP-сети, а IP-адреса, состоящие извсех единиц, используются при широковещательных передачах. Для ссылок навсю IP-сеть в целом используется IP-адрес с нулевым номером узла. Особыйсмысл имеет IP-адрес, первый октет которого равен 127. Он используетсядля тестирования программ и взаимодействия процессов в пределах одноймашины. Когда программа посылает данные по IP-адресу 127.0.0.1, то обра-зуется как бы "петля". Данные не передаются по сети, а возвращаются -- 1177 -- модулям верхнего уровня, как только что принятые. Поэтому в IP-сети зап-рещается присваивать машинам IP-адреса, начинающиеся со 127. 5.5. Выбор адреса
Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получитьодин или несколько официальных сетевых номеров. Выделением номеров (каки многими другими вопросами) занимается DDN Network Information Center(NIC) [2]. Выделение номеров производится бесплатно и занимает околонедели. Вы можете получить сетевой номер вне зависимости от того, длячего предназначена ваша сеть. Даже если ваша сеть не имеет связи с объе-диненной сетью Internet, получение уникального номера желательно, так какв этом случае есть гарантия, что в будущем при включении в Internet илипри подключении к сети другой организации не возникнет конфликта адресов. Одно из важнейших решений, которое необходимо принять при установкесети, заключается в выборе способа присвоения IP-адресов вашим машинам.Этот выбор должен учитывать перспективу роста сети. Иначе в дальнейшемвам придется менять адреса. Когда к сети подключено несколько сотенмашин, изменение адресов становится почти невозможным. Организации, имеющие небольшие сети с числом узлов до 126, должнызапрашивать сетевые номера класса C. Организации с большим числом машинмогут получить несколько номеров класса C или номер класса B. Удобнымсредством структуризации сетей в рамках одной организации являются под-сети. 5.6. Подсети Адресное пространство сети internet может быть разделено на непере-секающиеся подпространства - "подсети", с каждой из которых можно рабо-тать как с обычной сетью TCP/IP. Таким образом единая IP-сеть организа-ции может строиться как объединение подсетей. Как правило, подсеть соот-ветствует одной физической сети, например, одной сети Ethernet. Конечно, использование подсетей необязательно. Можно просто назна-чить для каждой физической сети свой сетевой номер, например, номер____________________ [2] SRI International, Room EJ210, 333 Ravenswood Avenue, MenloPark, California 94025, USA. Тел. 1-800-235-3155. E-mail:NIC@NIC.DDN.MIL класса C. Однако такое решение имеет два недостатока. Первый, и менеесущественный, заключается в пустой трате сетевых номеров. Более серьез-ный недостаток состоит в том, что если ваша организация имеет несколькосетевых номеров, то машины вне ее должны поддерживать записи о маршрутахдоступа к каждой из этих IP-сетей. Таким образом, структура IP-сетиорганизации становится видимой для всего мира. При каких-либо измененияхв IP-сети информация о них должна быть учтена в каждой из машин, поддер-живающих маршруты доступа к данной IP-сети. Подсети позволяют избежать этих недостатков. Ваша организациядолжна получить один сетевой номер, например, номер класса B. СтандартыTCP/IP определяют структуру IP-адресов. Для IP-адресов класса B первыедва октета являются номером сети. Оставшаяся часть IP-адреса можетиспользоваться как угодно. Например, вы можете решить, что третий октетбудет определять номер подсети, а четверый октет - номер узла в ней. Выдолжны описать конфигурацию подсетей в файлах, определяющих маршрутизациюIP-пакетов. Это описание является локальным для вашей организации и невидно вне ее. Все машины вне вашей организации видят одну большую IP-сеть. Следовательно, они должны поддерживать только маршруты доступа кшлюзам, соединяющим вашу IP-сеть с остальным миром. Изменения, происхо-дящие в IP-сети организации, не видны вне ее. Вы легко можете добавитьновую подсеть, новый шлюз и т.п. 5.7. Как назначать номера сетей и подсетей После того, как решено использовать подсети или множество IP-сетей,вы должны решить, как назначать им номера. Обычно это довольно просто.Каждой физической сети, например, Ethernet или Token Ring, назначаетсяотдельный номер подсети или номер сети. В некоторых случаях имеет смыслназначать одной физической сети несколько подсетевых номеров. Например,предположим, что имеется сеть Ethernet, охватывающая три здания. Ясно,что при увеличении числа машин, подключенных к этой сети, придется ееразделить на несколько отдельных сетей Ethernet. Для того, чтобы избе-жать необходимости менять IP-адреса, когда это произойдет, можно заранеевыделить для этой сети три подсетевых номера - по одному на здание. (Этополезно и в том случае, когда не планируется физическое деление сети.Просто такая адресация позволяет сразу определить, где находится та илииная машина.) Однако прежде, чем выделять три различных подсетевых номераодной физической сети, тщательно проверьте, что все ваши программы спо-собны работать в такой среде. Вы также должны выбрать "маску подсети". Она используется сетевымпрограммным обеспечением для выделения номера подсети из IP-адресов.Биты IP-адреса, определяющие номер IP-сети, в маске подсети должны бытьравны 1, а биты, определяющие номер узла, в маске подсети должны бытьравны 0. Как уже отмечалось, стандарты TCP/IP определяют количествооктетов, задающих номер сети. Часто в IP-адресах класса B третий октетиспользуется для задания номера подсети. Это позволяет иметь 256 подсе-тей, в каждой из которых может быть до 254 узлов. Маска подсети в такойсистеме равна 255.255.255.0. Но, если в вашей сети должно быть большеподсетей, а в каждой подсети не будет при этом более 60 узлов, то можноиспользовать маску 255.255.255.192. Это позволяет иметь 1024 подсети идо 62 узлов в каждой. (Напомним, что номера узлов 0 и "все единицы"используются особым образом.) Обычно маска подсети указывается в файле стартовой конфигурациисетевого программного обеспечения. Протоколы TCP/IP позволяют также зап-рашивать эту информацию по сети. 5.8. Имена
Людям удобнее называть машины по именам, а не числами. Например, умашины по имени alpha может быть IP-адрес 223.1.2.1. В маленьких сетяхинформация о соответствии имен IP-адресам хранится в файлах "hosts" накаждом узле. Конечно, название файла зависит от конкретной реализации.В больших сетях эта информация хранится на сервере и доступна по сети.Несколько строк из файла "hosts" могут выглядеть примерно так: 223.1.2.1 alpha 223.1.2.2 beta 223.1.2.3 gamma 223.1.2.4 delta 223.1.3.2 epsilon 223.1.4.2 iota В первом столбце - IP-адрес, во втором - название машины. В большинстве случаев файлы "hosts" могут быть одинаковы на всехузлах. Заметим, что о узле delta в этом файле есть всего одна запись,хотя он имеет три IP-адреса (рис.11). Узел delta доступен по любому изэтих IP-адресов. Какой из них используется, не имеет значения. Когдаузел delta получает IP-пакет и проверяет IP-адрес места назначения, то онопознает любой из трех своих IP-адресов. IP-сети также могут иметь имена. Если у вас есть три IP-сети, тофайл "networks" может выглядеть примерно так: 223.1.2 development 223.1.3 accounting 223.1.4 factory В первой колонке - сетевой номер, во второй - имя сети. В данном примере alpha является узлом номер 1 в сети development,beta является узлом номер 2 в сети development и т.д. Показанный выше файл hosts удовлетворяет потребности пользователей,но для управления сетью internet удобнее иметь названия всех сетевыхинтерфейсов. Менеджер сети, возможно, заменит строку, относящуюся кdelta: 223.1.2.4 devnetrouter delta 223.1.3.1 accnetrouter 223.1.4.1 facnetrouter Эти три строки файла hosts задают каждому IP-адресу узла delta сим-вольные имена. Фактически, первый IP-адрес имеет два имени: "dev-netrouter" и "delta", которые являются синонимами. На практике имя"delta" используется как общеупотребительное имя машины, а остальные триимени - для администрирования сети. Файлы hosts и networks используются командами администрирования иприкладными программами. Они не нужны собственно для работы сети inter-net, но облегчают ее использование. 5.9. IP-таблица маршрутов
Как модуль IP узнает, какой именно сетевой интерфейс нужно использо-вать для отправления IP-пакета? Модуль IP осуществляет поиск в таблицемаршрутов. Ключом поиска служит номер IP-сети, выделенный из IP-адресаместа назначения IP-пакета. Таблица маршрутов содержит по одной строке для каждого маршрута.Основными столбцами таблицы маршрутов являются номер сети, флаг прямойили косвенной маршрутизации, IP-адрес шлюза и номер сетевого интерфейса.Эта таблица используется модулем IP при обработке каждого отправляемогоIP-пакета. В большинстве систем таблица маршрутов может быть изменена с помощьюкоманды "route". Содержание таблицы маршрутов определяется менеджеромсети, поскольку менеджер сети присваивает машинам IP-адреса. 5.10. Подробности прямой маршрутизации Рассмотрим более подробно, как происходит маршрутизация в однойфизической сети. ------------- ------------- | alpha | | beta | | 223.1.2.1 | | 223.1.2.2 | | 1 | | 1 | ------------- ------------- | | ------o-----------------------o------- Ethernet 1 IP-сеть "development" 223.1.2 Рис.10. Одна физическая сеть Таблица маршрутов в узле alpha выглядит так: ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | development прямая <пусто> 1 | ---------------------------------------------------------- Табл.9. Пример таблицы маршрутов В данном простом примере все узлы сети имеют одинаковые таблицы маршру-тов. Для сравнения ниже представлена та же таблица, но вместо названиясети указан ее номер. ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | 223.1.2 прямая <пусто> 1 | ---------------------------------------------------------- Табл.10. Пример таблицы маршрутов с номерами сетей 5.11. Порядок прямой маршрутизации
Узел alpha посылает IP-пакет узлу beta. Этот пакет находится вмодуле IP узла alpha, и IP-адрес места назначения равен IP-адресу beta(223.1.2.2). Модуль IP с помощью маски подсети выделяет номер сети изIP-адреса и ищет соответствующую ему строку в таблице маршрутов. В дан-ном случае подходит первая строка. Остальная информация в найденной строке указывает на то, что машиныэтой сети доступны напрямую через интерфейс номер 1. С помощью ARP-таблицы выполняется преобразование IP-адреса в соответствующий Ethernet-адрес, и через интерфейс 1 Ethernet-кадр посылается узлу beta. Если прикладная программа пытается послать данные по IP-адресу,который не принадлежит сети development, то модуль IP не сможет найтисоответствующую запись в таблице маршрутов. В этом случае модуль IP отб-расывает IP-пакет. Некоторые реализации протокола возвращают сообщениеоб ошибке "Сеть не доступна". 5.12. Подробности косвенной маршрутизации
Теперь рассмотрим более сложный порядок маршрутизации в IP-сети,изображенной на рис.11. Таблица маршрутов в узле alpha выглядит так: ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | development прямая <пусто> 1 | | accounting косвенная devnetrouter 1 | | factory косвенная devnetrouter 1 | ---------------------------------------------------------- Табл.11. Таблица маршрутов в узле alpha ------------- | delta | ------------- | 223.1.2.4 | ------------- | alpha | | 223.1.4.1 | | epsilon | | 223.1.2.1 | | 223.1.3.1 | | 223.1.3.2 | | 1 | | 1 2 3 | | 1 | ------------- ------------- ------------- | | | | | ------o------------------o- | -o-----------------o--------- Ethernet 1 | Ethernet 2 IP-сеть "development" | IP-сеть "accounting" 223.1.2 | 223.1.3 | | ------------- | | iota | | | 223.1.4.2 | | | 1 | | ------------- | | ---o----------o------------------- Ethernet 3 IP-сеть "factory" 223.1.4 Рис.11. Подробная схема трех сетей Та же таблица с IP-адресами вместо названий. ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | 223.1.2 прямая <пусто> 1 | | 223.1.3 косвенная 223.1.2.4 1 | | 223.1.4 косвенная 223.1.2.4 1 | ---------------------------------------------------------- Табл.12. Таблица маршрутов в узле alpha (с номерами) В столбце "шлюз" таблицы маршрутов узла alpha указывается IP-адрес точкисоединения узла delta с сетью development. 5.13. Порядок косвенной маршрутизации
Узел alpha посылает IP-пакет узлу epsilon. Этот пакет находится вмодуле IP узла alpha, и IP-адрес места назначения равен IP-адресу узлаepsilon (223.1.3.2). Модуль IP выделяет сетевой номер из IP-адреса(223.1.3) и ищет соответствующую ему строку в таблице маршрутов. Соот-ветствие находится во второй строке. Запись в этой строке указывает на то, что машины требуемой сети дос-тупны через шлюз devnetrouter. Модуль IP в узле alpha осуществляет поискв ARP-таблице, с помощью которого определяет Ethernet-адрес, соответству-ющий IP-адресу devnetrouter. Затем IP-пакет, содержащий IP-адрес местаназначения epsilon, посылается через интерфейс 1 шлюзу devnetrouter. IP-пакет принимается сетевым интерфейсом в узле delta и передаетсямодулю IP. Проверяется IP-адрес места назначения, и, поскольку он несоответствует ни одному из собственных IP-адресов delta, шлюз решает рет-ранслировать IP-пакет. Модуль IP в узле delta выделяет сетевой номер из IP-адреса местаназначения IP-пакета (223.1.3) и ищет соответствующую запись в таблицемаршрутов. Таблица маршрутов в узле delta выглядит так: ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | development прямая <пусто> 1 | | accounting прямая <пусто> 3 | | factory прямая <пусто> 2 | ---------------------------------------------------------- Табл.13. Таблица маршрутов в узле delta Та же таблица с IP-адресами вместо названий. ---------------------------------------------------------- | сеть флаг вида шлюз номер | | маршрутизации интерфейса | ---------------------------------------------------------- | 223.1.2 прямая <пусто> 1 | | 223.1.3 прямая <пусто> 3 | | 223.1.4 прямая <пусто> 2 | ---------------------------------------------------------- Табл.14. Таблица маршрутов в узле delta (с номерами) Соответствие находится во второй строке. Теперь модуль IP напрямую посы-лает IP-пакет узлу epsilon через интерфейс номер 3. Пакет содержит IP- иEthernet-адреса места назначения равные epsilon. Узел epsilon принимает IP-пакет, и его модуль IP проверяет IP-адресместа назначения. Он соответствует IP-адресу epsilon, поэтому содержаще-еся в IP-пакете сообщение передается протокольному модулю верхнегоуровня. * 6. Установка маршрутов *
До сих пор мы рассматривали то, как используется таблица маршрутовдля маршрутизации IP-пакетов. Но откуда берется информация в самой таб-лице маршрутов? В данном разделе мы рассмотрим методы, позволяющие под-держивать корректность таблиц маршрутов. 6.1. Фиксированные маршруты
Простейший способ проведения маршрутизации состоит в установке марш-рутов при запуске системы с помощью специальных команд. Этот метод можноприменять в относительно маленьких IP-сетях, в особенности, если их кон-фигурации не часто меняются. На практике большинство машин автоматически формирует таблицы марш-рутов. Например, UNIX добавляет записи о IP-сетях, к которым есть непос-редственный доступ. Стартовый файл может содержать команды ifconfig ie0 128.6.4.4 netmask 255.255.255.0 ifconfig ie1 128.6.5.35 netmask 255.255.255.0 Они показывают, что существуют два сетевых интерфейса, и устанавливают ихIP-адреса. Система может автоматически создать две записи в таблицемаршрутов: ---------------------------------------------------------- | сеть флаг вида шлюз интерфейс | | маршрутизации | ---------------------------------------------------------- | 128.6.4 прямая <пусто> ie0 | | 128.6.5 прямая <пусто> ie1 | ---------------------------------------------------------- Табл.15. Автоматически создаваемые записи Эти записи определяют, что IP-пакеты для локальных подсетей 128.6.4 и128.6.5 должны посылаться через указанные интерфейсы. В стартовом файле могут быть команды, определяющие маршруты доступак другим IP-сетям. Например, route add 128.6.2.0 128.6.4.1 1 route add 128.6.6.0 128.6.5.35 0 Эти команды показывают, что в таблицу маршрутов должны быть добавлены двезаписи. Первый адрес в командах является IP-адресом сети, второй адресуказывает шлюз, который должен использоваться для доступа к данной IP-сети, а третий параметр является метрикой. Метрика показывает, на каком"расстоянии" находится описываемая IP-сеть. В данном случае метрика -это количество шлюзов на пути между двумя IP-сетями. Маршруты с метрикой1 и более определяют первый шлюз на пути к IP-сети. Маршруты с метрикой0 показывают, что никакой шлюз не нужен - данный маршрут задает дополни-тельный сетевой номер локальной IP-сети. Таким образом, команды, приведенные в примере, говорят о том, чтодля доступа к IP-сети 128.6.2 должен использоваться шлюз 128.6.4.1, аIP-сеть 128.6.6 - это просто дополнительный номер для физической сети,подключенной к интерфейсу 128.6.5.35. --------------------------------------------------------- | сеть флаг вида шлюз интерфейс | | маршрутизации | --------------------------------------------------------- | 128.6.2 косвенная 128.6.4.1 ie0 | | 128.6.6 прямая <пусто> ie1 | --------------------------------------------------------- Табл.16. Записи, добавляемые в таблицу маршрутов Можно определить маршрут по умолчанию, который используется в техслучаях, когда IP-адрес места назначения не встречается в таблице маршру-тов явно. Обычно маршрут по умолчанию указывает IP-адрес шлюза, которыйимеет достаточно информации для маршрутизации IP-пакетов со всеми возмож-ными адресами назначения. Если ваша IP-сеть имеет всего один шлюз, тогда все, что нужно сде-лать, - это установить единственную запись в таблице маршрутов, указавэтот шлюз как маршрут по умолчанию. После этого можно не заботиться оформировании маршрутов в других узлах. (Конечно, сам шлюз требует большевнимания.) Следующие разделы посвящены IP-сетям, где есть несколько шлюзов. 6.2. Перенаправление маршрутов
Большинство экспертов по межсетевому взаимодействию рекомендуютоставлять решение проблем маршрутизации шлюзам. Плохо иметь на каждоймашине большую таблицу маршрутов. Дело в том, что при каких-либо измене-ниях в IP-сети приходится менять информацию во всех машинах. Например,при отключении какого-нибудь канала связи для восстановления нормальнойработы нужно ждать, пока кто-то заметит это изменение в конфигурации IP-сети и внесет исправления во все таблицы маршрутов. Простейший способ поддержания адекватности маршрутов заключается втом, что изменение таблицы маршрутов каждой машины выполняется по коман-дам только одного шлюза. Этот шлюз должен быть установлен как маршрут поумолчанию. (В ОС UNIX это делается командой "route add default128.6.4.27 1", где 128.6.4.27 является IP-адресом шлюза.) Как было опи-сано выше, каждая машина посылает IP-пакет шлюзу по умолчанию в том слу-чае, когда не находит лучшего маршрута. Однако, когда в IP-сети естьнесколько шлюзов, этот метод работает не так хорошо. Кроме того, еслитаблица маршрутов имеет только одну запись о маршруте по умолчанию, токак использовать другие шлюзы, если это более выгодно? Ответ состоит втом, что большинство шлюзов способны выполнять "перенаправление" в техслучаях, когда они получают IP-пакеты, для которых существуют болеевыгодные маршруты. "Перенаправление" является специальным типом сообще-ния протокола ICMP (Internet Control Message Protocol - протокол межсете-вых управляющих сообщений). Сообщение о перенаправлении содержит инфор-мацию, которую можно интерпретировать так: "В будущем для IP-адреса XXXXиспользуйте шлюз YYYY, а не меня". Корректные реализации TCP/IP должныиспользовать сообщения о перенаправлении для добавления записей в таблицумаршрутов. Предположим, таблица маршрутов в начале выглядит следующимобразом: -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 127.0.0 прямая <пусто> lo0 | | 128.6.4 прямая <пусто> pe0 | | default косвенная 128.6.4.27 pe0 | -------------------------------------------------------- Табл.17. Таблица маршрутов в начале работы Эта таблица содержит запись о локальной IP-сети 128.6.4 и маршрут поумолчанию, указывающий шлюз 128.6.4.27. Допустим, что существует шлюз128.6.4.30, который является лучшим путем доступа к IP-сети 128.6.7. Каким воспользоваться? Предположим, что нужно посылать IP-пакеты по IP-адресу 128.6.7.23. Первый IP-пакет пойдет на шлюз по умолчанию, так какэто единственный подходящий маршрут, описанный в таблице. Однако шлюз128.6.4.27 знает, что существует лучший маршрут, проходящий через шлюз128.6.4.30. (Как он узнает об этом, мы сейчас не рассматриваем. Сущест-вует довольно простой метод определения лучшего маршрута.) В этом случаешлюз 128.6.4.27 возвращает сообщение перенаправления, где указывает, чтоIP-пакеты для узла 128.6.7.23 должны посылаться через шлюз 128.6.4.30.Модуль IP на машине-отправителе должен добавить запись в таблицу маршру-тов: -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 128.6.7.23 косвенная 128.6.4.30 pe0 | -------------------------------------------------------- Табл.18. Новая запись в таблице маршрутов Все последующие IP-пакеты для узла 128.6.7.23 будут посланы прямо черезуказанный шлюз. До сих пор мы рассматривали способы добавления маршрутов в IP-таблицу, но не способы их исключения. Что случится, если шлюз будет вык-лючен? Хотелось бы иметь способ возврата к маршруту по умолчанию послетого, как какой-либо маршрут разрушен. Однако, если шлюз вышел из строяили был выключен, то он уже не может послать сообщение перенаправления.Поэтому должен существовать метод определения работоспособности шлюзов, скоторыми ваша машина связана непосредственно. Лучший способ обнаружениянеработающих шлюзов основан на выявлении "плохих" маршрутов. Модуль TCPподдерживает различные таймеры, которые помогают ему определить разрывсоединения. Когда случается сбой, то можно пометить маршрут как "плохой"и вернуться к маршруту по умолчанию. Аналогичный метод может использо-ваться при обработке ошибок шлюза по умолчанию. Если два шлюза отмеченыкак шлюзы по умолчанию, то машина может использовать их по очереди,переключаясь между ними при возникновении сбоев. 6.3. Слежение за маршрутизацией
Заметим, что сообщения перенаправления не могут использоватьсясамими шлюзами. Перенаправление - это просто способ оповещения обычногоузла о том, что нужно использовать другой шлюз. Сами шлюзы должны иметьполную картину о положении дел в сети internet и уметь вычислять опти-мальные маршруты доступа к каждой подсети. Обычно они поддерживают этукартину, обмениваясь информацией между собой. Для этой цели существуютнесколько специальных протоколов маршрутизации. Один из способов, спомощью которого узлы могут определять действующие шлюзы, состоит в сле-жении за обменом сообщениями между ними. Для большинства протоколовмаршрутизации существует программное обеспечение, позволяющее обычнымузлам осуществлять такое слежение. При этом на узлах поддерживается пол-ная картина положения дел в сети internet точно также, как это делается вшлюзах. Динамическая корректировка таблицы маршрутов позволяет посылатьIP-пакеты по оптимальным маршрутам. Таким образом, слежение за маршрутизацией в некотором смысле"решает" проблему поддержания корректности таблиц маршрутов. Однакосуществуют несколько причин, по которым этот метод применять не рекомен-дуется. Наиболее серьезной проблемой является то, что протоколы маршру-тизации пока еще подвергаются частым пересмотрам и изменениям. Появля-ются новые протоколы маршрутизации. Эти изменения должны учитываться впрограммном обеспечении всех машин. Несколько более специальная проблема связана с бездисковыми рабочимистанциями. По своей природе бездисковые машины сильно зависят от сети иот файл-серверов, с которых они осуществляют загрузку программ, и гдерасполагается их область своппинга. Исполнение программ, следящих зашироковещательными передачами в сети, на бездисковых машинах связано сбольшими трудностями. Протоколы маршрутизации построены в основном нашироковещательных передачах. Например, все сетевые шлюзы могут широкове-щательно передавать содержание своих таблиц маршрутов через каждые 30секунд. Программы, которые следят за такими передачами, должны быть заг-ружены на бездисковые станции через сеть. На достаточно занятой машинепрограммы, которые не используются в течение нескольких секунд, обычноотправляются в область своппинга. Поэтому программы, следящие за маршру-тизацией, большую часть времени находятся в своппинге. Когда они вновьактивизируются, должна производиться подкачка из своппинга. Как толькопосылается широковещательное сообщение, все машины активизируют прог-раммы, следящие за маршрутизацией. Это приводит к тому, что многие без-дисковые станции будут выполнять подкачку из своппинга в одно и тожевремя. Поэтому в сети возникнет временная перегрузка. Таким образом,исполнение программ, прослушивающих широковещательные передачи, на без-дисковых рабочих станциях очень нежелательно. 6.4. Протокол ARP с представителем
Протокол ARP с представителем является альтернативным методом, поз-воляющим шлюзам принимать все необходимые решения о маршрутизации. Онприменяется в сетях с широковещательной передачей, где для отображенияIP-адресов в сетевые адреса используется протокол ARP или ему подобный.Здесь мы вновь будем предполагать, что имеем дело с сетью Ethernet. Во многом метод, реализуемый протоколом ARP с представителем, анало-гичен использованию маршрутов по умолчанию и сообщений перенаправления.Но протокол ARP с представителем не затрагивает таблиц маршрутов, вседелается на уровне адресов Ethernet. Протокол ARP с представителем можетиспользоваться либо для маршрутизации IP-пакетов ко всем сетям, либотолько в локальной сети, либо в какой-то комбинации подсетей. Прощевсего продемонстрировать его использование при работе со всеми адресами. Чтобы использовать протокол, нужно настроить узел так, как будто всемашины в мире подключены непосредственно к вашей локальной сети Ethernet.В ОС UNIX это делается командой "route add default 128.6.4.2 0", где128.6.4.2 - IP-адрес вашего узла. Как уже отмечалось, метрика 0 говорито том, что все IP-пакеты, которым подходит данный маршрут, должны посы-латься напрямую по локальной сети. Когда нужно послать IP-пакет узлу в локальной сети Ethernet, вашамашина должна определить Ethernet-адрес этого узла. Для этого онаиспользует ARP-таблицу. Если в ARP-таблице уже есть запись, соответству-ющая IP-адресу места назначения, то из нее просто берется Ethernet-адрес,и кадр, содержащий IP-пакет, отправляется. Если такой записи нет, топосылается широковещательный ARP-запрос. Узел с искомым IP-адресом наз-начения принимает его и в ARP-ответе сообщает свой Ethernet-адрес. Этидействия соответствуют обычному протоколу ARP, описанному выше. Протокол ARP с представителем основан на том, что шлюзы работают какпредставители удаленных узлов. Предположим, в подсети 128.6.5 имеетсяузел 128.6.5.2 (узел A на рис.12). Он желает послать IP-пакет узлу128.6.4.194, который подключен к другой сети Ethernet (узел B в подсети128.6.4). Существует шлюз с IP-адресом 128.6.5.1, соединяющий две под-сети (шлюз R). сеть 1 сеть 2 128.6.5 128.6.4 ----o----------------o--- --o---------------o-------- | | | | ------------- ------------- --------------- | 128.6.5.2 | | 128.6.5.1 | | 128.6.4.194 | | A | | 128.6.4.1 | | B | ------------- | R | --------------- ------------- Рис.12. Сеть, использующая протокол ARP с представителем Если в ARP-таблице узла A нет маршрута доступа к узлу B, то узел A посы-лает ARP-запрос узлу B. Фактически машина A спрашивает: "Если кто-нибудьзнает Ethernet-адрес узла 128.6.4.194, сообщите мне его". Узел B неможет ответить на запрос самостоятельно. Он подключен к другой сети Eth-ernet и никогда даже не увидит этот ARP-запрос. Однако шлюз R можетработать от его имени. Шлюз R отвечает: "Я здесь, IP-адресу 128.6.4.194соответствует Ethernet-адрес 2:7:1:0:EB:CD", где 2:7:1:0:EB:CD в действи-тельности является Ethernet-адресом шлюза. Это создает иллюзию, что узел128.6.4.194 подключен непосредственно к той же локальной сети Ethernet,что и узел A, и имеет Ethernet-адрес 2:7:1:0:EB:CD. Когда узел A захочетпослать новый IP-пакет узлу B, он использует указанный Ethernet-адрес.Кадр, содержащий IP-пакет, попадет к шлюзу R, а он переправит его по наз-начению. Заметим, что полученный эффект такой же, как если бы в таблице марш-рутов была запись -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 128.6.4.194 косвенная 128.6.5.1 pe0 | -------------------------------------------------------- за исключением того, что маршрутизация выполняется на уровне модуля ARP,а не модуля IP. Обычно рекомендуется использовать таблицу маршрутов, так как архи-тектура протоколов TCP/IP предусматривает выполнение маршрутизации намежсетевом уровне. Однако иногда протокол ARP с представителем оченьполезен. Он может помочь в следующих случаях: 1) в IP-сети есть узел, который не умеет работать с подсетями; 2) в IP-сети есть узел, который не может соответствующим образом реаги- ровать на сообщения перенаправления; 3) нежелательно выбирать какой-либо шлюз как маршрут по умолчанию; 4) программное обеспечение не способно восстанавливаться при сбоях на маршрутах. Иногда протокол ARP с представителем выбирают из-за удобства. Делов том, что он упрощает работу по начальной установке таблицы маршрутов.Даже в простейших IP-сетях требуется устанавливать маршрут по умолчанию,то есть использовать команду типа "route add defailt ...", как в ОС UNIX.При изменении IP-адреса шлюза эту команду приходится менять во всехузлах. Если же использовать протокол ARP с представителем, т.е. вкоманде установки маршрута по умолчанию указать метрику 0, то при заменеIP-адреса шлюза команду начальной установки менять не придется, так какпротокол ARP с представителем не требует явного задания IP-адресов шлю-зов. Любой шлюз может ответить на ARP-запрос. Для того, чтобы избавить пользователей от обязательной начальнойустановки маршрутов, некоторые реализации TCP/IP используют протокол ARPс представителем по умолчанию в тех случаях, когда не находят подходящихзаписей в таблице маршрутов. * 7. Протокол UDP *
Протокол UDP (User Datagram Protocol - протокол пользовательскихдатаграмм) является одним из двух основных протоколов, расположенныхнепосредственно над IP. Он предоставляет прикладным процессам транспорт-ные услуги, которые не многим отличаются от услуг, предоставляемых прото-колом IP. Протокол UDP обеспечивает ненадежную доставку датаграмм и неподдерживает соединений из конца в конец. К заголовку IP-пакета ондобавляет два поля, одно из которых, поле "порт", обеспечивает мультип-лексирование информации между разными прикладными процессами, а другоеполе - "контрольная сумма" - позволяет поддерживать целостность данных. Примерами сетевых приложений, использующих UDP, являются NFS (Net-work File System - сетевая файловая система) и SNMP (Simple NetworkManagement Protocol - простой протокол управления сетью). 7.1. Порты
Взаимодействие между прикладными процессами и модулем UDP осуществ-ляется через UDP-порты. Порты нумеруются начиная с нуля. Прикладнойпроцесс, предоставляющий некоторые услуги другим прикладным процессам(сервер), ожидает поступления сообщений в порт, специально выделенный дляэтих услуг. Сообщения должны содержать запросы на предоставление услуг.Они отправляются процессами-клиентами. Например, сервер SNMP всегда ожидает поступлений сообщений в порт161. Если клиент SNMP желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. В каждом узле может быть толькоодин сервер SNMP, так как существует только один UDP-порт 161. Данныйномер порта является общеизвестным, то есть фиксированным номером, офици-ально выделенным для услуг SNMP. Общеизвестные номера определяются стан-дартами Internet. Данные, отправляемые прикладным процессом через модуль UDP, дости-гают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в UDP-порт, то процесс-получатель долженбудет сделать 5 чтений. Размер каждого записанного сообщения будет сов-падать с размером каждого прочитанного. Протокол UDP сохраняет границысообщений, определяемые прикладным процессом. Он никогда не объединяетнесколько сообщений в одно и не делит одно сообщение на части. 7.2. Контрольное суммирование
Когда модуль UDP получает датаграмму от модуля IP, он проверяетконтрольную сумму, содержащуюся в ее заголовке. Если контрольная суммаравна нулю, то это означает, что отправитель датаграммы ее не подсчиты-вал, и, следовательно, ее нужно игнорировать. Если два модуля UDP взаи-модействуют только через одну сеть Ethernet, то от контрольного суммиро-вания можно отказаться, так как средства Ethernet обеспечивают достаточ-ную степень надежности обнаружения ошибок передачи. Это снижает наклад-ные расходы, связанные с работой UDP. Однако рекомендуется всегда выпол-нять контрольное суммирование, так как возможно в какой-то момент измене-ния в таблице маршрутов приведут к тому, что датаграммы будут посылатьсячерез менее надежную среду. Если контрольная сумма правильная (или равна нулю), то проверяетсяпорт назначения, указанный в заголовке датаграммы. Если к этому портуподключен прикладной процесс, то прикладное сообщение, содержащееся вдатаграмме, становится в очередь для прочтения. В остальных случаяхдатаграмма отбрасывается. Если датаграммы поступают быстрее, чем ихуспевает обрабатывать прикладной процесс, то при переполнении очередисообщений поступающие датаграммы отбрасываются модулем UDP. * 8. Протокол TCP *
Протокол TCP предоставляет транспортные услуги, отличающиеся отуслуг UDP. Вместо ненадежной доставки датаграмм без установления соеди-нений, он обеспечивает гарантированную доставку с установлением соедине-ний в виде байтовых потоков. Протокол TCP используется в тех случаях, когда требуется надежнаядоставка сообщений. Он освобождает прикладные процессы от необходимостииспользовать таймауты и повторные передачи для обеспечения надежности.Наиболее типичными прикладными процессами, использующими TCP, являютсяFTP (File Transfer Protocol - протокол передачи файлов) и TELNET. Крометого, TCP используют система X-Window, rcp (remote copy - удаленное копи-рование) и другие "r-команды". Большие возможности TCP даются не бесп-латно. Реализация TCP требует большой производительности процессора ибольшой пропускной способности сети. Внутренняя структура модуля TCPгораздо сложнее структуры модуля UDP. Прикладные процессы взаимодействуют с модулем TCP через порты. Дляотдельных приложений выделяются общеизвестные номера портов. Например,сервер TELNET использует порт номер 23. Клиент TELNET может получатьуслуги от сервера, если установит соединение с TCP-портом 23 на егомашине. Когда прикладной процесс начинает использовать TCP, то модуль TCP намашине клиента и модуль TCP на машине сервера начинают общаться. Эти дваоконечных модуля TCP поддерживают информацию о состоянии соединения,называемого виртуальным каналом. Этот виртуальный канал потребляетресурсы обоих оконечных модулей TCP. Канал является дуплексным; данныемогут одновременно передаваться в обоих направлениях. Один прикладнойпроцесс пишет данные в TCP-порт, они проходят по сети, и другой приклад-ной процесс читает их из своего TCP-порта. Протокол TCP разбивает поток байт на пакеты; он не сохраняет границмежду записями. Например, если один прикладной процесс делает 5 записейв TCP-порт, то прикладной процесс на другом конце виртуального каналаможет выполнить 10 чтений для того, чтобы получить все данные. Но этотже процесс может получить все данные сразу, сделав только одну операциючтения. Не существует зависимости между числом и размером записываемыхсообщений с одной стороны и числом и размером считываемых сообщений сдругой стороны. Протокол TCP требует, чтобы все отправленные данные были подтверж-дены принявшей их стороной. Он использует таймауты и повторные передачидля обеспечения надежной доставки. Отправителю разрешается передаватьнекоторое количество данных, недожидаясь подтверждения приема ранее отп-равленных данных. Таким образом, между отправленными и подтвержденнымиданными существует окно уже отправленных, но еще неподтвержденных данных.Количество байт, которые можно передавать без подтверждения, называетсяразмером окна. Как правило, размер окна устанавливается в стартовых фай-лах сетевого программного обеспечения. Так как TCP-канал является дуп-лексным, то подтверждения для данных, идущих в одном направлении, могутпередаваться вместе с данными, идущими в противоположном направлении.Приемники на обеих сторонах виртуального канала выполняют управлениепотоком передаваемых данных для того, чтобы не допускать переполнениябуферов. * 9. Протоколы прикладного уровня *
Почему существуют два транспортных протокола TCP и UDP, а не один изних? Дело в том, что они предоставляют разные услуги прикладным процес-сам. Большинство прикладных программ пользуются только одним из них.Вы, как программист, выбираете тот протокол, который наилучшим образомсоответствует вашим потребностям. Если вам нужна надежная доставка, толучшим может быть TCP. Если вам нужна доставка датаграмм, то лучше можетбыть UDP. Если вам нужна эффективная доставка по длинному и ненадежномуканалу передачи данных, то лучше может подойти протокол TCP. Если нужнаэффективность на быстрых сетях с короткими соединениями, то лучшим можетбыть протокол UDP. Если ваши потребности не попадают ни в одну из этихкатегорий, то выбор транспортного протокола не ясен. Однако прикладныепрограммы могут устранять недостатки выбранного протокола. Например,если вы выбрали UDP, а вам необходима надежность, то прикладная программадолжна обеспечить надежность. Если вы выбрали TCP, а вам нужно переда-вать записи, то прикладная программа должна вставлять маркеры в потокбайтов так, чтобы можно было различить записи. Какие же прикладные программы доступны в сетях с TCP/IP? Общее их количество велико и продолжает постоянно увеличиваться.Некоторые приложения существуют с самого начала развития internet. Нап-ример, TELNET и FTP. Другие появились недавно: X-Window, SNMP. Протоколы прикладного уровня ориентированы на конкретные прикладныезадачи. Они определяют как процедуры по организации взаимодействия опре-деленного типа между прикладными процессами, так и форму представленияинформации при таком взаимодействии. В этом разделе мы коротко опишемнекоторые из прикладных протоколов. 9.1. Протокол TELNET
Протокол TELNET позволяет обслуживающей машине рассматривать всеудаленные терминалы как стандартные "сетевые виртуальные терминалы"строчного типа, работающие в коде ASCII, а также обеспечивает возможностьсогласования более сложных функций (например, локальный или удаленныйэхо-контроль, страничный режим, высота и ширина экрана и т.д.) TELNETработает на базе протокола TCP. На прикладном уровне над TELNET нахо-дится либо программа поддержки реального терминала (на стороне пользова-теля), либо прикладной процесс в обсуживающей машине, к которому осу-ществляется доступ с терминала. Работа с TELNET походит на набор телефонного номера. Пользовательнабирает на клавиатуре что-то вроде telnet delta и получает на экране приглашение на вход в машину delta. Протокол TELNET существует уже давно. Он хорошо опробован и широкораспространен. Создано множество реализаций для самых разных операцион-ных систем. Вполне допустимо, чтобы процесс-клиент работал, скажем, подуправлением ОС VAX/VMS, а процесс-сервер под ОС UNIX System V. 9.2. Протокол FTP
Протокол FTP (File Transfer Protocol - протокол передачи файлов)распространен также широко как TELNET. Он является одним из старейшихпротоколов семейства TCP/IP. Также как TELNET он пользуется транспорт-ными услугами TCP. Существует множество реализаций для различных опера-ционных систем, которые хорошо взаимодействуют между собой. ПользовательFTP может вызывать несколько команд, которые позволяют ему посмотретькаталог удаленной машины, перейти из одного каталога в другой, а такжескопировать один или несколько файлов. 9.3. Протокол SMTP
Протокол SMTP (Simple Mail Transfer Protocol - простой протоколпередачи почты) поддерживает передачу сообщений (электронной почты) междупроизвольными узлами сети internet. Имея механизмы промежуточного хране-ния почты и механизмы повышения надежности доставки, протокол SMTP допус-кает использование различных транспотных служб. Он может работать даже всетях, не использующих протоколы семейства TCP/IP. Протокол SMTP обеспе-чивает как группирование сообщений в адрес одного получателя, так и разм-ножение нескольких копий сообщения для передачи в разные адреса. Надмодулем SMTP располагается почтовая служба конкретных вычислительных сис-тем. 9.4. r-команды
Существует целая серия "r-команд" (от remote - удаленный), которыевпервые появились в ОС UNIX. Они являются аналогами обычных команд UNIX,но предназначены для работы с удаленными машинами. Например, команда rcpявляется аналогом команды cp и предназначена для копирования файлов междумашинами. Для передачи файла на узел delta достаточно ввести rcp file.c delta: Для выполнения команды "cc file.c" на машине delta можно использоватькомаду rsh: rsh delta cc file.c Для организации входа в удаленную систему предназначена команда rlogin: rlogin delta Команды r-серии используются главным образом в системах, работающихпод управлением ОС UNIX. Существуют также реализации для MS-DOS.Команды избавляют пользователя от необходимости набирать пароли при входев удаленную систему и существенно облегчают работу. 9.5. NFS
Сетевая файловая система NFS (Network File System) впервые была раз-работана компанией Sun Microsystems Inc. NFS использует транспортныеуслуги UDP и позволяет монтировать в единое целое файловые системы нес-кольких машин с ОС UNIX. Бездисковые рабочие станции получают доступ кдискам файл-сервера так, как-будто это их локальные диски. NFS значительно увеличивает нагрузку на сеть. Если в сети использу-ются медленные линии связи, то от NFS мало толку. Однако, если пропуск-ная способность сети позволяет NFS нормально работать, то пользователиполучают большие преимущества. Поскольку сервер и клиент NFS реализуютсяв ядре ОС, все обычные несетевые программы получают возможность работатьс удаленными файлами, расположенными на подмонтированных NFS-дисках,точно также как с локальными файлами. 9.6. Протокол SNMP
Протокол SNMP (Simple Network Management Protocol - простой протоколуправления сетью) работает на базе UDP и предназначен для использованиясетевыми управляющими станциями. Он позволяет управляющим станциям соби-рать информацию о положении дел в сети internet. Протокол определяетформат данных, их обработка и интерпретация остаются на усмотрение управ-ляющих станций или менеджера сети. 9.7. X-Window
Система X-Window использует протокол X-Window, который работает набазе TCP, для многооконного отображения графики и текста на растровыхдисплеях рабочих станций. X-Window - это гораздо больше, чем просто ути-лита для рисования окон; это целая философия человеко-машинного взаимо-действия. * 10. Взаимозависимость протоколов семейства TCP/IP *
Ниже на рисунке предсавлена схема взаимосвязей между протоколамисемейства TCP/IP. Прикладной FTP TELNET SMTP TFTP DNS Сужба времени Эхо уровень | | | | | | | -------------- -------------------------- | | Транспортный TCP GGP HMP EGP UDP уровень | | | | | ------------------------------- | Межсетевой IP/ICMP уровень | -------------------------------------- | | | | Сетевой Локальные ARPANET SATNET Пакетная уровень сети радиосеть Рис.13. Структура взаимосвязей протоколов семейства TCP/IP Подробное описание протоколов можно найти в RFC, тематический ката-лог которых приведен в Приложении 1, а состояние стандартов отражено вПриложении 2.Last-modified: Wed, 17 Mar 1999 16:31:31 GMT