Семейство протоколов 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-таблицу длякаждого своего сетевого интерфейса.
Рефераты по информатикеСемейство протоколов TCP/IP широко применяется во всем мире дляобъединения компьютеров в сеть Internet. Единая сеть Internet состоит измножества
Оценок: 506 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.