IP-адрес записывается в виде двухбайтовых блоков, разделённых двоеточиями. Допускается записывать нулевые блоки одним нулём. Повторяющиеся нулевые блоки можно записывать в виде двух двоеточий. Callback -- ::1. Групповой адрес: FF00::/8. FF80::/10 -- аналоги внутренних адресов. Основы маршрутизации 1. Протоколы определения адреса (ARP, RARP). Для передачи пакета необходимо, чтобы в пакете на IP-уровне присутствовал IP-адрес, а на физическом уровне -- MAC-адрес. IP-адрес нужен для доставки пакета конечному получателю, а MAC-адрес нужен для доставки пакета соседнему узлу. При формировании пакета на IP-уровне компьютер знает IP-адрес получателя. Протокол ARP предназначен для определения физического адреса по IP-адресу. ARP-запрос рассылается широковещательно (FFFF......) +-----------------+------------------+ |HTYPE 16б. |PTYPE 16 | +----------+--------------+----------+ |HLEN 8 | PLEN 8 |OPER 16 | +----------+--------------+----------+ | Физ. адрес передатч. | +------------------------------------+ | Лог. адрес передатч. | +------------------------------------+ |(целевой) Физ. адрес получателя | +------------------------------------+ |!(целевой) Лог. адрес получателя | +------------------------------------+ HTYPE -- Hardware Type (Ethernet -- 1), PTYPE -- Protocol Type (IPv4 -- 040800), HLEN -- Hardware Length (длина физического адреса в байтах) (Ethernet -- 6), PLEN -- Protocol Length (длина логического адреса в байтах) (IPv4 -- 4), OPER -- операция, которую выполняет ARP-протокол: 1 -- ARP-запрос, 2 -- ARP-ответ. Если MAC-адрес получателя неизвестен, то поле "физический адрес получателя" заполняется нолями. ARP-протокол работает на IP-уровне. Алгоритм работы ARP: 1) передатчик (узел) знает IP-адрес получателя; 2) передатчик формирует ARP-запрос, в котором физический адрес получателя заполняется нолями; 3) запрос передаётся на физический уровень, к нему добавляется MAC-адрес отправителя и широковещательный MAC-адрес получателя; 4) все узлы сети принимают пакет на физическом уровне; 5) узлы передают его на ARP-уровень; 6) на IP-уровне сравнивается логический адрес получателя с логическим адресом узла; 7) если адреса совпадают, то формируется ARP-ответ. Случаи: 1) передатчик хочет отправить пакет узлу в той же самой сети; 2) передатчик -- узел, который передаёт пакет в другую сеть: передатчик просматривает таблицу маршрутизации и определяет следующий узел для передачи, формирует ARP-запрос, в котором указывает адрес этого узла; 3) передатчик -- это маршрутизатор, который получил пакет для другой сети: передатчик формирует ARP-запрос к следующему маршрутизатору, получает MAC-адрес этого маршрутизатора и отправляет ему основной пакет; 4) передатчик -- это маршрутизатор, находящийся в сети конечного получателя: формирует запрос в своей сети, получает MAC-адрес конечного получателя и отправляет ему пакет. Протокол RARP Протокол RARP предназначен для определения IP-адреса узла по его MAC-адресу. Структура пакета та же самая, в поле операция для протокол RARP указываются цифры 3 -- запрос, и 4 -- ответ. Основные принципы маршрутизации В маршрутизации выделяют два вида доставки пакетов: 1) прямая доставка (получатель находится в одной сети с отправителем => пакет от отправителя направляется на MAC-адрес получателя); 2) непрямая доставка (получатель находится в другой сети, нежели отправитель => отправитель обращается к таблице маршрутизации, по ней определяет адрес узла в своей сети, на который нужно передать пакет, и дальше осуществляет прямую доставку на этот узел: таким узлом является узел, одновременно находящийся в нескольких сетях). Таблица маршрутизации Таблица маршрутизации содержит информацию об IP-сетях и маршрутах к ним. Таблица имеет вид: Сетевой адрес|Маска |Шлюз |Интерфейс|Метрика -------------+--------------+--------------+---------+-------- Адрес сети п-|Маска сети по-|IP-адрес след-|IP-адрес |"Стоимо- олучателя ли-|лучателя |ующего перехо-|интерфей-|сть" ма- бо IP-адрес | |да |са, по к-|ршрута получателя | | |оторому |(обычно | | |нужно пе-|-- число | | |реслать |скачков) | | |пакет | В таблице хранятся маршруты следующих типов: 1) маршрут-идентификатор напрямую подключенной сети: поле следущего перехода в этом случае может быть пустым или содержать конкретный IP-адрес; 2) идентификатор удалённой сети: поле следующего перехода содержит IP-адрес маршрутизатора, находящегося в данной сети, через который может быть доступна удалённая сеть; 3) маршрут к хосту: путь к конкретному хосту: в этом случае в качестве маски указывается 255.255.255.255, а в сетевом адресе указывается конкретный IP-адрес; 4) маршрут по умолчанию: адрес сети, маска -- 0.0.0.0. Если нет маршрута для какого-то узла, то используется маршрут по умолчанию. Если для одного IP-адреса возможно несколько маршрутов, то выбирается маршрут с наименьшей метрикой. Процессы маршрутизации Хост-отправитель: 1) присваивает параметру TTL значение по умолчанию или значение, заданное приложением; 2) открывает таблицу маршрутизации и ищет кратчайший путь к адресату (получателю); если путь не найден. сообщает приложению об ошибке маршрутизации; 3) определяет IP-адрес следующего перехода и интерфейс (от кого пакет); 4) формирует ARP-запрос, определяет MAC-адрес следущего перехода и отправляет пакет. Маршрутизатор: 1) принимает пакет и проверяет контрольную сумму пакета; если контрольная сумма пакета не совпадает с контрольной суммой в пакете, то пакет отбрасывается без уведомления; 2) сравнивает IP-адрес получателя со своим IP-адресом; если они совпадают, то обрабатывает пакет как хост-получатель; 3) если IP-адреса не совпадают, то маршрутизатор уменьшает TTL на единицу; если TTL становится равным 0, то пакет отбрасывается с уведомлением отправителя; 4) если TTL не равен 0, то маршрутизатор записывает TTL в пакет, определяет новую контрольную сумму; 5) маршрутизатор по своей таблице маршрутизации определяет адрес следующего перехода; 6) отправляет пакет на определённый адрес перехода. Хост-получатель: 1) вычисляет контрольную сумму пакета и сравнивает её с контрольной суммой, указанной в пакете; если контрольные суммы не совпадают -- отбрасываем пакет; 2) сравнивает IP-адрес получателя со своим IP-адресом; если IP-адреса не совпадают -- пакет отбрасывается; 3) если IP-адреса совпадают, то IP-заголовки отбрасываем, определяем, какому протоколу передать данные, и передаём их этому протоколу (если пакет единственный (флаг M). Маршрутизаторы периодически обмениваются информацией друг с другом и уточняют свои таблицы маршрутизации.