Продолжение. Начало: часть 1, часть 2, часть 3, часть 4.
Сетям Ethernet, как известно, присуща проблема масштабирования, то есть, увеличивать число узлов и пользователей в такой сети до бесконечности нельзя.
Чтобы решить эту проблему был разработан протокол Интернет, протокол межсетевого взаимодействия IP (Internet Protocol). То есть (и это очень важно подчеркнуть), Интернет вначале совсем не планировался тем, чем он стал спустя годы. Вначале это было просто средство связи и обеспечения взаимодействия нескольких локальных сетей между собой и расширения их масштабов.
Возможно, основной задачей разработки IP-сети была возможность универсальной коннективности: любой узел сети может связаться с любым другим узлом, таким образом, чтобы число узлов можно было увеличивать практически бесконечно. В 2013 году число узлов в сети Интернет составило около 109 узлов, причем, таблицы маршрутизации в узлах были ещё далеки от умопомрачительных размеров: самые большие из них содержать до 300 тыс. записей, что для средней мощности IP-маршрутизатора – вполне нормально.

В первые годы сети IP рассматривались как «межсетевые сети» (“internetworks”), или базовые сети. Сейчас пользователи практически не замечают локальные сети LAN и воспринимают Интернет как одну большую (виртуальную) сеть. Для обеспечения универсальной коннективности, IP-протокол обеспечивает глобальный механизм адресации и маршрутизации пакетов с одного узла сети на другой.
IP-адрес пакета четвёртой версии (IPv4) имеет 32 бита в адресной части заголовка пакета. За ним следует заголовок Ethernet. Этот заголовок остаётся в пакете только во время его первого «хопа» (передачи на ближайший к узлу маршрутизатор), а заголовок IP сохраняется в пакете во время всего путешествия через сеть Интернет. Адресная часть IP-протокола шестой версии IPv6 содержит уже 128 битов адреса, что, очевидно, приводит к гораздо более высокому возможному числу адресуемых в Интернет конечных устройств (узлов).
Как адрес IPv4, так и IPv6, содержат часть префикса (сетевая часть) и часть узла (host). Таким образом, определяются размеры адресуемых сетей
Первые биты | Первый байт | Биты сети | Биты хоста | Класс сети | Тип сети |
0 | 0-127 | 8 | 24 | А | Несколько очень больших сетей |
10 | 128-191 | 16 | 16 | В | Сети больших организаций |
110 | 192-223 | 24 | 8 | С | Сети обычных организаций и предприятий |
Например, IP-адрес сети Университета Loyola в Чикаго – 147.126.0.0, то есть, сеть относится к классу В. Двоичное представление 147 это 10010011.
IP-адреса, в отличие от адресов Ethernet, предписываются административно. Когда-то давно, префикс сети класса В мог быть получен от организации под названием IANA (Internet Assigned Numbers Authority, https://www.iana.org/), или от другой, которой IANA делегирует эти полномочия. Часть хоста в IP-адресе находится уже в ведении администратора сети организации.
В результате, IP-адреса обычно служат не столько идентификаторами конечных узлов, сколько индикаторами местоположения сети. Ethernet-адреса – это просто идентификаторы конечных узлов.
Классы сетей A, B и C были опеределены в 1981 году в документе RFC 791, в котором, собственно, и описан IP-протокол. В 1986 году в RFC 988 был добавлен класс D, адреса которого начинаются с битов 1110. Эти адреса предназначались для многоадресной рассылки пакетов (multicast), то есть, посылки одинаковых потоков пакетов всем адресатам рассылки.
Сегодня разделение на сетевую и хостовую часть адреса пакета выполняется динамически, и это разделение может устанавливаться на любом бите адресной части заголовка пакета, для передачи на разных уровнях в сети.
Все хосты, с одинаковой сетевой часть адреса (одинаковыми сетевыми битами), таким образом, располагаются в одной IP-сети, и должны находиться вместе в одной локальной сети LAN. То есть, если два хоста имеют одинаковую сетевую часть адреса, они должны коммуницировать между собой напрямую внутри одной локальной сети. Таким образом, вне этой сети для маршрутизации пакета нужны только сетевые биты, а биты хоста при этом для промежуточных маршрутизаторов безразличны.
Может быть, однако, и так, что одна LAN поделена между несколькими IP-сетями.
В каждой отдельной LAN размер пакета имеет установленный максимум. Например, протокол Ethernet имеет максимальный размер пакета в 1500 байт, а в сети с протоколом Token Ring (сейчас почти не используется) размер пакета ограничен в 4 килобайта.
Сегодня протокол Ethernet является для локальных сетей преобладающим, и пакеты не могут иметь больший размер, чем установленный в нем максимальный размер в 1500 байт. В IP, однако, нет формальных ограничений размера пакета. Однако, это потенциально могло бы вызвать проблемы, если вдруг какой-то маршрутизатор не сможет обрабатывать пакеты больших размеров.
Поэтому была введена возможность фрагментации IP-пакетов, что иногда также называют сегментацией IP-пакетов. IP-хосты обычно не передают через маршрутизатор пакеты длиннее 576 байт, а пользовательская его часть – 512 байт. То есть, происходит разбиение больших IP-пакетов на более мелкие части. Однако, пакеты, посылаемые на другой хост внутри одной локальной сети, могут быть и больше.
Сеть IP называют «сетью с наилучшим возможным уровнем обслуживания» (по-английски это выражается всего двумя словами – «best effort», букв. «наилучшие возможные усилия»). Физически, это означает, что, если сеть не перегружена, то пакеты доставляются быстро и с минимальными потерями. А если сеть будет перегружена, то пакеты по ней будут иди медленно, точно так же, как и автомобили на улицах с пробками.
Такая модель называется «сетью без соединения» (connectionless networking). Уровень IP не поддерживает информацию о соединении исходной точки пакета с конечной точкой его передачи. Он просто пересылает пакеты с одного узла сети на другой, как гигантская LAN. Поддержание информации о соединении возлагается на более высокий уровень – TCP (Transmission Control Protocol), протокол управления передачей.
Применяются также и альтернативные сетевые технологии, ориентированные на соединения (connection-oriented internetworking), когда маршрутизаторы обрабатывают информацию об отдельных соединениях.
И тот и другой подход имеет свои преимущества. Сеть без соединения потенциально более надёжна. Если маршрутизатор не хранит информации о соединении, то он и не может потерять это соединение («если у вас нет собаки…»). Маршруты, которыми следуют пакеты на более высоких уровнях протоколов, могут быть динамически изменены. В задачу конечной локальной сети при этом входит собрать все пакеты потока, и выстроить их в правильном порядке для отправки получателю.
Основным преимуществом ориентированной на соединение сети, с другой стороны, является то, что маршрутизаторы при этом способны устанавливать и управлять гарантией качества обслуживания QoS (Quality-of-Service). Это очень важно для таких Интернет-сервисов, как Интернет-телефония VoIP (Voice-over-IP).
В сети, не ориентированной на соединения, пакеты, относящиеся к голосовому или видео-потоку, будут обрабатываться на маршрутизаторах в порядке очерёдности без приоритета обслуживания, и при это уровень качества конечного сервиса может «плавать»: голос в телефонном соединении VoIP может «булькать», а в видеопотоке может появляться «снег».
Наиболее частой причиной ухудшения качества обслуживания в IP-сети – это очереди на маршрутизацию пакетов в маршрутизаторах, т.е. перегрузка сети. Потери пакетов вследствие искажения битов происходят гораздо реже (примерно в 10 тыс. раз реже).
Сети, ориентированные на соединения (connection-oriented internetworking) появились гораздо позже, чем сети без соединения, которые и были основной концепцией первоначальной сети Интернет, когда она состояла всего из нескольких десятков больших компьютеров в крупных университетах, соединённых между собой для передачи файлов с научными данными. При этом, не имело большого значения, когда эта информация придет к получателю: через несколько секунд или через несколько минут. Главное – получить файл с данными. Никаких онлайновых сервисов, типа Интернет-телефонии с возможностью видео-вызовов или сервисов видео-хостинга, типа Youtube, тогда не планировалось. Впоследствии, с развитием технических возможностей сетей, появилась потребность в модели сети, ориентированной на соединение (connection-oriented internetworking), в которой можно было управлять качеством услуги QoS (quality-of-service).
(Продолжение следует).
Уведомление: Cетевые технологии (4). Ещё о пакетах, локальные сети LAN и Ethernet | Telecom & IT
Уведомление: Сетевые технологии (6). DNS и транспорт: TCP, UDP. | Telecom & IT