Лекция 8. Протоколы сетевого уровня.
Краткая аннотация лекции: Рассмотрены принципы функционирования протоколов сетевого уровня: сетевых и протоколов маршрутизации. Рассмотрен формат заголовка IP-пакета. Проведен сравнительный анализ протоколов вектора расстояния и состояния канала. Приведены основные характеристики протокола RIP. Цель лекции: изучить принципы функционирования протоколов IP-сетей. 8.1. Сетевые протоколы Основным сетевым (routed) протоколом всемирной сети Интернет является Internet Protocol (IP). Формат сообщения сетевого уровня представляет собой пакет, известный также как дейтаграмма (datagram). В дейтаграммных сетях доставка данных производится без предварительного соединения отправителя и получателя сообщения (connectionless). В процессе организации связи не используются схемы коммутации цепей, поскольку все соединения выполнены заранее и нужно лишь выбрать наилучший путь к адресату назначения на основе метрики протокола маршрутизации. В IP-сетях с коммутацией пакетов отправитель информации не знает, получено ли его сообщение и получено ли оно без ошибок. Поэтому для повышения надежности и достоверности доставки данных дополнительно используется протокол TCP, а сети и стек протоколов передачи данных получили название TCP/IP (см. раздел 2.2). Дейтаграммные сети характеризуются терминами «ненадежный» (unreliable) и «доставка по возможности» или доставка с наибольшими возможными усилиями (best-effort delivery). Это означают, что проверка (верификация) правильности полученных данных на сетевом уровне не производится. Для такой проверки на конечных узлах используется протокол транспортного уровня TCP. В сетях с предварительным соединением отправителя и получателя (connection-oriented) отправитель и получатель перед обменом данными предварительно устанавливают соединение. Кроме того, при использовании таких технологий проводится подтверждение принятых данных. Примером сетей с предварительным соединением являются телефонные сети с коммутацией каналов, а также сети на основе виртуальных каналов. Правила передачи сообщений по дейтаграммным IP-сетям, их формат и другие параметры устанавливают сетевые маршрутизируемые протоколы (Routed protocol) и протоколы маршрутизации ил маршрутизирующие протоколы (Routing protocol). Сетевые протоколы определяют формат пакета, логические адреса узла источника и назначения (IP-адреса), заключающиеся в заголовке пакета, и прокладывают маршрут пакета на основе имеющихся таблиц маршрутизации.
Маршрутизирующие протоколы (не путать с протоколами маршрутизации!) также являются протоколами сетевого уровня, они создают и поддерживают таблицы маршрутизации. Обновления (update) таблиц протоколами маршрутизации реализуется путем обмена маршрутными данными между маршрутизаторами. Таким образом, протоколы маршрутизации создают и поддерживают таблицы маршрутизации, а сетевые протоколы используют эти таблицы для продвижения пакетов. Протоколы сетевого уровня (IP, IPX/SPX, AppleTalk) должны обеспечивать номера (адреса) сетей и номера (адреса) хостов. Некоторым протоколам, например Novell Internetwork Packet Exchange (IPX), требуются только сетевой адрес, поскольку они используют MAC-адрес устройства в качестве адреса хоста. Протоколу IP требуется адрес, содержащий как сетевую, так и узловую (хостовую) части. Для того чтобы можно было выделить адрес сети и адрес хоста необходима маска сети или подсети. Сетевые протоколы обеспечивают поддержку Уровня 3 модели OSI. Формат пакета сетевого протокола IP (Рисунок 8.1) включает заголовок, состоящий из 12 полей общей длиной в 160 бит (5 слов по 4 байта, т.е. 20 байт), поле опций переменной длины и поле данных.
Рисунок8.1. Формат заголовка IP-пакета 157
1. Первое 4-х разрядное поле (Vers) задает номер версии протокола. В настоящее время действует версия 4 – IPv4, согласно которой длина адреса источника (Source IP address) и адреса назначения (Destination IP address) равна 32 разрядам (4 байтам). В распечатках поля заголовка обычно представляются в десятичной и шестнадцатеричной системе. Например, действующая в настоящее время версия 4 выглядит следующим образом: Version = 4 (0x4), в двоичной системе – 0100. 2. Длина заголовка – количество 32-разрядных слов в заголовке, задается вторым полем HLEN. Например, двоичный код в этом поле – 0101 и запись Header Length = 20 (0x14) означает, что заголовок содержит 5 слов по 32 разряда или 20 байт. 3. Поле типа сервиса (Type of Service – ToS) длиной 8 бит включает четыре идентификатора: трехразрядный идентификатор PR и одноразрядные D, T, R. Идентификаторы определяют требования к метрике при прокладке маршрута. Идентификатор PR определяет тип пакета (нормальный, управляющий и др.) и в соответствие с этим задает приоритет. Установка 1 в разряде D означает требование минимизации задержки при передаче пакета; единица в разряде Т означает требование максимальной пропускной способности; установка 1 в разряде R требует максимальную надежность. Поле типа сервиса позволяет в мультисервисных сетях при передаче разных типов трафика организовать систему приоритетов, т.е. организовать систему качества обслуживания (Quality of Service – QoS), когда чувствительный к задержкам трафик пропускается в первую очередь. 4. Поле Total Length задает общую длину пакета, включая заголовок и поле данных. 16 разрядов поля позволяют задавать максимальную длину 64 Кбайт. Поскольку максимальная длина кадра в большинстве технологий локальных сетей меньше 64 Кбайт, например, в Ethernet она составляет 1500 байт, то большие пакеты разбивают на фрагменты. При фрагментации пакета используется информация 5, 6 и 7 полей, все фрагменты должны иметь: одинаковый идентификационный номер пакета; номер, определяющий порядок следования фрагмента при сборке пакета; дополнительную информацию. 5. Пятое поле заголовка содержит идентификационный номер пакета. При фрагментации пакета идентификационный номер будет единым для всех фрагментов.
6. Трехразрядное поле Flags содержит два одноразрядных флага фрагментации. Установка 1 в разряде DF запрещает маршрутизатору производить фрагментацию данного пакета. Единичка в разряде MF указывает, что данный пакет не является последним из числа фрагментированных. 7. 13-разрядное поле смещения данных Fragment Offset помогает собрать фрагменты в единый пакет. Оно задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного не фрагментированного пакета. 8. Время жизни (Time to Live – TTL) уменьшается на 1 при прохождении каждого маршрутизатора или каждую секунду. Оно задается при формировании пакета и может иметь значение от 1 до 255. При обнулении значения TTL пакет уничтожается. Таким образом, число узлов, через которые может пройти пакет, ограничено. 9. Поле Protocol указывает протокол верхнего уровня (TCP, UDP, и др.), которому будет передан принятый пакет после завершения IP процесса. 10. Поле контрольной суммы заголовка Header Checksum. Поскольку при прохождении маршрутизатора значения некоторых полей заголовка изменяются, например время жизни TTL, то расчет контрольной суммы производится в каждом маршрутизаторе заново. 11. Адрес источника информации (Source IP address) длиной 4 байта (32 двоичных разряда). 12. Адрес назначения (Destination IP address) или адрес приемника информации – длина 4 байта (32 разряда). 13. Поле IP option позволяет поддерживать различные опции, например, опцию защиты информации. Это поле может иметь разную длину, поэтому оно дополняется нулями до 32 разрядов. 14. Поле данных Data имеет длину более 64 двоичных разрядов.
8.2. Основные параметры протоколов маршрутизации
Совокупность сетей, представленных набором маршрутизаторов под общим административным управлением, образует автономную систему (Рисунок 8.2). Примерами автономных систем являются сети провайдеров. Автономные системы нумеруются и в некоторых протоколах (IGRP, EIGRP) эти номера используются. В настоящем курсе лекций рассматривается маршрутизация только внутри автономной системы. Протокол BGP, обеспечивающий маршрутизацию между автономными системами изучается в курсе CCNPМеждународной сетевой академии Cisco.
Рисунок 8.2. Взаимодействие автономных систем
Маршрутизаторы функционируют в дейтаграммных сетях с коммутацией пакетов, где все возможные маршруты уже существуют. Поэтому пакету нужно лишь выбрать наилучший путь на основе метрики протокола маршрутизации. Процесс прокладывания пути производится последовательно от одного маршрутизатора к другому. Этот процесс маршрутизации (routing) является функцией Уровня 3 модели OSI. При прокладывании пути пакета маршрутизатор анализирует сетевой адрес узла назначения, заданный в заголовке пакета, и вычленяет из него адрес сети. Адреса всех доступных сетей назначения хранятся в таблице маршрутизации. Поэтому маршрутизатор должен создавать и поддерживать таблицы маршрутизации, а также извещать другие маршрутизаторы о всех известных ему изменениях в топологии сети. Маршрутизацию, т.е. прокладывание маршрута внутри автономных систем, осуществляют протоколы внутренней маршрутизации (Interior Gateway Protocols - IGPs), к которым относятся RIP, RIPv2, IGRP, EIGRP, OSPF, Intermediate System-to-Intermediate System (IS-IS). Маршрутизацию между автономными системами производят протоколы внешней маршрутизации (Exterior Gateway Protocols - EGPs). Примером протокола внешней маршрутизации является протокол BGP, который работает на граничных маршрутизаторах автономных систем (Рисунок 8.2). Маршрутизирующие протоколы, работающие внутри автономных систем, в свою очередь, подразделяются на протоколы вектора расстояния (distance-vector) и протоколы состояния канала (link-state). Протоколы вектора расстояния определяют расстояние и направление, т.е. вектор соединения в составной сети на пути к адресату. Расстояние может быть выражено в количестве переходов (hop count) или маршрутизаторов в соединении на пути от узла источника к адресату назначения, а также других значениях метрики. При использовании протокола вектора расстояния маршрутизаторы посылают всю или часть таблицы маршрутизации соседним (смежным) маршрутизаторам через определенные интервалы времени. В таких протоколах как RIP, обмен обновлениями (update) или модификациями происходит периодически, даже если в сети нет никаких изменений, на что затрачивается довольно большая часть полосы пропускания. Получив обновление маршрутной информации, маршрутизатор может заново вычислить все известные пути и произвести изменения в таблице маршрутизации. Протоколы состояния канала создают полную картину топологии сети и вычисляют кратчайшие пути ко всем сетям назначения. Если путей несколько, то выбирают первый из вычисленных. Протоколы состояния канала (или соединения) быстрее реагируют на изменения в сети по сравнению с протоколами вектора расстояния, но при этом требуют больших вычислительных ресурсов.
Когда инкапсулированный в кадр пакет прибывает на входной интерфейс, маршрутизатор декапсулирует его, затем использует таблицу маршрутизации, чтобы определить, по какому маршруту направить пакет, т.е. на какой свой выходной интерфейс передать поступивший пакет. Выходной интерфейс связан с наиболее рациональным маршрутом к адресату назначения. Этот процесс называется коммутацией или продвижением пакета. На выходном интерфейсе пакет инкапсулируется в новый кадр, при этом маршрутизатор добавляет информацию для формирования кадра (см. материалы лекции 7). Определение наиболее рационального (или оптимального) пути производится маршрутизатором на основе некоторого критерия – метрики. Значение метрики используется при оценке возможных путей к адресату назначения. Метрика может включать разные параметры, например: полосу пропускания, задержку, надежность, загрузку, обобщенную стоимость и другие параметры сетевого соединения. Маршрутизаторы могут использовать один какой-то параметр или комбинацию параметров метрики при выборе оптимального маршрута. Маршрутная информация может быть сконфигурирована сетевым администратором – при этом реализуется статическая маршрутизация. Динамическая маршрутизация реализуется протоколами маршрутизации, когда маршрутная информация собирается в ходе динамического процесса обмена обновлениями (модификациями) между маршрутизаторами, который по определенным правилам выполняется в сети. Таким образом, протоколы маршрутизации (routing protocol) позволяют выбирать маршрутизаторам наилучший путь для передаваемых сообщений от источника да устройства назначения. Для этого маршрутизирующие протоколы создают и поддерживают (модифицируют) таблицы маршрутизации путем обмена маршрутной информацией с другими маршрутизаторами в сети. В настоящем курсе лекций рассматривается функционирование и конфигурирование следующих протоколов маршрутизации: RIP (Routing Information Protocol) – протокол маршрутизации на основе вектора расстояния; EIGRP (Enhanced Interior Gateway Routing Protocol) – расширенный протокол внутренней маршрутизации; OSPF (Open Shortest Path First) – открытый протокол маршрутизации по состоянию канала. Маршрутизаторы способны поддерживать много независимых протоколов и таблиц маршрутизации для нескольких сетевых протоколов. Эта способность позволяет маршрутизатору передавать пакеты различных сетевых протоколов по тем же самым каналам связи. Таблицы маршрутизации позволяют передавать пакеты за пределы широковещательного домена. Например, строки таблицы маршрутизации (табл. 8.1) с меткой С отображают непосредственно присоединенные сети, а с меткой R – сети, путь к которым проложен с помощью протокола RIP. В каждой строке также представлены: расстояние до сети назначения, выраженное в количестве переходов между маршрутизаторами (hop); выходной интерфейс маршрутизатора на пути к сети назначения.
8.3. Протоколы вектора расстояния и состояния канала Протоколы вектора расстояния периодически рассылают обновления маршрутной информации или модификации (updates). У протокола RIP этот период равен 30 сек. При этом обновляются таблицы маршрутизации, которые и хранят всю информацию о маршрутах в сети. При изменении в сети маршрутизатор, обнаруживший такое изменение, сразу начинает обмен маршрутной информацией с соседними маршрутизаторами. Этот обмен идет последовательно от маршрутизатора к маршрутизатору с некоторой задержкой, определяемой временем модификации таблиц в каждом маршрутизаторе, а также специальным таймером. Поэтому сходимость (конвергенция) сети, когда все маршрутизаторы будут иметь согласованную информацию о сетевых соединениях, происходит медленно, что является главным недостатком протоколов вектора расстояния. Протоколы состояния соединения или канала (Link-state) быстро реагируют на изменения в сети, рассылая модификации при изменениях в сетевой топологии, всем маршрутизаторам в пределах некоторой области сети. Протоколы состояния канала создают таблицы маршрутизации на основе информации, хранящейся в специальной базе данных (link-state database). В базе данных хранится один или несколько путей к адресату назначения, из которых выбирается первый кратчайший путь (shortest path first), который и помещается в таблицу маршрутизации. Если первый путь становится недоступным, то протокол из базы данных может выбрать другой оперативно без дополнительных вычислений.
8.4. Протокол RIP Протокол RIP для своей работы использует алгоритм Беллмана-Форда. Функционирование алгоритма рассмотрено на примере сети из четырех последовательно соединенных маршрутизаторов (Рисунок 8.3), где Сеть 1 непосредственно присоединена к маршрутизатору А, поэтому метрика пути к Сети 1 из А равна 0. Протокол RIP каждые 30 сек. рассылает обновления.
Рисунок 8.3. Сеть из последовательно соединенных маршрутизаторов Согласно алгоритма Беллмана-Форда маршрутизатор А посылает маршрутизатору В информацию о пути в Сеть 1, при этом добавляет 1 к значению вектора расстояния, т.е. увеличивает метрику (hop count) до единицы. Таким образом, в таблице маршрутизации В будет информация, что расстояние до Сети 1 равно одному переходу. Затем В посылает копию таблицы маршрутизации маршрутизатору С, увеличив метрику до 2. В свою очередь маршрутизатор С повышает значение метрики до 3 и обменивается маршрутной информацией с маршрутизатором D. То есть, результирующий вектор или расстояние поэтапно увеличивается. Эта особенность алгоритма может приводить к появлению маршрутных петель в случае медленной конвергенции после изменений в сети, пример чего иллюстрирует Рисунок 8.4.
Рисунок 8.4. Образование маршрутных петель в сети
Предположим, что до изменений в представленной сети наилучшим путем к Сети 1 для маршрутизатора D был путь через маршрутизаторы С и В. Метрика пути из маршрутизатора D в Сеть 1 была равна 3 переходам. Если, например, Сеть 1 (Рисунок 8.4) вышла из строя, то начинается обновление маршрутной информации. При этом может возникнуть маршрутная петля: 1. Маршрутизатор А посылает обновление об изменении маршрутов маршрутизатору Ви он прекращает передачу пакетов данных в Сеть 1. Но поскольку маршрутизаторы С, Е и D, еще не получили обновления, то они продолжают передачу. 2. Маршрутизатор В отправляет обновления маршрутизаторам С и Е, они прекращают отправлять пакеты в Сеть 1, но маршрутизатор D – продолжает. Он пока еще считает, что имеется путь в Сеть 1 через маршрутизатор Си метрика равна 3 переходам. 3. Если маршрутизатор D отправит обновление маршрутизатору Е, то в нем он укажет, что существует маршрут в Сеть 1 через маршрутизатор С, но метрика равна 4 переходам. 4. Маршрутизатор Е обновит свою таблицу маршрутизации и перешлет обновление маршрутизатору В с метрикой в 5 переходов, и так далее по кольцу. 5. В этом случае любой пакет, предназначенный Сети 1 будет передаваться по кольцу (по петле) от маршрутизатора D к маршрутизатору С, затем к В, Е и снова D. Таким образом, образовалась маршрутная петля, из которой пакет не может выйти, если не принять специальных мер. Движение по петле теоретически может быть бесконечным. Однако в существующих протоколах имеется ряд средств, чтобы предотвратить бесконечную циркуляцию пакетов по петле маршрутизации. 1. В протоколе вектора расстояния RIP максимальное значение метрики не может превышать 15. Поэтому, как только при обмене маршрутной информацией (Рисунок 8.4) возрастающая на каждом шаге метрика достигает значения 16, Сеть 1 будет считаться недостижимой и пакет отбрасывается. 2. В заголовке сетевого протокола IP (см. Рисунок8.1) имеется поле времени жизни TTL, которое декрементируется при прохождении каждого маршрутизатора. Таким образом, число устройств, через которые может пройти пакет, ограничено. При обнулении значения TTL маршрутизатор отбрасывает пакет и отправителю с помощью протокола ICMP посылается сообщение о недостижимости сети. 3. Принцип расщепления горизонта (split horizon) также позволяет бороться с маршрутными петлями. При описании возникновения маршрутной петли (Рисунок 8.4) показано, что если маршрутизатор D отправит обновление маршрутизатору Е, и в нем укажет, что есть альтернативный маршрут в Сеть 1 через маршрутизатор С, то маршрутизатор Е модернизирует свою таблицу маршрутизации и перешлет обновление маршрутизатору В. Таким образом, маршрутизатор В может ошибочно считать, что имеется путь к Сети 1, но с худшей метрикой. Однако ранее маршрутизатор В уже получил от маршрутизатора А информацию, что Сеть 1 недостижима. Принцип расщепления горизонта указывает, что нельзя посылать информацию маршрутизатору В о Сети 1 в обратном направлении, т.е. от маршрутизатора С или Е. 4. Пометка недоступного маршрута запрещенной метрикой (route poisoning). В этом случае маршрутизатор, имеющий какой-то маршрут к сети, сразу же после получения сообщения о недостижимости данной сети, включает в соответствующую строку таблицы маршрутизации запрещенное значение метрики, равное 16. Обычно этот метод используется совместно с принципом расщепления горизонта имеханизмом мгновенной рассылки объявлений об изменении топологии сети. 5. Согласно метода мгновенных обновлений (triggered update) их рассылка производится сразу, как только маршрутизатор обнаружит какие-либо изменения в сети, не дожидаясь окончания периода обновления. Последующие маршрутизаторы также мгновенно рассылают информацию об изменении в сети. Это приводит к ускорению конвергенции сети. 6. Таймер удержания информации (holddown timer) запускается на маршрутизаторе, когда от соседнего устройства приходит информация о том, что ранее доступная сеть становится недоступной. Это дает больше времени для распространения информации об изменениях по всей сети. При этом возможны разные варианты действия протокола вектора расстояния:
а) если до истечения времени таймера удержания информации от того же устройства приходит обновление, что сеть снова стала достижимой, то протокол помечает сеть как доступную и выключает таймер; б) если до истечения времени таймера приходит обновление от другого маршрутизатора с лучшей метрикой, чем была ранее, то протокол помечает сеть как доступную и выключает таймер; в) если до истечения времени таймера приходит обновление от другого маршрутизатора с худшей метрикой, то это обновление игнорируется. Таким образом, указанные меры борьбы с маршрутными петлями позволяют маршрутизаторам избегать их. Однако время конвергенции протокола RIP велико, по сравнению с протоколами состояния канала link-state. Поэтому протокол RIP используется только в малых сетях. Однако у названного протокола есть важное достоинство. Для его функционирования требуется существенно меньше объем оперативной памяти и быстродействие центрального процессора. Поэтому данный протокол разработан для новой версии адресации IPv6. Для обеспечения бесклассовой маршрутизации CIDR и возможности использования сетевых масок переменной длины VLSM разработан и эксплуатируется протокол вектора расстояния RIPv2. Все другие параметры у него аналогичны протоколу RIPv1.
Краткие итоги лекции 8 1. Основным сетевым протоколом всемирной сети Интернет является Internet Protocol (IP). 2. Сетевые (routed) протоколы определяют формат пакета, логические адреса узла источника и назначения, прокладывают маршрут пакета на основе имеющихся таблиц маршрутизации. 3. Маршрутизирующие (routing) протоколы сетевого уровня создают и поддерживают таблицы маршрутизации.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|