Протоколы сети Интернет |
113 |
|
|
(Hop Limit) – полю Время Жизни (Time To Live) протокола IPv4, рас& смотренного в предыдущем параграфе.
Поле Метка Потока (Flow Label) позволяет выделять и особым об& разом обрабатывать отдельные потоки данных без необходимости анализировать содержимое пакетов. Это очень важно с точки зре& ния снижения нагрузки на маршрутизаторы.
Поле Следующий Заголовок (Next Header) является аналогом поля Протокол (Protocol) IPv4 и определяет тип заголовка, следующего за основным. Каждый следующий дополнительный заголовок также содержит поле Next Header. Если дополнительные заголовки отсут& ствуют, то это поле содержит значение, присвоенное тому из прото& колов TCP, UDP, OSPF, который используется для переноса полезной нагрузки данной дейтаграммы.
В рамках спецификаций IPv6 определены заголовки следующих типов.
Заголовок Routing – содержит информацию о маршруте, выбран& ном отправителем дейтаграммы.
Заголовок Fragmentation –содержит информацию о фрагмента& ции дейтаграммы и обрабатывается только конечными узлами сети.
Заголовок Authentication – содержит информацию, необходимую для проверки подлинности отправителя дейтаграммы.
Заголовок Encapsulation – содержит информацию, необходимую для обеспечения конфиденциальности данных путем шифрования.
Заголовок Hop&by&Hop Options – специальные параметры обра& ботки пакетов.
Заголовок Destination Options – дополнительные параметры для узла назначения.
Снижение нагрузки на маршрутизаторы. При переходе к про& токолу IPv6 могут быть уменьшены расходы на реализацию функций маршрутизации в сети, а маршрутизаторы могут быть оптимизиро& ваны для выполнения их основной функции – продвижения пакетов. Это становится возможным благодаря следующим особенностям нового протокола.
Дополнительные заголовки обрабатываются только конечными узлами и краевыми маршрутизаторам. Это упрощает логику работы маршрутизаторов и позволяет легче реализовать важные функции на аппаратном уровне.
Функции поддержки фрагментации переносятся в конечные узлы или краевые маршрутизаторы. Конечные узлы должны найти мини& мальный размер пакета вдоль всего пути до узла назначения (эта технология называется Path MTU discovery и уже используется для
8. Б.С. Гольдштейн
114 |
Глава 4 |
|
|
протокола IPv4) и не передавать пакеты с размером, превышающим найденное значение. Маршрутизаторы, поддерживающие протокол IPv6, в ядре сети могут не обеспечивать фрагментации, а только пе& редавать сообщение протокола ICMP – «слишком длинный пакет» к конечному узлу, который должен соответственно уменьшить раз& мер пакета.
Агрегация адресов ведет к уменьшению размеров адресных таб& лиц маршрутизаторов и, соответственно, к уменьшению времени их просмотра.
Широкое использование маршрутизации, управляемой отправи& телем (например, пограничным маршрутизатором), освобождает маршрутизаторы в ядре сети от просмотра адресных таблиц при выборе следующего маршрутизатора.
В качестве адреса узла в локальной сети можно использовать MAC&адрес сетевого интерфейса, что избавляет от необходимости применять протокол ARP.
Переход к протоколу IP версии 6. Так как IPv6 представляет со& бой естественное развитие предыдущей версии, он с самого начала спроектирован с учетом возможности поэтапного мягкого перехода к его использованию, что требует обеспечения взаимодействия уз& лов с разными версиями протоколов. Способы, которые использу& ются для организации совместной работы протоколов IPv6 и IPv4, вполне традиционны:
•Установка на некоторых сетевых узлах сразу двух стеков протоко& лов, так что при взаимодействии с рабочими станциями, поддер& живающими разные версии протокола, используется соответст& вующий стек протоколов TCP/IP. Маршрутизаторы могут в данном случае обрабатывать оба протокола независимо друг от друга.
•Конвертирование протоколов при помощи специальных шлюзов, которые преобразуют пакеты IPv4 в пакеты IPv6 и обратно. Важ& нейшая часть этого процесса – преобразование адресов. Для уп& рощения данной процедуры применяются так называемые «IPv4&совместимые адреса IPv6», которые содержат в четырех младших байтах адрес, используемый в протоколе IPv4.
•Инкапсуляция – туннелирование одного протокола в сетях, по& строенных на основе другого протокола. При этом пакеты одного протокола помещаются в пакеты другого в пограничных устрой& ствах. Недостаток метода состоит в том, что в данном случае сети никак не взаимодействуют между собой. В настоящее время раз& вернута опытная зона эксплуатации IPv6 под названием 6Bone, которая использует технологию инкапсуляции пакетов IPv6 при их транзите через части сети Интернет, не поддерживающие этот протокол.
Протоколы сети Интернет |
115 |
|
|
Протокол управления передачей информации – Transmission Con& trol Protocol (TCP) – был разработан для поддержки интерактивной связи между компьютерами. Протокол TCP обеспечивает надежность и достоверность обмена данными между процессами на компьюте& рах, входящих в общую сеть.
К сожалению, протокол TCP не приспособлен для передачи муль& тимедийной информации. Основная причина – обеспечение требуе& мой достоверности путем повторной передачи потерянных пакетов. Пока передатчик получит информацию о том, что приемник не при& нял очередной пакет, и передаст его снова, проходит слишком мно& го времени. Приемник вынужден либо ждать прихода повторно пе& реданного пакета, разрушая структуру потоковых данных, либо иг& норировать этот пакет, игнорируя одновременно принятый в TCP механизм обеспечения достоверности. Кроме того, TCP предусмат& ривает механизмы управления скоростью передачи с целью избе& жать перегрузок сети. Аудиоданные и видеоданные требуют, одна& ко, строго определенных скоростей передачи, которые нельзя изме& нять произвольным образом.
С одной стороны протокол TCP взаимодействует с прикладным протоколом пользовательского приложения, а с другой стороны – с протоколом, обеспечивающим «низкоуровневые» функции маршру& тизации и адресации пакетов, которые, как правило, выполняет IP.
В модели межсетевого соединения взаимодействие TCP и прото& колов нижнего уровня, вообще говоря, не специфицировано, за ис& ключением того, что должен существовать механизм, который обес& печивал бы асинхронную передачу информации от одного уровня к другому. Результатом работы этого механизма является инкапсу& ляция протокола более высокого уровня в тело протокола более низ& кого уровня. Каждый TCP&пакет вкладывается в «пакет» протокола нижележащего уровня, например, IP. Получившаяся таким образом дейтаграмма содержит в себе TCP&пакет так же, как TCP&пакет со& держит пользовательские данные.
Простейшая модель работы TCP&протокола выглядит обманчиво гладко, поскольку на самом деле его работа изобилует множеством деталей и тонкостей.
Логическая структура сетевого программного обеспечения, реа& лизующего протоколы семейства TCP/IP в каждом узле сети Internet, изображена на рис. 4.4.
Прямоугольники обозначают модули, обрабатывающие данные, а линии, соединяющие прямоугольники, – пути передачи данных. Го& ризонтальная линия внизу рисунка обозначает сеть Ethernet, кото&
116 |
Глава 4 |
|
|
рая используется в качестве примера физической среды. Понима& ние этой логической структуры является основой для понимания всей технологии TCP/IP.
Приложения |
|
TCP |
UDP |
|
IP |
ARP |
|
|
Ethernet |
Ethernet
Рис. 4.4 Структура сетевого программного обеспечения стека протоколов TCP/IP
Ниже рассматриваются более подробно возможности, принципы построения и основные функции протокола TCP.
Чтобы установить соединение между двумя процессами на раз& ных компьютерах сети, необходимо знать не только Internet&адреса компьютеров, но и номера тех ТСР&портов (sockets), которые про& цессы используют на этих компьютерах. Любое TCP&соединение в се& ти Internet однозначно идентифицируется двумя IP&адресами и дву& мя номерами TCP&портов.
Рассмотрим потоки данных, перенос которых обеспечивают про& токолы. При использовании протокола TCP данные передаются ме& жду прикладным процессом и модулем TCP. Типичным прикладным протоколом, использующим протокол TCP, является FTP (File Trans& fer Protocol, Протокол переноса файлов). Стек протоколов в этом слу& чае выглядит следующим образом: FTP/TCP/IP/Ethernet. При исполь& зовании протокола UDP (User Datagram Protocol, Протокол дейта& грамм пользователя) данные передаются между прикладным процес& сом и модулем UDP. Транспортными услугами протокола UDP поль& зуется, например, SNMP (Simple Network Management Protocol, Про& стой протокол эксплуатационного управления сетью). Его стек про& токолов выглядит так: SNMP/UDP/IP/ Ethernet.
Один порт компьютера может быть задействован в соединениях с несколькими портами удаленных компьютеров. Таким образом, механизм портов позволяет работать на одном компьютере одно&
Протоколы сети Интернет |
117 |
|
|
временно нескольким приложениям и однозначно идентифицировать каждый поток данных в сети. Это называется мультиплексировани& ем соединений.
Модули TCP, UDP и драйвер Ethernet являются мультиплексорами типа n x 1. Действуя как мультиплексоры, они переключают несколь& ко входов на один выход. Они также являются демультиплексорами типа 1 х n. Как демультиплексоры, они переключают один вход на один из многих выходов в соответствии с определенным полем в заголов& ке протокольного блока данных (в Ethernet&кадре это поле «тип»). Ко& гда Ethernet&кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в модуль ARP, либо в модуль IP. (Зна& чение поля «тип» в заголовке кадра указывает, куда должен быть на& правлен Ethernet&кадр.)
Если IP&пакет попадает в модуль IP, то содержащиеся в нем дан& ные могут быть переданы либо модулю TCP, либо UDP, что определя& ется полем «Protocol» в заголовке IP&пакета. Если TCP&сообщение попадает в модуль TCP, то выбор прикладной программы, которой должно быть передано сообщение, производится на основе значе& ния поля «порт» в заголовке TCP&сообщения.
Демультиплексирование данных, передаваемых в обратном на& правлении, осуществляется довольно просто, так как из каждого модуля существует только один путь «вниз». Каждый протокольный модуль добавляет к пакету свой заголовок, на основании которого машина, принявшая пакет, выполняет демультиплексирование.
Назначение портов для приложений на каждом компьютере про& изводится независимо. TCP может самостоятельно выбирать порт, с которым будет работать приложение, или приложение укажет, с ка& ким портом на данном компьютере оно будет работать. Однако, как правило, часто используемые приложения&сервисы, например, та& кие как HTTP, FTP, SMTP и др., используют одни и те же номера пор& тов, которые уже стали общеизвестными. Это делается для того, чтобы к данному процессу на компьютере можно было присоединить& ся, указывая только адрес машины. Например, Internet&браузер, если ему не указать дополнительно, ищет по указанному адресу приложе& ние, работающее с портом 80 (наиболее распространенный порт для серверов WWW). Кроме того, рабочая станция может быть снабжена несколькими сетевыми интерфейсами, тогда она должна осуществ& лять мультиплексирование типа n x m, т. е. между несколькими при& кладными программами и несколькими интерфейсами.
4.7.2 Установление TCP,соединения и передача данных
Режим участия в установлении TCP&соединения может быть ак& тивным и пассивным. При пассивном участии рабочая станция ожи& дает сигнал открытия TCP&канала от встречного оборудования и не пытается открыть TCP&канал сама. Этот режим обычно используется