TCP – протокол гарантированной доставки данных по предустановленному виртуальному соединению (транспортный и сеансовый уровни модели OSI). Заголовок и данные TCP уровня инкапсулируются в поле данных IP уровня, т.е. в IP дейтаграмму.
Протокол TCP отвечает за разбиение передаваемого сообщения на блоки. К каждому блоку добавляется заголовок длинной 20 байт, в результате формируется пакет (это транспортный уровень).
В заголовке содержатся следующие данные:
- адрес отправителя
- адрес получателя
- номер пакета
- номер следующего пакета
На приёмной стороне TCP отвечает за сборку пакетов воедино в соответствии с их номерами. Если какой-либо из пакетов утерян или повреждён (передан с ошибками), то его передачу повторяют.
Функции TCP:
- строит пакеты, упаковывая их в сегменты
- устанавливает тайм-ауты в момент отправки
- подтверждает принятые данные, меняет их порядок в случае хаотичности прибытия (из-за различных путей дейтаграмм)
- отбрасывает дублированные данные
- осуществляет контроль потока данных
- рассматривает и проверяет контрольную сумму
UDP – протокол негарантированной доставки данных (транспортный и сеансовый уровни модели OSI). За счёт уменьшения проверок растёт скорость передачи данных. Заголовок UDP – 8 байт. UDP используется для отсылки данных, некритичных к потере информационных приложений (ICQ, игровые сервисы типа Quake). Также UDP почти всегда используется для рассылки групповыхIP дейтаграмм.
UDP использует простую модель передачи, без неявных "рукопожатий" для обеспечения надежности, упорядочивания или целостности данных. Таким образом, UDP предоставляет ненадежный сервис, и дейтаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. UDP подразумевает, что проверка ошибок и исправление либо не необходимы, либо должны исполняться в приложении. Чувствительные ко времени приложения часто используют UDP, так как предпочтительнее сбросить пакеты, чем ждать задержавшиеся пакеты, что может оказаться невозможным в системах реального времени.
Протокол IP отвечает за: - сетевой уровень модели OSI
- передачу данных по сети (маршрутизацию)
- адресацию устройств в сети
IP-протокол , версия 4: каждый комп в сети Интернет получает уникальный адрес, состоящий из 4-х чисел от 0 до 255, отделенных точками.
Internet Protocol или IP (англ. internet protocol — межсетевой протокол) — маршрутизируемый сетевой протокол, протокол сетевого уровня семейства TCP/IP.
Протокол IP используется для негарантированной доставки данных, разделяемых на пакеты от одного узла сети к другому. Это означает, что на уровне этого протокола (третий уровень сетевой модели OSI) не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (когда приходят две копии одного пакета; в реальности это бывает крайне редко), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого (транспортного уровня) сетевой модели OSI — например, TCP — которые используют IP в качестве транспорта.
Пакет IP состоит из заголовка и поля данных.
Заголовок пакета имеет следующие поля:
1) Поле Номер версии (VERS) указывает версию протокола IP
2) Поле Длина заголовка (HLEN) пакета IP занимает 4 бита и указывает значение длины заголовка, измеренное в 32-битовых словах.
3) Поле Тип сервиса (SERVICE TYPE) занимает 1 байт и задает приоритетность пакета и вид критерия выбора маршрута.
4) Поле Общая длина (TOTAL LENGTH) занимает 2 байта и указывает общую длину пакета с учетом заголовка и поля данных.
5) Поле Идентификатор пакета (IDENTIFICATION) занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.
6) Поле Флаги (FLAGS) занимает 3 бита, оно указывает на возможность фрагментации пакета (установленный бит Do not Fragment - DF - запрещает маршрутизатору фрагментировать данный пакет), а также на то, является ли данный пакет промежуточным или последним фрагментом исходного пакета (установленный бит More Fragments - MF - говорит о том пакет переносит промежуточный фрагмент).
7) Поле Смещение фрагмента (FRAGMENT OFFSET) занимает 13 бит, оно используется для указания в байтах смещения поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами максимальной длины пакета.
8) Поле Время жизни (TIME TO LIVE) занимает 1 байт и указывает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи средствами протокола IP. На шлюзах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица; единица вычитается также при каждой транзитной передаче (даже если не прошла секунда). При истечении времени жизни пакет аннулируется.
9) Идентификатор протокола верхнего уровня (PROTOCOL) занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит пакет (например, это могут быть протоколы TCP, UDP или RIP).
10) Контрольная сумма (HEADER CHECKSUM) занимает 2 байта, она рассчитывается по всему заголовку.
11) Поля Адрес источника (SOURCE IP ADDRESS) и Адрес назначения (DESTINATION IP ADDRESS) имеют одинаковую длину - 32 бита, и одинаковую структуру.
12) Поле Резерв (IP OPTIONS) является необязательным и используется обычно только при отладке сети.
В современной сети Интернет используется IP четвёртой версии, также известный как IPv4.
Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая - к номеру узла, определяется значениями первых бит адреса. Значения этих бит являются также признаками того, к какому классу относится тот или иной IP-адрес.
Если адрес начинается с 0, то сеть относят к классу А и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей.) Сетей класса А немного, зато количество узлов в них может достигать 16 777 216 (2 в 24-ой степени).
Если первые два бита адреса равны 10, то сеть относится к классу В. В сетях класса В под номер сети и под номер узла отводится по 16 бит, то есть по 2 байта. Таким образом, сеть класса В является сетью средних размеров с максимальным числом узлов 65 536 (2 в 16-ой степени).
Если адрес начинается с последовательности 110, то это сеть класса С. В этом случае под номер сети отводится 24 бита, а под номер узла - 8 бит. Сети этого класса наиболее распространены, число узлов в них ограничено 256 узлами (2 в 8-ой степени).
Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.
Если адрес начинается с последовательности 11110, то это значит, что данный адрес относится к классу Е. Адреса этого класса зарезервированы для будущих применений.
В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов (особые IP-адреса):
1) Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет; этот режим используется только в некоторых сообщениях ICMP.
2) Если в поле номера сети стоят только нули, то по умолчанию считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.
3) Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast).
4) Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 192.190.21.255 доставляется всем узлам сети 192.190.21.0. Такая рассылка называется широковещательным сообщением (broadcast).
Подсеть (subnet) — это физический сегмент TCP/IP сети, в котором используются IP-адреса с общим идентификатором сети. Как правило, организации получают идентификатор сети от Информационного Центра Интернета (Internet Network Information Center, InterNIC).
Использование подсетей имеет целый ряд преимуществ. В организациях подсети применяют для объединения нескольких физических сегментов в одну логическую сеть. Применяя подсети, Вы можете:
совместно использовать различные сетевые технологии (Ethernet, Token Ring);
преодолеть существующие ограничения, например на максимальное количество узлов в одном сегменте;
уменьшить нагрузку на сеть, перенаправляя сетевой трафик и сокращая число широковещательных пакетов.
Маска - это число, которое используется в паре с IP-адресом, для более гибкого установления границ между номером сети и номером узла; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.
Для стандартных классов сетей маски имеют след. значения:
класс А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
класс В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
класс С-11111111.11111111.11111111.00000000 (255.255.255.0).
Для записи масок используются и другие форматы, например, удобно интерпретировать значение маски, записанной в шестнадцатеричном коде: FF.FF.00.00 - маска для адресов класса В. Часто встречается и такое обозначение 185.23.44.206/16 - эта запись говорит о том, что маска для этого адреса содержит 16 единиц или что в указанном IP-адресе под номер сети отведено 16 двоичных разрядов.
Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать более гибкой систему адресации. Например, если рассмотренный выше адрес 185.23.44.206 ассоциировать с маской 255.255.255.0, то номером сети будет 185.23.44.0, а не 185.23.0.0, как это определено системой классов.
Механизм масок широко распространен в IP-маршрутизации, причем маски могут использоваться для самых разных целей. С их помощью администратор может структурировать свою сеть, не требуя от поставщика услуг дополнительных номеров сетей. На основе этого же механизма поставщики услуг могут объединять адресные пространства нескольких сетей путем введения так называемых «префиксов» с целью уменьшения объема таблиц маршрутизации и повышения за счет этого производительности маршрутизаторов.
Маска это 32-битное значение, которое содержит биты, установленные в единицу для идентификатора сети и идентификатора подсети, и биты, установленные в 0 для идентификатора хоста.
81) CIDR
Бесклассовая адресация (англ. Classless Inter-Domain Routing, англ. CIDR) — метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Использование этого метода позволяет экономно использовать ограниченный ресурс IP-адресов, поскольку возможно применение различных масок подсетей к различным подсетям.
Деление на основе маски переменной длины, назначенной поставщиком услуг. Условие – непрерывный диапазон адресов. Это выполняется, если все адреса имеют одинаковый префикс.
Условия использования:
- кол-во адресов в выделенной области должно быть равно 2N
- начальная граница выделенного объема адресов должна быть кратна требуемому кол-ву адресов
Пакет IP состоит из заголовка и поля данных. Заголовок пакета имеет следующие поля:
1) Поле Номер версии (VERS) указывает версию протокола IP
2) Поле Длина заголовка (HLEN) пакета IP занимает 4 бита и указывает значение длины заголовка, измеренное в 32-битовых словах.
3) Поле Тип сервиса (SERVICE TYPE) занимает 1 байт и задает приоритетность пакета и вид критерия выбора маршрута.
4) Поле Общая длина (TOTAL LENGTH) занимает 2 байта и указывает общую длину пакета с учетом заголовка и поля данных.
5) Поле Идентификатор пакета (IDENTIFICATION) занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.
6) Поле Флаги (FLAGS) занимает 3 бита, оно указывает на возможность фрагментации пакета (установленный бит Do not Fragment - DF - запрещает маршрутизатору фрагментировать данный пакет), а также на то, является ли данный пакет промежуточным или последним фрагментом исходного пакета (установленный бит More Fragments - MF - говорит о том пакет переносит промежуточный фрагмент).
7) Поле Смещение фрагмента (FRAGMENT OFFSET) занимает 13 бит, оно используется для указания в байтах смещения поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами максимальной длины пакета.
8) Поле Время жизни (TIME TO LIVE) занимает 1 байт и указывает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи средствами протокола IP. На шлюзах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица; единица вычитается также при каждой транзитной передаче (даже если не прошла секунда). При истечении времени жизни пакет аннулируется.
9) Идентификатор протокола верхнего уровня (PROTOCOL) занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит пакет (например, это могут быть протоколы TCP, UDP или RIP).
10) Контрольная сумма (HEADER CHECKSUM) занимает 2 байта, она рассчитывается по всему заголовку.
11) Поля Адрес источника (SOURCE IP ADDRESS) и Адрес назначения (DESTINATION IP ADDRESS) имеют одинаковую длину - 32 бита, и одинаковую структуру.
12) Поле Резерв (IP OPTIONS) является необязательным и используется обычно только при отладке сети.
Максимальная длина поля данных пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байтов, однако при передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байтов, умещающиеся в поле данных кадра Ethernet.