Что обеспечивает протокол маршрутизации ip. Сетевая маршрутизация. Вопросы для размышления

Внутренний протокол маршрутизации RIP

Этот протокол маршрутизации предназначен для сравнительно небольших и относительно однородных сетей. Маршрут характеризуется вектором расстояния до места назначения. Предполагается, что каждый маршрутизатор является отправной точкой нескольких маршрутов до сетей, с которыми он связан. Описания этих маршрутов хранится в специальной таблице, называемой маршрутной. Таблица маршрутизации RIP содержит по записи на каждую обслуживаемую машину (на каждый маршрут). Запись должна включать в себя:

  • IP-адрес места назначения.
  • Метрика маршрута (от 1 до 15; число шагов до места назначения).
  • IP-адрес ближайшего маршрутизатора (gateway) по пути к месту назначения.
  • Таймеры маршрута.

Периодически (раз в 30 сек) каждый маршрутизатор посылает широковещательно копию своей маршрутной таблицы всем соседям-маршрутизаторам, с которыми связан непосредственно. Маршрутизатор-получатель просматривает таблицу. Если в таблице присутствует новый путь или сообщение о более коротком маршруте, или произошли изменения длин пути, эти изменения фиксируются получателем в своей маршрутной таблице. Протокол RIP должен быть способен обрабатывать три типа ошибок:

Циклические маршруты.

Для подавления нестабильностей RIP должен использовать малое значение максимально возможного числа шагов (не более 16).

Медленное распространение маршрутной информации по сети создает проблемы при динамичном изменении маршрутной ситуации (система не поспевает за изменениями). Малое предельное значение метрики улучшает сходимость, но не устраняет проблему.

Протокол состояния связей OSPF

Протокол OSPF (Open Shortest Path Firs) является реализацией алгоритма состояния связей (он принят в 1991 году) и обладает многими особенностями, ориентированными на применение в больших гетерогенных сетях.

Протокол OSPF вычисляет маршруты в IP-сетях, сохраняя при этом другие протоколы обмена маршрутной информацией.

Непосредственно связанные маршрутизаторы называются "соседями". Каждый маршрутизатор хранит информацию о том, в каком состоянии по его мнению находится сосед. Маршрутизатор полагается на соседние маршрутизаторы и передает им пакеты данных только в том случае, если он уверен, что они полностью работоспособны. Для выяснения состояния связей маршрутизаторы-соседи достаточно часто обмениваются короткими сообщениями HELLO.

Для распространения по сети данных о состоянии связей маршрутизаторы обмениваются сообщениями другого типа. Эти сообщения называются router links advertisement - объявление о связях маршрутизатора (точнее, о состоянии связей). OSPF-маршрутизаторы обмениваются не только своими, но и чужими объявлениями о связях, получая в конце-концов информацию о состоянии всех связей сети. Эта информация и образует граф связей сети, который, естественно, один и тот же для всех маршрутизаторов сети.

Протокол BGP

Общая схема работы BGP такова. BGP-маршрутизаторы соседних АС, решившие обмениваться маршрутной информацией, устанавливают между собой соединения по протоколу BGP и становятся BGP-соседями (BGP-peers).

Далее BGP использует подход под названием path vector, являющийся развитием дистанционно-векторного подхода. BGP-соседи рассылают (анонсируют, advertise) друг другу векторы путей (path vectors). Вектор путей, в отличие от вектора расстояний, содержит не просто адрес сети и расстояние до нее, а адрес сети и список атрибутов (path attributes), описывающих различные характеристики маршрута от маршрутизатора-отправителя в указанную сеть. В дальнейшем для краткости мы будем называть набор данных, состоящих из адреса сети и атрибутов пути до этой сети, маршрутом в данную сеть.

Реализация BGP

Пара BGP-соседей устанавливает между собой соединение по протоколу TCP, порт 179. Соседи, принадлежащие разным АС, должны быть доступны друг другу непосредственно; для соседей из одной АС такого ограничения нет, поскольку протокол внутренней маршрутизации обеспечит наличие всех необходимых маршрутов между узлами одной автономной системы.

Поток информации, которым обмениваются BGP-соседи по протоколу TCP, состоит из последовательности BGP-сообщений. Максимальная длина сообщения 4096 октетов, минимальная - 19. Имеется 4 типа сообщений.

Протокол RIP (Routing Information Protocol) представляет собой один из старейших протоколов обмена маршрутной информацией, однако он до сих пор чрезвычайно распространен в вычислительных сетях. Помимо версии RIP для сетей TCP/IP, существует также версия RIP для сетей IPX/SPX компании Novell.

В этом протоколе все сети имеют номера (способ образования номера зависит от используемого в сети протокола сетевого уровня), а все маршрутизаторы - идентификаторы. Протокол RIP широко использует понятие "вектор расстояний". Вектор расстояний представляет собой набор пар чисел, являющихся номерами сетей и расстояниями до них в хопах.

Вектора расстояний итерационно распространяются маршрутизаторами по сети, и через несколько шагов каждый маршрутизатор имеет данные о достижимых для него сетях и о расстояниях до них. Если связь с какой-либо сетью обрывается, то маршрутизатор отмечает этот факт тем, что присваивает элементу вектора, соответствующему расстоянию до этой сети, максимально возможное значение, которое имеет специальный смысл - "связи нет". Таким значением в протоколе RIP является число 16.

На рисунке 8.1 приведен пример сети, состоящей из шести маршрутизаторов, имеющих идентификаторы от 1 до 6, и из шести сетей от A до F, образованных прямыми связями типа "точка-точка".

Рис. 8.1. Обмен маршрутной информацией по протоколу RIP

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

При необходимости отправить пакет в сеть D маршрутизатор просматривает свою базу данных маршрутов и выбирает порт, имеющий наименьшее расстояния до сети назначения (в данном случае порт, связывающий его с маршрутизатором 3).

Для адаптации к изменению состояния связей и оборудования с каждой записью таблицы маршрутизации связан таймер. Если за время тайм-аута не придет новое сообщение, подтверждающее этот маршрут, то он удаляется из маршрутной таблицы.

При использовании протокола RIP работает эвристический алгоритм динамического программирования Беллмана-Форда, и решение, найденное с его помощью является не оптимальным, а близким к оптимальному. Преимуществом протокола RIP является его вычислительная простота, а недостатками - увеличение трафика при периодической рассылке широковещательных пакетов и неоптимальность найденного маршрута.

На рисунке 8.2 показан случай неустойчивой работы сети по протоколу RIP при изменении конфигурации - отказе линии связи маршрутизатора M1 с сетью 1. При работоспособном состоянии этой связи в таблице маршрутов каждого маршрутизатора есть запись о сети с номером 1 и соответствующим расстоянием до нее.

Рис. 8.2. Пример неустойчивой работы сети при использовании протокола RIP

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

Для исключения подобных ситуаций маршрутная информация об известной маршрутизатору сети не передается тому маршрутизатору, от которого она пришла.

Существуют и другие, более сложные случаи нестабильного поведения сетей, использующих протокол RIP, при изменениях в состоянии связей или маршрутизаторов сети.

Глобальная компьютерная сеть Internet изначально строилась по следующей схеме: магистральная сеть, к ней присоединяются сети, называемые автономные системы. Магистральная сеть тоже является автономной системой. Такой подход удобен, так как детальная топологическая информация остается внутри автономной системы, а саму автономную систему как единое целое для остальной части Internetпредставляют внешние шлюзы (маршрутизаторы, с помощью которых автономные системы присоединяются к магистральной сети). Для образования подсетей внутри автономной системы используются внутренние шлюзы.

Соответственно, протоколы маршрутизации, используемые в Internet, делятся на внешние и внутренние.Внешние протоколы маршрутизации (EGP, BGP) переносят маршрутную информацию между автономными системами. Внутренние протоколы маршрутизации (RIP, OSPF, IS-IS) применяются только в пределах автономной системы. Изменение протоколов маршрутизации и маршрутов внутри автономной системы не влияет на работу других автономных систем.

Протокол OSPF (Open Shortest Path First – открытый протокол «кратчайший путь первым») принят в 1991 году. Это современный протокол, ориентированный на работу в больших гетерогенных сетях со сложной топологией, включающей петли. Основан он на алгоритме состояния связей, который обладает высокой устойчивостью к изменениям топологии сети.


40.Транспортные протоколы стека TCP/IP.

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

На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования логических соединений. Этот протокол позволяет равноранговым объектам на компьютере-отправителе и компьютере-получателе поддерживать обмен данными в дуплексном режиме. TCP позволяет без ошибок доставить сформированный на одном из компьютеров поток байт в любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части - сегменты, и передает их ниже лежащему уровню межсетевого взаимодействия. После того как эти сегменты будут доставлены средствами уровня межсетевого взаимодействия в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.

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


41.Диагностические утилиты TCP/IP.

В состав TCP/IP входят диагностические утилиты, предназначенные для проверки конфигурации стека и тестирования сетевого соединения.

Утилита Применение
arp Выводит для просмотра и изменения таблицу трансляции адресов, используемую протоколом разрешения адресов ARP (Address Resolution Protocol - определяет локальный адрес по IP-адресу)
hostname Выводит имя локального хоста. Используется без параметров.
ipconfig Выводит значения для текущей конфигурации стека TCP/IP: IP-адрес, маску подсети, адрес шлюза по умолчанию, адреса WINS (Windows Internet Naming Service) и DNS (Domain Name System)
nbtstat Выводит статистику и текущую информацию по NetBIOS, установленному поверх TCP/IP. Используется для проверки состояния текущих соединений NetBIOS.
netstat Выводит статистику и текущую информацию по соединению TCP/IP.
nslookup Осуществляет проверку записей и доменных псевдонимов хостов, доменных сервисов хостов, а также информации операционной системы, путем запросов к серверам DNS.
ping Осуществляет проверку правильности конфигурирования TCP/IP и проверку связи с удаленным хостом.
route Модифицирует таблицы маршрутизации IP. Отображает содержимое таблицы, добавляет и удаляет маршруты IP.
tracert Осуществляет проверку маршрута к удаленному компьютеру путем отправки эхо-пакетов протокола ICMP (Internet Control Message Protocol). Выводит маршрут прохождения пакетов на удаленный компьютер.

Для проверки правильности конфигурирования TCP/IP используется утилита ipconfig. Эта команда полезна на компьютерах, работающих с DHCP (Dynamic Host Configuration Protocol), так как дает пользователям возможность определить, какая конфигурация сети TCP/IP и какие величины были установлены с помощью DHCP.
Утилита ipconfig позволяет выяснить, инициализирована ли конфигурация и не дублируются ли IP-адреса:
- если конфигурация инициализирована, то появляется IP-адрес, маска, шлюз;
- если IP-адреса дублируются, то маска сети будет 0.0.0.0;
- если при использовании DHCP компьютер не смог получить IP-адрес, то он будет равен 0.0.0.0 .
Утилита ping (Packet Internet Grouper) используется для проверки конфигурирования TCP/IP и диагностики ошибок соединения. Она определяет доступность и функционирование конкретного хоста. Использование ping лучший способ проверки того, что между локальным компьютером и сетевым хостом существует маршрут.
Команда ping проверяет соединение с удаленным хостом путем посылки к этому хосту эхо-пакетов ICMP и прослушивания эхо-ответов. Ping ожидает каждый посланный пакет и печатает количество переданных и принятых пакетов. Каждый принятый пакет проверяется в соответствии с переданным сообщением. Если связь между хостами плохая, из сообщений ping станет ясно, сколько пакетов потеряно.
По умолчанию передается 4 эхо-пакета длиной 32 байта (периодическая последовательность символов алфавита в верхнем регистре). Ping позволяет изменить размер и количество пакетов, указать, следует ли записывать маршрут, который она использует, какую величину времени жизни (ttl) устанавливать, можно ли фрагментировать пакет и т.д.. При получении ответа в поле time указывается, за какое время (в миллисекундах) посланный пакет доходит до удаленного хоста и возвращается назад. Так как значение по умолчанию для ожидания отклика равно 1 секунде, то все значения данного поля будут меньше 1000 миллисекунд. Если вы получаете сообщение "Request time out" (Превышен интервал ожидания), то, возможно, если увеличить время ожидания отклика, пакет дойдет до удаленного хоста.
Ping можно использовать для тестирования как имени хоста (DNS или NetBIOS), так и его IP-адреса. Если ping с IP-адресом выполнилась успешно, а с именем - неудачно, это значит, что проблема заключается в распознавании соответствия адреса и имени, а не в сетевом соединении.
Утилита ping используется следующими способами:
1) Для проверки того, что TCP/IP установлен и правильно сконфигурирован на локальном компьютере, в команде ping задается адрес петли обратной связи (loopback address): ping 127.0.0.1
2) Чтобы убедиться в том, что компьютер правильно добавлен в сеть и IP-адрес не дублируется, используется IP-адрес локального компьютера:
ping IP-адрес_локального_хоста
3) Чтобы проверить, что шлюз по умолчанию функционирует и что можно установить соединение с любым локальным хостом в локальной сети, задается IP-адрес шлюза по умолчанию:
ping IP-адрес_шлюза
4) Для проверки возможности установления соединения через маршрутизатор в команде ping задается IP-адрес удаленного хоста:
ping [параметры] IP-адрес_удаленного хоста
Tracert - это утилита трассировки маршрута. Она использует поле TTL (time-to-live, время жизни) пакета IP и сообщения об ошибках ICMP для определения маршрута от одного хоста до другого.
Утилита tracert может быть более содержательной и удобной, чем ping, особенно в тех случаях, когда удаленный хост недостижим. С помощью нее можно определить район проблем со связью (у Internet-провайдера, в опорной сети, в сети удаленного хоста) по тому, насколько далеко будет отслежен маршрут. Если возникли проблемы, то утилита выводит на экран звездочки (*), либо сообщения типа "Destination net unreachable", "Destination host unreachable", "Request time out", "Time Exeeded".
Утилита tracert работает следующим образом: посылается по 3 пробных эхо-пакета на каждый хост, через который проходит маршрут до удаленного хоста. На экран при этом выводится время ожидания ответа на каждый пакет (Его можно изменить с помощью спец. параметра). Пакеты посылаются с различными величинами времени жизни. Каждый маршрутизатор, встречающийся по пути, перед перенаправлением пакета уменьшает величину TTL на единицу. Таким образом, время жизни является счетчиком точек промежуточной доставки (хопов). Когда время жизни пакета достигнет нуля, предполагается, что маршрутизатор пошлет в компьютер-источник сообщение ICMP "Time Exeeded" (Время истекло). Маршрут определяется путем посылки первого эхо-пакета с TTL=1. Затем TTL увеличивается на 1 в каждом последующем пакете до тех пор, пока пакет не достигнет удаленного хоста, либо будет достигнута максимально возможная величина TTL (по умолчанию 30, задается с помощью параметра -h). Маршрут определяется путем изучения сообщений ICMP, которые присылаются обратно промежуточными маршрутизаторами.
Синтаксис: tracert [параметры] имя_целевого_хоста
Утилита ARP предназначена для работы с ARP-кэшем. Основная задача протокола ARP - трансляция IP-адресов в соответствующие локальные адреса. Для этого ARP-протокол использует информацию из ARP-таблицы (ARP-кэша). Если необходимая запись в таблице не найдена, то протокол ARP отправляет широковещательный запрос ко всем компьютерам локальной подсети, пытаясь найти владельца данного IP-адреса. В кэше могут содержаться два типа записей: статические и динамические. Статические записи вводятся вручную и хранятся в кэше постоянно. Динамические записи помещаются в кэш в результате выполнения широковещательных запросов. Для них существует понятие времени жизни. Если в течение определенного времени (по умолчанию 2 мин.) запись не была востребована, то она удаляется из кэша.
Утилита netstat позволяет получить статическую информацию по некоторым из протоколов стека (TCP, UDP, IP, ICMP), а также выводит сведения о текущих сетевых соединениях. Особенно она полезна на брандмауэрах, с ее помощью можно обнаружить нарушения безопасности периметра сети.
Синтаксис:
netstat [-a] [-e] [-n] [-s] [-p protocol] [-r]
Параметры:
-a выводит перечень всех сетевых соединений и прослушивающихся портов локального компьютера;
-e выводит статистику для Ethernet-интерфейсов (например, количество полученных и отправленных байт);
-n выводит информацию по всем текущим соединениям (например, TCP) для всех сетевых интерфейсов локального компьютера. Для каждого соединения выводится информация об IP-адресах локального и удаленного интерфейсов вместе с номерами используемых портов;
-s выводит статистическую информацию для протоколов UDP, TCP, ICMP, IP. Ключ "/more" позволяет просмотреть информацию постранично;
-r выводит содержимое таблицы маршрутизации.

IP расшифровывается как Internet Protocol (протокол Интернет), и конкретно 4-ая версия этого протокола на текущий момент является наиболее распространенной. IPv4 определен через RFC 791 .

В рамках OSI это протокол сетевого (3-го) уровня. Этот уровень, напоминаю, предназначен для определения пути передачи данных.

IPv4 использует коммутацию пакетов. При этом, исходное передаваемое сообщение разделяется на части небольшого размера (пакеты), которые передаются по сети независимо.

Кроме того, IPv4 не гарантирует доставку пакетов, или отсутсвие дубликатов. Это так называемая “best effort delivery” (в отличие от гарантированной доставки). Соответственно, эти задачи переходят к протоколам более высокого уровня, например, TCP.

Адресация

IPv4 идентифицирует отправителя и получателя при помощи 32-битного адреса, что ограничивает число возможных адресов 4 294 967 296. Из этого количества IPv4 резервирует специальные диапазоны адресов, называемые частными (~18 млн.) и мультикаст (~270 млн).

Адреса обычно записываются в виде четырех десятичных октетов через точку, например: 198.51.100.25 соответствует числу C6336419 16 .

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

В первых версиях стандарта, первый октет использовался для идентификации сети, остальные – для идентификации узла. Довольно быстро стало ясно, что 256 сетей – это мало. Поэтому были введены классы сетей:

Класс Первые биты Длина адреса сети Длина адреса узла
A 0 8 24
B 10 16 16
C 110 24 8
D 1110 N/A N/A
E 1111 N/A N/A
Класс Начало диапазона Конец диапазона
A 0.0.0.0 127.255.255.255
B 128.0.0.0 191.255.255.255
C 192.0.0.0 223.255.255.255
D 224.0.0.0 239.255.255.255
E 240.0.0.0 255.255.255.255

Класс D зарезервирован для мультикаста, класс E – просто зарезервирован “на всякий случай”.

Длина адреса сети и длина адреса узла определялись первыми битами адреса. Примерно с 1985 года от этого тоже отказались. Причины этого в том, что многие организации требовали больше адресов, чем предоставляла сеть класса C и получали сеть класса B. Сеть класса B, однако, превышала требования организации в разы.

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

Например, 192.0.2.0/24 означает, что первые 24 бита (три октета) относятся к адресу сети, а остальные – к адресу узла. /24 эквивалентно маске сети 255.255.255.0.

Использование масок сетей описано в RFC 1517 .

Многочисленные стандарты так же резервируют различные диапазоны адресов для специальных нужд.

Диапазон Описание RFC
0.0.0.0/8 Текущая сеть (адрес источника) 6890
10.0.0.0/8 Частная сеть 1918
100.64.0.0/10 Разделяемое адресное пространство CGN 6598
127.0.0.0/8 Loopback 6890
169.254.0.0/16 Автоконфигурация 3927
172.16.0.0/12 Частная сеть 1918
192.0.0.0/24 IETF Protocol Assignments 6890
192.0.2.0/24 Документация и примеры 1 5737
192.88.99.0/24 Релей ipv6 to ipv4 3068
192.168.0.0/16 Частная сеть 1918
198.18.0.0/15 Тестирование пропускной способности сети 2544
198.51.100.0/24 Документация и примеры 2 5737
203.0.113.0/24 Документация и примеры 3 5737
224.0.0.0/4 Мультикаст 5771
240.0.0.0/4 Зарезервировано 1700
255.255.255.255 Широковещательный запрос 919

Так же резервируются адреса узлов, в двоичном представлении состоящий из нулей (обозначает всю сеть, зарезервирован) и единиц (широковещательный запрос для данной сети).

Например, 203.0.113.0 означает (в тексте) сеть 203.0.113.0/24, а 203.0.113.255 – широковещательный запрос в эту сеть.

Формат пакета

Пакет состоит из заголовка и данных. IP не предполагает никакой проверки целостности. Нижележащий протокол (скажем, Ethernet) уже обеспечивает проверку целостности на канальном уровне, а вышележащий (скажем, TCP)– на уровне данных.

Версия, 4 бита Первое поле заголовка. В IPv4 имеет значение 0010 2 , т.е. 4. Длина заголовка, 4 бита Количество 32-битных слов в заголовке. Минимальное значение 5, что соответствует длине заголовка 20 байт. Максимальное – 15, длина заголовка 60 байт. DSCP или ToS – тип сервиса, 6 бит Определяет приоретизацию, скажем, для VoIP. ECN, 2 бита Флаг явного указания перегруженности сети. Требует поддержки с обеих сторон (принимающей и передающей). При получении этого флага, понижается скорость передачи. Если поддержки флага нет, пакеты просто отбрасываются. Полная длина, 16 бит Полная длина пакета в байтах, включая заголовок и данные. Минимальная длина – 20, максимальная – 65535. Идентификация, 16 бит Служит для уникальной идентификации датаграммы. Поскольку при передачи по различным сетям может быть необходимо разделить пакет на более мелкие части, это поле служит для идентификации частей, принадлежащих одному пакету. Флаги, 3 бита

Битовые флаги:

  1. Зарезервирован, всегда 0
  2. Не фрагментировать. Если дальнейшая передача пакета требует фрагментации, пакет отбрасывается.
  3. Больше фрагментов. Для фрагментированных пакетов, у всех, кроме последнего, этот флаг установлен в 1.
Сдвиг, 13 бит Сдвиг фрагмента относительно начала датаграммы, измеряемый в блоках по 64 бита. Первый фрагмент имеет сдвиг 0. Максимальный сдвиг – 65528 байт, что превышает максимальную длину пакета 65515 (за вычетом 20-байтного заголовка). Время жизни (TTL), 8 бит Когда пакет проходит через маршрутизатор, это поле уменьшается на 1. Если это поле равно нулю, маршрутизатор отбрасывает его. Протокол, 8 бит
  • 1 - ICMP
  • 6 - TCP
  • 17 - UDP
Контрольная сумма заголовка, 16 бит Считается сумма 16-битных слов в заголовке, кроме, собственно, контрольной суммы. Эта сумма так же суммируется блоками по 16 бит, пока не останется один. Затем к результату побитово применяется отрицание. Адрес отправителя, 32 бита Тут все ясно Адрес получателя, 32 бита Тут тоже все ясно. Опции (опциональное поле)

Используется редко. Состоит из блоков заголовок-данные. Заголовок опции имеет длину 8-16 бит и состоит из полей:

  • Тип опции, 8 бит – поле, определяющее, что это за опция. Значение “0” означает окончание списка опций. Всего зарегистрированно 26 кодов.
  • Длина, 8 бит – размер всей опции в битах, включая заголовок. Для некоторых типов опций может отсутствовать.

ARP

IP определяет логические адреса. Однако, чтобы отправить пакет в сети Ethernet, необходимо так же знать физический адрес целевого узла (либо маршрутизатора). Для сопоставления одного с другим используется протокол ARP.

ARP (Протокол резолюции адресов) – это формально протокол сетевого (3-го) уровня в модели OSI, хотя фактически обеспечивает взаимодействие 2-го и 3-го уровней. ARP реализован для различных пар протоколов 2-го и 3-го уровней.

Сам протокол построен на простой схеме запрос-ответ. Рассмотрим на конкретном примере.

Если узел сети, скажем, A с логическим адресом 198.51.100.1 (в сети 198.51.100.0/24) хочет отправить пакет узлу B с логическим адресом 198.51.100.2, он посылает широковещательный запрос протокола второго уровня (в данном случае Ethernet) с инкапсулированным сообщением ARP, спрашивающим узлы сети – какой физический адрес у узла с логическим адресом 198.51.100.2, и содержащим логический и физический адреса узла А. Узел B, увидев собственный логический адрес в запроссе, посылает ответ узлу A по полученным в запросе логическому и физическому адресу. Результаты запросов кешируются.

Сообщения ARP имеют следующую структуру:

Физический протокол (HTYPE), 2 байта Используемый протокол 2 уровня. Ethernet имеет идентификатор 1. Логический протокол (PTYPE), 2 байта Используемый протокол 3 уровня. Соответствует типам EtherType. IPv4 имеет идентификатор 0x0800. Длина физического адреса (HLEN), 1 байт Длина физического адреса в октетах, для Ethernet – 6 Длина логического адреса (PLEN), 1 байт Длина логического адреса в октетах, для IPv4 – 4 Операция (OPER), 2 байта 1 для запроса, 2 для ответа, и множество других вариантов для расширений протокола. Физический адрес отправителя (SHA), HLEN байт В запросе – адрес запрашивающего. В ответе – адрес запрошенного узла. Логический адрес отправителя (SPA), PLEN байт
Физический адрес получателя (THA), HLEN байт В запросе игнорируется. В ответе – адрес запрашиваюшего. Логический адрес получателя (TPA), PLEN байт

Обычно узлы сети так же посылают ARP-сообщения при смене IP-адреса или при включении. Обычно это реализуется как APR-запрос, в котором TPA=SPA , а THA=0. Другой вариант – ARP-ответ, в котором TPA=SPA и THA=SHA.

Кроме того, ARP может быть использован для детектирования конфликта логических адресов (при этом SPA=0).

Существуют расширения протокола, производящие обратные операции, InARP (Inverse ARP), получающий L3-адрес по L2-адресу и RARP, получающий L3-адрес запрашивающего узла.

RARP использовался для автоконфигурирования L3-адресов. Впоследствии заменен протоколом BOOTP, а затем DHCP.

Маршрутизация в сетях IPv4

Основной алгоритм маршрутизации в сетях IPv4 называется алгоритмом пересылки.

Если есть целевой адрес D и префикс сети N, то

  • Если N совпадает с префиксом сети текущего узла, послать данные по локальной связи.
  • Если в таблице маршрутизации есть маршрут для N, послать данные next-hop маршрутизатору.
  • Если есть маршрут по умолчанию, послать данные next-hop маршрутизатору по умолчанию
  • Иначе – ошибка.

Таблица маршрутизации представляет собой таблицу сопоставления адресов сетей и адресов next-hop маршрутизаторов для этих сетей. Так, например узел с адресом 198.51.100.54/24 может иметь такую таблицу маршрутизации: 203.0.113.0/24

Destination Gateway Device
198.51.100.0/24 0.0.0.0 eth0
203.0.113.0/24 198.51.100.1 eth0
0.0.0.0/0 203.0.113.1 eth0

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

Если узел может быть достигнут по нескольким маршрутам, выбирается маршрут с более длинной маской сети (т.е. более конкретный). Маршрут по умолчанию может быть только один.

Например, узел 198.51.100.54/24 имеет таблицу маршрутизации:

Destination Gateway Device
198.51.100.0/24 0.0.0.0 eth0
203.0.113.0/24 198.51.100.1 eth0
203.0.113.224/27 198.51.100.5 eth0

© 2024 hereluv.ru
Компьютерные подсказки