- Рассказываем о главной курьерской службе интернета: как данные летают по Сети, зачем их фасуют по пакетам и кто за всем этим следит.
- Модель TCP/IP
- TCP (Transmission Control Protocol)
- Работа протоколов
- История протоколов
- Другие протоколы
- HTTP
- IP и пакеты данных
- Зачем нужны пакеты
- Протокол TCP для надежности
- Структура модели TCP/IP
- Канальный уровень
- Сетевой уровень
- Что такое протокол передачи данных?
- Виды протоколов передачи данных
- Модель TCP/IP
- Виды сетей
- Также стоит обратить внимание на модель OSI
- О модели OSI
- Физический уровень
- Канальный уровень
- Сетевой уровень
- Транспортный уровень
- Сеансовый уровень
- Представительный уровень
- Прикладной уровень
- Самые популярные протоколы
- IP – Internet Protocol
- DNS
- SSL/TLS
- TCP/UDP
- HTTP и HTTPS
- Получение протоколов испытаний на продукцию
- Зачем нужны протоколы испытаний на продукцию?
- Для чего нужны протоколы
- Кто работает с протоколами
- Виды протоколов
- Физические
- Логические
- Что такое модели
- Сетевая модель OSI
- Уровень представления
- Протоколы модели TCP/IP
- Что такое UDP/IP
- Другие известные примеры протоколов
- Что такое TCP протокол
- Как работает протокол TCP
- Что такое UDP протокол
- Принцип работы протокола UDP
- TCP и UDP разница
- Преимущества и недостатки
Рассказываем о главной курьерской службе интернета: как данные летают по Сети, зачем их фасуют по пакетам и кто за всем этим следит.

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Вы когда-нибудь задумывались, как мемы, сериалы и гифки с котиками перелетают континенты, чтобы оказаться у вас на компьютере? Отвечаем: для этого в интернете есть протоколы TCP и IP — они помогают устройствам безошибочно передавать данные на большие расстояния. Как у них это получается — рассказываем в статье.
Модель TCP/IP
Модель TCP/IP — это стек протоколов, которые задают правила передачи данных по Сети. Так как бал здесь правят протоколы TCP и IP, в честь них и назвали всю модель.
TCP (Transmission Control Protocol)
TCP отвечает за обмен данными. Он управляет их отправкой и следит за тем, чтобы они дошли до получателя в целости. У TCP есть свои гарантии, что всё пройдёт успешно, — о них чуть позже.
Работа протоколов
Эти два протокола работают в связке: IP строит маршрут, а TCP контролирует, чтобы всё передавалось правильно. Условно их можно сравнить с тандемом Шерлока и Ватсона в бессмертной классике Дойля: первый решает проблему, а второй следит, чтобы тот не наделал глупостей и случайно не упал в Рейхенбахский водопад.
История протоколов
Оба протокола, и TCP, и IP, на самом деле стары как мир. Их придумала ещё в семидесятых группа разработчиков под началом отца интернета Винта Сёрфа. То есть все наши смартфоны и умные часы общаются по правилам, которые заложили ещё во времена расцвета диско и космической миссии Союз — Аполлон.
Другие протоколы
Но протоколами TCP и IP модель не ограничивается — например, есть ещё HTTP, FTP, UDP и сотни других. Все они заточены под определённые задачи. Так, HTTP помогает браузеру формировать запросы к серверу, FTP — скачивать файлы, а UDP — быстро передавать видео, музыку и игры, но с возможными потерями по пути.
HTTP
Как только вы кликнули на ссылку, браузер отправляет запрос на сервер, где лежит страница. Для этого он создаёт HTTP-запрос, в котором описывает всё, что сервер должен ему передать: Я слышал, у тебя есть статья про генеративные нейронки. Дай, пожалуйста. Сервер отвечает: Нет проблем — и отправляет браузеру HTTP-ответ с нужными данными. И так они будут общаться до тех пор, пока вы не закроете сайт.

Браузер отправляет запрос, сервер возвращает ответ
Иллюстрация: Оля Ежак для Skillbox Media
Но сами по себе HTTP-запросы — это просто текстовые сообщения: они не знают, как найти сервер с нужной информацией, а тем более — как её оттуда достать. Для этих задач нам как раз и понадобятся протоколы TCP и IP.
IP и пакеты данных
Когда IP найдёт сервер и получит от него нужную страницу, он начнёт разбивать её на пакеты. Каждый пакет — это часть файла размером от 1 до 64 КБ. Внутри находятся сами данные и служебная информация: номер пакета, адреса отправителя и получателя и другое.
Зачем нужны пакеты
Представьте, что вам нужно перенести сразу много блюд из кухни в гостиную. Конечно, можно загрузить тарелки в обе руки, а часть поставить на голову, как делают женщины кенийского племени Луо, но, если вдруг в коридоре на вас нападёт кошка или младший брат, есть риск всё выронить. Гораздо безопаснее переносить блюда по одному, а лучше — раздать по тарелке каждому члену семьи.
С данными точно так же: лучше передавать их маленькими порциями, чтобы избежать потерь. Если что-то пойдёт не так, вы потеряете один пакет, а не весь файл целиком.
Протокол TCP для надежности
Чтобы пакеты без потерь долетали от сервера к пользователю, подключается протокол TCP. Для этого в него зашили механизм подтверждения: когда сервер отправляет пакет, TCP спрашивает у устройства пользователя, нормально ли он добрался. Если ответ да, протокол отправляет следующую порцию, если нет — пробует ещё раз.
После того как все пакеты получены, браузер собирает из них цельную страницу и выводит на экран.
Структура модели TCP/IP
Модель TCP/IP состоит из четырех уровней, каждый из которых обеспечивает надежность передачи данных между компьютерами в Сети.
Канальный уровень
На канальном уровне устанавливается физическое соединение между устройствами в локальной сети с помощью радиоволн и проводов. Примеры протоколов для этого уровня: Ethernet, Wi-Fi, Bluetooth. Данные делятся на небольшие кусочки (фреймы) и передаются между устройствами. Каждый фрейм содержит часть передаваемой информации и служебные данные. Адресация на этом уровне происходит по MAC-адресам.
Сетевой уровень
Сетевой уровень отвечает за маршрутизацию данных между устройствами по всей сети. Примеры протоколов для этого уровня: IP, ICMP, ARP.



Что такое протокол передачи данных?
Протокол передачи данных – это набор правил и соглашений, определяющих способ обмена информацией между устройствами и программами в Интернете (сети). Они играют важную роль в обеспечении безопасности, надежности и эффективности соответствующих процессов.
Для улучшения удобства получения и отправки информации эти операции разделяются, образуя клиент-серверную модель. Здесь клиент отвечает за отправку запроса, а сервер принимает его и возвращает ответ.
Перед изучением протоколов обработки данных важно запомнить два ключевых определения:
- Клиент: устройство или программа, отправляющая запрос.
- Сервер: устройство или программа, принимающая и обрабатывающая запрос.
Виды протоколов передачи данных
Протоколы передачи данных могут быть разделены на два основных типа: надежные и ненадежные. Надежные протоколы, такие как TCP (Transmission Control Protocol), обеспечивают медленную, но надежную передачу данных. Ненадежные протоколы, такие как UDP (User Datagram Protocol), обеспечивают быструю передачу данных, но без гарантии их доставки.
Вот некоторые примеры популярных протоколов:
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
- HTTP (Hypertext Transfer Protocol)
- FTP (File Transfer Protocol)
- SMTP (Simple Mail Transfer Protocol)
Модель TCP/IP
Модель TCP/IP представляет собой набор правил, по которым данные перемещаются по интернету. Основными протоколами здесь являются TCP и IP. TCP необходим для установления надежного канала связи между устройствами, в то время как IP отвечает за маршрутизацию и доставку данных.
Помимо TCP и IP, в модели TCP/IP существуют и другие протоколы, такие как HTTP, Ethernet, FTP и UDP. Они решают различные задачи, связанные с передачей данных от одного устройства к другому.
Виды сетей
Прежде чем изучать протоколы передачи данных, важно понять различные виды сетей. Каждая сеть имеет свои уникальные особенности и характеристики.
Также стоит обратить внимание на модель OSI
Обычно на ее примере начинается изучение существующих сетевых уровней. Каждому отводится своя роль и задачи. Далее они будут рассмотрены более детально.
О модели OSI
Когда компьютерные сети только зарождались и появлялись различные протоколы, не было моделей, которые бы могли определить общие стандарты их работы и подходы к проектированию. Каждая организация, которая трудилась над созданием сетей, реализовывала собственные задумки. Они не могли работать с решением от других корпораций.
Такая ситуация стала настоящей проблемой. Сети, которые должны были объединить компьютеры, из-за различий в архитектурах создавали себе определенные преграды для расширения. В 1977 году проблема была решена компанией ISO. Так называется международная организация по стандартизации. В течение 7-ми лет она изучала реализации сетей и к 1984 году представила модели OSI.
OSI – это Open System Interconnection, что в переводе буквально означает Воздействие открытых систем. Она включает в себя 7 сетевых уровней.
Физический уровень
Физический уровень решает вопросы, которые связаны с физическими аспектами передачи данных. Методы обмена информацией, характеристики сетевой среды, модуляция сигнала – все это относится к соответствующему уровню.
Канальный уровень
Канальный уровень будет функционировать в рамках локальной сети. Он формирует полученный от физического уровня поток битов в кадр: обнаруживает начало и конец сообщения. Здесь же будут решаться задачи адресации внутри локальной сети, поиск ошибок, проверка целостности данных. Основные сетевые протоколы тут – это Ethernet и PPP.
Сетевой уровень
На нем функционируют протоколы сетевого взаимодействия. Они необходимы для построения крупных сетей из отдельных подсетей. Здесь вводится общая адресация для идентификации имеющихся устройств, выполняется маршрутизация (выбор оптимального пути передачи информации). Пример – протокол IP. С его помощью каждое оборудование получает уникальный адрес, функционирующий на сетевом уровне. Основными протоколами служат IP и ICMP.
Транспортный уровень
Тут производится передача информации между процессами на различных устройствах (компьютерах). Он называется также уровнем сквозной передачи данных.
Пакеты тут доставляются до определенного адресата на компьютере, которому присваивается особый номер – порт. Порты потребуются для того, чтобы информация могла быть получена той службой или процессом, который их запрашивал изначально. Тут функционируют протоколы TCP и UDP, которые обеспечивают разный сервис. Других функций transport layer не выполняет.
Сеансовый уровень
Проектировщики рассматриваемой системы здесь подразумевали организацию управления сеансами связи. Под управлением принято понимать установку и разрыв соединения, а также синхронизацию и иные процессы.
Представительный уровень
Его задачей служит представление данных в понятном для отправителя и получателя виде. Сюда относятся разнообразные варианты представления данных:
Сюда же относится шифрование и дешифрование данных.
Прикладной уровень
С ним работают конечные пользователи. Тут по протоколу HTTP будут работать браузеры, электронная почта, приложения для аудио и видеосвязи и так далее.
Протоколы OSI не всегда относятся к одному логическому уровню. Иногда они распространяются на несколько «слоев». Пример – Ethernet функционирует одновременно и на физическом, и на канальном уровнях.
Самые популярные протоколы
Что такое протокол для передачи данных, понятно. Существуют различные типы этого элемента. Они будут работать на различных сетевых «слоях» и выполнять разные функции. Далее будут рассмотрены наиболее популярные протоколы передачи информации.
IP – Internet Protocol
Работа IP сравнима с обычным почтовым отделением: протокол направляет IP-пакеты по интернету подобно рассылке почтой писем по всему миру. В процессе доставка почта использует пункты передачи: из отделения посылка сначала попадает на поезд, затем – на грузовик, а в самом конце – адресату. В интернете тоже есть «пункты передачи» – маршрутизаторы. Их цель – направить пакет в пункт назначения по наиболее короткому пути. Если все идет хорошо, пакет прибудет на ближайший к получателю маршрутизатор, который точно знает, куда его перенаправить. Но бывает и так, что какой-то из маршрутизаторов на пути выходит из строя. В этом случае будет выбран другой путь.
DNS
IP записывается в виде 4-х чисел от 0 до 255. DNS – протокол, которые связывает IP с понятным для людей именем. Цифры превращаются в привычный «Гугл».
DNS похож на поиск и вызов контактов в телефоне. Когда человек хочет позвонить, он находит нужное имя и нажимает на кнопку «Звонок». В этот момент происходит соединение.
SSL/TLS
Разбираясь, что такое протокол для передачи данных, а также в их разновидностях, стоит обратить внимание на SSL/TLS. Первый компонент – это криптографический протокол шифрования запросов и ответов. Он необходим для того, чтобы данные могли безопасно перемещаться по Интернету. Второй элемент – его более совершенная (новая) версия. SSL уже почти не используется, но это название оказалось настолько популярным, что оно до сих пор встречается. Любой SSL-сертификат у хостинг-компаний – это TLS-сертификат.
TCP/UDP
Среди протоколов обмена информацией хорошо известны TCP и UDP. Они отвечают за передачу данных и функционируют поверх IP, но с некоторой разницей. TCP доставляет данные, минуя потери. Он чаще используется для передачи:
UDP доставку не гарантирует, но работает в несколько раз быстрее. Он используется тогда, когда скорость имеет большую роль, чем надежность. Примером может послужить передача аудиосообщений или видеотрансляции.
HTTP и HTTPS
Это протоколы обмена данными. Пользователи за счет них могут просматривать в браузерах веб-страницы. HTTPS – это не самостоятельный протокол, а расширение HTTP. Он является более безопасным за счет использования SSL/TLS для шифрования обычных запросов и ответов. Увидеть тип используемого на веб-портале протокола можно в браузерной строке. Обычно соответствующая информация отображается перед адресом.
Теперь понятно, что такое протоколы передачи данных. Лучше изучить их получится на дистанционных компьютерных курсах. Там в срок от нескольких месяцев до года научат работать с сетями и протоколами.
P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus:
Протоколы испытаний на продукцию – это документальное подтверждение проведенных лабораторных экспертиз в рамках осуществления оценки качества и безопасности продукции в любой законно действующей системе сертификации.Сертификация продукции осуществляется согласно установленным требованиям законодательства для обеспечения безопасности товаров, поступающих в обращение на территорию России или Таможенного союза. Процедура сертификации включает несколько пунктов, одним из которых является проведение лабораторных исследований образцов продукции с последующим оформлением протоколов испытаний, где закреплены все результаты проведённых экспертиз.
Получение протоколов испытаний на продукцию
Протоколы испытаний можно получить только в аккредитованных лабораториях после проведения ряда исследований:
Следует отметить, что лаборатория может быть как составной частью сертификационного центра, так и самостоятельным объектом деятельности, но в том и другом случае, она в обязательном порядке обязана быть аккредитована в конкретной области осуществления сертификационных испытаний.
Зачем нужны протоколы испытаний на продукцию?
В любой действующей системе сертификации закреплены определенные стандарты безопасности, надежности и качества, которым должен соответствовать тот или иной вид продукции. С целью определения всех характеристик и показателей продукции согласно установленным в их отношении нормативно-правовым актам назначается определенный набор исследований, в который входят и лабораторные испытания.
Данные испытания проводятся только квалифицированными специалистами с применением самых современных технических средств, позволяющих с точностью удостоверить качество выпускаемого продукта. После осуществления всех предусмотренных исследований оформляются протоколы испытаний на продукцию, которые являются основанием для выдачи разрешительного документа, позволяющего на законном основании производить продукцию и реализовывать ее на потребительский рынок страны.
На сегодняшний день протоколы испытаний можно оформить в различных системах сертификации, включая:
Получение протокола испытаний на изделие — это реальная возможность доказать потребителям его качество, а также документально удостоверить соответствие свойств товара всем требованиям законодательства. Протокол испытаний является документом, где указываются качественные показатели продукции, согласно ее свойствам и назначениею, что немаловажно, к примеру, для пищевой отрасли, а также оценке в рамках пожарной или гигиенической сертификации. По всем вопросам оформления протоколов испытаний на продукцию вы можете обратиться к специалистам центра сертификации «Ростест Урал».
Протокол в IT — это набор правил, по которым передаются данные. С помощью протоколов связываются между собой компьютеры в сети, разные устройства и программы. Они выполняют определенные правила и поэтому понимают друг друга.
Протоколы в информатике описывают, в каком формате будут передаваться данные, как будет выглядеть процедура их передачи. Еще в них обычно прописано, как устройства будут «договариваться» друг с другом при контакте и что делать с ошибками, если они возникнут. Например, протокол доступа к каталогам (LDAP) регламентирует способ получения и изменения информации в каталоге.
Для чего нужны протоколы
Компьютерные протоколы предназначены, чтобы устройства могли корректно связываться и общаться друг с другом. Можно представить протокол в виде языка: если два устройства или программы передают данные по-разному, они друг друга не поймут. Поэтому специализированные устройства или софт могут не работать с продуктами других производителей — у них разные протоколы.
Протоколов в мире сотни, и они описывают стандарты связи на любом уровне — начиная с частоты электрических импульсов и заканчивая передачей данных между программами на компьютере.
Например, при помощи протоколов люди могут открывать сайты: браузер на компьютере связывается с сервером по протоколу HTTP или HTTPS. Благодаря FTP—протоколу по интернету можно передавать файлы, а протокол BitTorrent позволяет потоково скачивать данные.
Кто работает с протоколами
В широком смысле любой человек пользуется протоколами каждый раз, когда заходит в интернет или подключает беспроводные наушники. Любая связь между устройствами возможна благодаря протоколам — иначе ничего бы просто не работало.
В узком смысле с протоколами работают сетевые инженеры и системные администраторы, которые настраивают сервера и инфраструктуру сети. С протоколами приходится сталкиваться бэкенд-разработчикам и DevOps-инженерам. Есть и более специфические профессии: например, инженеры телекоммуникационных систем или специалисты, работающие с системами «умных» домов.
Каждый из этих специалистов ведет работу с протоколами в своей отрасли. Например, сетевой инженер в компании должен хорошо понимать, как работают протоколы, связанные с интернетом, — это не значит, что он обязан разбираться в многочисленных протоколах «умных» устройств.
Благодаря тому что протоколов много, для каждого «уровня» связи можно назначить своего специалиста и распределить нагрузку. Поэтому не возникает ситуации, когда один человек отвечает за все задачи разом.
Виды протоколов
По типу задач протоколы делятся на физические и логические.
Физические
Отвечают за физику сигналов, которые проходят в сетях. Они определяют частоту радиосигналов, мощность и частоту электрических импульсов — или световых сигналов в случае с оптоволокном. Например, Wi-Fi описывает стандарты соединения между точками доступа и диапазоны частот для беспроводной связи.
Логические
Протоколы отвечают за передачу данных и обмен информацией — поясняют, в каком формате ее передавать и что она означает. Если физический протокол — возможность говорить, то логический протокол передачи данных — это язык. Большинство айтишников работает именно с логическими протоколами: например, IP, который описывает формат пакетов данных и адресацию компьютеров в сети.
Что такое модели
Если у каждого устройства свой протокол и нет общих, они не смогут связываться. Чтобы такого не происходило с большей частью техники, протоколы объединяют в модели. Модель — это своего рода набор протоколов и других инструментов, который собирается в систему и может решать более сложные задачи, чем один протокол.
Например, все сайты используют один и тот же набор протоколов — из моделей OSI и TCP/IP. Поэтому компьютер пользователя может связаться с любым доступным в сети сайтом.
Сетевая модель OSI
OSI расшифровывается как Open Systems Interconnection model — открытая модель взаимосвязи между сетями. Она считается эталоном для разных систем связи. В модели архитектура сети поделена на семь уровней — от самого низкого, то есть близкого к железу, до самого высокого, близкого к пользователю.
На каждом уровне свой набор протоколов связи, которые могут общаться с протоколами на том же уровне либо на один выше или ниже. Более высокие уровни опираются в работе на более низкие — структура сети выглядит как пирамида.
Разберем уровни модели OSI подробнее.
Самый первый и низкий уровень. Он описывает, по какому принципу информация переводится в физические сигналы: радиосигналы, электрические импульсы, свет. На этом уровне расположены протоколы, которые переводят информацию в сигнал и обратно в биты, отвечают за ее передачу по кабелю или в эфир. Примеры протоколов этого уровня — Bluetooth, Wi-Fi или GSM, по которому реализована мобильная связь. А устройства физического уровня — это, например, сетевой адаптер на компьютере.
Второй уровень тоже тесно связан с железом: коммутаторами, мостами, сетевой картой. Но на нем уже появляются и программные средства, например драйвер сетевой карты. Уровень описывает взаимодействие между устройствами по физическому каналу — например, как принимать и интерпретировать сигналы. Протоколы второго уровня получают на вход биты и упаковывают их в кадры — фрагменты данных, а еще проверяют информацию на ошибки. Примеры протоколов на этом уровне — Ethernet, который отвечает за передачу данных по витой паре, или FDDI — он работает с оптоволоконным каналом.
Канальный уровень разделяют на два подуровня: MAC управляет доступом к среде, например к кабелю, а LLC отвечает за передачу, проверку и преобразование данных.
Третий уровень отвечает за путь, по которому будут передаваться данные. Протоколы определяют оптимальный маршрут для передачи данных, соотносят между собой физические и логические адреса устройств. На этом этапе происходит маршрутизация — определение маршрута. Известнейший пример протокола сетевого уровня — IP, благодаря которому фактически появился интернет. Устройства сетевого уровня — это маршрутизаторы, роутеры.
Четвертый уровень задает «правила дорожного движения» при передаче данных. Для него неважно, что это за данные и по какому маршруту они следуют, — он отвечает за механизм, например за то, чтобы данные от разных устройств передавались по очереди. Протоколы транспортного уровня формируют эту очередь, объединяют короткие пакеты данных в один большой или разделяют слишком большие пакеты на несколько маленьких. Еще протоколы отвечают за надежность передачи сообщений, чтобы данные не «потерялись» и не повредились по пути. Некоторые даже требуют от адресата сообщить, что данные получены. На этом уровне работают протоколы TCP, UDP и другие — они тоже используются в интернет-сети.
Отвечает за сеанс связи между разными программами — в рамках сеанса два абонента на разных устройствах обмениваются информацией. На сеансовом уровне находятся протоколы, которые отвечают за начало и конец сеанса, его поддержание, когда обе программы «молчат», и за синхронизацию — чтобы сообщения от обеих сторон передавались вовремя. Еще они определяют абонентов и проверяют права доступа. А если сеанс прервется, протоколы сеансового уровня восстановят его по контрольным точкам. Пример — SOCKS, протокол, по которому работают прокси-сервера.
Уровень представления
Шестой уровень отвечает за преобразование информации. До этого мы говорили о пакетах данных — на уровне представления эти пакеты конвертируются в понятные нам форматы, например JPG-картинку или текстовый файл. Обратно это тоже работает: информацию, которую надо передать по сети, протоколы переводят в удобный для передачи вид. Еще они могут кодировать и декодировать данные, сжимать их и распаковывать. Наиболее известный протокол этого типа — XDR, который умеет правильно преображать данные для разных операционных систем.
Седьмой уровень — самый далекий от железа. Он отвечает за то, как с сетью взаимодействуют пользовательские приложения: браузер, клиент электронной почты и так далее. Протоколы прикладного уровня регулируют доступ приложений к сети, помогают передавать служебные данные программ и пересылать сообщения об ошибках. Примеры протоколов этого уровня — HTTP/HTTPS, FTP и так далее.
Протоколы модели TCP/IP
TCP/IP — это главная модель интернет-технологий. Название состоит из имен двух протоколов: TCP и IP. Мы упоминали их выше, но тут расскажем подробнее — на их взаимодействии работает весь интернет.
TCP. Transmission Control Protocol, или протокол управления передачей, помогает надежно передавать и принимать данные. Согласно модели OSI он находится на транспортном уровне — это своеобразный регулировщик для движения информации. TCP работает так:
TCP стал самым популярным транспортным протоколом доступа в интернете благодаря своей «заботливости»: он проверяет целостность данных и запрашивает их снова, если надо. В итоге все передается как надо и не теряется по пути.
IP. Название расшифровывается как Internet Protocol — протокол интернета. Если TCP отвечает за процесс передачи данных, то IP — за маршрут. Он относится к третьему уровню OSI, сетевому. Вот что делает этот протокол сети интернет:
IP не заботится о целостности данных и о механизме передачи — за них отвечает уже TCP. Выходит, что протоколы дополняют друг друга: IP определяет, куда отправить информацию, а TCP — как это сделать.
Связка TCP/IP — ключевая в устройстве сети. Некоторые определения включают в модель и другие протоколы, важные для интернета, например HTTP или DNS, даже Ethernet с канального уровня. Но основу все равно составляют TCP и IP.
Что такое UDP/IP
Известный мем про разницу между TCP и UDP
Информация, переданная по UDP, может потеряться или дублироваться, прийти не по порядку — но сами датаграммы, если придут, будут полностью целыми. UDP применяют реже, чем TCP, в основном там, где важны скорость и производительность, — например, в системах реального времени или на высоконагруженных серверах онлайн-игр.
Другие известные примеры протоколов
С некоторыми протоколами разных уровней мы имеем дело постоянно — давайте посмотрим, как они работают и что собой представляют.
HTTP. HTTP или HTTPS — буквы, с которых начинается любой адрес в интернете. Они означают HyperText Transfer Protocol, протокол передачи гипертекста. Это прикладной протокол, который передает информацию между веб-сайтом и компьютером пользователя. При этом компьютер пользователя выступает как клиент, а сайт — как сервер. Клиентов может быть много, сервер — один.
HTTPS. Буква S в HTTPS означает Secure — это расширение HTTP, позволяющее шифровать данные при передаче. Так их не получится украсть или подсмотреть, пока они передаются от клиента к серверу и обратно.
FTP. File Transfer Protocol — по протоколу в сети передаются файлы. Он, как и HTTP, работает по модели клиент-сервер: дает пользователю, то есть клиенту, доступ к файлам на сервере. Это очень старый протокол, который существовал еще до появления IP. Сейчас его в основном используют вебмастера и разработчики при работе с хостингами сайтов.
P2P. HTTP — не единственный протокол передачи данных. Еще есть P2P — пиринговые, или децентрализованные сети. В отличие от HTTP, в них нет клиентов и серверов, а есть равноправные участники, каждый из которых может выполнять обе функции. P2P — довольно большая группа технологий, она содержит разные протоколы. Например, BitTorrent или Tor — частично децентрализованные сети, работающие по одноименным протоколам. А I2P, тоже обеспечивающий анонимность, — полностью децентрализованный. Еще на основе P2P-технологий реализованы криптовалюты и вычисления с помощью блокчейна.
DNS. Система доменных имен DNS — это не только способ хранения доменов, а еще и протокол, который управляет ответами на запросы. Благодаря ему устройства получают информацию о том, к какому адресу им нужно обратиться. В работе протокол DNS использует TCP и UDP.
SSL/TLS. Это протоколы, по которым обеспечивается шифрование в HTTPS. SSL — более старое название, TLS — новая версия протокола. Благодаря им информация по HTTPS может шифроваться: для этого используют пары ключей, публичный и приватный.
SSH. Расшифровывается как Secure SHell — это еще один безопасный протокол, который работает с использованием TCP. Протокол нужен, чтобы удаленно управлять операционной системой и при этом шифровать информацию, которая будет передаваться между устройствами. Например, разработчики пользуются SSH, когда загружают код на GitHub.
SOCKS и Shadowsocks. SOCKS — протокол, который позволяет передавать данные не напрямую, а с использованием промежуточного прокси-сервера. Данные с помощью SOCKS можно пересылать незаметно: получатель не увидит, кто на самом деле сделал запрос, а увидит только прокси-сервер. Shadowsocks — это протокол на основе SOCKS, который позволяет шифровать данные на пути и обходить блокировки.
Шуточные протоколы. Существует несколько протоколов, которые создавались как шутка — удивительно, но у некоторых из них даже есть реализации. Например, IP over Avian Carriers — пересылка IP-пакетов с помощью почтовых голубей. Его придумали в 1990 году, а в 2001-м реализовали: из девяти отправленных голубями пакетов данных вернулось четыре, то есть потери составили 55,6%. А HTCPCP — гипертекстовый протокол управления кофеваркой — реализован как расширение HTTP, и ошибку 418 оттуда поддерживают разные веб-фреймворки, например Django или Flask. Эта ошибка гласит: I’m a teapot — Я чайник. А чайник приготовить кофе не сможет.
Для корректной работы онлайн-сервисов, оперативной загрузки и обновления информации нужна стабильная и высокая скорость передачи данных сети. Этот параметр напрямую зависит от сетевого протокола, который вы используете. Большая часть обмена информацией в сети осуществляется благодаря двум протоколам транспортного уровня: TCP и UDP. Рассмотрим их характерные особенности и принцип работы, а также разберемся в их отличиях.
Что такое TCP протокол
Протокол TCP — это технология передачи данных, которая является одним из главных транспортных протоколов. Его также называют протоколом сквозной связи. Эта технология была изобретена еще в далеком 1974 году. С тех пор она несколько усовершенствовалась и стала одним из элементов фундамента современного Интернета.
Протокол передает данные с пользовательского устройства на веб-сервера. Он отличается высоким уровнем надежности. Это достигается путем обязательной установки стабильного соединения. Он также поддерживает его на заданном уровне в течение всего процесса передачи пакетов.
Как работает протокол TCP
Алгоритм работы протокола TCP выглядит следующим образом:
1. Установка стабильного соединения:
2. Непосредственно передача данных:
3. Обнаружение и коррекция ошибок:
4. Завершение соединения:
В процессе обмена данными протокол TCP гарантирует отправку и получение сегментов в точном порядке. Каждому пакету присваивается номер, который указывает на позицию данных в потоке.
Отдельно стоит отметить использование Window Size — это параметр, который отображает сколько данных готов принять получатель. Отправитель может передавать данные в пределах этого окна, чтобы избежать перегрузки получателя.
Что такое UDP протокол
Протокол UDP — это более быстрая, но менее надежная технология обмена данными. Она применяется там, где важна непрерывность потока. Протокол был разработан не намного позже TCP — в 1980 году. С его помощью возможен обмен пакетами по IP-сети без необходимости предварительной установки стабильных каналов или путей передачи данных. Он работает используя дейтаграммы — блоки информации, передаваемые напрямую, без создания выделенного виртуального канала.
Принцип работы протокола UDP
Эта технология предлагает более простой алгоритм передачи данных. Он состоит всего из 4 базовых этапов:
Протокол UDP не предусматривает отправку подтверждений. Поэтому часть дейтаграмм точно будет утеряна. Однако и применяется эта технология там, где такие потери несущественны, а главную роль играет скорость передачи. Например, в онлайн-играх или сервисах потокового видео.
Для защиты такого вида передачи данных используют дополнительные меры. Например, прокси или туннельное соединение между пользователем и серверами компании.
TCP и UDP разница
Разница между UDP и TCP заключается в скорости и надежности передачи данных. Для наглядного сравнения, мы представили их основные характеристики в виде таблицы.
Устанавливает устойчивое соединение перед передачей данных. Начинает передачу сразу.
Обеспечивает гарантированную доставку данных с подтверждением. Не гарантирует доставку и не подтверждает получение данных.
Использует механизмы для обнаружения и исправления ошибок. Не имеет механизмов.
Имеет механизмы подтверждения доставки и повторной передачи. Не имеет данных механизмов
Часто используется для передачи данных, где ценится надежность. Применяется там, где небольшая задержка критична.
Преимущества и недостатки
Мы постарались отобразить все главные плюсы и минусы данных протоколов в таблице.
Возможность установить связь между разными типами устройств Низкая задержка и минимальная нагрузка на сеть
Работа осуществляется независимо от ОС Доступны трансляция и многоадресная передача данных
Поддержка разных протоколов маршрутизации Возможность управления потоком данных для определения первостепенно важных пакетов для доставки
Возможность взаимодействия в сети между организациями Более точный контроль над ошибками
Имеет архитектуру, пригодную к активному масштабированию Не требует подтверждения доставки
Возможность самостоятельного управления Более компактный формат заголовков (меньше символов)
Больше символов в заголовке Невозможность повторного запроса на отправку при потере данных
Невозможность использования для многоадресной передачи данных и их трансляции Сложность контроля ошибок из-за отсутствия механизмов подтверждения и повторной отправки
Сложная замена процедуры протокола Отсутствие уведомлений о состоянии соединения
Требует подтверждения каждого отправленного пакета Высокий риск потери данных
Блокирует пакеты с ошибками
Снижение эффективности при высокой загрузке сети
Нельзя сказать, что один протокол хуже или лучше другого. Для достижения лучшего качества и скорости передачи данных, а соответственно и работы онлайн-сервисов, протоколы используются в тандеме. Например, для передачи мультимедийных файлов, потокового видео и аудио или стриминга лучше использовать технологию UDP. Тут на первый план выходит его малая скорость задержки. В свою очередь протокол TCP применяют там, где важна гарантия и подтверждение доставки пакетов. Например, для осуществления транзакций.
Протокол прикладного уровня — сетевой протокол верхнего уровня (7-го в сетевой модели OSI и 4-го в стеке протоколов TCP/IP), обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Пример: HTTP, POP3, SMTP.
Сетевая модель OSI
Для улучшения этой статьи желательно:
После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.
В другом языковом разделе есть более полная статья Application Layer (англ.).
Вы можете помочь проекту, расширив текущую статью с помощью перевода

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.
Но при изучении и исследовании хочется большего, например, поэкспериментировать с пакетами сетевых протоколов. Многие сетевые протоколы реализованы в ядре операционной системы, и что-либо изменить может оказаться сложной задачей, так как это требует навыков в написании драйверов для операционной системы. Но использование специализированных библиотек позволяет работать с протоколами на низком уровне из пространства пользователя.
В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.
Приложение — простое и понятное и, надеюсь, упростит изучение материалов статьи. Ведь именно радость первой победы даёт мотивацию, достаточную для того, чтобы потратить гораздо больше времени на изучение темы.
В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Приложение доступно на GitHub.
