Сетевые модели tcp/ip и osi
Содержание:
- Выполняем атаку TCP reset против себя
- 2021: Уязвимости в стеках TCP/IP затрагивают миллионы промышленных и IoT-устройств
- The Network Interface Layer
- Subnetting
- Назначение TCP
- IPv4[править]
- Маршрутизация[править]
- Transport Layer
- 2015: Операторы связи выявили проблемы с решениями на основе TCP/IP в сетях 4G
- Шлюзы по умолчанию
- Сетевые протоколы UDP, TCP, ICMP
- Связующий слой
- Уровни стека протоколов TCP/IP
- Уровни модели TCP / IP
- Названия слоев и количество слоев в литературе
Выполняем атаку TCP reset против себя
Примечание: я тестировал этот процесс на OSX, но получил несколько комментариев, что в Linux он не работает нужным образом.
- Наблюдать за сетевым трафиком («сниффить» его), передаваемым между двумя жертвами
- Сниффить TCP-сегмент со включенным флагом и считать его подтверждённый номер
- Изготовить ложный TCP-сегмент со включенным флагом и порядковым номером, равным подтверждённому номеру перехваченного сегмента (стоит учесть, что это предполагает медленную передачу, иначе выбранный порядковый номер быстро устареет. (Чтобы повысить шансы на успех, можно передать несколько сегментов с большим интервалом порядковых номеров.)
- Отправить фальшивые сегменты одной или обеим жертвам, надеясь, что это приведёт к разрыву их TCP-соединения
- Настроить TCP-соединение между двумя окнами терминала
- Написать атакующую программу, которая будет заниматься сниффингом трафика
- Модифицировать программу так, чтобы она изготавливала и отправляла фальшивые сегменты .
2. Сниффинг трафика
- — приказывает слушать сетевой интерфейс , или localhost
- — функция фильтра, приказывающая игнорировать все пакеты, не являющиеся частью соединения двух IP-адресов localhost на порте сервера. Эта фильтрация необходима, потому что на машине есть множество других программ, использующих интерфейс . Мы хотим игнорировать все пакеты, не являющиеся частью нашего эксперимента.
- — функция, которую должна выполнять для каждого пакета, соответствующего требованиям функции . Функция в показанном выше примере просто выводит пакет на терминал. На следующем этапе мы изменим эту функцию, чтобы она также передавала сегменты .
- — количество пакетов, которое должна сниффить до выхода.
3. Отправка фальшивых пакетов
- Меняем местами IP-адреса отправителя и получатели, а также их порты. Это необходимо, потому что наш пакет будет ответом на перехваченный пакет. Исходная точка нашего пакета должна быть конечной точкой исходного пакета, и наоборот.
- Включаем флаг сегмента, потому что именно он сообщает, что сегмент является
- Присваиваем порядковому номеру точное значение номера подтверждения перехваченного пакета, так как это следующий порядковый номер, который ожидает получить отправитель
- Вызываем метод библиотеки для отправки сегмента жертве — источнику перехваченного пакета.
Дальнейшая работа
- Продолжите эксперименты с инструментом для атак. Проследите, что происходит, если прибавить или вычесть 1 из порядкового номера пакета . Убедитесь, что он должен быть точно равен значению перехваченного пакета.
- Скачайте Wireshark и используйте его для прослушивания интерфейса во время проведения атаки. Это позволит вам увидеть подробности о каждом из передаваемых по соединению TCP-сегментов, в том числе и о ложном . Используйте фильтр для фильтрации всего излишнего трафика других программ.
- Усложните проведение атаки, передавая по соединению непрерывный поток данных. Это затруднит выбор скриптом правильного порядкового номера для его сегментов , потому что ко времени прибытия сегмента к жертве та уже может получить дальнейшие истинные данные, увеличив таким образом следующий порядковый номер. Чтобы противодействовать этому, мы можем передавать несколько пакетов , каждый из которых имеет свой порядковый номер.
2021: Уязвимости в стеках TCP/IP затрагивают миллионы промышленных и IoT-устройств
13 апреля 2021 года стало известно о том, что исследователи безопасности из компании ForeScout совместно с экспертами JSOF обнаружили ряд уязвимостей в стеках TCP/IP, затрагивающий миллионы серверов, промышленных и «умных» устройств.
Уязвимости, получившие название NAME:WRECK, связаны с тем, как стеки TCP/IP обрабатывают DNS-трафик. Эксплуатация уязвимостей позволяет вызвать состояние «отказа в обслуживании» (DoS) или удаленно выполнить код (RCE). Таким образом злоумышленники могут отключить целевые устройства или перехватить контроль.
В общей сложности эксперты выявили девять уязвимостей в семи из пятнадцати стеков TCP/IP. Результаты анализа других восьми стеков показали, что FNET, cycloneTCP, uC/TCP-IP, FreeRTOS+TCP, Zephyr и OpenThread безопасно реализуют сжатие сообщений, в то время как Nut/Net и lwIP вовсе не поддерживали сжатие сообщений, и по умолчанию не были уязвимы.
Эксперты сообщили о своих находках разработчикам стеков, однако только FreeBSD, Nucleus NET и NetX получили исправления. IPNet все еще содержит уязвимости NAME:WRECK.
По словам специалистов, хотя выпуск исправлений может показаться обнадеживающим, на самом деле ситуация нет проста. Установка исправлений для «умных» устройств и промышленного оборудования обычно влечет за собой длительный период ожидания, в течение которого производители устройств должны будут интегрировать исправления и выпускать собственные обновления прошивки.
Большая часть оборудования может находится в удаленных местах и не поддерживать механизм обновления прошивки по воздуху (firmware-over-the-air, FOTA). Многие устройства, использующие уязвимые стеки TCP/IP, скорее всего, останутся уязвимыми к атакам в течение многих лет, в то время как другое оборудование может оставаться уязвимым до тех пор, пока оно не будет выведено из эксплуатации, полагают эксперты.
The Network Interface Layer
Network Interface Layer is this layer of the four-layer TCP/IP model. This layer is also called a network access layer. It helps you to defines details of how data should be sent using the network.
It also includes how bits should optically be signaled by hardware devices which directly interfaces with a network medium, like coaxial, optical, coaxial, fiber, or twisted-pair cables.
A network layer is a combination of the data line and defined in the article of OSI reference model. This layer defines how the data should be sent physically through the network. This layer is responsible for the transmission of the data between two devices on the same network.
Subnetting
Сеть TCP/IP класса A, B или C может быть дополнительно разделена системным администратором или подсети. Это становится необходимым при согласовании логической адресной схемы Интернета (абстрактного мира IP-адресов и подсетей) с физическими сетями, которые используются в реальном мире.
Системный администратор, которому выделен блок IP-адресов, может управлять сетями, которые не организованы таким образом, чтобы легко вписываться в эти адреса. Например, у вас есть широкая сеть с 150 хостами в трех сетях (в разных городах), подключенных маршрутизатором TCP/IP. Каждая из этих трех сетей имеет 50 хостов. Вам выделена сеть класса C 192.168.123.0. (Для иллюстрации этот адрес на самом деле из диапазона, который не выделяется в Интернете.) Это означает, что для 150 хостов можно использовать адреса 192.168.123.1 по 192.168.123.254.
Два адреса, которые не могут использоваться в вашем примере, являются 192.168.123.0 и 192.168.123.255, так как двоичные адреса с хост-частью всех и все нули недействительны. Нулевой адрес недействителен, так как используется для указания сети без указания хоста. 255-й адрес (в двоичной нотации— хост-адрес всех) используется для передачи сообщения каждому хосту в сети. Просто помните, что первый и последний адрес в любой сети или подсети не может быть назначен любому отдельному хосту.
Теперь вы можете предоставить IP-адреса 254 хостов. Он отлично работает, если все 150 компьютеров находятся в одной сети. Однако 150 компьютеров находятся в трех отдельных физических сетях. Вместо того, чтобы запрашивать дополнительные блоки адресов для каждой сети, вы разделите сеть на подсети, которые позволяют использовать один блок адресов в нескольких физических сетях.
В этом случае вы разделите сеть на четыре подсети, используя подсетевую маску, которая делает сетевой адрес больше и возможный диапазон адресов хостов меньше. Другими словами, вы «заимствуете» некоторые биты, используемые для хост-адреса, и используете их для сетевой части адреса. Подсетевая маска 255.255.255.192 предоставляет четыре сети по 62 хостов каждая. Он работает, так как в двоичной нотации 255.255.255.192 то же самое, что и 11111111.1111111.110000000. Первые две цифры последнего октета становятся сетевыми адресами, поэтому вы получаете дополнительные сети 00000000 (0), 010000000 (64), 10000000 (128) и 110000000 (192). (Некоторые администраторы будут использовать только две подсети с использованием 255.255.255.192 в качестве маски подсети. Дополнительные сведения по этому вопросу см. в разделе RFC 1878.) В этих четырех сетях последние шесть двоичных цифр можно использовать для хост-адресов.
Используя подсетевую маску 255.255.255.192, сеть 192.168.123.0 становится четырьмя сетями 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь допустимые хост-адреса:
192.168.123.1-62 192.168.123.65-126 192.168.123.129-190 192.168.123.193-254
Помните, что двоичные хост-адреса со всеми или всеми нулями являются недействительными, поэтому нельзя использовать адреса с последним октетом 0, 63, 64, 127, 128, 191, 192 или 255.
Вы можете увидеть, как это работает, глядя на два хост-адреса, 192.168.123.71 и 192.168.123.133. Если используется маска подсети класса C по умолчанию 255.255.255.0, оба адреса находятся в сети 192.168.123.0. Однако, если вы используете подсетевую маску 255.255.255.192, они находятся в разных сетях; 192.168.123.71 на сети 192.168.123.64, 192.168.123.133 — на сети 192.168.123.128.
Назначение TCP
TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.
Основными протоколами стека, давшими ему название, являются протоколы IР и ТСР. Эти протоколы в терминологии модели 051 относятся к сетевому и транспортному уровням соответственно. IР обеспечивает продвижение пакета по составной сети, а ТСР гарантирует надежность его доставки.
Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами.
Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.
TCP/IP дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для «прыжков» между сетями.
Особенности TCP
Поскольку стек ТСР/IР изначально создавался для глобальной сети Internet он имеет много особенностей, дающих ему преимущество перед другими протоколами, когда речь заходит о построении сетей, включающих глобальные связи. В частности, очень полезным свойством, делающим возможным применение этого протокола в больших сетях, является его способность фрагментировать пакеты. Действительно, большая составная сеть часто состоит из сетей, построенных на совершенно разных принципах. В каждой из этих сетей может быть установлена собственная величина максимальной длины единицы передаваемых данных (кадра). В таком случае при переходе из одной сети, имеющей большую максимальную длину, в сеть с меньшей максимальной длиной может возникнуть необходимость деления передаваемого кадра на несколько частей. Протокол IP стека ТСР/IР эффективно решает эту задачу.
Другой особенностью технологии ТСР/IР является гибкая система адресации, позволяющая более просто по сравнению с другими протоколами аналогичного назначения включать в интерсеть сети других технологий. Это свойство также способствует применению стека ТСР/IР для построения больших гетерогенных сетей.
В стеке ТСР/ IР очень экономно используются возможности широковещательных рассылок. Это свойство совершенно необходимо при работе на медленных каналах связи, характерных для территориальных сетей.
IPv4[править]
IPv4 (англ. Internet Protocol version 4) — четвёртая версия интернет протокола (IP). Описан в IETF в статье RFC 791 (сентябрь 1981 года). Это один из самых используемых интернет протоколов. Был введен в использование в ARPANET в 1983 году.
Функция протокола — передавать дейтаграммы по множеству соединенных сетей.
Структура пакетаправить
Рассмотрим формат IPv4-дейтаграмм.
Дейтаграмма состоит из заголовка и основной части (данных). Биты передаются слева направо и сверху вниз (big-endian порядок). В настоящее время ясно, что лучше было бы использовать обратный (little-endian) порядок, но во время создания протокола это не было очевидно. Так на Intel x86 требуется программное преобразование, как при передаче, так и при приеме.
Рассмотрим структуру заголовка:
1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Версия | IHL | Дифференциальное обслуживание (Тип службы) | Полная длина | |||||||||||||||||||||||||||
Идентификатор | Флаги | Смещение фрагмента | ||||||||||||||||||||||||||||
Время жизни | Протокол | Контрольная сумма заголовка | ||||||||||||||||||||||||||||
IP-адрес источника | ||||||||||||||||||||||||||||||
IP-адрес назначения | ||||||||||||||||||||||||||||||
Опции | Остаток |
- Версия: 4 бита
- IHL: 4 бита
- Дифференциальное обслуживание (Тип службы): 8 битов
- Полная длина: 16 бит
- Идентификатор: 16 бит
- Флаги: 3 бита
- Бит 0: зарезервированное значение, должны быть равно 0.
- Бит 1 (DF): Не фрагментировать (англ. Don’t Fragment). 0 — можно фрагментировать, 1 — нельзя. Также может использоваться при определении путевого значения MTU, которое равно максимальному размеру пакета, передаваемого по пути без фрагментации. Пометив этот бит, отправитель гарантирует, что либо дейтаграмма дойдет единым блоком, либо отправитель получит сообщение об ошибке.
- Бит 2 (MF): Продолжение следует (англ. More Fragments). 0 — в последнем фрагменте, 1 — в предыдущих.
- Смещение фрагмента: 13 битов
- Время жизни: 8 битов
- Протокол: 8 битов
- Контрольная сумма заголовка: 16 бит
- IP-адрес источника: 32 бита.
- IP-адрес получателя: 32 бита.
- Опции: переменная длина
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- 1 бит — флаг копирования. Показывает, если опция скопирована во все фрагменты.
- 2 бита — класс опции. Могут быть следующие классы: 0 — control, 2 — debugging и измерение, 1 и 3 — зарезервированы на будущее.
- 5 бит — номер опции.
- Приведем примеры опций:
- Безопастность — указывет уровень секретности дейтаграммы. Но на практике все его игнорируют.
- Строгая маршрутизация от источника — задает полный путь следования дейтаграммы.
- Свободная маршрутизация от источника — задает список маршрутизаторв, которыенельзя миновать.
- Запомнить маршрут — требует от всех маршрутизаторов добавлять свой IP-адрес.
- Временной штамп — требует от всех маршрутизаторв добавлять свой IP-адрес и текущее время.
- Обычно маршрутизаторы либо игнорируют опции, либо обрабатывают неэффективно, отодвигая в стороны как нечто необычное.
- В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле длины, а затем один или несколько информационных байтов. Размер этого поля должен быть кратен 4 байтам. Поле опции имеет следующий формат:
- Остаток (Padding): переменная длина
Маршрутизация[править]
Протокол IP требует, чтобы в маршрутизации участвовали все узлы (компьютеры). Длина маршрута, по которому будет передан пакет, может меняться в зависимости от того, какие узлы будут участвовать в доставке пакета. Каждый узел принимает решение о том, куда ему отправлять пакет на основании таблицы маршрутизации (routing tables).
Определение: |
Подсеть — логическое разбиение сети IP. |
Маска подсетиправить
Длина префикса не выводится из IP-адреса, поэтому протоколу маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины.
Определение: |
Маска подсети — двоичная маска, соответствующая длине префикса, в которой единицы указывают на сетевую часть. |
То есть маска подсети определяет как будут локально интерпретироваться IP адреса в сегменте IP сети, что для нас весьма важно, поскольку определяет процесс разбивки на подсети.
Стандартная маска подсети — все сетевые биты в адресе установлены в ‘1’ и все хостовые биты установлены в ‘0’.
Выполненение операции И между маской и IP-адресом позволяет выделить сетевую часть.
О маске подсети нужно помнить три вещи:
- Маска подсети предназначена только для локальной интерпретации локальных IP адресов (где локальный значит — в том же сетевом сегменте);
- Маска подсети — не IP адрес — она используется для локальной модификации интерпретации IP адреса.
Бесклассовая междоменная маршрутизацияправить
Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
Таблицы маршрутизации со временем сильно растут, и с этим нужно что-то делать. Маршрутизатор может узнавать о расположении IP-адресов по префиксам различной длины. Но вместо того чтобы разделять сеть на подсети, мы объединим несколько коротких префиксов в один длинный. Этот процесс называется агрегацией маршрута (route aggregation). Длинный префикс, полученный в результате, иногда называют суперсетью (supernet), в противоположность подсетям с разделением блоков адресов.
При агрегации IP-адреса содержатся в префиксах различной длины. Один и тот же IP-адрес может рассматриваться одним маршрутизатором как часть блока /22 (содержащего 210 адресов), а другим — как часть более крупного блока /20 (содержащего 212 адресов). Это зависит от того, какой информацией обладает маршрутизатор. Такой метод называется CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).
Также префиксы могут пересекаться. Согласно правилу, пакеты передаются в направлении самого специализированного блока, или самого длинного совпадающего префикса (longest matching prefix), в котором находится меньше всего IP-адресов.
По сути CIDR работает так:
- Когда прибывает пакет, необходимо определить, относится ли данный адрес к данному префиксу; для этого просматривается таблица маршрутизации. Может оказаться, что по значению подойдет несколько записей. В этом случае используется самый длинный префикс. То есть если найдено совпадение для маски /20 и /24, то для выбора исходящей линии будет использоваться запись, соответствующая /24.
- Однако этот процесс был бы трудоемким, если бы таблица маршрутизации просматривалась запись за записью. Вместо этого был разработан сложный алгоритм для ускорения процесса поиска адреса в таблице (Ruiz-Sanchez и др., 2001).
- В маршрутизаторах, предполагающих коммерческое использование, применяются специальные чипы VLSI, в которые данные алгоритмы встроены аппаратно.
Классы IP-сетейправить
Раньше использовали классовую адресацию.
Сколько бит используется сетевым ID и сколько бит доступно для идентификации хостов (интерфейсов) в этой сети, определяется сетевыми классами.
Всего 5 классов IP-адресов: A, B, C, D, E.
Их структура и диапазоны указаны на рисунке.
Существует также специальные адреса, которые зарезервированы для ‘несвязанных’ сетей — это сети, которые используют IP, но не подключены к Internet. Вот эти адреса:
- Одна сеть класса A: 10.0.0.0
- 16 сетей класса B: 172.16.0.0 — 172.31.0.0
- 256 сетей класса С: 192.168.0.0 — 192.168.255.0
Стандартные маски подсети для трех классов сетей:
- A класс — маска подсети: 255.0.0.0
- B класс — маска подсети: 255.255.0.0
- C класс — маска подсети: 255.255.255.0
Transport Layer
Transport layer builds on the network layer in order to provide data transport from a process on a source system machine to a process on a destination system. It is hosted using single or multiple networks, and also maintains the quality of service functions.
It determines how much data should be sent where and at what rate. This layer builds on the message which are received from the application layer. It helps ensure that data units are delivered error-free and in sequence.
Transport layer helps you to control the reliability of a link through flow control, error control, and segmentation or de-segmentation.
The transport layer also offers an acknowledgment of the successful data transmission and sends the next data in case no errors occurred. TCP is the best-known example of the transport layer.
Important functions of Transport Layers:
- It divides the message received from the session layer into segments and numbers them to make a sequence.
- Transport layer makes sure that the message is delivered to the correct process on the destination machine.
- It also makes sure that the entire message arrives without any error else it should be retransmitted.
2015: Операторы связи выявили проблемы с решениями на основе TCP/IP в сетях 4G
В 2015 году несколько операторов мобильной связи выявили проблемы с технологиями на основе TCP/IP, применяемыми в 4G. Сложности связаны с неэффективным использованием спектра в результате добавления функций мобильности, безопасности, качества обслуживания и других к протоколу, который никогда для них не разрабатывался. Последующие исправления и обходные пути, предназначенные для решения этих проблем, сами стали приводят к увеличению затрат, задержкам и большему энергопотреблению. Поэтому TCP/IP был признан не оптимальным для более продвинутых услуг 5G.
Группа по протоколам следующего поколения (ISG NGP) проанализировала проблемы и предложила альтернативные решения. По результатам работы были определены требования к технологиям-кандидатам, которые заключались в сильном уменьшении размеров заголовков, времени обработки пакетов и задержки на сети, но, кроме этого, в совместимости с текущими сетями TCP/IP, SDN и MPLS.
Шлюзы по умолчанию
Если компьютер tCP/IP должен общаться с хостом в другой сети, он обычно общается с помощью устройства, называемого маршрутизатором. В терминах TCP/IP маршрутизатор, указанный в хосте, который связывает подсеть хостов с другими сетями, называется шлюзом по умолчанию. В этом разделе объясняется, как TCP/IP определяет, отправлять ли пакеты в шлюз по умолчанию для достижения другого компьютера или устройства в сети.
Когда хост пытается взаимодействовать с другим устройством с помощью TCP/IP, он выполняет процесс сравнения с помощью определенной подсети и IP-адреса назначения по сравнению с подсети и собственным IP-адресом. В результате этого сравнения компьютеру сообщается, является ли назначение локальным хостом или удаленным хостом.
Если в результате этого процесса определяется назначение локального хоста, компьютер отправляет пакет в локальной подсети. Если в результате сравнения определяется назначение удаленного хоста, компьютер перенаправлен пакет в шлюз по умолчанию, определенный в свойствах TCP/IP. После этого маршрутизатор несет ответственность за перенаправку пакета в правильную подсеть.
Сетевые протоколы UDP, TCP, ICMP
В рамках протокола TCP/IP для передачи данных используются протоколы — TCP и UDP. Многие наверняка слышали, что есть порты как TCP, так и UDP, но не все знают в чем разница и что это вообще. И так..
Передача данных по протоколу TCP (Transmission Control Protocol — Протокол Управления Передачей) предусматривает наличие подтверждений получения информации. «-Ну, мол, — получил? -Получил!» Если же передающая сторона не получит в установленные сроки необходимого подтверждения, то данные будут переданы повторно. Поэтому протокол TCP относят к протоколам, предусматривающим соединение, а UDP (User Datagram Protocol — Протокол Пользовательских Датаграмм) — нет. UDP применяется в тех случаях, когда не требуется подтверждения приема (например, DNS-запросы или IP-телефония (яркий представитель которой, — Skype) ). То есть разница заключается в наличии подтверждения приема. Казалось бы «Всего то!», но на практике это играет важную роль.
Есть еще так же протокол ICMP (Internet Control Message Protocol — межсетевой протокол управляющих сообщений), который используется для передачи данных о параметрах сети. Он включает в себя служебные типы пакетов, таки как ping, distination unreachable, TTL и пр.
Связующий слой
Протоколы канального уровня работают в рамках локального сетевого подключения, к которому подключен хост. Этот режим называется каналом на языке TCP / IP и является самым низким уровнем компонентов пакета. Ссылка включает все хосты, доступные без прохождения через маршрутизатор. Таким образом, размер канала определяется конструкцией сетевого оборудования. В принципе, TCP / IP разработан как независимый от оборудования и может быть реализован поверх практически любой технологии канального уровня. Это включает не только аппаратные реализации, но и уровни виртуальных каналов, такие как виртуальные частные сети и сетевые туннели .
Канальный уровень используется для перемещения пакетов между интерфейсами Интернет-уровня двух разных хостов по одному и тому же каналу. Процессами передачи и приема пакетов по каналу можно управлять в драйвере устройства для сетевой карты , а также в прошивке или с помощью специализированных наборов микросхем . Они выполняют такие функции, как кадрирование, для подготовки пакетов Интернет-уровня к передаче и, наконец, передают кадры на физический уровень и через среду передачи . Модель TCP / IP включает спецификации для преобразования методов сетевой адресации, используемых в Интернет-протоколе, в адреса канального уровня, такие как адреса управления доступом к среде (MAC). Однако все другие аспекты ниже этого уровня неявно предполагаются существующими и явно не определены в модели TCP / IP.
Канальный уровень в модели TCP / IP имеет соответствующие функции на уровне 2 модели OSI.
Уровни стека протоколов TCP/IP
Здесь существует определенная иерархия. Стек протоколов TCP/IP предусматривает четыре уровня, каждый из которых обрабатывает свой набор протоколов:
Прикладной уровень: создан для обеспечения работы пользователя с сетью На этом уровне обрабатывается все то, что видит и делает пользователь. Уровень позволяет пользователю получить доступ к различным сетевым службам, например: доступ к базам данных, возможность прочитать список файлов и открыть их, отправить электронное сообщение или открыть веб-страницу. Вместе с пользовательскими данными и действиям, на этом уровне передается служебная информация.
Транспортный уровень: это механизм передачи пакетов в чистом виде. На этом уровне совершенно не имеет значения ни содержимое пакета, ни его принадлежность к какому бы то ни было действию. На этом уровне имеет значение только адрес узла отправки пакета и адрес узла, на который пакет должен быть доставлен. Как правило, размер фрагментов, передаваемых с использованием разных протоколов, может изменяться, потому на этом уровне блоки информации могут дробиться на выходе и собираться в единое целое в точке назначения. Этим обусловлена возможная потеря данных, если в момент передачи очередного фрагмента произойдет кратковременный разрыв соединения.
Транспортный уровень включает в себя много протоколов, которые делятся на классы, от простейших, которые просто передают данные, до сложных, которые оснащены функционалом подтверждения приема, или повторного запроса недополученного блока данных.
Данный уровень, предоставляет вышестоящему (прикладному) два типа сервиса:
- Осуществляет гарантированную доставку, с помощью протокола ТСР.
- Осуществляет доставку по возможности по протоколу UDP.
Чтобы обеспечить гарантированную доставку, согласно протоколу TCP устанавливается соединение, которое позволяет выставлять на пакетах нумерацию на выходе и подтверждать их прием на входе. Нумерация пакетов и подтверждение приема — это так называемая служебная информация. Этот протокол поддерживает передачу в режиме «Дуплекс». Кроме того, благодаря продуманному регламенту протокола, он считается очень надежным.
Протокол UDP предназначен для моментов, когда невозможно настроить передачу по протоколу TCP, либо приходится экономить на сегменте сетевой передачи данных. Также протокол UDP может взаимодействовать с протоколами более высокого уровня, для повышения надежности передачи пакетов.
Сетевой уровень или «уровень интернета»: базовый уровень для всей модели TCP/IP. Основной функционал этого уровня идентичен одноименному уровню модели OSI и описывает перемещение пакетов в составной сети, состоящей из нескольких, более мелких подсетей. Он связывает соседние уровни протокола TCP/IP.
Сетевой уровень является связующим между вышестоящим транспортным уровнем и нижестоящим уровнем сетевых интерфейсов. Сетевой уровень использует протоколы, которые получают запрос от транспортного уровня, и посредством регламентированной адресации передают обработанный запрос на протокол сетевых интерфейсов, указывая, по какому адресу направить данные.
На этом уровне используются следующие сетевые протоколы TCP/IP: ICMP, IP, RIP, OSPF. Основным, и наиболее популярным на сетевом уровне, конечно же является протокол IP (Internet Protocol). Основной его задачей является передача пакетов от одного роутера к другому до тех пор, пока единица данных не попадет на сетевой интерфейс узла назначения. Протокол IP разворачивается не только на хостах, но и на сетевом оборудовании: маршрутизаторах и управляемых коммутаторах. Протокол IP работает по принципу негарантированной доставки с максимальными усилиями. Т. е., для отправки пакета нет необходимости заранее устанавливать соединение. Такой вариант приводит к экономии трафика и времени на движении лишних служебных пакетов. Пакет направляется в сторону назначения, и вполне возможно, что узел останется недоступным. В таком случае возвращается сообщение об ошибке.
Уровень сетевых интерфейсов: отвечает за то, чтобы подсети с разными технологиями могли взаимодействовать друг с другом и передавать информацию в том же режиме. Реализовано это двумя простыми шагами:
- Кодирование пакета в единицу данных промежуточной сети.
- Преобразование информации о месте назначения в стандарты необходимой подсети и отправка единицы данных.
Этот подход позволяет постоянно расширять количество поддерживаемых технологий построения сетей. Как только появляется новая технология, она сразу попадает в стек проколов TCP/IP и позволяет сетям со старыми технологиями передавать данные в сети, построенные с применением более современных стандартов и способов.
Уровни модели TCP / IP
- Уровень сетевого интерфейса: Этот уровень действует как интерфейс между хостами и каналами передачи и используется для передачи дейтаграмм. Он также определяет, какие операции должны выполняться с помощью таких ссылок, как последовательный канал и классический Ethernet, для выполнения требований уровня Интернета без установления соединения.
- Интернет-уровень: Цель этого уровня — передать независимый пакет в любую сеть, которая движется к месту назначения (может находиться в другой сети). Он включает IP (Интернет-протокол), ICMP (Интернет-протокол управляющих сообщений) и ARP (протокол разрешения адресов) в качестве стандартного формата пакета для уровня.
- Транспортный уровень: Он обеспечивает бесперебойную сквозную доставку данных между исходным и целевым хостами в форме дейтаграмм. Протоколы, определяемые этим уровнем, — это TCP (протокол управления передачей) и UDP (протокол дейтаграмм пользователя).
- Уровень приложения: Этот уровень позволяет пользователям получать доступ к услугам глобального или частного Интернета. На этом уровне описываются различные протоколы: виртуальный терминал (TELNET), электронная почта (SMTP) и передача файлов (FTP). Некоторые дополнительные протоколы, такие как DNS (система доменных имен), HTTP (протокол передачи гипертекста) и RTP (транспортный протокол в реальном времени). Работа этого уровня представляет собой комбинацию уровня приложения, представления и сеанса модели OSI.
Названия слоев и количество слоев в литературе
В следующей таблице показаны различные сетевые модели. Количество слоев варьируется от трех до семи.
RFC 1122, Internet STD 3 (1989) | Академия Cisco | Куросе, Форузан | Комер, Козерок | Киоски | Таненбаум | Эталонная модель Arpanet (RFC 871) | Модель OSI |
---|---|---|---|---|---|---|---|
Четыре слоя | Четыре слоя | Пять слоев | Четыре + один слой | Пять слоев | Пять слоев | Три слоя | Семь слоев |
«Интернет-модель» | «Интернет-модель» | «Пятиуровневая модель Интернета» или «Набор протоколов TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Модель TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Эталонная модель Арпанет» | Модель OSI |
заявка | заявка | заявка | заявка | заявка | заявка | Прикладной процесс | заявка |
Презентация | |||||||
Сессия | |||||||
Транспорт | Транспорт | Транспорт | Транспорт | Хост-хост или транспорт | Транспорт | Хост-хост | Транспорт |
Интернет | Межсетевое взаимодействие | Сеть | Интернет | Интернет | Интернет | Сеть | |
Ссылка | Сетевой интерфейс | Канал передачи данных | Канал передачи данных (сетевой интерфейс) | Доступ к сети | Канал передачи данных | Сетевой интерфейс | Канал передачи данных |
Физический | (Аппаратное обеспечение) | Физический | Физический | Физический |
Некоторые сетевые модели взяты из учебников, которые являются вторичными источниками, которые могут противоречить цели RFC 1122 и других первичных источников IETF .