Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
13-24.docx
Скачиваний:
77
Добавлен:
25.04.2019
Размер:
694.95 Кб
Скачать

24 . Протоколы межсетевого и транспортного уровней tcp/ip

Протокол IP

Основные функции протокола IP

Протокол межсетевого взаимодействия (Internet Protocol, IP) обеспечивает передачу дейтаграмм от отправителя к получателям через объединенную систему компьютерных сетей.

Протокол IP относится к протоколам без установления соединений. IP не обеспечивает надежной доставки сообщений. Каждый IP-пакет обрабатывается как независимая единица, не имеющая связи ни с какими другими IP-пакетами. В протоколе IP отсутствует квитирование, нет процедуры упорядочивания, повторных передач и др. подобных функций. Все вопросы обеспечения надежности доставки данных по составной сети в стеке TCP/IP решает протокол TCP. Он организует повторную передачу пакетов, когда в этом возникает необходимость.

Важная особенность протокола IP – его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными, максимально допустимыми значениями поля данных кадров.

Структура IP-пакета

IP-пакет состоит из заголовка и поля данных. Длина заголовка составляет обычно 20 байт. Заголовок имеет следующую структуру.

П оле Номер версии, занимающее 4 бит, указывает версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), и готовится переход на версию 6 (IPv6).

Поле Длина заголовка IP-пакета занимает 4 бит и указывает значение длины заголовка, измеренное в 32-битовых словах. Наибольший заголовок занимает 60 байт.

Поле Тип сервиса занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута.

Поле Общая длина занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт. Длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты.

Поле Идентификатор пакета занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.

Поле Флаги занимает 3 бита и содержит признаки, связанные с фрагментацией (запрет фрагментации пакета и указание, что пакет является промежуточным фрагментом).

Поле Смещение фрагмента занимает 13 бит и задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации.

Поле Время жизни занимает один байт и означает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником передачи. На маршрутизаторах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица. Если параметр времени жизни станет нулевым до того, как пакет достигнет получателя, этот пакет будет уничтожен.

Идентификатор Протокол верхнего уровня занимает один байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета (например, сегменты протокола TCP, дейтаграммы UDP, пакеты OSPF).

Контрольная сумма занимает 2 байта и рассчитывается только по заголовку. Так как некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети, контрольная сумма проверяется и повторно рассчитывается при каждой обработке IP-заголовка. Если контрольная сумма неверна, то пакет будет отброшен, как только ошибка будет обнаружена.

Поле Опции является необязательным и используется обычно только при отладке сети.

Поле Выравнивание используется для того, чтобы убедиться в том, что IP-заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.

Протоколы транспортного уровня TCP и UDP

Транспортный протокол TCP

Главная функция TCP заключается в доставке сообщений без потерь. Для доставки сообщений предварительно устанавливается соединение между процессом-отправителем и процессом-получателем. Данное соединение осуществляет надежную доставку сообщений. Протокол TCP производит повторную передачу искаженного или утерянного пакета.

В TCP применяется средство ограничения потока данных, называемое скользящим окном. Оно представляет собой фрагмент сообщения, которые адресат готов принять. При установлении соединения отправителю сообщается размер окна. После того, как отправитель передал количество байт, соответствующее размеру окна, он должен ждать квитанции. Как только будет получена квитанция на переданные сегменты, окно сдвигается вправо на соответствующее число байт, и новые сегменты могут быть переданы. В процессе обмена данными размер скользящего окна может меняться.

Сегмент считается потерянным, если квитанция на него не поступила в течение заданного времени ожидания. При этом производится повторная передача сегмента.

Протокол передачи сообщений UDP

Протокол UDP является более простым транспортным протоколом. Он предоставляет прикладным процессам услуги транспортного уровня не обеспечивая никаких гарантий доставки и не требует установления соединения между процессами.

Для проверки возникновения ошибок может использоваться контрольная сумма пакета, но ошибки никак не обрабатываются - они либо игнорируются, либо их обработка выполняется уже на более высоком, прикладном уровне.

Протокол UDP используется тогда, когда требуется быстрый простейший механизм передачи данных.

Порты, мультиплексирование и демультиплексирование

Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются пор­тами. Порт однозначно определяет приложение в пределах компьютера.

Существует два способа присвоения порта приложению – централизованный и локальный.

Если процессы представляют собой популярные общедоступные службы, такие как FTP, telnet, HTTP, DNS и т. п., то за ними закрепляются стандартные присвоенные номера. Для тех служб, которые еще не стали столь распространенными, чтобы закреп­лять за ними стандартные номера, номера портов выделяются локально средствами операционной системы.

Порты применяются в обоих прото­колах транспортного уровня. Но нет никакой зависимости между на­значением номеров для приложений, использующих протокол TCP, и приложе­ний, работающих с протоколом UDP. Диапазоны чисел, из которых выделяются номера портов TCP и UDP, совпадают.

Протоколы TCP и UDP ведут для каждого номера порта две очереди: очередь пакетов, поступающих в данный порт из сети, и очередь пакетов, отправляемых данным портом в сеть. Процедура приема протоколом транспортного уровня данных, поступающих от нескольких прикладных служб по разным портам, сопровождается мультиплексировани­ем. Обратная процедура сопровождается демультиплексированием.

Логические соединения

Для надежной передачи данных между двумя прикладными процессами преду­сматривается установление логического соединения. Номер порта в совокупности с номером сети и номером конечного узла одно­значно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров (IP-адрес, номер порта) имеет название сокет (socket).

Каждый взаимодействующий процесс идентифицируется сокетом – парой, а каждое соединение – парой сокетов взаимо­действующих процессов. Каждый процесс одновременно может участвовать в нескольких соединениях.

Так, например, если (IP1, n1), (IP2, n2), (IP3, nЗ) – сокеты трех разных процес­сов, то возможно образование следующих соединений:

соединение 1 – {(IP1, n1), (IP2, n2)};

соединение 2 – {(IP1, n1), (IP3, n3)};

соединение 3 – {(IP2, n2), (IP3, n3)}.

Каждая такая пара однозначно идентифицирует соединение. Соединение также определяет договоренность о параметрах, характеризующих проце­дуру обмена данными. В протоколе TCP это параметры: – максимальный размер сегмента; – размер окна; – начальный порядковый номер байта, с которого она начинает отсчет потока данных в рамках данного соединения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]