5-1protocol IP (Лекции по Сетевым технологиям)
Описание файла
Файл "5-1protocol IP" внутри архива находится в папке "Лекции по Сетевым технологиям". Документ из архива "Лекции по Сетевым технологиям", который расположен в категории "". Всё это находится в предмете "сетевые технологии" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "сетевые технологии" в общих файлах.
Онлайн просмотр документа "5-1protocol IP"
Текст из документа "5-1protocol IP"
ПРОТОКОЛЫ СЕТЕВОГО УРОВНЯ
Протокол IP
IP (Internet Protocol) — краеугольный камень набора TCP/IP, названного так по двум составляющим его протоколам (IP и TCP), которые в паре обеспечивают самый популярный в наши дни сетевой транспортный сервис. Информация TCP и большинства других протоколов из набора TCP/IP инкапсулируется в кадр IP. По существу IP исполняет роль конверта, в котором данные TCP/IP доставляются по назначению.
В интерсети TCP/IP протокол IP отвечает за передачу данных от исходной до целевой системы. Он не ориентирован на соединение, т. е. передает сообщения целевой системе, не устанавливая предварительно связи с ней. Это объясняется тем, что на соединение ориентированы лишь немногие из протоколов, данные которых переносит IP.
В TCP/IP службы с ориентацией на соединение работают на транспортном уровне, благодаря чему удается избежать ориентации на соединение на сетевом уровне и сократить издержки на передачу излишних управляющих данных.
Протокол транспортного уровня, наподобие TCP или UDP, передает данные на сетевой уровень, a IP инкапсулирует их в кадр, добавляя свой заголовок и получая в результате дейтаграмму (datagram), так, как показано на рис.1. Дейтаграмма адресована именно тому компьютеру, которому предназначены данные, независимо от того, находится он в локальной или удаленной сети. Не считая нескольких небольших модификаций, на всем пути к целевой системе дейтаграмма сохраняет первоначальный вид. Закончив создание дейтаграммы, IP передает ее протоколу канального уровня для передачи в сеть.
Заголовок IP Данные транспортного уровня
Дейтаграмма IP
Рис. 1. IP помещает данные транспортного уровня в дейтаграмму
Примечание Протоколы различных уровней модели OSI по-разному называют создаваемые ими структуры. Например, то, что протокол канального уровня называет кадром, для сетевого уровня будет дейтаграммой. Более общее название для структурной единицы данных на любом уровне — пакет (packet).
В процессе передачи данных разные системы могут добавлять к дейтаграмме различные заголовки протоколов канального уровня, но сама она остается неизменной. Это похоже на отправку письма по почте, причем IP играет роль конверта. На пути к цели письмо может попадать в разную тару, странствовать в поезде или на самолете, но конверт всегда остается запечатанным. Открыть его и использовать содержимое разрешается только получателю данных.
Функции IP
Протокол IP выполняет несколько важных сетевых функций, в том числе:
-
инкапсуляцию — упаковку пакета данных транспортного уровня в дейтаграмму;
-
адресацию — идентификацию систем в сети по их IP-адресам;
-
маршрутизацию — определение наиболее эффективного пути к целевой системе;
-
фрагментацию — разбиение данных на фрагменты, по размеру подходящие для передачи по сети;
-
идентификацию протокола транспортного уровня, который сгенерировал данные в дейтаграмме.
Инкапсуляция
Заголовок, добавляемый протоколом IP к данным, полученным от протокола транспортного уровня, обычно имеет длину 20 байт. Формат дейтаграммы показан на рис. 2.
Заголовок IP
Рис. 2. Формат дейтаграммы IPПоля дейтаграммы выполняют следующие функции.
• Version (4 бита) — версия протокола IP, использованная для создания дейтаграммы. Сейчас используется версия 4, но на смену ей уже готовится версия 6.
• Internet Header Length (IHL) (4 бита) — длина заголовка дейтаграммы, выраженная в 32-битовых (4-байтовых) словах. Обычно длина заголовка дейтаграммы равна 5 словам (20 байтам), но, если в дейтаграмму включены дополнительные параметры, она может быть и больше. В таких случаях и используется это поле.
• Type of Service (1 байт) — код приоритета дейтаграммы. Это поле позволяет присвоить дейтаграмме приоритет, который будет учитываться маршрутизаторами при ее пересылке по интерсети.
• Total Length (2 байта) — длина дейтаграммы в байтах с учетом данных и всех полей заголовка.
• Identification (2 байта) — уникальный идентификатор дейтаграммы. Целевая система использует эту величину при сборке дейтаграмм, которые были фрагментированы в процессе передачи.
• Flags (3 бита) — флаги, управляющие процессом фрагментации дейтаграммы.
• Fragment Offset (13 битов) — поле смещения фрагмента, задает значение, определяющее положение фрагмента во фрагментированной дейтаграмме.
• Time to Live (1 байт) — поле времени жизни количество сетей, которые дейтаграмме разрешается пройти на пути к целевой системе. Каждый маршрутизатор, пересылающий дейтаграмму, уменьшает значение в этом поле на 1. Когда значение становится равным 0, дейтаграмма прекращает существование.
• Protocol (1 байт) — код протокола, сгенерировавшего информацию в поле данных.
• Header Checksum (2 байта) — контрольная сумма для полей заголовка IP, используемая для обнаружения ошибок.
• Source IP Address (4 байта) — IP-адрес источника – системы, создавшей дейтаграмму.
• Destination IP Address (4 байта) — IP-адрес приемника - системы, в которую направляется дейтаграмма.
• Options (переменной длины) — поле параметров - необязательное поле для одного или нескольких из 16 IP-параметров. Размер и содержимое этого поля определяются количеством и типом параметров.
• Data (переменной длины) — информация, сгенерированная протоколом, код которого указан в поле Protocol. Размер этого поля зависит от протокола канального уровня, используемого сетью, в которую система передает дейтаграмму.
Адресация
Уникальность IP по сравнению с другими протоколами сетевого уровня состоит в том, что он обладает собственной системой адресов для идентификации компьютеров в интерсети почти любого размера (в других протоколах сетевого уровня, например, в NetBEUI или IPX, для идентификации компьютеров в ЛВС используются имена или аппаратные адреса). Адрес IP имеет длину 32 бита и состоит из идентификатора сети и идентификатора хоста. Хостом (host) в TCP/IP называется сетевой адаптер компьютера или другого устройства. Обычно говорят об IP-адресе компьютера, но в действительности адрес принадлежит сетевому адаптеру (чаще всего сетевой плате). Если на компьютере (например, маршрутизаторе) установлено два адаптера или адаптер и модем для удаленного соединения с сетью, у него будет два IP-адреса — по одному для каждого интерфейса.
IP-адреса, записанные системой в поля Source IP Address и Destination IP Address заголовка IP, идентифицируют систему, создавшую пакет, и систему, которой он предназначен. Если пакет не покинет пределов ЛВС, целевой IP-адрес указывает на ту же систему, что и целевой адрес в заголовке протокола канального уровня. Если пакет адресован системе в другой сети, целевые адреса протоколов сетевого и канального уровней различаются. IP — сквозной протокол, т. е. он полностью отвечает за доставку данных целевой системе, не ограничиваясь их перемещением по локальной сети, как протокол канального уровня.
Протоколы канального уровня с IP-адресами не работают, поэтому для передачи дейтаграммы IP должен сообщить протоколу канального уровня аппаратный адрес системы в локальной сети. Для этого IP прибегает к помощи другого протокола из набора TCP/IP — протокола разрешения адреса ARP (Address Resolution Protocol). ARP рассылает широковещательное сообщение с IP-адресом системы в локальной сети. Система, которой принадлежит этот IP-адрес, отвечает на него, подставляя в ответное сообщение свой аппаратный адрес. Если целевая система дейтаграммы находится в локальной сети, в сообщении ARP содержится ее IP-адрес. Если целевая система находится в другой сети, IP-адрес в сообщении ARP принадлежит маршрутизатору. Получив ответ на сообщение ARP, протокол IP в системе-источнике передает дейтаграмму протоколу канального уровня, сопроводив ее аппаратным адресом, необходимым для построения кадра.
Маршрутизация
Маршрутизация — самая важная и сложная функция протокола IP. Когда TCP/IP-система передает данные компьютеру в другой сети, пакетам предстоит пройти через маршрутизаторы, которыми эти сети соединяются. В подобных случаях отправитель и получатель данных называются оконечными, а маршрутизаторы — промежуточными системами (рис. 3). Проходя через промежуточную систему, пакеты поднимаются по стеку протоколов только до сетевого уровня. Там IP принимает решение, куда пакет отправить дальше. Если маршрутизатор входит в сеть, в которую включена целевая система, он передает пакет туда, и путешествие пакета на этом закончено. Если целевая система находится в другой сети, маршрутизатор передает пакет другому маршрутизатору, и пакет оказывается на шаг ближе к цели. В сложных интерсетях на пути к месту назначения пакет может проходить через десятки маршрутизаторов.
Примечание. Чтобы определить дальнейшую судьбу пакета, промежуточные системы используют специальные таблицы, составление которых является наиболее сложной частью процесса маршрутизации.
Промежуточная система
Промежуточная система
Оконечная система
Рис.3. На пути к цели пакет проходит через несколько промежуточных систем
Поскольку в промежуточной системе пакет достигает только сетевого уровня, дейтаграмма не открывается и не используется. Маршрутизатор удаляет кадр канального уровня и заменяет его собственным кадром, но «конверт» дейтаграммы остается запечатанным, пока она не достигнет места назначения. И все-таки каждая промежуточная система вносит в заголовок IP незначительные изменения. Самое важное из них касается поля Time to Live (TTL), определяющего «время жизни» пакета. Компьютер, сгенерировавший пакет, записывает в него заданное значение. Каждый маршрутизатор, обрабатывающий пакет, уменьшает это значение на 1. Когда величина TTL достигает нуля, очередной маршрутизатор дальше пакет не передает. Это позволяет избежать зацикливания пакетов в сети в случае каких-либо сбоев.
Маршрутизатор, в котором величина TTL достигла нуля, с помощью протокола ICMP генерирует сообщение об ошибке Time to Live Exceeded in Transit и посылает его системе-источнику пакета. Так отправитель узнает, что пакет не достиг места назначения. В большую часть реализации TCP/IP включается программа Traceroute, которая с помощью поля TTL составляет список маршрутизаторов на пути к определенной целевой системе. Посылая по заданному адресу серию пакетов с последовательно увеличивающимися значениями TTL, Traceroute заставляет встретившиеся маршрутизаторы по очереди генерировать сообщения об ошибке. Из этих сообщений Traceroute извлекает адреса маршрутизаторов и отображает полный путь к целевой системе.
Фрагментация
Маршрутизатор способен соединять сети с различными сетевыми средами и протоколами канального уровня, но, чтобы направить пакеты из одной сети в другую, ему часто приходится переупаковывать дейтаграмму в другой кадр канального уровня. Иногда это выливается в удаление старого кадра и создание нового. В других случаях протоколы канального уровня различаются настолько сильно, что процесс переупаковки усложняется, как, например, при соединении сети Token Ring с сетью Ethernet. Дело в том, что в сети Token Ring дейтаграмма может иметь длину до 4500 байтов, а в сети Ethernet — не более 1500 байтов.
Для решения этой проблемы маршрутизатор разделяет дейтаграмму, пришедшую из сети Token Ring, на несколько фрагментов (рис. 4). Каждый из них обладает собственным заголовком IP и пересылается в отдельном кадре канального уровня. Размер фрагмента определяется размером максимальной единицы передачи (maximum transfer unit, MTU) в целевой сети. Попадая в сети с меньшим значением MTU, фрагменты могут дробиться дальше. Восстановление исходной дейтаграммы из фрагментов производится только в самом конце их путешествия, в целевой системе.
Маршрутизатор
Рис. 4. Для передачи по сети с меньшим значением MTU маршрутизатор разделяет дейтаграмму на фрагменты
Разбивая дейтаграмму на фрагменты, протокол IP к каждому из них присоединяет IP-заголовок. Поле Identification в заголовке каждого фрагмента содержит то же значение, что и аналогичное поле в заголовке исходной дейтаграммы. Это позволяет целевой системе найти фрагменты, принадлежащие одной и той же дейтаграмме. Кроме того, маршрутизатор записывает в поля Total Length длины фрагментов и изменяет значение бита More Fragments в поле Flags с 0 на 1 во всех фрагментах, кроме последнего. Значение 1 этого бита означает, что существуют и другие фрагменты, относящиеся к той же дейтаграмме. По биту More Fragments целевая система определяет, все ли фрагменты получены и можно ли начинать сборку дейтаграммы.
Значение поля Fragment Offset определяет место фрагмента в дейтаграмме. У первого фрагмента значение этого поля равно 0, у второго фрагмента оно равно размеру первого фрагмента в байтах. Для третьего фрагмента величина смещения равна суммарному размеру первых двух фрагментов и т. д. Целевая система использует эти величины, чтобы скомпоновать фрагменты в правильном порядке. Установка в единицу бита Don't Fragment в поле Flags запрещает маршрутизатору фрагментировать дейтаграмму. Если без фрагментации ее передать нельзя, маршрутизатор проигнорирует дейтаграмму, послав системе-источнику сообщение ICMP об ошибке.