• поле Резерв (IP OPTIONS) является необязательным и используется обычно только при отладке сети. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. Так как число подпол ей может быть произвольным, то в конце поля Резерв должно быть добавлено несколько байтов для выравнивания заголовка пакета по 32-битной границе.
Максимальная длина поля данных пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байтов, однако при передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. В большинстве типов локальных и глобальных сетей определяется такое понятие, как максимальный размер поля данных кадра, в который должен разместить свой пакет протокол IP. Эту величину обычно называют максимальной единицей транспортировки – MTU (Maximum Transfer Unit). К примеру, сети Ethernet имеют значение MTU, равное 1500 байтов, сети FDDI – 4096 байтов.
IP-маршрутизаторы не собирают фрагменты пакетов в более крупные пакеты, даже если на пути встречается сеть, допускающая такое укрупнение. Это связано с тем, что отдельные фрагменты сообщения могут перемещаться в интерсети по различным маршрутам.
При приходе первого фрагмента пакета узел назначения запускает таймер, который определяет максимально допустимое время ожидания прихода остальных фрагментов этого пакета. Если время истекает раньше прибытия последнего фрагмента, то все полученные к этому моменту фрагменты пакета отбрасываются, а в узел, пославший исходный пакет, с помощью протокола ICMP направляется сообщение об ошибке.
Протокол IPv6
Основные причины, из-за которых разрабатывался IPv6:
• протокол IPv4 разрабатывался в конце 1970-х годов с учетом существовавшей на тот момент сетевой инфраструктуры и аппаратного обеспечения. С того времени производительность массовых компьютеров увеличилась в десятки раз, и во столько же увеличилась пропускная способность сетей;
• появление приложений, использующих Интернет для передачи данных в реальном времени (звук, видео). Эти приложения чувствительны к задержкам передачи пакетов, т. к. такие задержки приводят к искажению передаваемых в реальном времени речевых сообщений и видеоизображений. Особенностью этих приложений является передача очень больших объемов информации. Однако в IPv4 не предусмотрено специального механизма резервирования полосы пропускания или механизма приоритетов;
• бурное развитие сети Интернет. Наиболее очевидным следствием такого развития стало почти полное истощение адресного пространства Интернета, определяемого полем адреса IP в четыре байта. Конечно, были разработаны механизмы компенсации нехватки адресов, однако это не решает проблему.
Основным предложением по модернизации протокола IP является предложение, разработанное группой IETF (Internet Engineering Task Force, группа решения задач межсетевого взаимодействия). В предложении IETF протокол IPv6 оставляет неизменными основные принципы IPv4. К ним относятся датаграммный метод работы, фрагментация пакетов, разрешение отправителю задавать максимальное число хопов (хоп – количество пересылок пакета от одного сетевого интерфейса к другому, иногда называется временем жизни пакета) для своих пакетов. Однако, в деталях реализации протокола IPv6 имеются существенные отличия от IPv4. Эти отличия коротко можно описать следующим образом:
• использование более длинных адресов. Новый размер адреса – наиболее заметное отличие IPv6 от IPv4. Версия 6 использует 128-битные адреса (16 байтов);
• гибкий формат заголовка. Вместо заголовка с фиксированными полями фиксированного размера (за исключением поля Резерв), IPv6 использует базовый заголовок фиксированного формата плюс набор необязательных заголовков различного формата;
• поддержка резервирования пропускной способности;
• поддержка расширяемости протокола. Это одно из наиболее значительных изменений в подходе к построению протокола – от полностью детализированного описания протокола к протоколу, который разрешает поддержку дополнительных функций.
Адресация в IPv6
Адреса в IPv6 имеют длину 128 битов или 16 байтов. Версия 6 обобщает специальные типы адресов версии 4 в следующих типах адресов:
• Unicast – индивидуальный адрес. Определяет отдельный узел – компьютер или порт маршрутизатора. Пакет должен быть доставлен узлу по кратчайшему маршруту;
• Cluster – адрес кластера. Обозначает группу узлов, которые имеют общий адресный префикс (например, присоединенных к одной физической сети). Пакет должен быть маршрутизирован группе узлов по кратчайшему пути, а затем доставлен только одному из членов группы (например, ближайшему узлу);
• Multicast – адрес набора узлов, находящихся в том числе в различных физических сетях. Копии пакета должны быть доставлены каждому узлу набора с использованием аппаратных возможностей групповой или широковещательной доставки, если это возможно.
Как и в версии IPv4, адреса в версии IPv6 делятся на классы, в зависимости от значения нескольких старших битов адреса.
Большая часть классов зарезервирована для будущего применения. Наиболее интересным для практического использования является класс, предназначенный для провайдеров услуг Интернета, названный Provider-Assigned Unicast.
Для обеспечения совместимости со схемой адресации версии IPv4, в версии IPv6 имеется класс адресов, имеющих 0000 0000 в старших битах адреса. Младшие 4 байта адреса этого класса должны содержать адрес IPv4. Маршрутизаторы, поддерживающие обе версии адресов, должны обеспечивать трансляцию при передаче пакета из сети, поддерживающей адресацию IPv4, в сеть, поддерживающую адресацию IPv6, и наоборот.
Сетевые пакеты
Как уже упоминалось, информация по сети передается определенными порциями – пакетами. Причем, на каждом уровне пакет имеет свой размер и структуру. В результате в пакет нижнего уровня вкладывается пакет следующего уровня и т. д. Так же понятно, что чем более высокого уровня пакет, тем меньше информации он может содержать в себе. Размеры пакетов ограничиваются как особенностями аппаратуры, так и требованиями протоколов.
Маршрутизация пакетов
Маршрутизация – механизм передачи пакетов между сетями. При маршрутизации пакетов решается задача, как за наименьшее время, по кратчайшему пути, с минимальной стоимостью доставить пакет. Как правило, в совокупности решить эту задачу не представляется возможным. Поэтому протоколы маршрутизации пакетов должны иметь возможность задавать различные правила и стратегии маршрутизации. К примеру, доставить пакет с максимальной скоростью или с минимальной стоимостью.
Протоколы маршрутизации
Протоколы маршрутизации классифицируются как протокол внутреннего шлюза (Interior Gateway Protocol, IGP) или протокол внешнего шлюза (Exterior Gateway Protocol, EGP).
Протокол внутреннего шлюза управляет маршрутизацией в пределах сети или группы сетей одного владельца, носящей название "автономная система". Внутри автономных систем имеется только список сетей, входящих в автономную систему, и известны точки взаимодействия с внешним миром.
Протокол внешнего шлюза отвечает за маршрутизацию между автономными системами.
На сегодняшний день широко используются следующие протоколы маршрутизации:
• RIP (Routing Information Protocol) – протокол данных маршрутизации. Устаревший протокол. Тем не менее, достаточно широко распространен благодаря утилите routed, которая является стандартной программой для операционных систем UNIX-семейства;
• OSPF (Open Shortest Path First) – протокол выбора кратчайшего пути. Протокол промышленного уровня. Рассчитан на крупные сети со сложной топологией. Более гибок, чем протокол RIP, однако по сравнению с ним сложнее в администрировании;
• IGRP (Interior Gateway Routing Protocol) – протокол маршрутизации внутреннего шлюза. Используется маршрутизаторами CISCO. По всей видимости, скоро сойдет со сцены;
• EGP (Exterior Gateway Protocol) – протокол внешнего шлюза. Старый протокол времен зарождения Интернета. Практически вытеснен протоколом BGP;
• BGP (Border Gateway Protocol) – протокол граничного шлюза. Протокол, в отличие от EGP, поддерживает сложную топологию сети. Имеет возможность широкой настройки стратегии маршрутизации;
• DVMRP (Vector Multicast Routing Protocol) – протокол групповой маршрутизации по вектору расстояния;
• RIP, OSPF и IGRP – внутренние протоколы; EGP и BGP – внешние протоколы.
Адресация в TCP/IP
Каждый компьютер в сети IP имеет адреса трех уровней:
1. Локальный адрес узла, определяемый технологией (например, Ethernet), с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети – это МАС-адрес (Media Access Control) сетевого адаптера. МАС-адреса назначаются производителями оборудования и являются (теоретически) уникальными адресами, т. к. управляются централизованно, однако большинство производителей Ethernet-карт предоставляют утилиту для переназначения МАС-адреса. Для всех существующих технологий локальных сетей МАС-адрес имеет 6-байтовый формат: старшие 3 байта – идентификатор фирмы-производителя, а младшие 3 байта назначаются уникальным образом самим производителем.
• IP-adpec, состоящий из 4 байтов (стандарт IPv4) или 16 байтов (стандарт IPv6). Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования сети. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно либо назначен по рекомендации специального подразделения Интернета (Network Information Center, NIC), если сеть должна работать как составная часть Интернета.
• Символьный идентификатор-имя, например, tosser.mail.ru. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени фирмы, имени домена. Такой идентификатор-имя используется на прикладном уровне, например, в протоколе FTP.
IP-адрес состоит из двух частей: сетевой части и адреса хоста. На основании сетевой части адреса принимается решение о сетевой маршрутизации. Адрес хоста однозначно определяет сетевое устройство, которое, в большинстве случаев, совпадает с хостом (как обычно, не обойтись без исключений – некоторые компьютеры имеют несколько IP-адресов). Стандартно IP-адреса записываются как десятичные числа (по одному на каждый байт адреса), разделенные точками. К примеру, 192.168.44.2. Однако не все сетевые адреса могут использоваться для назначения их компьютерам. Исключениями являются адреса 0.0.0.0, 127.0.0.1, 255.255.255.255 и некоторые другие. Существует несколько классов сетевых адресов (табл. 3.6).
Таблица 3.6. Распределение сетевых адресов по классам сетей
* В колонке «Формат» буквы С обозначают сетевую часть адреса, а буквы М – его компьютерную часть.
Выделением IP-адресов занимается служба регистрации информационного центра InterNIC, но если необходимо получить 4–5 IP-адресов, то их вполне может предоставить любой интернет-провайдер. Однако не все адреса предназначены для доступа из Интернета. Существует группа адресов, предназначенных для использования только в локальных сетях. Вот эти адреса:
• 10.0.0.0-10.255.255.255
• 172.16.0.0-172.31.255.255
• 192.168.0.0-192.168.255.255