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

Интернет-протокол (IP)  - 

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

IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP (TCP/IP – это набор интернет-протоколов, о котором мы поговорим в дальнейших статьях). IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей). Так как человек невосприимчив к большому однородному ряду чисел, такому как этот 11100010101000100010101110011110 (здесь, к слову, 32 бита информации, так как 32 числа в двоичной системе), было решено разделить ряд на четыре 8-битных байта и получилась следующая последовательность: 11100010.10100010.00101011.10011110. Это не сильно облегчило жизнь и было решение перевести данную последовательность в, привычную нам, последовательность из четырёх чисел в десятичной системе, то есть 226.162.43.158. 4 разряда также называются октетами.

Максимальным возможным числом в любом октете будет 255 (так как в двоичной системе это 8 единиц), а минимальным – 0


•Байт содержит 8 битов и выступает в качестве общей единицы информации в IP-сетях. Может принимать любое значение от 0 до 255. Данная единица информации образуется путем преобразования из десятичной в двоичную систему счисления и применения степени к каждому двоичному значению для достижения 256-битного диапазона значений. Преобразование из десятичной в двоичную систему показано в примере, который также наглядно демонстрирует, как представляются значения широковещательных адресов в десятичной, двоичной и шестнадцатеричной системах счисления и как осуществляется широковещательная передача с IP- и MAC-адресами на сетевом и канальном уровнях.

Рассматриваемые сейчас адреса определяются протоколом IPv4 (вариант IPv6 мы рассмотрим в ходе курса позднее). По такой схеме адресации можно оперировать более чем четырьмя миллиардами IP-адресов.



Далее давайте разберёмся с тем, что называется классом IP.

IP-адреса делятся на 5 классов (A, B, C, D, E). A, B и C — это классы коммерческой адресации. D – для многоадресных рассылок, а класс E – для экспериментов.

Класс А: 1.0.0.0 — 126.0.0.0, маска 255.0.0.0
Класс В: 128.0.0.0 — 191.255.0.0, маска 255.255.0.0
Класс С: 192.0.0.0 — 223.255.255.0, маска 255.255.255.0
Класс D: 224.0.0.0 — 239.255.255.255, маска 255.255.255.255
Класс Е: 240.0.0.0 — 247.255.255.255, маска 255.255.255.255

Теперь о «цвете» IP. IP бывают белые и серые (или публичные и частные). Публичным IP адресом называется IP адрес, который используется для выхода в Интернет. Адреса, используемые в локальных сетях, относят к частным. Частные IP не маршрутизируются в Интернете.

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

Допустим, Вы молодой сетевой инженер и хотите дать доступ к своему серверу всем пользователям Интернета. Для этого Вам нужно получить публичный IP адрес. Чтобы его получить Вы обращаетесь к своему интернет провайдеру, и он выдаёт Вам публичный IP адрес, но из рукава он его взять не может, поэтому он обращается к локальному Интернет регистратору (LIR – Local Internet Registry), который выдаёт пачку IP адресов Вашему провайдеру, а провайдер из этой пачки выдаёт Вам один адрес. Локальный Интернет регистратор не может выдать пачку адресов из неоткуда, поэтому он обращается к региональному Интернет регистратору (RIR – Regional Internet Registry). В свою очередь региональный Интернет регистратор обращается к международной некоммерческой организации IANA (Internet Assigned Numbers Authority). Контролирует действие организации IANA компания ICANN (Internet Corporation for Assigned Names and Numbers). Такой сложный процесс необходим для того, чтобы не было путаницы в публичных IP адресах.



В настоящее время все ipv4 адреса у региональных интернет регистраторов - ЗАКОНЧИЛИСЬ!
У локальных операторов связи вы все еще можете получить свой собственный ipv4 адрес, но время стандарта ipv6 приближается неуклонно. 



Поскольку мы занимаемся созданием локальных вычислительных сетей (LAN — Local Area Network), мы будем пользоваться именно частными IP адресами. Для работы с ними необходимо понимать какие адреса частные, а какие нет. В таблице ниже приведены частные IP адреса, которыми мы и будем пользоваться при построении сетей.



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

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

У всех IP адресов есть две части сеть и узел.
Сеть – это та часть IP, которая не меняется во всей сети и все адреса устройств начинаются именно с номера сети.
Узел – это изменяющаяся часть IP. Каждое устройство имеет свой уникальный адрес в сети, он называется узлом.

•Применение маски подсети к данному IP-адресу позволяет идентифицировать сеть, к которой принадлежит хост. Маска подсети также идентифицирует адрес широковещательной передачи, а также количество хостов, которые могут поддерживаться в данном диапазоне. Такая информация служит основой для эффективного планирования сетевых адресов. В данном примере хост определен адресом 192.168.1.7, который принадлежит сети с примененной 24-разрядной маской подсети по умолчанию (класс C). При определении частей IP-адреса, которые представляют собой сегменты сети и хоста, для каждого сегмента определяется сетевой адрес по умолчанию.
•Это адрес, в котором все значения битов хоста установлены в 0, в этом случае генерируется сетевой адрес по умолчанию 192.168.1.0. Если значения хоста представлены непрерывной строкой из единиц, можно определить адрес широковещательной передачи. Если последний октет содержит строку из единиц, он представляет собой десятичное значение 255, для которого можно получить адрес широковещательной передачи 192.168.1.255.
•Возможные адреса хостов рассчитываются по формуле 2n, где n — это количество битов хоста, определенных маской подсети. В данном случае n равно 8 битам хоста, таким образом, 28 дает результат 256. Однако в отношении используемых адресов хоста, необходимо из этого результата вычесть сетевые и широковещательные адреса, чтобы получить число действительных адресов хоста 254.


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


Маску принято записывать двумя способами: префиксным и десятичным. Например, маска частной подсети A выглядит в десятичной записи как 255.0.0.0, но не всегда удобно пользоваться десятичной записью при составлении схемы сети. Легче записать маску как префикс, то есть /8.


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

Таблица масок подсети



Высчитаем сколько устройств (в IP адресах — узлов) может быть в сети, где у одного компьютера адрес 172.16.13.98 /24.

172.16.13.0 – адрес сети
172.16.13.1 – адрес первого устройства в сети
172.16.13.254 – адрес последнего устройства в сети
172.16.13.255 – широковещательный IP адрес
172.16.14.0 – адрес следующей сети

Итого 254 устройства в сети

Теперь вычислим сколько устройств может быть в сети, где у одного компьютера адрес 172.16.13.98 /16.
172.16.0.0 – адрес сети
172.16.0.1 – адрес первого устройства в сети
172.16.255.254 – адрес последнего устройства в сети
172.16.255.255 – широковещательный IP адрес
172.17.0.0 – адрес следующей сети

Итого 65534 устройства в сети

В первом случае у нас получилось 254 устройства, во втором 65534, а мы заменили только номер маски.

Посмотреть различные варианты работы с масками вы можете в любом калькуляторе IP. Я рекомендую этот.

До того, как была придумана технология масок подсетей (VLSM – Variable Langhe Subnet Mask), использовались классовые сети, о которых мы говорили ранее.

Теперь стоит сказать о таких IP адресах, которые задействованы под определённые нужды.

Адрес 127.0.0.0 – 127.255.255.255 (loopback – петля на себя). Данная сеть нужна для диагностики и отладки как сервисов уровня хоста, так и сервисов уровня сервера. Например, что бы проверить работает ли веб сервис на той операционной системе, где вы находитесь и вы не хотите нагружать проверкой реальные интерфейсы, достаточно в командной строке браузера набрать http://127.0.0.1/

169.254.0.0 – 169.254.255.255 (APIPA – Automatic Private IP Addressing). Механизм «придумывания» IP адреса. Служба APIPA генерирует IP адреса для начала работы с сетью.

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

•Данные пересылаемых пакетов представляются в различных форматах и размерах, и часто размер передаваемых данных превышает размер, поддерживаемый средой передачи. Если это происходит, блок данных разбивается на меньшие блоки данных до их передачи. Процесс разбивки данных на управляемые блоки известен как фрагментация.
•Поля «идентификация», «флаги» и «смещение фрагментов» используются для управления сборкой фрагментов после их получения в конечном планируемом пункте назначения. Поле «идентификация» позволяет различать блоки данных потоков трафика, которые могут инициироваться одним и тем же хостом или различными хостами. Поле «флаги» определяет, какой из нескольких фрагментов представляет собой последний фрагмент, на котором запускается таймер до повторной сборки, и уведомляет о том, что должна начаться повторная сборка пакета.
•Наконец, поле «смещение фрагментов» содержит битовое значение каждого фрагмента, означающее часть числа фрагментов. Первый фрагмент задается значением 0 и последующие фрагменты определяют значение первого бита, следующего за предыдущим фрагментом, например, если исходный фрагмент содержит биты от 0 до 1259, следующему фрагменту будет присвоено значение смещения 1260.

Время жизни (Time To Live)

•Поскольку пакеты передаются между сетями, то в случае некорректного определения маршрутов к IP-сетям в устройствах, выполняющих маршрутизацию трафика, они могут попадать в петли. Это может привести к потере пакетов в течение цикла передачи, и они, в итоге, не достигнут целевого назначения. Если это происходит, то по мере потери все большего и большего числа пакетов, направленных в один и тот же пункт назначения, в сети будет возникать перегрузка, обусловленная большим числом ошибочных пакетов.
•Чтобы предотвратить такую перегрузку при формировании петель, поле «время жизни» (TTL) определяется как часть заголовка IP, в котором устанавливается значение 1 каждый раз, когда пакет походит через устройство уровня 3 для достижения данной сети. Начальное значение TTL зависит от первоначального источника, однако, если TTL имеет значение 0, пакет будет отбрасываться, а на IP-адрес источника, который можно найти в заголовке IP отброшенного пакета, будет приходить сообщение об ошибке (ICMP).

•Во время проверки, достиг ли пакет целевого назначения, сетевой уровень должен определить следующий набор команд на выполнение. Для этого анализируется поле «протокол» в заголовке IP. Как и в поле «тип» заголовка кадра, следующий набор команд задается шестнадцатеричным значением.
•Следует понимать, что поле «протокол» может содержать значение протокола сетевого уровня, например Internet Control Message Protocol (ICMP), но также и значение протокола верхнего уровня, например Transmission Control Protocol (06/0x06) или Datagram User Datagram Protocol (17/0x11). Последние два являются протоколами транспортного уровня эталонных моделей TCP/IP и OSI.

Этот тест был открыт Пятница, 10 Июнь 2022, 16:21

Тестирование будет окончено в Суббота, 10 Ноябрь 2035, 16:21

Метод оценивания: Высшая оценка