Материал: IP Телефония_Гольдштейн_1-4 части

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Протоколы сети Интернет

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

 

 

4.7 Протокол TCP

Протокол управления передачей информации – 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.

4.7.1Потоки, стек протоколов, механизм портов и мультиплексирование

Чтобы установить соединение между двумя процессами на раз& ных компьютерах сети, необходимо знать не только 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&канал сама. Этот режим обычно используется

Источник: https://studfile.net/preview/14430495/