Самая используемая версия интернет протокола. IP-адреса используемые в локальных сетях

Протокол IP.

Протокол IP (Internet Protocol) входит в состав стека протоколов TCP/IP и является основным протоколом сетевого уровня, использующимся в Интернет. IP - это не ориентированный на установление соединения и ненадежный протокол передачи. Термин "не ориентированный на установление соединения" означает, что сеанс для обмена данными не устанавливается. Термин "ненадежный" означает, что доставка не гарантируется. IP всегда предпринимает все усилия, чтобы доставить пакет. IP-пакет может быть потерян, доставлен вне очереди, дублирован или задержан. Протокол IP не пытается исправить ошибки этих типов. Подтверждение получения пакетов и повторное обращение за потерянными пакетами входят в круг обязанностей протокола более высокого уровня, например TCP.

Понятие IP-адреса.

Каждый компьютер в локальной сети имеет свой уникальный адрес, так же как человек имеет свой почтовый адрес. Именно по этим адресам компьютеры находят друг друга в сети. Разумеется, что двух одинаковых адресов в одной сети быть не должно. Формат адреса стандартный и определен протоколом IP, поэтому адреса компьютеров называются IP-адресами.

IP-адрес компьютера состоит из четырех полей, разделяемых точкой. Каждое поле содержит число, значение которого лежит в пределах от 0 до 255. Такой формат называется точечно-десятичной нотацией. Для хранения данных, в вычислительной технике используются двоичные числа, поэтому IP-адрес можно представить и в двоичном виде.

Двоичный формат
11000000 10101000 00000011 00011000

Десятичный формат
192.168.3.24

В двоичном формате IP-адрес состоит из 32 битов, которые разбиты на четыре октета (поля по 8 бит).
Чтобы точно указывать местонахождение компьютера в сети, IP-адрес разделяется на две части, одна содержит номер сети, другая номер компьютера в этой сети. Аналогично наш почтовый адрес указывает улицу и дом на ней.

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

Для того, чтобы отделить в IP-адресе поля относящиеся к номеру сети от полей номера узла, компьютерные сети делят на три основных класса: A, B и C. Классы существенно отличаются друг от друга по размерам и сложности. Они определяют, сколько бит в IP-адресе отводится под номер сети и сколько под номер узла.

  • Класс A. Сеть класса A имеет адреса, которые начинаются с числа от 1 до 127 для первого октета, а остальная часть адреса - это адрес узла. Таким образом класс A допускает максимум 126 сетей, а в каждой из них до 16 777 214 компьютеров. Как правило это сети огромных компаний, которых в мире немного, объединяющих большое число сетевых устройств.
  • Класс B. В сети класса B для описания адреса сети используется первые два октета, а остальная часть - это адреса узлов. Первый октет принимает значения от 128 до 191, что дает максимум 16 384 сети, в каждой из которых до 65 534 узла. Адреса класса B назначаются сетям большого и среднего размера.
  • Класс С. Адреса сетей класса C начинаются с числа от 192 до 223 и используют три первых октета для описания адреса сети. Последний октет обозначает адрес узла. Таким образом, класс C допускает максимум 2 097 152 сети, по 254 компьютера в каждой. Адреса этого класса назначают малым сетям.

Адрес сети класса A, начинающийся на 127 зарезервирован для тестирования и недоступен для использования.

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

Понятие IP-сети

С точки зрения протокола IP, сеть (например, корпоративная или Интернет) рассматривается как иерархическая структура.

На нижнем уровне иерархии расположено множество узлов (компьютеров или других устройств), представленных уникальными IP-адресами. Соотношение между физическими и логическими узлами можно описать следующим образом: одно и тоже физическое устройство (компьютер и др.) может иметь несколько IP-адресов, т.е. соответствовать нескольким логическим узлам. Обычно такая ситуация возникает, если устройство имеет несколько сетевых адаптеров и/или модемов, поскольку с каждым из них должен быть связан как минимум один уникальный IP-адрес. Хотя нередко компьютеру, имеющему один сетевой адаптер или модем, может быть присвоено несколько IP-адресов. Если физическое устройство имеет несколько IP-адресов, то говорят, что оно имеет несколько интерфейсов , т.е. несколько "точек подключения" к логической сети.

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

Подсети и маски подсетей.

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

Для настройки подсети используется маска подсети , которая предназначена для определения адреса сети независимо от класса сети. Формат записи маски подсети такой же как и формат IP-адреса, это четыре двоичных октета или четыре поля, разделяемых точкой. Значения полей маски задаются следующим образом:

  • все биты, установленные в 1, соответствуют идентификатору сети;
  • все биты, установленные в 0, соответствуют идентификатору узла.

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

Использование в паре с IP-адресом маски подсети позволяют отказаться от применения классов адресов и сделать более гибкой всю систему IP-адресации. Так, например, маска 255.255.255.240 (11111111 11111111 11111111 11110000) позволяет разбить диапазон в 254 IP-адреса, относящихся к одной сети класса C, на 14 диапазонов, которые могут выделяться разным сетям.

Таким образом, если IP-адрес компьютера 192.168.0.1 и маска подсети 255.255.255.0, то номер сети 192.168.0, а номер компьютера 1.

Если локальная сеть состоит из пяти компьютеров, то IP-адреса компьютеров будут записаны следующим образом:

  • ip 192.168.0.1 маска 255.255.255.0
  • ip 192.168.0.2 маска 255.255.255.0
  • ip 192.168.0.3 маска 255.255.255.0
  • ip 192.168.0.4 маска 255.255.255.0
  • ip 192.168.0.5 маска 255.255.255.0

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

Класс сети Биты маски подсети Префикс сети Маска подсети
A 11111111 00000000 00000000 00000000 /8 255.0.0.0
B 11111111 11111111 00000000 00000000 /16 255.255.0.0
C 11111111 11111111 11111111 00000000 /24 255.255.255.0

Например, запись 192.168.0.1 /24 соответствует записи 192.168.0.1 маска 255.255.255.0. Представление маски подсети в виде префикса сети называется методом CIDR (Classless Interdomain Routing).

Общие и частные адреса.

Все IP-адреса делятся на две группы: общие и частные. Общие адреса используются на компьютерах напрямую подключенных к сети Интернет. Компьютеры школьной Интернет-площадки подключены только к внутренней локальной сети и используют частные IP-адреса. Доступ к сети Интернет для всех компьютеров локальной сети в большинстве случаев обеспечивает только один компьютер. Такой компьютер настроен сразу на два IP-адреса, один частный, другой общий.

Частное адресное пространство определяется следующими адресными блоками:

  • от 10.0.0.1 до 10.255.255.254
  • от 172.16.0.1 до 172.31.255.254
  • от 192.168.0.1 до 192.168.255.254

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

Если количество компьютеров в сети не будет превышать 254, то рекомендуется использовать адреса из диапазона от 192.168.0.1 до 192.168.0.254 с маской подсети 255.255.255.0. Тогда 192.168.0 будет номер сети, а адреса компьютеров от 1 до 254.

Если компьютеров будет больше, чем 254, то можно использовать диапазон от 192.168.0.1 до 192.168.255.254 с маской подсети 255.255.0.0. Тогда 192.168 будет номер сети, а адреса компьютеров от 0.1 до 255.254 (это более 65 000 адресов).

Адресные блоки 10.0.0.1 и 172.16.0.1 предназначены для более крупных компьютерных сетей.

Если в компьютер установлено несколько сетевых адаптеров, то каждый адаптер должен иметь свой уникальный IP-адрес. Такие компьютеры используются для соединения нескольких локальных сетей и называются маршрутизаторами (Router).

Динамические и статические IP-адреса. DHCP.

Основной аксиомой IP-адресации является необходимость соблюдения уникальности IP-адресов во всем пространстве сети, поскольку, прежде всего, этим обеспечивается корректность доставки данных и маршрутизации. Присваивается IP-адрес компьютеру либо в ручную (статический адрес), либо компьютер получает его автоматически с сервера (динамический адрес). Статический адрес прописывается администратором сети в настройках протокола TCP/IP на каждом компьютере сети и жестко закрепляется за компьютером. В присвоении статических адресов компьютерам есть определенные неудобства:

  • Администратор сети должен вести учет всех используемых адресов, чтобы исключить повторы
  • При большом количестве компьютеров в локальной сети установка и настройка IP-адресов отнимают много времени

Наряду с перечисленными неудобствами у статических адресов есть одно немаловажное преимущество: постоянное соответствие IP-адреса определенному компьютеру. Это позволяет эффективно применять политику IP-безопасности и контролировать работу пользователей в сети. К примеру, можно запретить определенному компьютеру выходить в Интернет или определить с какого компьютера выходили в Интернет и т.п.

Если компьютеру не присвоен статический IP-адрес, то адрес назначается автоматически. Такой адрес называется динамическим адресом, т.к. при каждом подключении компьютера к локальной сети адрес может меняться. К достоинствам динамических адресов можно отнести:

  • Централизованное управление базой IP-адресов
  • Надежная настройка, исключающая вероятность дублирования IP-адресов
  • Упрощение сетевого администрирования

Динамический IP-адрес назначается специальной серверной службой DHCP (Dynamic Host Configuration Protocol), входящей в состав Windows Server 2003. В параметрах службы DHCP администратором сети прописывается IP-диапазон, адреса из которого, будут выдаваться другим компьютерам. Серверная служба DHCP, которая распространяет (сдает в аренду) IP-адреса называется DHCP-сервер. Компьютер, получающий (арендующий) IP-адрес из сети, называется DHCP-клиент.

Операционная система Windows XP Professional не содержит службу DHCP-сервер. В состав Windows XP входит локальная служба автоматического назначения IP-адресов (Internet Assigned Numbers Authority, IANA). При отсутствии в сети DHCP-сервера компьютер с установленной ОС Windows XP Professional обращается к встроенной функции автоматического назначения IP-адреса и проводит самонастройку IP-адреса и маски подсети, используя один из зарезервированных адресов. Зарезервированные адреса назначаются из диапазона 169.254.0.0 до 169.254.255.255 с маской подсети 255.255.0.0. Функция автоматического назначения IP-адреса гарантирует уникальность выдаваемого IP-адреса.

Данная функция работает на локальном компьютере и не обеспечивает IP-адресами другие компьютеры сети.

Поскольку протокол DHCP предназначен для функционирования в сетях с ненастроенным IP-взаимодействием, то он является немаршрутизируемым. Чтобы обеспечить возможность прохождения DHCP-пакетов через маршрутизаторы, используются дополнительные функциональные модули (реализуемые программно или аппаратно), называемые агентами ретрансляции BOOTP (BOOTP relay agent). Маршрутизатор, выполняющий функции такого ретранслятора, принимает из сети DHCP-пакеты и направляет их в другие сети.

Стек протоколов TCP/IP

Это стандартизованный набор сетевых протоколов. В настоящее время - это основной набор протоколов взаимодействия в Интернете. Более подробно об этом стеке протоколов и не только о нем можно прочитать в этой статье .

В состав стека протоколов TCP/IP входят два основных протокола: IP, TCP и несколько вспомогательных протоколов.

  • Протокол IP (Internet Protocol) - основной протокол сетевого уровня. Определяет способ адресации на сетевом уровне.
  • Протокол TCP (Transmission Control Protocol ) - протокол, обеспечивающий гарантированную доставку данных.

Как работают эти протоколы?

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

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

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

  • Номер TCP-порта позволяет однозначно идентифицировать программу на компьютере сети,
  • Компьютер в сети однозначно определяется IP-адресом.

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

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

IP-адреса, IP-сети. Подсети и маски подсетей
Более подробно об этом читаем в этой статье .
IP-адреса

Каждый компьютер в локальной сети имеет свой уникальный адрес, так же как человек имеет свой почтовый адрес. Именно по этим адресам компьютеры находят друг друга в сети. Двух одинаковых адресов в одной сети быть не должно. Формат адреса стандартный и определен протоколом IP.

IP-адрес компьютера записывается в 32 разрядах (4 октета). Каждый октет содержит десятичное число от 0 до 255 (в двоичном виде запись представляет последовательность 0 и 1). IP-адрес представляет собой четыре числа, разделяемых точкой. Например, компьютер с IP-адресом 192.168.3.24. Общее число IP-адресов составляет 4,2 млрд., все адреса уникальны.
IP-адрес может быть присвоен не только компьютеру, но и другим сетевым устройствам, например, принт-серверу или маршрутизатору. Поэтому все устройства в сети принято называть узлами или хостами .
Одно и тоже физическое устройство (компьютер или др.) может иметь несколько IP-адресов. Например, если в компьютер установлено несколько сетевых адаптеров, то каждый адаптер должен иметь свой уникальный IP-адрес. Такие компьютеры используются для соединения нескольких локальных сетей и называются маршрутизаторами .

IP сети

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

В Интернете огромное количество сетей. Маршрутизаторам в Интернете придется хранить адреса всех компьютеров во всех сетях, что делает их работу практически невозможной.
Для указания местонахождения компьютера в сети, IP-адрес разделили на две части, одна содержит номер сети, другая содержит номер компьютера в этой сети. Аналогично наш почтовый адрес указывает улицу и дом на ней.

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

Подсети и маски подсетей

Введение адреса сети упростило проблемы маршрутизации, но не решило их до конца (например, в больших локальных сетях). Поэтому большую IP-сеть разбивают на несколько подсетей, присвоив каждой из них свой адрес.
Подсети - это отдельные, самостоятельно функционирующие части сети, имеющие свой идентификатор.
Для адреса подсети, в IP-адресе, выделяется пространство из адреса узла.
Для определения адреса сети и подсети используется маска подсети . Формат записи маски подсети такой же, как и формат IP-адреса, это четыре поля, разделяемых точкой. Значения полей маски задаются следующим образом:

  • все биты, установленные в 1, соответствуют идентификатору сети;
  • все биты, установленные в 0, соответствуют идентификатору узла.

Если все биты октета установлены в 1, то это эквивалентно числу 255. Маска рассматривается только в паре с IP-адресом. Например, маска подсети 255.255.255.0 и адрес 192.168.100.5 говорят о том, что 192.168.100 - это номер сети, а 5 - номер компьютера в этой сети.
Просматривая адрес IP через маску подсети IP-протокол, определяет адрес сети, адрес подсети и номер узла.

Таким образом, в паре с IP-адресом компьютеров обязательно указывается маска подсети.

Статические и динамические IP-адреса. DHCP

Все IP-адреса должны быть уникальны во всем пространстве сети. Есть два способа задать эти адреса компьютерам сети.

Статические IP-адреса

Статический IP-адрес присваивается компьютеру вручную. Он прописывается администратором сети в настройках протокола TCP/IP на каждом компьютере сети и жестко закрепляется за компьютером.
Важное преимущество: постоянное соответствие IP-адресов определенным компьютерам. Это позволяет, например, запретить определенному компьютеру выходить в Интернет, или определить, с какого компьютера выходили в Интернет и т.п.
В присвоении статических адресов компьютерам есть определенные неудобства:

  • Администратор сети должен вести учет всех используемых адресов, чтобы исключить повторы
  • При большом количестве компьютеров в локальной сети установка и настройка IP-адресов отнимают много времени

Динамические IP-адреса

Если компьютеру не присвоен статический IP-адрес, то адрес назначается автоматически службой DHCP. Такой адрес называется динамическим адресом, т.к. при каждом подключении компьютера к локальной сети адрес может меняться, но всегда оставаться в пределах заданного диапазона.

Функция автоматического назначения IP-адреса гарантирует уникальность выдаваемого IP-адреса, но в одноранговой сети и в сети с сервером работает по разному.

Сети с выделенным сервером

В сетях, управляемых сервером, динамический IP-адрес назначается специальной серверной службой DHCP, входящей в состав Windows Server 2003. В параметрах службы DHCP администратором сети прописывается IP-диапазон, адреса из которого, будут выдаваться другим компьютерам сети.
Сервер, на котором работает эта служба, называется DHCP-сервер. Компьютер, получающий IP-адрес из сети, называется DHCP-клиент.

Одноранговые сети

В одноранговой сети нет DHCP-сервера, а на каждом компьютере установлен (по умолчанию) DHCP-клиент. Во время загрузки операционной системы DHCP-клиент пытается найти в сети доступный DHCP-сервер для получения IP-адреса. После неудачной попытки получить IP-адрес, DHCP-клиент данного компьютера включает встроенную функцию IANA (Internet Assigned Numbers Authority), которая назначает компьютеру IP-адрес и маску подсети, используя один из зарезервированных адресов. При этом служба IANA отслеживает уникальность адресов в сети.

Зарезервированные адреса назначаются из диапазона 169.254.0.0 до 169.254.255.255 с маской подсети 255.255.0.0. Последние два поля адреса представляют уникальный идентификатор клиента.

Автоматическое назначение IP-адреса проводится последовательно на всех компьютерах сети.

Маршрутизаторы и шлюзы.

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

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

В качестве маршрутизатора может работать компьютер под управлением операционной системой Windows 2003 Server или Windows XP Professional. Функции маршрутизации входят в состав этих операционных систем.

Маршрутизатор является шлюзом для каждой сети, которые он объединяет. Точнее шлюзом для локальной сети является сетевой адаптер, установленный в маршрутизаторе, и подключенный к этой сети. Например, рабочая станция локальной сети хочет подключиться к рабочей станции из другой сети. Она отправляет запрос в свою сеть с целью найти нужный IP-адрес. Если адрес не был найден в сети, то запрос отправляется в шлюз этой сети, т.е. на маршрутизатор, который в свою очередь перенаправляет запрос в другую сеть. Если во второй сети компьютер был найден, то они связываются через маршрутизатор.

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

Наиболее распространенные протоколы маршрутизации, входящие в состав стека протоколов TCP/IP:

Address Resolution Protocol, ARP. Протокол разрешения адресов, сопоставляет IP-адрес с адресом физического оборудования MAC-адресом. Посмотреть соответствие адресов из ARP-таблицы можно набрав в командной строке arp и указав IP-адрес.
*Routing Information Protocol, RIP . Протокол маршрутной информации, который используется для обратной совместимости с существующими RIP-сетями.
*Open Shortest Path First, OSPF . Протокол выбора кратчайшего маршрута.

IP-маршрутизация.

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

Маршрутизация осуществляется на узле-отправителе в момент отправки IP-пакета, а затем на IP-маршрутизаторах.

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

Протоколы ARP и RARP.

Основным функциональным достоинством IP-адресации является полная логическая независимость IP-адресов от физических адресов. Однако чтобы средства канального уровня могли осуществить доставку данных, необходимо знание физического адреса получателя. Механизм определения по IP-адресу физического адреса узла-получателя обеспечивает протокол ARP (Address Resolution Protocol, Протокол Разрешения Адреса).

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

Наличие на каждом узле ARP-таблицы позволяет снизить объем широковещательной рассылки, поскольку запрос направляется в сеть только в случае, если нужное соответствие не найдено в ARP-таблице.

В ряде случаев может оказаться необходимым определить IP-адрес по MAC-адресу. Для этого используется протокол RARP (Reverse Address Resolution Protocol). Функционально RARP схож с протоколом ARP.

Протоколы динамической маршрутизации

Протоколы динамической маршрутизации предназначены для автоматизации процесса построения маршрутных таблиц маршрутизаторов. Принцип их использования достаточно прост: маршрутизаторы с помощью устанавливаемого протоколом порядка рассылают определенную информацию из своей таблицы маршрутизации другим и корректируют свою таблицу на основе полученных от других данных.
Такой метод построения и поддержки маршрутных таблиц существенно упрощает задачу администрирования сетей, в которых могут происходить изменения (например, расширение) или в ситуациях, когда какие-либо маршрутизаторы и/или подсети выходят из строя.
Следует отметить, что использование протоколов динамической маршрутизации не отменяет возможность "ручного" внесения данных в таблицы маршрутизаторов. Внесенные таким образом записи называют статическими, а записи, полученные в результате обмена информацией между маршрутизаторами - динамическими. В любой таблице маршрутизации всегда присутствует, по крайней мере, одна статическая запись - маршрут по умолчанию.
Современные протоколы маршрутизации делятся на две группы: протоколы типа "вектор-расстояние" и протоколы типа "состояние канала".
В протоколах типа "вектор-расстояние" каждый маршрутизатор рассылает список адресов доступных ему сетей ("векторов"), с каждым из которых связано параметр "расстояния" (например, количество маршрутизаторов до этой сети, значение, основанное на производительности канала и т.п.). Основным представителем протоколов данной группы является протокол RIP (Routing Information Protocol, протокол маршрутной информации).
Протоколы типа "состояние канала" основаны на ином принципе. Маршрутизаторы обмениваются между собой топологической информацией о связях в сети: какие маршрутизаторы с какими сетями связаны. В результате каждый маршрутизатор имеет полное представление о структуре сети (причем это представление будет одинаковым для всех), на основе которого вычисляет собственную оптимальную таблицу маршрутизации. Протоколом этой группы является протокол OSPF (Open Shortest Path First, "открой кратчайший путь первым").

Протокол RIP.

Протокол RIP (Routing Information Protocol, протокол маршрутной информации) является наиболее простым протоколом динамической маршрутизации. Он относится к протоколам типа "вектор-расстояние".
Под вектором протокол RIP определяет IP-адреса сетей, а расстояние измеряется в переходах ("хопах", hope) - количестве маршрутизаторов, которое должен пройти пакет, чтобы достичь указанной сети. Следует отметить, что максимальное значение расстояния для протокола RIP равно 15, значение 16 трактуется особым образом "сеть недостижима". Это определило основной недостаток протокола - он оказывается неприменимым в больших сетях, где Возможны маршруты, превышающие 15 переходов.
Протокол RIP версии 1 имеет ряд существенных для практического использования недостатков. К числу важных проблем относятся следующие:

  • Оценка расстояния только с учетом числа переходов. Протокол RIP не учитывает реальную производительность каналов связи, что может оказаться неэффективным в гетерогенных сетях, т.е. сетях, объединяющих каналы связи различного устройства, производительности, в которых используются разные сетевые технологии.
  • Проблема медленной конвергенции . Маршрутизаторы, использующие протокол RIP. Рассылают маршрутную информацию каждые 30 с, причем их работа не синхронизирована. В ситуации, когда некоторый маршрутизатор обнаружит, что какая-либо сеть стала недоступной, то в худшем случае (если проблема была выявлена сразу после очередной рассылки) он сообщит об это соседям через 30 с. Для соседних маршрутизаторов все будет происходить также. Это означает, что информация о недоступности какой-либо сети может распространятся маршрутизаторам в достаточно долго, очевидно, что сеть при этом будет находиться в нестабильном состоянии.
  • Широковещательная рассылка таблиц маршрутизации . Протокол RIP изначально предполагал, что маршрутизаторы рассылают информацию в широковещательном режиме. Это означает, что отправленный пакет вынуждены получить и проанализировать на канальном, сетевом и транспортном уровне все компьютеры сети, в которую он направлен.

Частично указанные проблемы решаются в версии 2 (RIP2).

Протокол OSPF

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

Функционирование протокола OSPF основано на использовании всеми маршрутизаторами единой базы данных, описывающей, как и с какими сетями связан каждый маршрутизатор. Описывая каждую связь, маршрутизаторы связывают с ней метрику - значение, характеризующее "качество" канала. Например, для сетей Ethernet со скоростью обмена 100 Мбит/с используется значение 1, а для коммутируемых соединений 56 Кбит/с - значение 1785. Это позволяет маршрутизаторам OSPF (в отличие от RIP, где все каналы равнозначны) учитывать реальную пропускную способность и выявлять эффективные маршруты. Важной особенностью протокола OSPF является то, что используется групповая, а не широковещательная рассылка.
Указанные особенности, такие как групповая рассылка вместо широковещательной, отсутствие ограничений на длину маршрута, периодический обмен только короткими сообщениями о состоянии, учет "качества" каналов связи позволяют использовать OSPF в больших сетях. Однако такое использование может породить серьезную проблему - большое количество циркулирующей в сети маршрутной информации и увеличение таблиц маршрутизации. А поскольку алгоритм поиска эффективных маршрутов является, с точки зрения объема вычислений, достаточно сложным, то в больших сетях могут потребоваться высокопроизводительные и, следовательно, дорогие маршрутизаторы. Поэтому возможность построения эффективных таблиц маршрутизации может рассматриваться и как достоинство, и как недостаток протокола OSPF.

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

В этой статье разберем принципы работы стека протоколов TCP/IP и попробуем понять принципы их работы.

Примечание: Зачастую, обревиатурой TCP/IP называют всю сеть, работающую на основе этих двух протоколов, TCP и IP.

В модель такой сети кроме основных протоколов TCP (транспортный уровень) и IP (протокол сетевого уровня) входят протоколы прикладного и сетевого уровней (смотри фото). Но вернемся непосредственно к протоколам TCP и IP.

Что такое протоколы TCP/IP

TCP — Transfer Control Protocol . Протокол управления передачей. Он служит для обеспечения и установление надежного соединения между двумя устройствами и надежную передачу данных. При этом протокол TCP контролирует оптимальный размер передаваемого пакета данных, осуществляя новую посылку при сбое передачи.

IP — Internet Protocol. Интернет протокол или адресный протокол — основа всей архитектуры передачи данных. Протокол IP служит для доставки сетевого пакета данных по нужному адресу. При этом информация разбивается на пакеты, которые независимо передвигаются по сети до нужного адресата.

Форматы протоколов TCP/IP

Формат IP протокола

Существуют два формата для IP адресов IP протокола.

Формат IPv4. Это 32-битовое двоичное число. Удобная форма записи IP-адреса (IPv4) это запись в виде четырёх групп десятичных чисел (от 0 до 255), разделённых точками. Например: 193.178.0.1.

Формат IPv6. Это 128-битовое двоичное число. Как правило, адреса формата IPv6 записываются в виде уже восьми групп. В каждой группе по четыре шестнадцатеричные цифры разделенные двоеточием. Пример адреса IPv6 2001:0db8:85a3:08d3:1319:8a2e:0370:7889.

Как работают протоколы TCP/IP

Если удобно представьте передаче пакетов данных в сети, как отправку письма по почте.

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

Протокол IP

Каждый компьютер в сети имеют свой уникальный адрес. В глобальной сети Интернет, компьютер имеет этот адрес, который называется IP-адрес (Internet Protocol Address).

По аналогии с почтой, IP- адрес это номер дома. Но номера дома для получения письма недостаточно.

Передаваемая по сети информация передается не компьютером, как таковым, а приложениями, установленными на него. Такими приложениями являются сервер почты, веб-сервер, FTP и т.п. Для идентификации пакета передаваемой информации, каждое приложение прикрепляется к определенному порту. Например: веб-сервер слушает порт 80, FTP слушает порт 21, почтовый SMTP сервер слушает порт 25, сервер POP3 читает почту почтовых ящиков на порте 110.

Таким образом, в адресном пакете в протоколе TCP/IP, в адресатах появляется еще одна строка: порт. Аналог с почтой — порт это номер квартиры отправителя и адресата.

Пример:

Source address (Адрес отправителя):

IP: 82.146.47.66

Destination address (Адресполучателя):

IP: 195.34.31.236

Стоит запомнить: IP адрес + номер порта — называется «сокет». В примере выше: с сокета 82.146.47.66:2049 пакет отправляется на сокет 195.34.31.236: 53.

Протокол TCP

Протокол TCP это протокол следующего после протокола IP уровня. Предназначен этот протокол для контроля передачи информации и ее целостности.

Например, Передаваемая информация разбивается на отдельные пакеты. Пакеты доставят получателю независимо. В процессе передачи один из пакетов не передался. Протокол TCP обеспечивает повторные передачи, до получения этого пакета получателем.

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

IP - Internet Protocol

Набор протоколов TCP/IP разделен на уровни гораздо проще, чем предусмотрено моделью OSI. TCP и UDP - это транспортные протоколы, соответствующие уровню 4 OSI. Они используют IP, протокол уровня 3 OSI (сетевого уровня). Кроме этих трех протоколов, в наборе протоколов TCP/IP есть еще два базовых протокола, расширяющих IP: ICMP и IGMP. Функциональные возможности этих протоколов должны быть реализованы в уровне, содержащем IP.

Internet Protocol соединяет два узла. Каждый узел идентифицируется 32-битным адресом, называемым IP-адресом . При отправке сообщения IP-протокол получает его от протоколов верхнего уровня, TCP или UDP, и добавляет IP-заголовок, содержащий информацию о хосте-адресате.

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

Структура IP-заголовка
Поле Длина Описание
Версия IP 4 бита Версия протокола IP, создавшего заголовок. Текущая версия протокола IP - 4.
Длина IP-заголовка 4 бита Длина заголовка. Минимальное значение - 5 в единицах по 32 бита, или 4 байта. Следовательно, минимальная длина заголовка равна 20 байтам.
Тип обслуживания 1 байт Поле типа обслуживания позволяет отправлять сообщения с нормальной или высокой производительностью, нормальной или увеличенной задержкой, нормальной или высокой надежностью. Это поле полезно при отправке в сеть дейтаграмм. Несколько разновидностей сетей используют эту информацию, чтобы выделить приоритет определенного трафика. Кроме того, сообщения управления сетью по сравнению с обычными сообщениями имеют повышенные приоритет и надежность.
Общая длина 2 байта В этих двух байтах задается общая длина сообщения - заголовка и данных- в октетах. Максимальный размер IP-пакета равен 65 535 байтов, но для большинства сетей такой размер непрактичен. Самый большой размер, который может быть принят всеми хостами, равен 576 байтам. Длинные сообщения могут разделяться на фрагменты - такой процесс называется фрагментацией .
Идентификация 2 байта Если сообщение разбито на фрагменты, поле идентификации помогает собрать фрагменты сообщения. Все фрагменты одного сообщения имеют один и тот же идентификационный номер.
Флаги 3 бита Эти флаги указывают, фрагментировано ли сообщение и является ли текущий пакет последним фрагментом сообщения.
Смещение фрагмента 13 битов В этих 13 битах задается смещение фрагментированного сообщения. Фрагменты могут поступать не в том порядке, в каком они были отправлены, поэтому смещение необходимо, чтобы восстановить исходные данные. Первый фрагмент сообщения имеет длину О, а в остальных фрагментах дается смещение, по которому следует поместить фрагмент. Единица смещения равна 8 байтам, так что значение смещения 64 означает, что второй фрагмент нужно присоединить к сообщению после 512 байтов первого пакета.
Время жизни 1 байт Значение "время жизни" (TTL) задает число секунд, которое сообщение может существовать, прежде чем будет отброшено. В этом значении необязательно указывается число секунд, поскольку каждый маршрутизатор, пересекаемый сообщением, должен уменьшить значение TTL на 1, даже если он затратил на обработку сообщения меньше одной секунды. Поэтому на практике в этом значении задается число допустимых "прыжков".
Протокол 1 байт В этом байте указывается протокол, используемый на следующем уровне стека протоколов для этого сообщения. Номера протоколов определены в доступной оперативной базе данных Internet Assigned Number Authority (IANA) .
Контрольная сумма заголовка 2 байта Это контрольная сумма одного заголовка. Поскольку заголовок изменяется с каждым отправленным сообщением, контрольная сумма также изменяется.
Адрес источника 4 байта В этом поле указывается 32-битный IP-адрес отправителя.
Адрес назначения 4 байта Это 32-битный IP-адрес, по которому отправлено сообщение.
Опции переменная Здесь могут появляться необязательные поля. Например, можно указать, что это сообщение секретно или совершенно секретно. Также предусмотрена возможность будущих расширений.
Дополнение переменная Это поле содержит переменное число нулей, такое, чтобы заголовок заканчивался на 32-битной границе.

Internet Protocol (IP) определен в RFC 791. Документы RFC (Request for Comments) содержат техническую информацию о многих важных интернет-технологиях.

IP-адрес

Каждый узел в сети TCP/IP может быть идентифицирован 32-битным IP-адресом. Обычно IP-адрес представляется четырьмя десятичными значениями в таком виде: 192.168.0.1. Каждое из этих чисел представляет собой один байт IP-адреса и может находиться в пределах от 0 до 255.

IP-адрес содержит две части: сетевую часть и часть хоста. В зависимости от класса сети сетевая часть состоит из одного, двух или трех байтов:

Первый бит адреса сети класса А должен быть 0, поэтому первый байт для сети класса А имеет двоичные значения в пределах от 00000001 (1) до 01111110 (126). Остальные три байта служат для идентификации узлов в сети, позволяя соединить в сети класса А более 16 млн. устройств.

Заметим, что в приведенной таблице адреса с числом 127 в первом байте пропущены, поскольку это зарезервированный диапазон адресов. Адрес 127.0.0.1 - это всегда адрес локального хоста, а 127.0.0.0 - адрес локальной обратной связи. Обратная связь используется для тестирования стека сетевых протоколов на одной машине, без прохода через сетевую интерфейсную плату.

В IP-адресе для сети класса В первые два бита всегда имеют значение 10, что дает диапазон от 10000000 (128) до 10111111 (191). Второй байт продолжает идентификацию сети значением от 0 до 255, оставляя два последних байта для идентификации узлов сети, всего до 65 534 устройств.

Сети класса С отличаются IP-адресом, в котором в первых трех битах установлено значение 110, разрешая значения в диапазоне от 11000000 (192) до 11011111 (223). В сети этого типа лишь один байт оставлен для идентификации узлов, поэтому к ней можно подсоединить только 254 устройства.

Число устройств, которое можно подсоединить к сети каждого из этих классов с особыми IP-адресами, обратно пропорционально числу возможных сетей этого типа. Например, сеть класса А, допуская 16 млн. хостов, оставляет только часть первого байта для идентификации сети. В результате во всем мире может существовать лишь 126 сетей класса А. Только крупные компании, подобные AT & Т, IBM, Xerox и HP, имеют такой сетевой адрес. Когда компания запрашивает IP-сеть в органе, ведающем сетями, обычно она получает сеть класса С.

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

Сетевые адреса классов А, В и С оставляют свободными адреса, имеющие в первом байте значения от 224 до 255.

Агентство IANA выделяет номера сетей и публикует их перечень на странице http://www.iana.org/assignments/ipv4-adclress-space . Почти во всех странах есть региональные регистрационные ведомства, выдающие по запросам номера сетей. Региональные ведомства получают диапазон сетей от IANA.

Чтобы избежать исчерпания IP-адресов, хосты, не соединенные напрямую с Интернетом, могут использовать адреса из диапазонов частных адресов. Частные адреса уникальны не глобально, а только локально, внутри сети. Во всех классах сетей резервируются определенные диапазоны, которые могут использоваться как частные адреса хостами, не требующими непосредственного двустороннего доступа к Интернету. Такие хосты вполне могут обращаться к Интернету через шлюз, который не посылает во внешнюю сеть частный IP-адрес.

Подсети

Для соединения двух узлов в разных сетях требуется маршрутизатор. Номер хоста определяется 24 битами IP-адреса класса А, в то время как для сети класса С доступно лишь 8 битов. Маршрутизатор разделяет номер хоста на номер подсети и номер хоста в подсети. Включение дополнительных маршрутизаторов сократит объемы широковещательной передачи в сети, а это может сократить нагрузку в сети.

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

Такая сеть может фильтровать адреса с помощью маски подсети (subnet mask) 255.255.255.224. Первые три байта (состоящие из всех единиц) представляют собой маску для сети класса С. Последний байт - это десятичное значение двоичного представления 11100000, в котором первые три бита адреса хоста указывают подсеть, а последние пять битов представляют адрес хоста в конкретной подсети. Три бита подсети представляют 128, 64 и 32, и, таким образом, поддерживаются адреса подсетей, показанные ниже:

IPv6

Протокол, предшествовавший Internet Protocol, был разработан Управлением перспективных исследовательских работ Министерства обороны США (DARPA) в 1960-х годах, а набор протоколов TCP/IP получил признание лишь в 1980 г. Поскольку IP базировался на существовавших сетевых протоколах DARPA, он получил номер версии 4 и теперь известен как IPv4. В те времена, когда человечество в большинстве своем представляло себе мобильный телефон как трубку, которую можно снимать со стены и переносить к дивану, число хостов, поддерживаемых IP, казалось более чем достаточным.

Однако сегодня все хотят подключить к Интернету холодильники и газонокосилки, и IETF разработало новую версию IP - IPv6. Наиболее важное изменение этой версии по сравнению с IPv4 заключается в использовании для адресации не 32, а 128 битов, что позволит всем Tablet PC, Pocket PC, мобильным телефонам, телевизорам, автомобилям, газонокосилкам, кофеваркам и мусорным контейнерам стать полноправными хостами Интернета. :)

Кроме возможности назначить адрес почти каждому атому в Солнечной системе, в IPv6 появляется еще несколько полезных изменений:

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

    Упрощение формата заголовка . Некоторые поля заголовка IPv4 удаляются, другие становятся необязательными. Однако полная длина заголовка IPv6 больше, чем в IPv4 из-за 128-битных адресов источника и назначения.

    Улучшенная поддержка расширяемости . В будущем добавлять расширения к протоколу IPv6 станет легче. Ограничения на длину для опций удалено.

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

    Аутентификация и секретность . Добавляются расширения IPv6, поддерживающие аутентификацию, секретность и конфиденциальность отправляемых данных.

Номера портов

Для идентификации узлов сети протокол IP использует IP-адреса, а транспортный уровень (уровень 4) использует конечные точки для идентификации приложения. Чтобы указать конечную точку приложения, протоколы TCP и UDP вместе с IP-адресом используют номер порта.

Сервер должен предоставить известную конечную точку, с которой мог бы соединиться клиент, хотя номер порта может создаваться для клиента динамически. Номера портов TCP и UDP имеют длину 16 битов, их можно подразделить на три категории:

    Системные (известные) номера портов

    Пользовательские (зарегистрированные) номера портов

    Динамические, или частные, порты

Системные номера портов находятся в диапазоне от 0 до 1023. Эти номера должны использоваться только системными, привилегированными процессами. Широко известные протоколы пользуются номерами портов, установленными по умолчанию из этого диапазона.

Пользовательские номера портов находятся в диапазоне от 1024 до 49151. Ваше серверное приложение обычно будет занимать один из этих портов, и вы, если захотите сделать его известным сообществу пользователей Интернета, сможете зарегистрировать номер порта в IANA.

Динамические номера портов принимают значения из диапазона от 49 152 до 65 535. Если не требуется знать номер порта до запуска приложения, подойдет порт в этом диапазоне. Клиентские приложения, которые соединяются с серверами, могут использовать такой порт.

Запустив утилиту netstat с опцией -а, мы увидим перечень всех используемых в данный момент портов и указание о состоянии соединения - находится ли соединение в состоянии прослушивания или соединение уже было установлено:

В файле services из каталога \system32\drivers\etc перечислены многие предопределенные пользовательские и системные номера портов. Если порт содержится в перечне этого файла, то утилита netstat вместо номера порта отобразит имя протокола.

IP (internet protocol - межсетевой протокол) - маршрутизируемый сетевой протокол, протокол сетевого уровня семейства («стека») TCP/IP. IPv4 описан в RFC 791 (сентябрь 1981 года).

Основные положения:

    IP - основной протокол стека TCP/IP, он решает вопросы доставки сообщений между узлами составной сети.

    IP является дейтаграммным протоколом: при передаче информации по протоколу IP каждый пакет передается от узла к узлу и обрабатывается в узлах независимо от других пакетов.

    IP относится к протоколам без установки соединений. IP используется для негарантированной доставки данных, разделяемых на так называемые пакеты от одного узла сети к другому. Это означает, что на уровне этого протокола (третий уровень сетевой модели OSI) не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (когда приходят две копии одного пакета; в реальности это бывает крайне редко), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого (транспортного уровня) сетевой модели OSI - например, Порты TCP - которые используют IP в качестве транспорта.

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

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

      Во-вторых, администратор вручную заносит статические записи о специфичных маршрутах или о маршрутизаторе по умолчанию.

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

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

Структура IP пакета

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

Рассмотрим поля структуру IP- пакета на конкретном примере.

    Поле Длина заголовка (IHL) IP- пакета занимает 4 бит и указывает значение длины заголовка, измеренное в 32-битовых словах. Обычно заголовок IP-пакета имеет длину в 20 байт (пять 32-битовых слов), но при увеличении объема служебной информации эта длина может быть увеличена. Наибольший заголовок занимает 60 октетов.

    Поле Тип сервиса (Type of Service) занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета (Precedence) . Приоритет может иметь значения от самого низкого - 0 (нормальный пакет) до самого высокого - 7 (пакет управляющей информации) . Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Поле Type of Service содержит также три бита, определяющие критерий выбора маршрута. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого, кроме того, обработка каждого из них требует дополнительных вычислительных затрат. Поэтому редко, когда имеет смысл устанавливать одновременно хотя бы два из этих трех критериев выбора маршрута. Зарезервированные биты имеют нулевое значение. Установленный * бит D (delay) говорит о том, что маршрут должен выбираться для минимизации задержки доставки данного пакета * бит Т - для максимизации пропускной способности * бит R - для максимизации надежности доставки.

    Поле Общая длина (Total Length) занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей такие большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP- пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандарте предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной (приходят ли они целиком или по фрагментам). Существует такое правило: хостам рекомендуется отправлять пакеты размером более чем 576 байт, только если они уверены, что принимающий хост или промежуточная сеть готовы обслуживать пакеты такого размера.

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

    Поле Флаги (Flags) занимает 3 бита и содержит признаки, связанные с фрагментацией: установленный бит DF (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный бит MF (More Fragments) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся бит зарезервирован.

    Поле Смещение фрагмента (Fragment Offset) занимает 13 бит и задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами MTU . Смещение должно быть кратно 8 байт.

    Поле Время жизни (Time to Live) занимает 1 байт и означает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи. На маршрутизаторах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица; единица вычитается и в том случае, когда время задержки меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно считать равным максимальному числу узлов, которые разрешено пройти данному пакету до того, как он достигнет места назначения. Если параметр времени жизни станет нулевым до того, как пакет достигнет получателя, этот пакет будет уничтожен. Время жизни можно рассматривать как часовой механизм самоуничтожения. Значение этого поля изменяется при обработке заголовка IP-пакета.

    Идентификатор Протокол верхнего уровня (Protocol) занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета (например, это могут быть сегменты протоколов верхних уровней или протоколов маршрутизации). Значения идентификаторов для различных протоколов приводятся в документе RFC 3232 - Assigned Numbers.

    Контрольная сумма (Header Checksum) занимает 2 байта и рассчитывается только по заголовку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, время жизни), контрольная сумма проверяется и повторно рассчитывается при каждой обработке IP- заголовка. Контрольная сумма - 16 бит - подсчитывается как дополнение к сумме всех 16-битовых слов заголовка. При вычислении контрольной суммы значение самого поля "контрольная сумма" устанавливается в нуль. Если контрольная сумма неверна, то пакет будет отброшен, как только ошибка будет обнаружена.

    Поля IP-адрес источника (Source IP Address) и

    IP-адрес назначения (Destination IP Address) имеют одинаковую длину - 32 бита - и одинаковую структуру.

    Поле Опции (IP Options) является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.

    Поле Выравнивание (Padding) используется для того, чтобы убедиться в том, что IP- заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.

IP фрагментация, MTU, MSS, и PMTUD

Фрагментация IP пакетов: MTU , MSS , и PMTUD . PMTUD (Path MTU Discovery) и проблема фрагментации пакетов (network mtu ping packet)

Почему же работают пинг при проблемах с MTU? Пакеты ICMP Request и Relpy имеют размер от 32 до 64 байтов, пингуемый сервер возвращает очень мало информации, которая вполне укладывается в допустимый размер вместе со всеми заголовками.

Протокол Порты TCP позволяет согласовать значение максимального размера сегмента (MSS) обоим участникам соединения. Каждая сторона указывает предлагаемый размер MSS в поле ОПЦИИ заголовка пакета TCP. Будет принято наименьшее из двух значений. Такое согласование позволяет избежать фрагментации пакетов при прохождении через маршрутизаторы и шлюзы, и их последующей сборки на целевом хосте, что приводит к задержкам и снижению скорости передачи.

Фрагментация подразумевает разбиение блока данных (пакета) на равные части. Соответственно после фрагментации следующим этапом следует сборка фрагментов. Протокол IP позволяет выполнять фрагментацию только тех пакетов, которые поступают на входные порты маршрутизаторов. Следует различать фрагментацию сообщений в узле-отправителе, и динамическую фрагментацию сообщений в маршрутизаторах. Дело в том, что практически во всех стеках протоколов есть протоколы, которые осуществляют фрагментацию сообщений прикладного уровня на такие части, которые укладываются в кадры канального уровня. В стеке TCP/IP, например, эту задачу решает протокол транспортного уровня TCP. Этот протокол может разбивать поток байтов, передаваемый ему с прикладного уровня на сообщения нужного размера (например, на 1460 байт для протокола Ethernet).

Поэтому протокол IP в узле-отправителе не использует свои возможности по фрагментации пакетов.

А вот при необходимости передать пакет в следующую сеть, для которой размер пакета является слишком большим, IP-фрагментация становится необходимой.

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

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

Сети Ethernet имеют значение MTU, равное 1500 байт, сети FDDI - 4096 байт, а сети Х.25 чаще всего работают с MTU в 128 байт.

Итак, необходимость фрагментации пакетов на уровне IP мы пояснили. Теперь перейдем к самому процессу фрагментации пакетов IP.

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

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

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

Например, технология АТМ делит поступающие IP-пакеты на ячейки с полем данных в 48 байт с помощью своего уровня сегментирования, а затем собирает ячейки в исходные пакеты на выходе из сети. Но такие технологии, как АТМ, являются скорее исключением, чем правилом.

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

Для того, чтобы не перепутать фрагмент различных типов, в заголовке IP-пакетов используется поле Identification.

Модуль протокола IP, отправляющий пакет, устанавливает в поле Identification значение, которое должно быть уникальным для данной пары отправитель - получатель. Кроме этого отправитель в заголовке пакета устанавливает время, в течение которого пакет может быть активным в сети.

Поле смещения фрагмента (Fragment Offset) сообщает получателю положение фрагмента в исходном пакете. Смещение фрагмента и длина определяют часть исходного пакета, принесенную этим фрагментом. Флаг "more fragments" показывает появление последнего фрагмента. Модуль протокола IP, отправляющий неразбитый на фрагменты пакет, устанавливает в нуль флаг "more fragments" и смещение во фрагменте.

Все эти поля дают достаточное количество информации для сборки пакета.

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

Размер последней части данных равен полученному остатку.

Каждая из полученных частей данных помещается в новый пакет.

Когда происходит фрагментация, то некоторые параметры IP-заголовка копируются в заголовки всех фрагментов, а другие остаются лишь в заголовке первого фрагмента.

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

В заголовок каждого пакета заносятся соответствующие значения в поле смещения "fragment offset", а в поле общей длины пакета помещается длина каждого пакета.

Таким образом, первый фрагмент будет иметь в поле "fragment offset" нулевое значение. Во всех пакетах, кроме последнего, флаг "more fragments" устанавливается в единицу, а в последнем фрагменте - в нуль.

Теперь давайте рассмотрим процесс сборки фрагментов пакетов.

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

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

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

Однако, поскольку поле идентификатора допускает 65 536 различных значений, некоторые хосты могут использовать просто уникальные идентификаторы, не зависящие от адреса получателя.

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

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

Каждый модуль IP должен быть способен передать пакет из 68 байт без дальнейшей фрагментации. Это связано с тем, что IP-заголовок может включать до 60 байт, а минимальный фрагмент данных - 8 байт. Каждый получатель должен быть в состоянии принять пакет из 576 байт в качестве единого куска либо в виде фрагментов, подлежащих сборке. Если бит флага запрета фрагментации (Don"t Fragment, DF) установлен, то фрагментация данного пакета запрещена, даже если в этом случае он будет потерян.

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

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

Рассмотрим процесс фрагментации IP-пакетов при передаче между сетями с разным размером пакетов на примере, который показан на этом рисунке.

Канальный и физический уровни обозначены, как К1, Ф1, К2, Ф2 соответственно.

Пусть компьютер 1 связан с сетью, имеющей значение MTU в 4096 байт, например с сетью FDDI.

При поступлении на IP-уровень компьютера 1 сообщения от транспортного уровня размером в 5600 байт протокол IP делит его на два IP-пакета. В первом пакете устанавливает признак фрагментации и присваивает пакету уникальный идентификатор, например 486.

В первом пакете величина поля смещения равна 0, а во втором - 2800.

Признак фрагментации во втором пакете равен нулю, что показывает, что это последний фрагмент пакета.

Общая величина IP-пакета составляет 2800 плюс 20 (размер IP-заголовка), то есть 2820 байт, что умещается в поле данных кадра FDDI.

Сетевой интерфейс отправляет кадры следующему маршрутизатору.

После того, как кадры пройдут уровень сетевого интерфейса маршрутизатора (К1 и Ф1) и освободятся от заголовков FDDI, модуль IP по сетевому адресу определяет, что прибывшие два пакета нужно передать в сеть 2, которая является сетью Ethernet и имеет значение MTU, равное 1500.

Следовательно, прибывшие IP-пакеты необходимо фрагментировать.

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

Затем он формирует новые IP-пакеты, каждый из которых имеет длину 1400 + 20 = 1420 байт, что меньше 1500 байт, поэтому они нормально помещаются в поле данных кадров Ethernet.

В результате в компьютер 2 по сети Ethernet приходят четыре IP-пакета с общим идентификатором 486.

Протокол IP, работающий в компьютере 2, должен правильно собрать исходное сообщение.

Если пакеты пришли не в том порядке, в котором были посланы, то смещение укажет правильный порядок их объединения.

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

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

Таймер устанавливается на максимальное из двух значений: первоначальное установочное время ожидания и время жизни, указанное в принятом фрагменте.

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

Статьи по теме: