Сетевой протокол
Содержание:
- Какие ещё протоколы используются в Интернете
- Уровень приложения
- О средствах настройки, проверки
- Интернет-уровень
- Стандарты (протокола) обмена информацией
- Общие сведения
- Структура дейтаграммы
- Названия слоев и количество слоев в литературе
- TCP, IP и UDP
- Названия слоев и количество слоев в литературе
- Стандарты (протокола) обмена информацией
- Технические детали
- Надежность
- Уровни сетей и модель OSI
- Сетевые модели и протоколы
- Преимущества стека TCP/IP
Какие ещё протоколы используются в Интернете
Помимо выше указанных, для сети существуют и другие решения. У каждого свои особенности:
- MAC, или Media Access Control отвечает за идентификацию устройств в Сети на одном из самых низких уровней. Уникальным MAC-адресом снабжается каждое приспособление, которое подключается к Сети. Эту информацию задаёт ещё производитель. Физические адреса используются в случае с локальными сетями, по которым передают сведения. Это один из немногих протоколов, до сих пор остающийся достаточно популярным.
- DNS — протокол для передачи файлов. Отвечает за преобразование в сложные IP-адреса данных, которые раньше были легко понятны и читаемы. Обратный порядок преобразования тоже работает. Благодаря этому становится просто получать доступ к сайтам с помощью доменного имени.
- SSH реализуется для удалённого управления системой с участием защищённого канала. Этот вариант для работы используют многие технологии.
Важно! При выборе того или иного метода отталкиваться нужно от того, для чего предназначен тот или иной элемент. Одинаковым остаётся способ настройки в разных операционных системах
Только в некоторых специализированных компонентах заметно отличие.
Системы Windows изначально были настроены так, чтобы в качестве универсального протокола использовать TCP/IP. Все остальные функции не настраиваются вообще либо настраиваются, но автоматически.
Чёткая определённость и структурированность — главные условия для организации правильного обмена информацией по Сети между компьютерами. По этой причине применяются различные стандарты. Первоначально для установки протоколов использовались международные соглашения. Различные задачи, типы информации, протоколы могут быть разными в зависимости от того, что нужно пользователям или самим сетям.
Обратите внимание! Настройки в большинстве случаев автоматические, никаких проблем с работой возникнуть не должно. Хотя и ручная корректировка не доставляет хлопот, если следовать простым инструкциям
Пользователю, как правило, все равно, какие существуют виды для подсоединения его девайсов к интернету, так как потребителю всегда важно лишь удобство качество связи и ее стоимость. Но существуют ситуации, когда требуется уметь дать ответ на этот вопрос, например, в случае необходимости самостоятельно настроить работу домашнего маршрутизатора
Но существуют ситуации, когда требуется уметь дать ответ на этот вопрос, например, в случае необходимости самостоятельно настроить работу домашнего маршрутизатора.
Уровень приложения
Прикладной уровень включает в себя протоколы , используемые в большинстве приложений для предоставления услуг пользователя или обмена данных приложений за сетевые соединения , установленных протоколами нижнего уровня. Это может включать некоторые базовые службы поддержки сети, такие как протоколы маршрутизации и конфигурация хоста. Примеры протоколов прикладного уровня включают протокол передачи гипертекста (HTTP), протокол передачи файлов (FTP), простой протокол передачи почты (SMTP) и протокол динамической конфигурации хоста (DHCP). Данные, закодированные в соответствии с протоколами прикладного уровня, инкапсулируются в единицы протокола транспортного уровня (такие как потоки TCP или дейтаграммы UDP), которые, в свою очередь, используют протоколы нижнего уровня для фактической передачи данных.
Модель TCP / IP не учитывает специфику форматирования и представления данных и не определяет дополнительные уровни между прикладным и транспортным уровнями, как в модели OSI (уровни представления и сеанса). Согласно модели TCP / IP, такие функции являются областью библиотек и интерфейсов прикладного программирования . Прикладной уровень в модели TCP / IP часто сравнивают с комбинацией пятого (сеансовый), шестого (представление) и седьмого (приложения) уровней модели OSI.
Протоколы прикладного уровня часто связаны с конкретными клиент-серверными приложениями, а общие службы имеют хорошо известные номера портов, зарезервированные Internet Assigned Numbers Authority (IANA). Например, протокол передачи гипертекста использует порт сервера 80, а Telnet использует порт сервера 23. Клиенты, подключающиеся к службе, обычно используют эфемерные порты , т. Е. Номера портов , назначаемые только на время транзакции случайным образом или из определенного диапазона, настроенного в заявление.
На уровне приложений модель TCP / IP различает пользовательские протоколы и протоколы поддержки . Протоколы поддержки предоставляют услуги системе сетевой инфраструктуры. Пользовательские протоколы используются для реальных пользовательских приложений. Например, FTP — это протокол пользователя, а DNS — протокол поддержки.
Хотя приложения обычно осведомлены о ключевых качествах соединения транспортного уровня, таких как IP-адреса конечных точек и номера портов, протоколы прикладного уровня обычно рассматривают протоколы транспортного уровня (и более низких уровней) как черные ящики, которые обеспечивают стабильное сетевое соединение, через которое осуществляется обмен данными. . Транспортный уровень и уровни нижнего уровня не заботятся о специфике протоколов прикладного уровня. Маршрутизаторы и коммутаторы обычно не проверяют инкапсулированный трафик, а просто предоставляют для него канал. Однако некоторые брандмауэры и приложения для регулирования полосы пропускания используют глубокую проверку пакетов для интерпретации данных приложения. Примером может служить протокол резервирования ресурсов (RSVP). Иногда необходимо учитывать полезную нагрузку приложения.
О средствах настройки, проверки
В операционной системе Windows настройка протокола становится одной из самых простых операций. Достаточно зайти в меню с параметрами Сети, где выбирается соответствующий пункт. Раньше решение вопроса было более простым. Сейчас пользователи выбирают между двумя вариантами подключения:
- IPv6;
- IPv4.
Обратите внимание! iPv4 — вариант стандартной настройки для большинства ситуаций. IPv6 — новая версия протокола, которая до сих пор остаётся невостребованной
Доступ к состоянию сети с помощью системного трея помогут провести проверку в случае необходимости. Значок на панели сообщит пользователю о том, доступна сеть или нет. Определение текущего статуса не доставляет проблем.
Интернет-уровень
Internetworking требует отправки данных из исходной сети в сеть назначения. Этот процесс называется маршрутизацией и поддерживается адресацией хоста и идентификацией с использованием иерархической системы IP-адресации . Интернет слой обеспечивает ненадежные датаграммы средство передачи между узлами , расположенных на потенциально различные IP — сетях посредством пересылки дейтаграммы соответствующего маршрутизатора следующего перехода для дальнейшей ретрансляции к месту назначения. Интернет-уровень отвечает за отправку пакетов по потенциально нескольким сетям. Благодаря этой функциональности уровень Интернета делает возможным межсетевое взаимодействие, взаимодействие различных IP-сетей и, по сути, устанавливает Интернет.
Интернет-уровень не делает различий между различными протоколами транспортного уровня. IP передает данные для множества различных протоколов верхнего уровня . Каждый из этих протоколов идентифицируется уникальным номером протокола : например, Internet Control Message Protocol (ICMP) и Internet Group Management Protocol (IGMP) — это протоколы 1 и 2, соответственно.
Интернет-протокол является основным компонентом Интернет-уровня, и он определяет две системы адресации для идентификации сетевых узлов и определения их местоположения в сети. Исходная адресная система ARPANET и ее преемника, Интернет, — это Интернет-протокол версии 4 (IPv4). Он использует 32-битный IP-адрес и поэтому способен идентифицировать примерно четыре миллиарда хостов. Это ограничение было снято в 1998 году путем стандартизации протокола Интернета версии 6 (IPv6), в котором используются 128-битные адреса. Производственные реализации IPv6 появились примерно в 2006 году.
Стандарты (протокола) обмена информацией
Это тоже название определённых правил, по которым передают сведения между участниками Сети в том или ином случае. Передаваемая кодированная информация становится понятной для всех абонентов благодаря применению таких правил. Обычно к ним относят следующие явления:
- приёмы реализации по контролю;
- структура, по которой удалось построить базы данных и т. д.
Обратите внимание! Надёжность передачи информации повышается, если элементы достаточно сложные. Но скорость обработки из-за этого может уменьшаться
Какой протокол является базовым в Интернете — будет рассмотрено далее.
Важно! Практически каждый разработчик может использовать свои собственные решения. Но подобные системы доступны только ограниченному числу пользователей
Интеграция в сложные сетевые процессы обмена информацией становится недоступной.
Поэтому в международной практике используют варианты, которые можно разделить на две крупные ветки. Это уровень обычных компьютерных сетей и промышленные либо полевые линии связи. Понятие используется на практике достаточно давно.
Общие сведения
Сетевой протокол – это набор правил, который позволяет обмениваться данными нескольким устройствам связанным сетью. Ни одно удалённое подключение не может обойтись без работы протоколов, без них система просто не знала бы как взаимодействовать и общаться. Если обобщать, то можно сказать что это семейство стандартов, предписывающее методы общения, а также спецификации оборудования.
Для описания и деления протоколов используется семиуровневая модель OSI (Open System Interconnection — взаимодействие открытых систем, ВОС). В этой классификации описываются все формы взаимодействия необходимые для полноценной работы оборудования:
• Приложение;
• Представление;
• Сеанс;
• Транспорт;
• Сеть;
• Передача данных;
• Физическое воплощение.
Структура дейтаграммы
Пакет ICMP инкапсулируется в пакет IPv4. Пакет состоит из разделов заголовка и данных.
Заголовок
Заголовок ICMP начинается после и идентифицируется номером протокола IP «1». Все пакеты ICMP имеют 8-байтовый заголовок и раздел данных переменного размера. Первые 4 байта заголовка имеют фиксированный формат, а последние 4 байта зависят от типа / кода этого пакета ICMP.
Смещения | Октет | 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 год |
4 | 32 |
- Тип
- Тип ICMP, см. .
- Код
- Подтип ICMP, см. .
- Контрольная сумма
- Контрольная сумма Интернета (RFC 1071) для проверки ошибок, рассчитанная на основе заголовка ICMP и данных со значением 0, подставленным в это поле.
- Остальная часть заголовка
- Четырехбайтовое поле, содержимое зависит от типа и кода ICMP.
Данные
Сообщения об ошибках ICMP содержат раздел данных, который включает копию всего заголовка IPv4 плюс по крайней мере первые восемь байтов данных из пакета IPv4, вызвавшего сообщение об ошибке. Максимальная длина сообщений об ошибках ICMP составляет 576 байт. Эти данные используются хостом для сопоставления сообщения с соответствующим процессом. Если протокол более высокого уровня использует номера портов, предполагается, что они находятся в первых восьми байтах данных исходной дейтаграммы.
Был использован переменный размер раздела пакетных данных ICMP . В « Пинге смерти » большие или фрагментированные пакеты ICMP используются для атак типа «отказ в обслуживании» . Данные ICMP также можно использовать для создания скрытых каналов связи. Эти каналы известны как туннели ICMP .
Названия слоев и количество слоев в литературе
В следующей таблице показаны различные сетевые модели. Количество слоев варьируется от трех до семи.
RFC 1122, Internet STD 3 (1989) | Академия Cisco | Куросе, Форузан | Комер, Козерок | Киоски | Таненбаум | Эталонная модель Arpanet (RFC 871) | Модель OSI |
---|---|---|---|---|---|---|---|
Четыре слоя | Четыре слоя | Пять слоев | Четыре + один слой | Пять слоев | Пять слоев | Три слоя | Семь слоев |
«Интернет-модель» | «Интернет-модель» | «Пятиуровневая модель Интернета» или «Набор протоколов TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Модель TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Эталонная модель Арпанет» | Модель OSI |
заявка | заявка | заявка | заявка | заявка | заявка | Прикладной процесс | заявка |
Презентация | |||||||
Сессия | |||||||
Транспорт | Транспорт | Транспорт | Транспорт | Хост-хост или транспорт | Транспорт | Хост-хост | Транспорт |
Интернет | Межсетевое взаимодействие | Сеть | Интернет | Интернет | Интернет | Сеть | |
Ссылка | Сетевой интерфейс | Канал передачи данных | Канал передачи данных (сетевой интерфейс) | Доступ к сети | Канал передачи данных | Сетевой интерфейс | Канал передачи данных |
Физический | (Аппаратное обеспечение) | Физический | Физический | Физический |
Некоторые сетевые модели взяты из учебников, которые являются вторичными источниками, которые могут противоречить цели RFC 1122 и других первичных источников IETF .
TCP, IP и UDP
TCP (Transmission Control Protocol, протокол управления передачей данных) распространенный протокол, разработанный много лет назад. Он используется не только в локальных сетях, но и в сети Интернет, что однозначно характеризует TCP с хорошей стороны.
Главным достоинством протокола является его надежность, достигаемая путем использования подтверждающих пакетов, которые присылаются каждый раз и ответ на полученное сообщение. При этом в первую очередь устанавливается логическая связь между компьютером-отправителем и компьютером-получателем, что гарантирует успешную доставку пакетов.
Еще одним механизмом надежности передачи данных является механизм,отслеживающий время жизни пакета. — TTL (Time То Live, время жизни). Если по истечении заданного времени компьютер-получатель не пришлет подтверждение о доставке очередного пакета данных, то компьютер-отправитель перешлет эти данные повторно. Кроме того, данные будут повторно посланы, если пакет оказался поврежденным и компьютер-получатель его отклоняет, о чем сообщает отправителю.
IP (Internet Protocol, протокол межсетевого взаимодействия) — протокол, который обычно применяется вместе с протоколом TCP Для работы он использует готовые данные маршрутизации, поэтому не контролирует доставку сообщений адресату. Располагая информацией о маршрутизации между выбранными компьютерами. этот протокол просто добавляет к пакету адрес отправителя и получателя, и пересылает его дальше. Дальнейшая судьба отправленных данных неизвестна, поэтому функцию контроля должен выполнять другой протокол, н частности
TCP. Чтобы хоть как-то повысить надежность, протокол IP вкладывает в пакет контрольную сумму, что позволяет компьютеру-получателю удостовериться в том. что пакет принят без ошибок или, в противном случае, отвергнуть его.Преимуществом протокола является возможность фрагментации (разделения на компьютере-отправителе большого пакета на более мелкие) с последующей их дефрагментацией на компьютере-получателе.
UDP( User Datagram Protocol, протокол пользовательских дейтаграмм) — один из самых быстрых, но не очень надежных протоколов, которые используют в сети для передачи данных. Он работает практически так же. как и протокол IP, однако после удачного приема пакета компьютер-получатель присылает соответствующее подтверждение. При этом логическое соединение между компьютерами не требуется. то есть пакет отсылается в надежде (или с уверенностью) на то, что нужный компьютер находится в сети и может его принять. Если подтверждение доставки не получено, значит, через некоторое время компьютер-отправитель повторно вышлет необходимый пакет данных.
Как ни странно, протокол UDP применяется в сети достаточно часто. Благодарить за это нужно скорость, с которой оп работает. Эта скорость достигается за счет отсутствия необходимости соединения с другими компьютерами, что позволяет использовать трафик сети в нужном направлении. Так. протокол UDP часто используется. например, в сетевых играх или для передачи звуковых данных с интернет- радио (когда надежность доставки пакетов не играет большой роли).
Названия слоев и количество слоев в литературе
В следующей таблице показаны различные сетевые модели. Количество слоев варьируется от трех до семи.
RFC 1122, Internet STD 3 (1989) | Академия Cisco | Куросе, Форузан | Комер, Козерок | Киоски | Таненбаум | Эталонная модель Arpanet (RFC 871) | Модель OSI |
---|---|---|---|---|---|---|---|
Четыре слоя | Четыре слоя | Пять слоев | Четыре + один слой | Пять слоев | Пять слоев | Три слоя | Семь слоев |
«Интернет-модель» | «Интернет-модель» | «Пятиуровневая модель Интернета» или «Набор протоколов TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Модель TCP / IP» | «Пятиуровневая эталонная модель TCP / IP» | «Эталонная модель Арпанет» | Модель OSI |
заявка | заявка | заявка | заявка | заявка | заявка | Прикладной процесс | заявка |
Презентация | |||||||
Сессия | |||||||
Транспорт | Транспорт | Транспорт | Транспорт | Хост-хост или транспорт | Транспорт | Хост-хост | Транспорт |
Интернет | Межсетевое взаимодействие | Сеть | Интернет | Интернет | Интернет | Сеть | |
Ссылка | Сетевой интерфейс | Канал передачи данных | Канал передачи данных (сетевой интерфейс) | Доступ к сети | Канал передачи данных | Сетевой интерфейс | Канал передачи данных |
Физический | (Аппаратное обеспечение) | Физический | Физический | Физический |
Некоторые сетевые модели взяты из учебников, которые являются вторичными источниками, которые могут противоречить цели RFC 1122 и других первичных источников IETF .
Стандарты (протокола) обмена информацией
Это тоже название определённых правил, по которым передают сведения между участниками Сети в том или ином случае. Передаваемая кодированная информация становится понятной для всех абонентов благодаря применению таких правил. Обычно к ним относят следующие явления:
- приёмы реализации по контролю;
- структура, по которой удалось построить базы данных и т. д.
Обратите внимание! Надёжность передачи информации повышается, если элементы достаточно сложные. Но скорость обработки из-за этого может уменьшаться
Какой протокол является базовым в Интернете — будет рассмотрено далее.
Важно! Практически каждый разработчик может использовать свои собственные решения. Но подобные системы доступны только ограниченному числу пользователей
Интеграция в сложные сетевые процессы обмена информацией становится недоступной.
Поэтому в международной практике используют варианты, которые можно разделить на две крупные ветки. Это уровень обычных компьютерных сетей и промышленные либо полевые линии связи. Понятие используется на практике достаточно давно.
Технические детали
ICMP является частью набора интернет-протоколов, как определено в RFC 792. Сообщения ICMP обычно используются для целей диагностики или управления или генерируются в ответ на ошибки в IP- операциях (как указано в RFC 1122). Ошибки ICMP направляются на исходный IP-адрес исходного пакета.
Например, каждое устройство (такое как промежуточный маршрутизатор ), пересылающее дейтаграмму IP, сначала уменьшает время жизни (TTL) в поле IP-заголовка на единицу. Если результирующий TTL равен 0, пакет отбрасывается, и сообщение ICMP о передачи отправляется на адрес источника дейтаграммы.
Многие часто используемые сетевые утилиты основаны на сообщениях ICMP. Команда traceroute может быть реализована путем передачи IP-дейтаграмм со специально заданными полями заголовка IP TTL и поиска сообщений ICMP, превышающих время передачи, и сообщений о сгенерированных в ответ. Соответствующая утилита ping реализована с использованием сообщений эхо-запроса и эхо-ответа ICMP .
ICMP использует базовую поддержку IP, как если бы это был протокол более высокого уровня, однако ICMP фактически является неотъемлемой частью IP. Хотя сообщения ICMP содержатся в стандартных IP-пакетах, сообщения ICMP обычно обрабатываются как особый случай, отличный от обычной обработки IP. Во многих случаях необходимо проверить содержимое сообщения ICMP и доставить соответствующее сообщение об ошибке приложению, ответственному за передачу IP-пакета, который вызвал отправку сообщения ICMP.
ICMP — это протокол сетевого уровня . Нет номера порта TCP или UDP, связанного с пакетами ICMP, поскольку эти номера связаны с транспортным уровнем выше.
Надежность
Конструкция набора Интернет-протоколов придерживается принципа сквозного соединения , концепции, адаптированной из проекта CYCLADES . В соответствии с принципом непрерывности, сетевая инфраструктура считается ненадежной по своей природе на любом отдельном сетевом элементе или среде передачи и является динамичной с точки зрения доступности каналов и узлов. Не существует централизованного мониторинга или средства измерения производительности, отслеживающего или поддерживающего состояние сети. В целях снижения сложности сети интеллектуальные ресурсы сети намеренно размещаются в конечных узлах .
Вследствие такой конструкции Интернет-протокол обеспечивает доставку только с максимальной эффективностью, а его услуги характеризуются как ненадежные . На языке сетевой архитектуры это протокол без установления соединения , в отличие от связи с установлением соединения . Могут возникнуть различные неисправности, такие как повреждение данных , потеря пакетов и дублирование. Поскольку маршрутизация является динамической, что означает, что каждый пакет обрабатывается независимо, и поскольку сеть не поддерживает состояние на основе пути предыдущих пакетов, разные пакеты могут направляться в один и тот же пункт назначения по разным путям, что приводит к неупорядоченной доставке в адрес. получатель.
Все неисправные состояния в сети должны обнаруживаться и компенсироваться участвующими конечными узлами. Протоколы верхнего уровня набора Интернет-протоколов отвечают за решение проблем с надежностью. Например, хост может буферизовать сетевые данные, чтобы гарантировать правильный порядок, прежде чем данные будут доставлены в приложение.
IPv4 обеспечивает защиту, гарантирующую, что заголовок IP-пакета не содержит ошибок. Узел маршрутизации отбрасывает пакеты, не прошедшие проверку контрольной суммы заголовка . Хотя протокол управляющих сообщений Интернета (ICMP) обеспечивает уведомление об ошибках, узел маршрутизации не требуется уведомлять какой-либо конечный узел об ошибках. IPv6, напротив, работает без контрольных сумм заголовков, поскольку предполагается , что текущая технология канального уровня обеспечивает достаточное обнаружение ошибок.
Уровни сетей и модель OSI
Обычно, сети обсуждаются в горизонтальной плоскости, рассматриваются протоколы сети интернет верхнего уровня и приложения. Но для установки соединений между двумя компьютерами используется множество вертикальных слоев и уровней абстракции. Это означает, что существует несколько протоколов, которые работают друг поверх друга для реализации сетевого соединения. Каждый следующий, более высокий слой абстрагирует передаваемые данные и делает их проще для восприятия следующим слоем, и в конечном итоге приложением.
Существует семь уровней или слоев работы сетей. Нижние уровни будут отличаться в зависимости от используемого вами оборудования, но данные будут передаваться одни и те же и будут иметь один и тот же вид. На другую машину данные всегда передаются на самом низком уровне. На другом компьютере, данные проходят все слои в обратном порядке. На каждом из слоев к данным добавляется своя информация, которая поможет понять что делать с этим пакетом на удаленном компьютере.
Модель OSI
Так сложилось исторически, что когда дело доходит до уровней работы сетей, используется модель OSI или Open Systems Interconnect. Она выделяет семь уровней:
- Уровень приложений — самый верхний уровень, представляет работу пользователя и приложений с сетью Пользователи просто передают данные и не задумываются о том, как они будут передаваться;
- Уровень представления — данные преобразуются в более низкоуровневый формат, чтобы быть такими, какими их ожидают получить программы;
- Уровень сессии — на этом уровне обрабатываются соединения между удаленным компьютерами, которые будут передавать данные;
- Транспортный уровень — на этом уровне организовывается надежная передача данных между компьютерами, а также проверка получения обоими устройствами;
- Сетевой уровень — используется для управления маршрутизацией данных в сети пока они не достигнут целевого узла. На этом уровне пакеты могут быть разбиты на более мелкие части, которые будут собраны получателем;
- Уровень соединения — отвечает за способ установки соединения между компьютерами и поддержания его надежности с помощью существующих физических устройств и оборудования;
- Физический уровень — отвечает за обработку данных физическими устройствами, включает в себя программное обеспечение, которое управляет соединением на физическом уровне, например, Ehternet или Wifi.
Как видите, перед тем, как данные попадут к аппаратному обеспечению им нужно пройти множество слоев.
Модель протоколов TCP/IP
Модель TCP/IP, еще известная как набор основных протоколов интернета, позволяет представить себе уровни работы сети более просто. Здесь есть только четыре уровня и они повторяют уровни OSI:
- Приложения — в этой модели уровень приложений отвечает за соединение и передачу данными между пользователям. Приложения могут быть в удаленных системах, но они работают как будто бы находятся в локальной системе;
- Транспорт — транспортный уровень отвечает за связь между процессами, здесь используются порты для определения какому приложению нужно передать данные и какой протокол использовать;
- Интернет — на этом уровне данные передаются от узла к узлу по сети интернет. Здесь известны конечные точки соединения, но не реализуется непосредственная связь. Также на этом уровне определяются IP адреса;
- Соединение — этот уровень реализует соединение на физическом уровне, что позволяет устройствам передавать между собой данные не зависимо от того, какие технологии используются.
Эта модель менее абстрактная, но мне она больше нравиться и ее проще понять, поскольку она привязана к техническим операциям, выполняемым программами. С помощью каждой из этих моделей можно предположить как на самом деле работает сеть. Фактически, есть данные, которые перед тем, как будут переданы, упаковываются с помощью нескольких протоколов, передаются через сеть через несколько узлов, а затем распаковываются в обратном порядке получателем. Конечные приложения могут и не знать что данные прошли через сеть, для них все может выглядеть как будто обмен осуществлялся на локальной машине.
Сетевые модели и протоколы
Сетевой протокол — набор правил и действий (очерёдности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть системами.
Стандартизированный протокол позволяет разрабатывать интерфейсы (на физическом или прикладном уровне), не привязанные к конкретной аппаратной или программной платформе.
OSI & TCP/IP
В настоящее время для описания сетевых протоколов часто используется модель OSI
(Open System Interconnection — взаимодействие открытых систем) состоящая из 7 уровней:
- прикладной (application) — HTTP, WebSocket
- представления (presentation)
- сеансовый (session)
- транспортный (transport) — TCP, UDP
- сетевой (network) — IP
- канальный (data link) — Ethernet
- физический (physical)
Эта модель, предложенная ISO, хорошо описывает взаимодействие систем в теории, но она сама и протоколы,
которые были предложены для ее реализации, не получили широкого распростронения на практике, и самой популярной моделью
стал 4-уровневый (или 5, в зависимости от точки зрения) стек протоколов TCP/IP:
- прикладной (application layer) — HTTP, WebSocket, gRPC
- транспортный (transport layer) — TCP, UDP
- сетевой (internet layer) — IP
- канальный (network access layer / data link) — Ethernet, IEEE 802.11
- физический* (physical)
На какой уровень вы бы отнесли следующие протоколы?
- FTP
- SSL / TLS
- NTP (network time protocol)
- SSH
- gRPC
- BitTorrent
- BGP (Border Gateway Protocol)
- DNS
- ARP (Address Resolution Protocol)
Каждый уровень и протокол использует собственные абстракции которые доступны протоколам более высоких уровней.
Например, для TCP нет понятия «сообщения» — этот протокол оперирует потоками данных,
в то время как для IP четко определено понятие пакета для которого определен максимальный размер, который диктуется MTU конкретной сети.
При передаче данных с более высокого уровня, протокол низкого уровня добавляет служебные заголовки и может дополнительно фрагментировать данные.
TCP & UDP
Самыми распространенными протоколами транспортного уровня являются TCP & UDP
— TCP (Transmission Control Protocol) — предоставляет поток данных с предварительной установкой соединения,
осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета,
гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи.
— UDP (User Datagram Protocol) — предоставляет возможность отправки сообщений без необходимости предварительной
установки специальных каналов передачи данных.
Оба протокола используют протокол IP для адресации и передачи данных в сети.
TCP требует обязательного установления соединения (handshake):
Утановление соединения может занимать значительное время — например, при latency между системами в 50 мс,
данные могут быть получены второй стороной не ранее чем через 150 мс.
Кстати, с точки зрения TCP нет понятия «клиент» и «сервер» — обе стороны соединения равноправны и могут посылать и принимать данные независимо.
После того как соединение установлено, оно теоретически может существовать бесконечно долго.
На практике же это не так — большое количество промежуточных proxy серверов, имеющие свою точку зрения.
Несмотря на то что TCP является протоколом надежной передачи данных, он лишь гарантирует что при получении ACK-а
вы можете рассчитывать на то, что другая сторона получила данные без изменений.
Поэтому приложениям стоит рассчитывать на то, что при любом сетевом взаимодействии что-то может пойти не так
и приложение должно корректно обрабатывать исключительные ситуации (connection reset, timeout-ы, и т.д.)
Для корректного закрытия соединения используется следующая последовательность:
Если же соединение было закрыто некорректно (например. kill -9) то другая сторона может об этом узнать,
только если попробует передать или получить данные — встроенного механизма heartbeat-ов в TCP нет,
что часто приводит к проблемам с proxy-серверами.
UDP используется в случае когда от протокола требуется обеспечить минимальную задержку несмотря на возможность
потери данных или порядка сообщений — игры, видео- и аудио- конференции и стриминг.
Так же протокол более высокого уровня может сам гарантировать надежную передачу данных (например FTP).
Дополнительные ссылки:
Преимущества стека TCP/IP
В большинстве сетевых ОС используется очень небольшой набор собственных
протоколов. Эти весьма компактные и высокофункциональные протоколы позволяют
сетевой операционной системе рационализировать свою работу, что существенно
повышает эффективность совместного использования файлов и принтеров.
Следует отметить, однако, что сами по себе эти протоколы каких-то
значительных дополнительных возможностей не предоставляют. В отличие от них,
комплект TCP/IP обеспечивает выполнение широчайшей
гаммы сервисных функций. Пользователи могут совместно использовать файлы и
принтеры. С помощью сервисов эмуляции терминалов они могут выполнять приложения
на удаленных компьютерах, позволяя использовать возможности больших систем для
выполнения конкретных программ. TCP/IP обладает
высокой степенью масштабируемости, и пользователи могут по своему усмотрению
выбрать любое подмножество протоколов в качестве клиентских или серверных
сервисов.
Другая примечательная черта TCP/IP — его
«открытость»: это полностью общедоступная спецификация. Любой человек может
предлагать дополнения к этой спецификации, и процесс протекает абсолютно
открыто. Так, многие фирмы предлагают свои платформы с уже встроенными
протоколами и сервисами TCP/IP. Это облегчает
конечному пользователю задачу совместного использования различных ресурсов без
привязки к какому-то одному поставщику.
Третье важное преимущество TCP/IP состоит в том,
что это набор очень надежных протоколов, в состав которого входят транспортные
протоколы, эффективно работающие в глобальных сетях. Протокол
NBF (и в меньшей степени IPX) предназначался
для использования в локальных сетях
NBF не
предусматривает маршрутизацию, т.е. пользователи, подключенные к одному сетевому
кабелю, видят серверы, подключенные к другому кабелю, только в том случае, если
два этих сегмента соединены мостом и образуют одну логическую сеть. В глобальных
сетевых средах эта схема работает плохо. Протокол IPX
— полностью маршрутизируемый, но вот более высокоуровневый
NCP предусматривает явное квитирование всех передаваемых сетевых пакетов,
что сильно замедляет его работу с глобальными сетевыми каналами. Ни один из этих
наборов протоколов не подходит для использования в Internet.
Комплект протоколов TCP/IP с самого начала
разрабатывался для соединения хост-компьютеров между собой через глобальные
сети, поэтому он и маршрутизируемый, и эффективный. Эти достоинства сохраняются
и в локальных сетях, что делает TCP/IP отличным
вариантом и для мелко-, и для крупномасштабных сетей. Три вышеупомянутых
качества (масштабируемость, открытость и надежность) делают
TCP/IP привлекательным вариантом для пользователей разнородных сред.
Именно поэтому TCP/IP является стержнем
Internet.