Теория:Протоколы:IP
Internet Protocol (IP, досл. «межсетевой протокол») — маршрутизируемый протокол сетевого уровня стека TCP/IP. Именно IP стал тем протоколом, который объединил отдельные компьютерные сети во всемирную сеть Интернет. Неотъемлемой частью протокола является адресация сети.
Свойства
IP объединяет сегменты сети в единую сеть, обеспечивая доставку пакетов данных между любыми узлами сети через произвольное число промежуточных узлов (маршрутизаторов). Он классифицируется как протокол третьего уровня по сетевой модели OSI. IP не гарантирует надёжной доставки пакета до адресата — в частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (приходят две копии одного пакета), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прийти вовсе. Гарантию безошибочной доставки пакетов дают некоторые протоколы более высокого уровня — транспортного уровня сетевой модели OSI, — например, TCP, которые используют IP в качестве транспорта.
Версия 4
В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети (ранее использовалось деление пространства адресов по классам — A, B, C; класс сети определялся диапазоном значений старшего октета и определял число адресуемых узлов в данной сети, сейчас используется бесклассовая адресация).
Версия 6
В настоящее время вводится в эксплуатацию шестая версия протокола — IPv6, которая позволяет адресовать значительно большее количество узлов, чем IPv4. Эта версия отличается повышенной разрядностью адреса, встроенной возможностью шифрования и некоторыми другими особенностями. Переход с IPv4 на IPv6 связан с трудоёмкой работой операторов связи и производителей программного обеспечения и не может быть выполнен одномоментно. На середину 2010 года в Интернете присутствовало более 3000 сетей, работающих по протоколу IPv6. Для сравнения, на то же время в адресном пространстве IPv4 присутствовало более 320 тысяч сетей, но в IPv6 сети гораздо более крупные, нежели в IPv4.
Пакет
IP-пакет — форматированный блок информации, передаваемый по компьютерной сети, структура которого определена протоколом IP. В отличие от них, соединения компьютерных сетей, которые не поддерживают IP-пакеты, такие как традиционные соединения типа «точка-точка» в телекоммуникациях, просто передают данные в виде последовательности байтов, символов или битов. При использовании пакетного форматирования сеть может передавать длинные сообщения более надежно и эффективно.
Версия 4 (IPv4)
- Версия — для IPv4 значение поля должно быть равно 4.
- IHL — (Internet Header Length) длина заголовка IP-пакета в 32-битных словах (dword). Именно это поле указывает на начало блока данных (payload — полезный груз) в пакете. Минимальное корректное значение для этого поля равно 5.
- Длина пакета — (Total Length) длина пакета в октетах, включая заголовок и данные. Минимальное корректное значение для этого поля равно 20, максимальное — 65535.
- Идентификатор — (Identification) значение, назначаемое отправителем пакета и предназначенное для определения корректной последовательности фрагментов при сборке пакета. Для фрагментированного пакета все фрагменты имеют одинаковый идентификатор.
- 3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment) определяет возможность фрагментации пакета и третий бит MF (more fragments) показывает, не является ли этот пакет последним в цепочке пакетов.
- Смещение фрагмента — (Fragment Offset) значение, определяющее позицию фрагмента в потоке данных. Смещение задается количеством восьмибайтовых блоков, поэтому это значение требует умножения на 8 для перевода в байты.
- Время жизни (TTL) — число маршрутизаторов, которые может пройти этот пакет. При прохождении маршрутизатора это число уменьшается на единицу. Если значение этого поля равно нулю, то пакет должен быть отброшен, и отправителю пакета может быть послано сообщение Time Exceeded (ICMP тип 11 код 0).
- Протокол — идентификатор интернет-протокола следующего уровня указывает, данные какого протокола содержит пакет, например, TCP, UDP, или ICMP. В IPv6 называется «Next Header».
- Контрольная сумма заголовка — (Header Checksum) вычисляется в соответствии с RFC 1071
1.5.3. Сетевой уровень модели osi
На сетевом уровне определяется сетевой адрес. Некоторые реализации сетевого уровня (протокол Internet, Internet Protocol — IP) определяют сетевые адреса таким образом, чтобы выбор маршрута мог быть сделан с помощью известного алгоритма, например, путём сравнения сетевого адреса источника с сетевым адресом приёмника/получателя и наложения маски подсети. Поскольку сетевой уровень определяет логическую структуру сети, маршрутизаторы могут использовать этот уровень для того, чтобы определить направление последующей пересылки пакета. Вследствие этого значительная часть работы по проектированию и конфигурированию объединённых сетей происходит на 3-ьем уровне.
- IPv4 (Internet Protocol «межсетевой протокол») — маршрутизируемый протокол сетевого уровня стека TCP/IP. Именно IP стал тем протоколом, который объединил отдельные компьютерные сети во всемирную сеть Интернет. Неотъемлемой частью протокола является адресация сети. В современной сети Интернет используется IP четвёртой версии, также известный как IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются общими начальными битами адреса. Количество этих бит, общее для данной подсети, называется маской подсети.
1.5.4. Транспортный уровень модели osi
Транспортный уровень принимает данные от сеансового уровня и сегментирует их для передачи по сети. Транспортный уровень отвечает за доставку данных без ошибок и в правильной последовательности. Обычно управление потоком происходит на данном уровне.
Система управления потоком следит за передачей данных между устройствами для того, чтобы передающее устройство не отправляло больше данных, чем может обработать принимающее устройство. Мультиплексирование позволяет передавать по одному физическому каналу данные от нескольких приложений. На транспортном уровне также создаются, поддерживаются и ликвидируются виртуальные каналы. В целях контроля ошибок создаются различные механизмы распознавания ошибок передачи, а для их исправления выполняются определённые действия, например, запрос на повторную передачу данных.
- TCP (Transmission Control Protocol) — протокол управления передачей — один из основных протоколов передачи данных интернета, предназначенный для управления передачей данных. В стеке протоколов IP TCP выполняет функции протокола транспортного уровня модели OSI. Механизм TCP предоставляет поток данных с предварительной установкой соединения, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета, гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи.
- UDP (User Datagram Protocol) — протокол пользовательских датаграм. С UDP компьютерные приложения могут посылать сообщения (в данном случае называемые датаграммами) другим хостам по IP-сети без необходимости предварительного сообщения для установки специальных каналов передачи или путей данных.
- SCTP (Stream Control Transmission Protocol) — «протокол передачи с управлением потоком» — протокол транспортного уровня в компьютерных сетях, появившийся в 2000 году в IETF. Как и любой другой протокол передачи данных транспортного уровня, SCTP работает аналогично TCP или UDP. Будучи более новым протоколом, SCTP имеет несколько нововведений, таких как многопоточность, защита от dDos атак, синхронное соединение между двумя хостами по двум и более независимым физическим каналам (multi-homing).