Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8_Межсетевой уровень_IP

.doc
Скачиваний:
31
Добавлен:
03.05.2015
Размер:
79.36 Кб
Скачать

Межсетевой уровень. Протокол IP, RFC 791

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

В настоящее время применяется протокол IP версии 4 (IPv4), определенный в RFC 791. Существует стандарт IPv6, использующий иную структуру адреса и другой формат заголовка, но широкого распространения в действующих сетях пока шестая версия не нашла.

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

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

Кроме протокола IP, на межсетевом уровне работают протоколы маршрутизации RIP, OSPF, BGP и др, протокол передачи управляющих сообщений ICMP (управление потоком от источника, обнаружение недостижимых адресатов, перенаправление маршрутов, проверка работоспособности протокола IP удаленного узла), ARP (протокол преобразования адреса IP в аппаратный MAC-адрес), протокол обратного преобразования адреса RARP (Reverse ARP).

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

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

Заголовок IP-пакета представляет собой 5 обязательных 32-разрядныхслов (для версии протокола IPv4) и необязательную часть размером 0 или более слов.

32 бита

Version (0-3)

IHL (4-7)

Type of Service (8-15)

Total Length (16-31)

ID

Flags (2)

Fragment Offset

TTL

Protocol

Header Checksum

Source Address

Destination Address

Options (+padding) – необязательная часть заголовка

DATA

Здесь:

Version (версия) – номер версии протокола (например, IPv4 или IPv6)

IHL – Internet Header Length (длина заголовка), указывает число 32-битных слов, использованных в заголовке.

Type of Service, ToS (тип сервиса) – поле предназначено для различения классов обслуживания, так как возможны разные комбинации требований по скорости доставки пакета и надежности доставки. Поле имеет сложную структуру и используется для механизма обеспечения качества обслуживания в IР сети с помощью протокола RSVP (Resource Reservation Protocol, протокол резервирования ресурсов, RFC 791) или с помощью технологии дифференцируемого обслуживания DSCP (Differentiated Services Code Point, значения кода дифференцированного обслуживания, RFC 2474). Вторая технология является более современной. Например, поле может содержать указание на возможность задержки пакета, на требование пересылки по каналам с максимальной пропускной способностью, на возможность сбрасывания пакета маршрутизатором в случае перегрузки и т.д.

Total Length (длина пакета, 16 бит) – информация о длине всего IP пакета в байтах. Максимальная длина IP-пакета составляет 216 байт=65535 байт.

ID (Identification) – идентификатор (целая переменная). Она позволяет хосту-получателю определить, какой исходной дейтаграмме принадлежат полученные им фрагменты. Все фрагменты одной дейтаграммы содержат одно и то же значение идентификатора. Исходная фрагментированная дейтаграмма собирается согласно смещению Offset.

Flags (флаги) – специальные два бита, указывающие, можно ли дробить данную дейтаграмму (DF – Don’t Fragment) и является ли данный фрагмент последним в дейтаграмме (MF – More Fragments, устанавливается во всех фрагментах кроме последнего).

Offset (смещение разбиения) – указатель того, какое смещение относительно начала исходной дейтаграммы имеет данная его часть (в байтах). Согласно смещению собирается исходная дейтаграмма и, если один из фрагментов не достиг назначения, отбрасывается весь пакет.

TTL (Time to Live, время жизни IP-пакета (в секундах)) – это счетчик, значение которого уменьшается на единицу и/или на время простоя в очереди маршрутизатора при прохождении дейтаграммы через него. Таким образом, определена максимальная длина пути, которую может пройти пакет от источника до получателя сообщения. Когда значение счетчика становится равным 0, дейтаграмма отбрасывается. Так реализуется защита от возможных петель маршрутизации.

Protocol (протокол) – указывает на протокол (процесс) верхнего уровня, которому следует передать полезную нагрузку IР пакета. Это может быть ТСР, UDP или что-нибудь еще. Нумерация процессов глобально стандартизирована по всему Интернету. Номера протоколов сведены в RFC 1700.

Header Checksum, – контрольная сумма, помогающая обнаружить ошибки в заголовке IP пакета при приеме. Значение контрольной суммы подсчитывается заново на каждом участке.

Source Address, Destination Address – IP-адрес источника и IP-адрес получателя сообщения.

Options + padding (опции + выравнивание размера пакета до 32-х битной границы) – для дополнительных сервисов. Например, для поддержки маршрутов с маршрутизацией от источника SR, доступа к оборудованию с ограниченным доступом.

АДРЕСАЦИЯ В IP-сетях

IP-адрес в протоколе IPv4–это 32 – битный адрес, назначаемый устройствам, которые имеют доступ в Интернет. Это может быть рабочая станция, сервер, роутер. Например, 109.26.17.100. Адрес записывается в виде четырех десятичных чисел, разделенных точками.

Любой, кто хочет иметь доступ в Интернет, должен получить такой уникальный адрес (или пул адресов) для своего устройства или своей сети. Адреса ведет InterNIC (Network Information Senter – сетевой информационный центр). В России этим занимается «Региональный сетевой информационный центр RUCENTER и еще 12 регистраторов. Практически его выдает ваш провайдер Интернет.

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

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

Адрес IP состоит из двух частей – номер сети (net-id) и номер конечного узла - хоста внутри сети (host-id). Форматы этих частей для разных адресов разные. Количество бит в номере сети определяет класс самой сети.

Изначально было определено 5 классов сетей (см. рисунок ниже) – A, B, C, D и Е

Сети класса А

Адресация класса А (Class A) используется, если в сети много хостов (региональные сети). Адрес сети всегда начинается с бита 0. Диапазон номеров сетей класса А: 1.0.0.0 – 127.0.0.0. Каждая сеть может содержать до 16 млн. хостов.

Сети класса В

Сети класса В (Class B) содержат среднее число (до 64 тысяч) хостов в сети. Адрес сети всегда начинается с бит 10. Диапазон номеров сетей класса В: 128.0.0.0 – 191.255.0.0.

Сети класса С

Сети класса С (Сlass C) содержат маленькое число хостов, до 256. Адрес сети всегда начинается с бит 110. Диапазон номеров сетей класса С: 192.0.0.0 – 223.255.255.0.

Сети класса D

Адреса класса D зарезервированы для рассылки специальных широковещательных сообщений (broadcast) и не используются для адресации оконечных устройств.

Сети класса E

Адреса класса Е зарезервированы вообще, это экспериментальный класс.

Адреса класса А присваивались очень давно. Адреса класса В получить сейчас практически невозможно. Для обычного использования остаются адреса класса С.

Специальные IP-адреса

Существуют специальные IP-адреса, которые используются в ограниченном IP-пространстве (локальная сеть) или для технических нужд компьютера:

  • 0.0.0.0 – используется при загрузке операционной системы;

  • 127.0.0.1 – адреса, начинающиеся с 127, используются для тестирования сетевого программного обеспечения (стека TCP/IP) на данном узле. Пакеты в сеть не передаются (loopback), а обрабатываются локально, как входные пакеты.

  • IP-адрес, в котором все биты установлены в 1, означает широкое вещание в пределах текущей (локальной сети).

  • IP-адрес, в котором указана сеть, но в поле номера хоста все биты установлены в 1, означает широкое вещание в удаленной сети.

  • Адреса частных локальных сетей (см. ниже).

Для локальных сетей из классов А, В, С выделены специальные диапазоны адресов, не маршрутизируемые в сети Интернет. То есть они не являются уникальными между локальными сетями.

  • 10.0.0.0 — 10.255.255.255/8 (одна сеть класса A)

  • 172.16.0.0 — 172.31.255.255/12 (шестнадцать сетей класса B)

  • 192.168.0.0 — 192.168.255.255/16 (256 сетей класса C)

Специально выделенные диапазоны позволяют решить проблему с нехваткой адресов в современном Интернете. Внутри фирмы или домашней сети каждый компьютер получает уникальный IP-адрес, используемый для маршрутизации внутреннего трафика. Как только пакет покидает пределы своей сети и направляется к провайдеру, в маршрутизаторе выполняется трансляция сетевого адреса в соответствии с технологией NAT (Network Address Translation, RFC 3022).

Суть преобразования заключается в следующем. Когда исходящий пакет приходит в NAT-блок, внутренний IP-адрес хоста-источника заменяется реальным IP-адресом, полученным компанией от провайдера. В заголовке транспортного протокола ТСР (или UDP) поле «Порт источника» заменяется индексом таблицы перевода NAT-блока. А в соответствующей строке этой таблицы появляется запись исходного IP-адреса и номера порта источника. Контрольные суммы заголовков IP и ТСР пересчитываются. Пакет уходит на маршрутизатор провайдера.

Когда пакет прибывает на маршрутизатор со стороны провайдера, он поступает в NAT-блок. Из пакета извлекается поле «Порт источника» в заголовке транспортного протокола и используется, как индекс таблицы отображения NAT-блока. По найденной в таблице записи определяется внутренний IP-адрес и настоящий порт источника. Эти два значения вставляются в пакет, и пакет отправляется во внутреннюю сеть.

Администратор (организатор) локальной сети в рамках классовой адресации создает собственные подсети, при этом часть бит адреса сетевого интерфейса (host-id) используется, как дополнительные биты для адреса подсети. Фактически изменяется положение границы между адресом сети и адресом интерфейса.

Для маршрутизации пакетов в современных сетях совместно с IP-адресом используется маска адреса (маска подсети). Маска позволяет определить, какая часть IP адреса относится к адресу сети, а какая – определяет адрес сетевого интерфейса. Маска состоит из 32 бит. Старшие биты, соответствующие разрядам адреса сети, установлены в единицу. Младшие биты, соответствующие разрядам адреса хоста внутри сети, устанавливаются равными нулю.

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

Маски, соответствующие классам, выглядят следующим образом:

  • Класс А: 11111111 00000000 00000000 00000000

  • Класс В: 11111111 11111111 00000000 00000000

  • Класс С: 11111111 11111111 11111111 00000000

Маска может быть и внеклассовой. Например, 22 бита, установленные в 1, указывают маршрутизатору, что первые 22 бита IP-адреса означают адрес сети (из них 16 бит указывают на сеть класса В, 6 бит указывают на номер подсети), оставшиеся 10 бит указывают на номер конкретного сетевого интерфейса в этой подсети. Используется запись: IP-адрес/22.

Каждая запись таблицы маршрутизации содержит поля Network Destination (сетевой адрес назначения), Netmask (маска сети), Gateway (адрес шлюза), Interface (интерфейс), Metric (метрика). Маршрутизатор последовательно выполняет логическое умножение адреса получателя в прибывшем IP-пакете на маску сети в каждой строке таблицы маршрутизации и ожидает совпадения результата перемножения с полем Network Destination. Порядок просмотра записей следующий: сначала ищется маршрут к хосту (маска сети для такого маршрута 255.255.255.255), затем маршрут к сети, затем выбирается маршрут по умолчанию (адрес и маска сети 0.0.0.0).

Применение адресных масок для определения сети адресата получило название бесклассовой междоменной маршрутизации (CIDR, Classless Internet Domain Routing). В настоящее время используются технологии переменной длины адреса сети (VLSM – Variable Length Subnet Mask) и маршрутизации по бесклассовым адресам (CIDR – Classless Internet Domain Routing), которые позволяют обойти классовые ограничения адресов.