Автор: Пользователь скрыл имя, 27 Мая 2012 в 04:03, курс лекций
Работа содержит курс лекций по дисциплине "Сетевые технологии"
ПРОТОКОЛЫ СЕТЕВОГО УРОВНЯ
Протокол 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 передает ее протоколу канального уровня для передачи в сеть.
Рис.
1. IP помещает данные
транспортного уровня
в дейтаграмму
Примечание Протоколы различных уровней модели OSI по-разному называют создаваемые ими структуры. Например, то, что протокол канального уровня называет кадром, для сетевого уровня будет дейтаграммой. Более общее название для структурной единицы данных на любом уровне — пакет (packet).
В процессе
передачи данных разные системы могут
добавлять к дейтаграмме
Функции IP
Протокол IP выполняет несколько важных сетевых функций, в том числе:
Инкапсуляция
Заголовок, добавляемый протоколом IP к данным, полученным от протокола транспортного уровня, обычно имеет длину 20 байт. Формат дейтаграммы
показан на рис. 2
Поля
дейтаграммы выполняют
• Номер версии протокола IP - Version (4 бита) —, использованная для создания дейтаграммы. Сейчас используется версия 4, но на смену ей уже готовится версия 6.
• Длина заголовка дейтаграммы - Internet Header Length (IHL) (4 бита), выраженная в 32-битовых (4-байтовых) словах. Обычно длина заголовка дейтаграммы равна 5 словам (20 байтам), но, если в дейтаграмму включены дополнительные параметры, она может быть и больше. В таких случаях и используется это поле. Наибольшая длина заголовка составляет 60 байт.
• Тип сервиса - Type of Service (1 байт) . Имеет другое название байт дифференцированного обслуживания. Этим двум названиям соответствует два варианта интерпретации этого поля. Оба варианта служат одной цели - хранению признаков, отражающих требования к качеству обслуживанию пакета. В прежнем варианте первые три бита содержат приоритет (0..7), который будет учитываться маршрутизаторами при ее пересылке по интерсети. Следующие три бита определяю критерий выбора маршрута. Если бит D(Delay-задержка) установлен в 1, то маршрут должен выбираться для минимизации задержки доставки данного пакета. Если бит T(Throughput- пропускная способность) установлен в 1, то маршрут должен выбираться для максимизации пропускной способности, а бит R(Reliability- надежность) установлен в 1, для максимизации надежности доставки данного пакета. Оставшиеся 2 бита имеют нулевое значение.
Стандарты дифференцированного обслуживания приняты в конце 90-х годов. Определяют класс трафика и используются на магистрали.
• Длина дейтаграммы - Total Length (2 байта) в байтах с учетом данных и всех полей заголовка.
• Идентификатор пакета - Identification (2 байта) — уникальный. Целевая система использует эту величину при сборке дейтаграмм, которые были фрагментированы в процессе передачи.
• Флаги - Flags (3 бита) , управляющие процессом фрагментации дейтаграммы. Установленный в 1 бит DF (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный в 1 бит MF (More Fragments), говорит о том, что данный пакет является промежуточным фрагментом. Оставшийся бит зарезервирован.
•Поле смещения фрагмента - Fragment Offset (13 битов) — поле, задает значение, определяющее положение фрагмента во фрагментированной дейтаграмме. Используется при сборке/разборке фрагментов пакетов
• Поле времени жизни - Time to Live (1 байт) —Используется для задания предельного срока , в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником. По истечению каждой секунды пребывания на каждом маршрутизаторе вычитается единица. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше 1 секунды, то TTL может интерпретировать как максимальное количество транзитных узлов, которое разрешено пройти пакету. Когда значение становится равным 0, пакет прекращает существование.
• Код протокола верхнего уровня - Protocol (1 байт) —, сгенерировавшего информацию в поле данных.
• Контрольная сумма заголовка - Header Checksum (2 байта) —, используется для обнаружения ошибок только в заголовке.
• IP-адрес источника - Source IP Address (4 байта)– системы, создавшей дейтаграмму.
• IP-адрес приемника - Destination IP Address (4 байта) —- системы, в которую направляется дейтаграмма.
• Поле параметров - Options (переменной длины) —- необязательное поле для одного или нескольких из 16 IP-параметров. Размер и содержимое этого поля определяются количеством и типом параметров.
• Выравнивание — в конце заголовка должно быть добавлено несколько нулевых байтов для выравнивания заголовка пакета по 32-битной границе, т.к. число полей в поле параметров может быть произвольным.
Адресация
Уникальность 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, фрагменты могут дробиться дальше. Восстановление исходной дейтаграммы из фрагментов производится только в самом конце их путешествия, в целевой системе.