Что такое протокол в программировании
Перейти к содержимому

Что такое протокол в программировании

  • автор:

Протоколы и IP: что нужно знать программисту

Работа устройств с Сетью требует от программиста грамотного подключения и реализации. Обычно эти процессы осуществляются посредством специальных «скриптов». Они работают по особым правилам и принципам. Носят название протоколов.

В данной статье будет рассказано о том, что собой представляет TCP IP. Также изучим виды протоколов, встречающиеся на практике. Предложенная информация будет одинакова полезна и разработчикам, и системным администраторам. Рядовым пользователям, увлекающимся Сетью и интернетом, соответствующие материалы тоже помогут.

Понятие протокола

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

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

Что это

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

Это – один из важнейших моментов в системном администрировании, веб разработке и коддинге. Набор протоколов предусматривает некоторые соглашения о межсетевом взаимодействии и маршрутизации. Через соответствующий инструментарий получается налаживать связь между посетителями университетов, исследовательских организаций, а также предприятий и государственных учреждений.

TCP – это…

Изучая протоколы TCP IP, пользователь должен понимать, о каких вообще элементах идет речь. Ранее было сказано, что под соответствующим термином подразумевают весь интернет, работающий через TCP, а также IP. Поэтому далее каждому понятию будет дано отдельное описание.

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

О характеристиках

Стоит обратить внимание на то, что у протокола TCP несколько характеристик. Они заключаются в следующем:

  • обеспечение взаимодействия на уровне логического соединения;
  • потоковая рассылка данных;
  • двунаправленная взаимосвязь;
  • функции отправки отдельных пакетов электронных материалов;
  • использование принципа «скользящего окна» для увеличения скорости обмена информацией.

TCP передает данные, а также является одним из ключевых при рассмотрении принципов работы Сети. С этим «сводом правил» должен быть знаком каждый системный администратор.

Несколько слов об IP

Следующий важный компонент – это IP. Он расшифровывается как «Интернет протокол». Выступает в качестве базы передачи пакета данных. Нужен для отправки сетевых сведений по заданному адресу. Последний носит названием «ip-адрес». Все собранные материалы сначала необходимо поделить на несколько отдельных пакетов. Они будут отправляться получателю независимо друг от друга.

Параметры и характеристики

Ключевыми характеристиками протоколов сетевого типа (IP) выступают следующие моменты:

  • организация обмена данными через сегменты;
  • взаимодействие девайсов без логического соединения;
  • проведение фрагментации АйПи-сегментов, если это необходимо;
  • отсутствие средств для управления скоростью передачи информации.

Таким образом рассматриваемые компоненты – это неотделимая часть обмена данными по интернету или через компьютерные сети.

Стеки сетевых протоколов – ключевые особенности

Стек сетевых протоколов TCP/IP нужен для того, чтобы можно было поддерживать связь компьютеров (хостов), которые будут подключены предварительно к Сети. Такой набор имеет одну особенность. Это – аппаратная независимость. Ее не удастся получить при применении иных сетевых технологий и манипуляций.

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

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

Основные команды

Протоколы TCP/IP предусматривают в процессе своей работы выполнение тех или иных команд. Вот основные из них:

  • передача документов и файлов в иные системы;
  • выполнение операций и заданных команд удаленно;
  • отправка сообщений удаленным пользователям;
  • удаленная печать файлов;
  • вход в удаленную систему;
  • управление заданной системой.

Стек протоколов TCP IP – это сетевая модель, описывающая весь процесс передачи имеющихся цифровых материалов. До ее изобретения соответствующие операции были невозможны. До 70-х годов прошлого века проблему решить не удавалось. Стековая разработка помогла ее устранить, причем весьма успешно.

Разработка велась под руководством Минобороны США. Иногда рассматриваемая «технология» носит название DoD-системы. Некоторые специалисты говорят, что система похожа на представление уровня модели OSI. Связано это с тем, что оба варианта опираются на принцип деления по уровням, чтобы после выполнять отдельные функции и операции на каждом «слое».

Общая терминология и понятия

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

  1. Стек (стек протоколов TCP/IP в том числе). Это – гибкое средство для организации сетевого взаимодействия. За счет стека юзер сможет применять собственные параметры и настройки.
  2. TCP/IP. Специальное ПО, которое помогает в отладке Сети. Устанавливается на устройство вместе с базовой операционной системой. Для применения соответствующей «технологии» не придется проводить инициализацию дополнительного программного обеспечения.
  3. Карта сетевых адаптеров. Физическое устройство, подключаемое к сетевому кабелю.
  4. Настройка протоколов. Так называется процесс отладки работы соответствующих «технологий». Обычно подобная настройка осуществляется при помощи инициализации базовой операционной системы. Дополнительные манипуляции для успешного проведения процедуры от юзера не потребуются.
  5. Схема IP-адресации. Технология, позволяющая однозначно идентифицировать хосты и сети, с которыми будет установлено соединение.
  6. Демоны TCP/IP протоколов. Это – серверы. Процессы, которые работают в фоновом режиме. Отвечают за выполнение запросов других операций.

Это всего лишь введение в весьма важную тему. Программеру и системному администратору потребуются большие знания в принципах работы Сети. Лишь это поможет настроить в заданном стандарте процесс обмена информацией.

Назначение

У многих возникает вопрос, какую задачу решает рассматриваемый тип протокола. Процесс передачи информации между устройствами требует, чтобы все подключенные компьютеры использовали одни и те же «технологии».

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

Файлы, которые были отправлены, будут разбиваться на отдельные пакеты, передаваемые на конечные устройства. Соединяются оные в строго установленной последовательности. Каждый пакет дополнительно имеет так называемый «контрольный байт». Это – компонент, позволяющий удостовериться в отсутствии ошибок. Если устройство обнаруживает баг в процессе обмена данными, пакет будет запрашиваться у «источника» снова.

Подобный процесс обеспечивает безопасность и стабильность передачи электронных материалов и приложений. Но передаваться документы смогут с ограниченной скоростью.

Стек протоколов TCP/IP – это совершенная модель. Она дает возможность настраивать взаимодействие компьютеров, подключать к ним разного рода сетевые устройства. Ключевое назначение «технологии» — обеспечение трафика крупных сетей, а также поддержка функционирования всего интернета.

Продолжение статьи читайте тут.

P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus:

  • «Network engineer «;
  • «Network engineer. Basic «.

Протокол

Протокол в IT — это набор правил, по которым передаются данные. С помощью протоколов связываются между собой компьютеры в сети, разные устройства и программы. Они выполняют определенные правила и поэтому понимают друг друга.

Освойте профессию
«Cистемный администратор»

Протоколы в информатике описывают, в каком формате будут передаваться данные, как будет выглядеть процедура их передачи. Еще в них обычно прописано, как устройства будут «договариваться» друг с другом при контакте и что делать с ошибками, если они возникнут. Например, протокол доступа к каталогам (LDAP) регламентирует способ получения и изменения информации в каталоге.

Системный администратор

Станьте универсальным специалистом по администрированию Linux с нуля

cables_2 2-PhotoRoom 1 (3)

Для чего нужны протоколы

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

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

Например, при помощи протоколов люди могут открывать сайты: браузер на компьютере связывается с сервером по протоколу HTTP или HTTPS. Благодаря FTPпротоколу по интернету можно передавать файлы, а протокол BitTorrent позволяет потоково скачивать данные.

Кто работает с протоколами

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

В узком смысле с протоколами работают сетевые инженеры и системные администраторы, которые настраивают сервера и инфраструктуру сети. С протоколами приходится сталкиваться бэкенд-разработчикам и DevOps-инженерам. Есть и более специфические профессии: например, инженеры телекоммуникационных систем или специалисты, работающие с системами «умных» домов.

Каждый из этих специалистов ведет работу с протоколами в своей отрасли. Например, сетевой инженер в компании должен хорошо понимать, как работают протоколы, связанные с интернетом, — это не значит, что он обязан разбираться в многочисленных протоколах «умных» устройств.

Благодаря тому что протоколов много, для каждого «уровня» связи можно назначить своего специалиста и распределить нагрузку. Поэтому не возникает ситуации, когда один человек отвечает за все задачи разом.

Сисадмин — давно не человек, который настраивает компьютеры. Станьте сильным специалистом, который поддерживает инфраструктуру компании.

Виды протоколов

По типу задач протоколы делятся на физические и логические.

Физические

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

Логические

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

Что такое модели

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

Например, все сайты используют один и тот же набор протоколов — из моделей OSI и TCP/IP. Поэтому компьютер пользователя может связаться с любым доступным в сети сайтом.

  • Без модели OSI не работал бы интернет — на всех уровнях, начиная с частоты электрических сигналов, проходящих по сети.
  • Без TCP/IP сайты и компьютеры не могли бы общаться друг с другом, даже если физически связь налажена.
  • Без технологии Bluetooth, которая объединяет протоколы разных беспроводных устройств, мы не смогли бы пользоваться ни TWS-наушниками, ни умными колонками.

Сетевая модель 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-адреса;
  • соотносит эти адреса с аппаратными — MAC-адресами;
  • создает логические соединения между разными адресами;
  • определяет маршрут, по которому пойдет пакет данных.

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

Связка TCP/IP — ключевая в устройстве сети. Некоторые определения включают в модель и другие протоколы, важные для интернета, например HTTP или DNS, даже Ethernet с канального уровня. Но основу все равно составляют TCP и IP.

Что такое UDP/IP

Иногда вместо протокола TCP в той же модели используется другой транспортный протокол — UDP. Тогда говорят о модели UDP/IP, а иногда ее называют частным случаем TCP/IP. Название означает User Datagram Protocol — протокол пользовательских датаграмм. Датаграмма в этом случае — название пакета данных. UDP проще и быстрее, чем TCP, но не так заботится о целостности информации:

Мем про протоколы 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 — Я чайник. А чайник приготовить кофе не сможет.

Если вы хотите узнать больше про веб-технологии и протоколы — запишитесь на курсы. Будет много практики и интересных реальных задач.

Системный администратор

Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер. Перед вами откроется широкая область для реализации и развития: от сисадмина до CTO

Что такое протокол

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

Что такое протокол

Протокол в ИТ — это набор правил, по которым устройства и программы обмениваются данными. Можно сказать, что это язык — в смысле, что это набор правил общения. Можно сказать, что это грамматика языка. Короче — набор правил.

Обычно в протоколе будут правила:

  • Как открывать общение и приветствовать другую сторону.
  • Как договориться с другой стороной о параметрах передачи данных.
  • Что делать в случае ошибок и недопонимания.
  • Как понять, что передача данных завершена.

Когда мы говорили про умный дом, то там многое было завязано на протоколы. Именно по этой причине приборы от разных производителей часто не могут работать вместе — у них просто нет общего протокола.

Физические и логические протоколы

Протоколы делятся на два вида — физические и логические.

Физические протоколы регулируют то, как именно и какие сигналы будут идти от одного устройства к другому. Например, импульсами по 5 вольт 100 раз в секунду или на определённой частоте радиосигналов. Эти протоколы нужны для того, чтобы наладить связь между устройствами. А уже после налаживания связи можно передавать данные.

�� Физические протоколы часто называют сигнальными, потому что они регулируют передачу физических сигналов между устройствами.

Логические протоколы отвечают за смысл и передачу данных, когда связь уже установлена. Например, у нас есть два блютус-устройства, телефон и наушники, которые выяснили друг про друга, что они могут работать по одному и тому же проколу. После того как они наладили связь, они могут использовать протокол передачи данных, чтобы узнать друг о друге получше:

  • какая версия блютуса стоит на каждом устройстве;
  • кто что умеет делать — только играть музыку или ещё может работать как гарнитура;
  • есть ли поддержка музыкальных кодеков;
  • какой уровень заряда на каждом устройстве;
  • нужно ли использовать энергосберегающий режим и так далее.

�� Получается, что задача физического протокола — установить связь между устройствами, а логического — передавать данные по этой установленной связи.

Что такое протокол

Сетевые модели

Скорее всего, вы уже знаете, что браузеры получают данные от серверов по протоколу HTTPS, файлы — по FTP-протоколу, а сервером можно управлять по SSH-протоколу. Но так как все они используют похожие схемы установления связи и логики работы, сетевые протоколы объединяют в модели передачи данных в сети.

Модель (в этом случае) — это сборник протоколов и других вещей, которые вместе помогают решать более сложные задачи, чем то, на что способен один конкретный протокол.

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

Соответственно, сетевая модель — это «комплексный обед» из протоколов, которые разложены на разных уровнях и служат каждый своей цели.

В ИТ есть две основных сетевых модели передачи данных — OSI и стек TCP/IP. OSI расшифровывается как Open Systems Interconnection Model, открытая модель взаимосвязей систем. Её разберём сейчас, а TCP/IP — в отдельной статье.

Как устроена модель OSI

В OSI всё делится на 7 уровней, каждый из которых отвечает за что-то своё.

  1. Физический уровень отвечает за физические параметры связи — будет ли это радиосвязь, передача тока по проводам или оптический канал связи.
  2. Канальный уровень регулирует то, как именно будет использоваться физический канал связи и как будут передаваться и приниматься сигналы по этому каналу.
  3. Сетевой уровень задаёт правила адресации и доставки сообщения — как сделать так, чтобы наше сообщение получил нужный нам адресат.
  4. Транспортный уровень делает так, чтобы все сообщения отправлялись по очереди, а не так, чтобы один всё время что-то отправляет, а второй не знает, как вклиниться.
  5. Сеансовый уровень отвечает за связь между двумя программами, которые работают на разных компьютерах.
  6. Уровень представления используется для того, чтобы внутренние данные компьютера представить в том формате, который нужен для передачи этих данных.
  7. Прикладной уровень обеспечивает понятный способ связи по сети для разных программ.

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

Что такое протокол

Что это нам даёт

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

И вот этот механизм:

  • У нас есть набор правил, которые приняли все компьютеры, которые друг друга понимают.
  • Эти правила как бы вложены друг в друга. По-другому можно сказать, что более высокоуровневые правила сидят на низкоуровневых.
  • Благодаря этой вложенности мы можем делать очень сложно взаимодействующие машины: нам не надо изобретать новый способ связи между устройствами, нам достаточно использовать общепринятые протоколы.

На основании этих базовых понятий мы расскажем о главной сетевой модели современности — TCP/IP. Это всё присказка, а сказка впереди.

Протоколы передачи данных: что это, какие бывают и в чём различия?

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

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

Протоколов большое множество. Про основные из них рассказано далее.

IP — Internet Protocol

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

Основная задача этого протокола — маршрутизация датаграмм, т. е. определение пути следования данных по узлам сети.

Популярная версия на текущий момент — IPv4 с 32-битными адресами. Это значит, что в интернете могут хранится 4.29 млрд адресов IPv4. Число большое, но не бесконечное. Поэтому существует версия IPv6, которая поможет решить проблему переполнения адресов, ведь уникальных IPv6 будет 2 ^ 128 адресов (число с 38 знаками).

TCP/IP — Transmission Control Protocol/Internet Protocol

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

UDP — User Datagram Protocol

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

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

FTP — File Transfer Protocol

Протокол передачи файлов. Его использовали ещё в 1971 году — задолго до появления протокола IP. На текущий момент этим протоколом пользуются при удалённом доступе к хостингам. FTP является надёжным протоколом, поэтому гарантирует передачу данных.

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

DNS

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

Что такое DNS? Введение в систему доменных имён

HTTP — HyperText Transfer Protocol

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

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

Предупреждён – значит вооружён: от чего не спасает HTTPS

NTP — Network Time Protocol

Не все протоколы передачи нужны для обмена классического вида информацией. NTP — протокол для синхронизации локальных часов устройства со временем в сети. Он использует алгоритм Марзулло. Благодаря нему протокол выбирает более точный источник времени. NTP работает поверх UDP — поэтому ему удаётся достигать большой скорости передачи данных. Протокол достаточно устойчив к изменениям задержек в сети.

Последняя версия NTPv4 способна достигать точности 10мс в интернете и до 0,2мс в локальных сетях.

SSH — Secure SHell

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

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

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

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

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