Сетевые протоколы какие бывают
Перейти к содержимому

Сетевые протоколы какие бывают

  • автор:

Список: Сетевые протоколы сети Internet

Сетевой протокол — это набор правил, позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами. Основополагающим протоколом сети Internet является протокол TCP/IP. TCP/IP это два различных протокола, тесно связанных между собой.

OSI — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов.

Основные протоколы Сети

В основе функционирования Интернет положена работа нескольких протоколов, которые располагаются один поверх другого.

MAC (Media Access Control)

MAC (Media Access Control) — это протокол низкого уровня. Его применяют в качестве идентификации устройств в локальной сети. Каждое устройство, которое подключено к Интернету имеет свой уникальный MAC адрес. Этот адрес задан производителем. Это протокол уровня соединения, с которым довольно часто приходится сталкиваться каждому пользователю.

IP (Internet Protocol)

IP (Internet Protocol) по сравнению с MAC, располагается на уровень выше. IP адреса уникальны для каждого устройства и дают возможность компьютерам находить и определять друг друга в сети. IP принадлежит сетевому уровню модели TCP/IP. В настоящее время существует две версии IP протокола IPv4 и более современный.

Структура межсетевого протокола IPv4 — сетевой уровень модели OSI

ICMP (межсетевой протокол управляющих сообщений)

ICMP (Internet control message protocol — межсетевой протокол управляющих сообщений) предназначен для того, чтобы устройства могли обмениваться сообщениями. Это к примеру могут быть сообщения об ошибках или информационные оповещения. Данные этот протокол не передает информацию. Этот протокол находится уровнем выше нежели протокол IP.

Читайте также: ICMP- флуд

TCP (Transmission control protocol)

TCP (Transmission control protocol) — один из основных сетевых протоколов, который находится на одном уровне с предыдущим протоколом ICMP. Он управляет передачей данных и является транспортным уровнем модели OSI.. Бывают ситуации, когда пакеты могут приходить не в том порядке или вообще где-то теряться. Но протокол TCP обеспечивает правильный порядок доставки и дает возможность исправить ошибки передачи пакетов. Информация подается в правильном порядке для приложения. Соединение осуществляется с помощью специального алгоритма, который предусматривает отправку запроса и подтверждение открытия соединения двумя компьютерами. Множество приложений используют TCP, сюда относят SSH, FTP и другие.

Читайте также: Что такое TCP/IP порт: TCP RST, Сокеты TCP(TIME_WAIT, ESTABLISHED и др.).

UDP (user datagram protocol)

UDP (user datagram protocol) — известный протокол, чем-то похожий с TCP, который также функционирует на транспортном уровне. Основное отличие — ненадежная передача данных: данные не проходят проверку при получении. В некоторых случаях этого вполне достаточно. За счет отправки меньшего количества пакетов, UDP работает шустрее чем TCP. Нет необходимости устанавливать соединение и протокол используется для отправки пакетов сразу на несколько устройств или IP телефонии.

HTTP (hypertext transfer protocol)

Протокол приложения HTTP (hypertext transfer protocol) лежит в основе работы всех сайтов в Сети. HTTP дает возможность запрашивать необходимые ресурсы у удаленной системы, например, веб страницы и файлы.

FTP (file transfer protocol)

FTP (file transfer protocol) — используется для передачи данных. Функционирует на уровне приложений, чем обеспечивается передача файла от одного компьютера к другому.

DNS (domain name system)

DNS (domain name system) — используется для преобразования понятных и легко читаемых адресов в сложные ip адреса, которые трудно запомнить и наоборот. С помощью DNS мы получаем доступ к интернет-ресурсу по его доменному имени.

SSH (secure shell)

SSH (secure shell) также относится к протоколу уровня приложений. Он разработан для обеспечения удаленного управления системой по защищенному каналу. Этот протокол используется для работы многих дополнительных технологий. Более подробно о протоколах передачи файлов в статье Настройка и использование SSH.

POP3 (Post Office Protocol)

POP3 (Post Office Protocol) — стандартный протокол, который используется для приема сообщений электронной почты. Протокол почтового соединения предназначен для обработки запросов на получение почты от клиентских почтовых программ.

IMAP (Internet Mail Access Protocol)

Протокол IMAP (Internet Mail Access Protocol) работаете с почтой непосредственно на сервере, в отличии от POP3, который просто скачивает входящие письма и сохраняет их локально.

SMTP (Simple Mail Transfer Protocol)

SMTP (Simple Mail Transfer Protocol) — протокол для передачи почты. Основная задача сервера SMTP: возвращение или подтверждение о приеме, или оповещение об ошибке, или запрос на дополнительные данные.

SMTP — простой протокол передачи почты (Simple Mail Transfer Protocol — простой протокол передачи почты).

Другие протоколы и термины Интернет

Примеры использования telnet — примеры использования.

SNMP протокол управления сетью (англ. Simple Network Management Protocol — простой протокол управления сетью).

Основные протоколы передачи данных

Протоколы — это правила в интернете, по которым устройства с разными операционными системами и программным обеспечением обмениваются данными. С их помощью, например, пользователь Safari на MacBook получает сообщение, отправленное через Chrome на Android.

Чтобы обмениваться данными было удобнее, задачи по их отправке и получению разделены. Создана архитектура «клиент-сервер», где клиент отправляет запрос, а сервер принимает его и возвращает ответ.

Сервер — это специальная программа, или мощный компьютер, его ещё называют хост-системой. Клиент — любое устройство для работы с сайтом, например, ноутбук, смартфон или бортовой компьютер в автомобиле.

Веб-приложение — это клиент-серверное приложение, в котором клиентом выступает браузер. Допустим, на сервере хранится HTML-страница с кодом. Браузер получает файл и показывает этот код как привычную страницу сайта.

Браузер отправляет запрос, а сервер принимает его и возвращает ответ

Какие бывают протоколы

Протоколы определяют правила выполнения конкретных задач. Но фронтендерам необязательно знать все существующие протоколы — достаточно разбираться в основных.

�� Хочется разобраться в протоколах?

У нас появился курс «Протоколы и сети». Он научит вас понимать принципы передачи данных и защищать свой код от атак.

Internet Protocol — IP

IP отвечает за поиск компьютеров в сети по их IP-адресам. Ещё он предоставляет стратегию маршрутизации, то есть составляет оптимальный маршрут для передачи данных.

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

Работу IP можно сравнить с почтовым отделением: протокол направляет IP-пакеты по интернету так же, как почта рассылает письма по всему миру. При доставке почта использует пункты передачи: письмо из отделения сначала попадает на поезд, потом на грузовик и в конце вручается адресату. В интернете тоже есть «пункты передачи» — их называют маршрутизаторами. Цель маршрутизатора — отправить пакет в пункт назначения по самому короткому пути. Если всё идёт хорошо, пакет прибывает на ближайший к получателю маршрутизатор, который точно знает, куда его отправить. Но бывает и так, что какой-то из маршрутизаторов на пути взломан или вышел из строя, и тогда выбирается другой путь:

Множество соседних путей делает передачу данных более надёжной

DNS

Уникальный IP-адрес есть у каждого домена. Он записывается в виде четырёх чисел от нуля до 255 — например, 74.125.20.113. Введите этот адрес в браузерную строку и посмотрите, на какой сайт вы попали.

Подсмотреть ответ

DNS связывает IP-адрес с понятным для людей доменным именем, например, 178.79.181.169 превращается в htmlacademy.ru:

Принцип работы DNS похож на поиск и вызов контактов в телефоне. Вряд ли кто-то помнит 1317а друзей — да это и необязательно, ведь они хранятся в списке контактов. Когда мы хотим кому-то позвонить, то просто находим нужное имя и нажимаем кнопку вызова — в этот момент начинается соединение, но не по имени, а по 1317у телефона.

DNS-сервер — это и есть «список всех контактов», то есть IP-адресов, которые там хранятся. Каждому IP-адресу присвоен домен. И когда мы вводим в строке браузера имя домена, то происходит запрос к DNS-серверу — запрашивается IP-адрес.

SSL/TLS

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

TCP и UDP

Оба протокола отвечают за передачу данных и работают поверх IP, но с небольшой разницей. TCP доставляет данные без потерь, поэтому его используют для передачи фотографий, сообщений и другой важной информации. А вот UDP не гарантирует доставку, но зато он гораздо быстрее. Его используют, когда скорость важнее надёжности, например, при передаче аудиосообщений или видеотрансляциях.

HTTP и HTTPS

HTTP и HTTPS предназначены для передачи данных и в итоге пользователи могут просматривать веб-страницы. На самом деле HTTPS — это не отдельный протокол, а расширение HTTP. Он безопаснее, так как использует SSL/TLS для шифрования обычных запросов и ответов.

HTTP

HTTP — один из самых используемых протоколов в интернете, поэтому посмотрим подробнее, как он работает.

Протокол работает в формате запрос-ответ с двумя участниками общения:

  • клиент — формирует запросы и обрабатывает ответы;
  • сервер — обрабатывает запросы и формирует ответы.

Клиент делает запрос на сервер для передачи каждого ресурса: файлов HTML, CSS, JavaScript, изображений или видеофайлов. Затем сервер отвечает на запрос, отправляя ресурс.

Представим, что мы создали HTML со следующей разметкой:

     Главная страница 

Это простой HTML-файл, в котором подключены два ресурса: стилевой файл style.css и изображение logo.svg. Браузер запросит три ресурса: index.html, style.css и logo.svg.

Для каждого запроса и ответа открывается своё TCP-соединение. При каждом соединении происходит трёхстороннее «рукопожатие»: клиент и сервер трижды обмениваются пустыми пакетами данных, чтобы удостовериться в существовании друг друга и готовности к работе с данными:

Запрос-ответ выглядит так:

Трёхстороннее «рукопожатие» нужно проводить в каждом TCP-соединении, так как HTTP не запоминает состояния, поэтому ни клиент, ни сервер не могут сохранять информацию между различными запросами. HTTP — один из самых ранних протоколов, и при его создании никто не ожидал, что на веб-странице придётся загружать так много ресурсов.

Такое «рукопожатие» делает загрузку страницы медленнее. Чтобы решить проблему, разработчикам приходится сокращать количество загружаемых ресурсов, например, использовать спрайты или разделять файлы по разным доменам — этот метод называется domain sharding. Такие манипуляции уменьшают количество TCP-соединений, хотя и создают свои трудности.

HTTP/2

HTTP/2 — улучшенная версия HTTP. По данным Can I Use, его поддерживают большинство браузеров.

Главное нововведение этого протокола — одно TCP-соединение на разные запросы, или мультиплексирование:

Как выглядит запрос-ответ в HTTP/2:

Ещё в HTTP/2 появился push-сервер, то есть сервер может отправлять больше ответов на один клиентский запрос. Например, если клиент запрашивает файлы index.html, style.css и logo.svg, то сервер отправит сразу три файла. Без push-сервера клиенту нужно запрашивать каждый файл отдельно

Поэтому многие оптимизации под HTTP при переходе на HTTP/2 уже не нужны. Например, можно отказаться от разделения ресурсов по доменам.

HTTP/3

HTTP/3 — третья версия HTTP, основанная на QUIC — протоколе, который предполагает быстрое подключение к интернету через UDP.

Главное преимущество HTTP/3 — сокращение задержки при установке соединения. QUIC достаточно одного «рукопожатия», чтобы установить безопасный сеанс. А ещё HTTP/3 работает поверх UDP, поэтому скорость доставки данных быстрее, чем у HTTP и HTTP/2 поверх TCP.

Протокол уже получил статус предложенного стандарта, то есть браузеры почти завершили работу над поддержкой протокола. Но пока поддержки недостаточно, чтобы переводить сайт с HTTP/2 на HTTP/3.

WebSockets

В этом протоколе соединение устанавливается гораздо быстрее, чем в HTTP — здесь отправляется «рукопожатие» сразу со всей необходимой информацией для передачи данных. Канал при этом остаётся открытым, пока кто-то из сторон не прервёт его. Это означает, что запросы и ответы будут происходить практически мгновенно. А если сервер получит новые данные, он отправит их клиенту без запроса.

Протокол WebSockets используют там, где важна скорость доставки данных, например, в чатах и мессенджерах, играх, онлайн-трансляциях. Он, скорее всего, не пригодится при разработке простых веб-приложений, небольших CMS или при использовании REST API, где достаточно HTTP-запросов GET, POST, PUT и DELETE.

Зачем разбираться в протоколах и сетях

Протоколы — это то, с чем вы уже работали, но, возможно, даже не подозревали. Зная принципы их работы, вы сможете глубже разобраться в связи фронтенда и бэкенда, а ещё поймёте, какие оптимизации проводить в веб-приложении, как лучше передавать данные или как защитить сайт от взлома.

Выбор технологии для приложения

Знание протоколов даёт понимание, какие технологии использовать для определённых задач. Какой протокол выбрать для онлайн-чата с большим количеством пользователей, а какой — для загрузки фотографии пользователя в профиль.

Защита данных

Если знать уязвимости на пути передачи данных, можно предусмотреть и смягчить последствия атак на веб-приложение. Например, создать стратегию защиты данных банковских карт на стороне клиента и на стороне сервера.

Оптимизация приложения под протоколы

Зная особенности протоколов, можно ускорить веб-приложение и не тратить время на ненужную оптимизацию. А ещё появляется понимание, что менять при переходе на другой протокол.

Например, чтобы оптимизировать приложение под HTTP/1, нужно уменьшить количество TCP-соединений. Для этого разработчики сокращают количество файлов: все стили объединяют в styles.css, а все скрипты — в scripts.js. Для HTTP/2 такая оптимизация не нужна, поэтому можно разделить общие CSS и JS-файлы на отдельные и подключать на страницу только необходимые.

Спрайты — оптимизация для протокола HTTP. Их минус в том, что для каждой страницы загружается спрайт с иконками всего веб-приложения, даже если на странице используется всего несколько иконок. Для HTTP/2 можно загружать только те изображения, которые нужны пользователю. При этом необязательно полностью избавляться от спрайтов — можно создать спрайты для компонентов и использовать необходимые на конкретной странице.

Если приложение оптимизировано к HTTP/2, то для перехода на HTTP/3 ничего не нужно делать: все оптимизации подойдут и для HTTP/3.

Прохождение собеседований

Знание протоколов и сетей повышает ценность фронтендера и влияет на его зарплату. Чтобы успешно пройти собеседование на мидла в крупные компании, полезно знать TCP/IP, HTTP/HTTPS, DNS и WebSocket. Ещё нужно хотя бы на базовом уровне знать про безопасность: XSS-атаки и CORS — а разобраться в этой теме без знания протоколов не получится.

При разработке приложений полезно знать, как работает веб и по каким принципам передаются данные. Понимание протоколов позволяет шире смотреть на свою работу, а также знать, куда движется сфера IT и какие технологии будут востребованы в будущем. А ещё эти знания пригодятся при собеседовании на позицию мидла или сеньора.

Материалы по теме

  • Как защитить приложение от хакеров
  • Чем отличаются HTTP-методы GET и POST
  • Протокол HTTP и работа с заголовками

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Какие бывают протоколы передачи данных?

Сложно представить современную жизнь без интернета. Но на базовом уровне глобальная сеть — это, по сути, просто связь между разными компьютерами. Обеспечивают эту связь сетевые протоколы передачи данных — перечень правил, определяющих особенности и порядок передачи информации.

Вообще, протоколов передачи данных существует довольно много. Мы же поговорим о самых основных.

IP — Internet Protocol

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

Главная задача IP — маршрутизация датаграмм, то есть речь идет об определении пути следования данных по узлам сети. До сего дня наиболее популярной версией являлся IPv4 с 32-битными адресами. Но, как известно, 4.29 млрд IPv4-адресов — это много, но уже давно недостаточно. Поэтому существует IPv6, который призван решить проблему переполнения адресов.

TCP/IP — Transmission Control Protocol/Internet Protocol

Это уже стек протоколов TCP и IP. TCP обеспечивает и контролирует передачу данных и следит за надежностью и целостностью. IP отвечает за маршрутизацию. Протокол TCP нередко используется другими, более комплексными протоколами.

UDP — User Datagram Protocol

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

Но есть и преимущество: скорость доставки данных. Именно поэтому в приложениях, особо чувствительных к сетевым задержкам, нередко применяют UDP.

FTP — File Transfer Protocol

Служит для передачи файлов. Этот протокол не новый — его успешно применяли задолго до появления IP. Он и сегодня используется при организации удаленного доступа к хостингам.

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

DNS

DNS представляет собой не только систему доменных имён (Domain Name System). Это еще и протокол, без которого данная система работать бы не смогла. Протокол дает возможность клиентским компьютерам запрашивать у DNS-сервера IP-адрес какого-нибудь сайта, плюс он помогает осуществлять обмен БД между серверами DNS. В работе системы также используются протоколы TCP и UDP.

HTTP — HyperText Transfer Protocol

Поначалу это был протокол передачи HTML-документов. Сейчас он задействуется в целях передачи произвольных данных в сети. Считается протоколом клиент-серверного взаимодействия без сохранения промежуточного состояния. В качестве клиента обычно выступает web-браузер, хотя это может быть и поисковый робот. При обмене информацией протокол HTTP чаще всего использует TCP/IP.

Протокол HTTP имеет расширение HTTPS, поддерживающее шифрование. В нем данные уже передаются поверх криптографического протокола TLS.

NTP — Network Time Protocol

На самом деле, не все протоколы передачи используются для обмена классического вида информацией. Протокол NTP служит для синхронизации локальных часов устройства со временем в глобальной/локальной сети. NTP задействует алгоритм Марзулло, в результате чего выбирается наиболее точный источник времени. А еще NTP работает поверх UDP, что позволяет ему достигать максимальной скорости передачи данных. В целом протокол довольно устойчив к изменениям задержек в глобальной/локальной сети.

SSH — Secure SHell

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

А еще SSH дает возможность обрабатывать любые другие протоколы передачи данных. Таким образом, кроме удаленного управления компьютером, через этот протокол вы сможете пропускать любые файлы либо даже аудио/видео-потоки.

SSH обычно применяют при работе с хостингами (клиент получает возможность удаленно подключиться к серверу и работать с ним).

Сетевые протоколы — что это

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

Модели, на которых работает интернет

Долгое время моделью, отвечающей за установку открытой связи между двумя хостами, являлась Open Systems Interface (OSI), установившая семь уровней протоколов (физический, транспортный, сетевой и т. д.). Она не считалась сетевой архитектурой, так как просто задавала входные и выходные данные для каждого уровня. Поскольку современные протоколы научились работать сразу на нескольких уровнях модели OSI, её на смену пришла новая четырёхуровневая модель: TCP/IP.

Новая модель, как видно из названия, объединяет два основных протокола: Transmission Control Protocol и Internet Protocol. Первый отвечает за надёжную и передачу данных и её целостность, а второй — за маршрутизацию. Все новые сетевые протоколы разрабатываются на базе этой модели. Например, заходя на сайт Cloud4Y, вы используете протоколы IP, TCP и HTTPS.

Для большей наглядности сравним обе модели.

Сравнение протоколов

Популярные сетевые протоколы

UDP

User Datagram Protocol, о связке которого с протоколом TCP мы рассказывали, представляет собой протокол передачи данных, не требующий предварительной установки соединения между хостами. Он быстрый, но часто теряет пакеты данных во время доставки. А

TCP

Transmission Control Protocol — протокол сквозной связи, созданный в 1974 году и до сих пор востребованный в мире. Надёжный, но медленный. Перед тем, как начинать передачу данных, достигается рукопожатие для установления соединения, и лишь затем начинается передача пакетов. При необходимости пакеты дублируются.

FTP

File Transfer Protocol — протокол прикладного уровня для передачи файлов, появившийся в 1971 году. Использует два канала для передачи данных. Первый , управляющий процессом передачи, называют командным. Второй, передающий информацию — транспортным. FTP — надёжный протокол. Сервер в данном случае называют удалённым хостом, а клиент — локальным. Работает по клиент-серверной модели. После аутентификации пользователь получает доступ к файловой системе. В некоторых случаях возможен анонимный доступ.

RTP

Real-time Transfer Protocol — транспортный протокол, работающий в реальном времени. Нужен для потоковой передачи аудио- и видеоданных. Умеет передавать данные нескольким получателям одновременно. Чаще всего применяется для передачи голоса в IP-телефонии.

DNS

Под аббревиатурой DNS прячется не только система доменных имён Domain Name System. Данное название носит и протокол, благодаря которому эта система и функционирует. Протокол помогает серверам DNS обмениваться базами данных, а клиентским устройствам — запрашивать у

ICMP

Internet Control Message Protocol — важный протокол, который нужен для слежения за ошибками во взаимодействии устройств. Он диагностирует проблемы и определяет, получены ли данные отправителем. Если нет, протокол ICMP генерирует ошибку для отправки на отправляющее устройство. Данный протокол иногда используется злоумышленниками для сетевых атак путём генерации большого объёма ICMP-сообщений.

HTTP

HyperText Transfer Protocol — протокол, который создавался для передачи HTML-файлов, но впоследствии пригодился для всех файлов в сети. Этот протокол клиент-серверного типа не сохраняет промежуточное состояние. Для обмена информацией обычно используется TCP/IP. У HTTP есть защищённая версия: HTTPS. Она поддерживает шифрование, а данные передаются поверх криптопротокола TLS.

NTP

Network Time Protocol — протокол для синхронизации локальных часов устройства с точным временем в интернете. NTP работает на базе алгоритма Марзулло поверх UDP. За счёт этого удаётся добиться более высокой точности времени и скорости передачи данных.

SSH

Secure Shell — защищённый протокол прикладного уровня, необходимый для удалённого управления ОС через протокол TCP. В SSH весь трафик шифруется с использованием заданного вами алгоритма шифрования. Протокол позволяет обрабатывать другие сетевые протоколы передачи, включая аудио- или видеопоток. Его удобно использовать для удалённого подключения клиента к серверу и работы оттуда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *