Виды протоколов в сети интернет: какой протокол является базовым

Какими бывают протоколы Интернета?

Для примера пояснения того, что такое протокол Интернета, рассмотрим наиболее распространенные компьютерные системы, работающие под управлением Windows (Mac OS X и другие UNIX-подобные системы типа Linux мы сейчас затрагивать не будем).

На сегодняшний день известно несколько основных типов -это TCP/IP, UDP, FTP, ICMP, DNS, HTTP и т.д. Продолжать можно достаточно долго. Чем же все они отличаются?

Различие состоит только в уровнях назначения. Так, например, существуют физические уровни (создание соединения при помощи витой пары или оптоволокна), ARP-уровень, включающий драйверы устройств, сетевой уровень (стандартные протоколы IP и ICMP), транспортный уровень (TCP и UDP), а также прикладной, куда входят протоколы типа HTTP, FTP, DNS, NFS и т.д.

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

Уровни сетей и модель OSI

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

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

Модель OSI

Так сложилось исторически, что когда дело доходит до уровней работы сетей, используется модель OSI или Open Systems Interconnect. Она выделяет семь уровней:

  • Уровень приложений – самый верхний уровень, представляет работу пользователя и приложений с сетью Пользователи просто передают данные и не задумываются о том, как они будут передаваться;
  • Уровень представления – данные преобразуются в более низкоуровневый формат, чтобы быть такими, какими их ожидают получить программы;
  • Уровень сессии – на этом уровне обрабатываются соединения между удаленным компьютерами, которые будут передавать данные;
  • Транспортный уровень – на этом уровне организовывается надежная передача данных между компьютерами, а также проверка получения обоими устройствами;
  • Сетевой уровень – используется для управления маршрутизацией данных в сети пока они не достигнут целевого узла. На этом уровне пакеты могут быть разбиты на более мелкие части, которые будут собраны получателем;
  • Уровень соединения – отвечает за способ установки соединения между компьютерами и поддержания его надежности с помощью существующих физических устройств и оборудования;
  • Физический уровень – отвечает за обработку данных физическими устройствами, включает в себя программное обеспечение, которое управляет соединением на физическом уровне, например, Ehternet или Wifi.

Как видите, перед тем, как данные попадут к аппаратному обеспечению им нужно пройти множество слоев.

Модель протоколов TCP/IP

Модель TCP/IP, еще известная как набор основных протоколов интернета, позволяет представить себе уровни работы сети более просто. Здесь есть только четыре уровня и они повторяют уровни OSI:

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

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

Транспортный уровень

Транспортный уровень устанавливает основные каналы данных, которые приложения используют для обмена данными для конкретных задач. Уровень устанавливает связь между хостами в форме услуг сквозной передачи сообщений, которые не зависят от базовой сети и от структуры пользовательских данных и логистики обмена информацией. Возможности подключения на транспортном уровне можно разделить на две категории: ориентированные на установление соединения , реализованные в TCP, или не связанные с установлением соединения , реализованные в UDP. Протоколы в этом слое могут обеспечить контроль ошибок , сегментацию , управление потоком , управление перегрузкой и применение адресации ( номера портов ).

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

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

TCP — это протокол с установлением соединения, который решает многочисленные проблемы надежности при обеспечении надежного потока байтов :

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

Новый протокол передачи управления потоком (SCTP) также является надежным транспортным механизмом, ориентированным на установление соединения. Он ориентирован на поток сообщений, а не на поток байтов, как TCP, и обеспечивает несколько потоков, мультиплексированных через одно соединение. Она также обеспечивает Многодомность поддержку, в котором соединительный конец может быть представлен несколькими IP — адресами (представляющих несколько физических интерфейсов), так что , если один выходит из строя, соединение не прерывается. Первоначально он был разработан для приложений телефонии (для передачи SS7 по IP).

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

User Datagram Protocol (UDP) является установление соединения дейтаграммы протокола. Как и IP, это ненадежный протокол, требующий максимальных усилий. Надежность достигается путем обнаружения ошибок с использованием алгоритма контрольной суммы. UDP обычно используется для таких приложений, как потоковая передача мультимедиа (аудио, видео, передача голоса по IP и т

Д.), Где своевременное поступление более важно, чем надежность, или для простых приложений запросов / ответов, таких как поиск DNS , где накладные расходы на настройку надежное соединение непропорционально велико. Транспортный протокол реального времени (RTP) — это протокол дейтаграмм, который используется поверх UDP и предназначен для данных в реальном времени, таких как потоковая передача мультимедиа .

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

Транспортный уровень модели TCP / IP или уровень хост-хост примерно соответствует четвертому уровню в модели OSI, также называемому транспортным уровнем.

HTTP/1.0 — 1996

В отличие от HTTP/0.9, спроектированного только для HTML-ответов, HTTP/1.0 справляется и с другими форматами: изображения, видео, текст и другие типы контента. В него добавлены новые методы (такие, как POST и HEAD). Изменился формат запросов/ответов. К запросам и ответам добавились HTTP-заголовки. Добавлены коды состояний, чтобы различать разные ответы сервера. Введена поддержка кодировок. Добавлены составные типы данных (multi-part types), авторизация, кэширование, различные кодировки контента и ещё многое другое.

Вот так выглядели простые запрос и ответ по протоколу HTTP/1.0:

Помимо запроса клиент посылал персональную информацию, требуемый тип ответа и т.д. В HTTP/0.9 клиент не послал бы такую информацию, поскольку заголовков попросту не существовало.

Пример ответа на подобный запрос:

В начале ответа стоит HTTP/1.0 (HTTP и номер версии), затем код состояния — 200, затем — описание кода состояния.

В новой версии заголовки запросов и ответов были закодированы в ASCII (HTTP/0.9 весь был закодирован в ASCII), а вот тело ответа могло быть любого контентного типа — изображением, видео, HTML, обычным текстом и т. п. Теперь сервер мог послать любой тип контента клиенту, поэтому словосочетание «Hyper Text» в аббревиатуре HTTP стало искажением. HMTP, или Hypermedia Transfer Protocol, пожалуй, стало бы более уместным названием, но все к тому времени уже привыкли к HTTP.

Один из главных недостатков HTTP/1.0 — то, что вы не можете послать несколько запросов во время одного соединения. Если клиенту надо что-либо получить от сервера, ему нужно открыть новое TCP-соединение, и, как только запрос будет выполнен, это соединение закроется. Для каждого следующего запроса нужно создавать новое соединение.

Почему это плохо? Давайте предположим, что вы открываете страницу, содержащую 10 изображений, 5 файлов стилей и 5 JavaScript файлов. В общей сложности при запросе к этой странице вам нужно получить 20 ресурсов — а это значит, что серверу придётся создать 20 отдельных соединений. Такое число соединений значительно сказывается на производительности, поскольку каждое новое TCP-соединение требует «тройного рукопожатия», за которым следует медленный старт.

Тройное рукопожатие

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

  • SYN — Клиент генерирует случайное число, например, x, и отправляет его на сервер.
  • SYN ACK — Сервер подтверждает этот запрос, посылая обратно пакет ACK, состоящий из случайного числа, выбранного сервером (допустим, y), и числа x + 1, где x — число, пришедшее от клиента.
  • ACK — клиент увеличивает число y, полученное от сервера и посылает y + 1 на сервер.

Примечание переводчика: SYN — синхронизация номеров последовательности, (англ. Synchronize sequence numbers). ACK — поле «Номер подтверждения» задействовано (англ. Acknowledgement field is significant).

Только после завершения тройного рукопожатия начинается передача данных между клиентом и сервером. Стоит заметить, что клиент может посылать данные сразу же после отправки последнего ACK-пакета, однако сервер всё равно ожидает ACK-пакет, чтобы выполнить запрос.

Тем не менее, некоторые реализации HTTP/1.0 старались преодолеть эту проблему, добавив новый заголовок Connection: keep-alive, который говорил бы серверу «Эй, дружище, не закрывай это соединение, оно нам ещё пригодится». Однако эта возможность не была широко распространена, поэтому проблема оставалась актуальна.

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

Сетевые уровни

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

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

Это также позволяет использовать более низкие уровни для обработки трафика, не тратя время и силы на разработку новых протоколов и приложений.

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

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

Модель OSI

OSI (Open Systems Interconnect) – это базовая модель взаимодействия открытых систем, которая состоит из 7 уровней:

  • 7 – Прикладной: уровень, с которым чаще всего взаимодействуют пользователи и пользовательские приложения. Он отвечает за передачу служебных данных, предоставляет приложениям сведения об ошибках и формирует запросы к следующему уровню.
  • 6 – Представительский уровень (или уровень представления) отвечает за организацию данных при пересылке и преобразование данных в формат приложений.
  • 5 – Сеансовый уровень управляет соединением. Он создаёт, поддерживает и сбрасывает соединения между нодами.
  • 4 – Транспортный уровень отвечает за обработку и соединение между другими уровнями модели, а также за передачу данных от отправителя к получателю.
  • 3 – Сетевой уровень обеспечивает маршрутизацию данных между нодами сети, транслирует логические адреса и имена в физические. Также этот уровень определяет путь передачи данных
  • 2 – Канальный уровень отвечает за установление и поддержку надёжных соединений между нодами или устройствами сети.
  • 1 – Физический уровень – нижний уровень модели; отвечает за обработку физических устройств, которые используются для установления соединения. Этот уровень включает в себя простое программное обеспечение, которое управляет физическими соединениями, а также аппаратное обеспечение (например, Ethernet).

Модель TCP/IP

Модель TCP/IP (набор протоколов Internet) – ещё одна популярная модель, которая состоит из 4 уровней (они совпадают  с некоторыми уровнями OSI):

  • Прикладной уровень отвечает за обмен данными между приложениями. Здесь работает большинство сетевых приложений. Конечный пользователь будет видеть удалённое приложение как локальное.
  • Транспортный уровень поддерживает взаимодействие между процессами. Этот уровень использует порты для обращения к различным сервисам. Он может создавать небезопасные и безопасные соединения в зависимости от типа используемого протокола.
  • Сетевой уровень обеспечивает передачу данных между нодами сети. IP-адреса используются как способ удаленного доступа к системам.
  • Канальный уровень описывает среду, принципы и характеристики передачи данных. Он устанавливает соединения между соседними нодами для отправки данных.

Резюме¶

Протокол HTTP это:

  • однонаправленный (запрос/ответ)
  • текстовый протокол
  • не хранит состояния
  • работает на сетевом уровне только через TCP
  • может передавать любые данные
  • используется не только в браузерах
  • обслуживает львиную долю Интернет трафика

Достоинства

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

Недостатки

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

  • Отсутствие навигации. У протокола отсутствую средства навигации среди
    ресурсов сервера. Клиент не может, как в FTP запросить список доступных
    файлов. Протокол предполагает, что пользователю уже известен URI
    интересующего его ресурса.

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

    Карта сайта может использоваться как пользователем, так и
    роботами-пауками поисковых систем, уменьшая для них глубину
    просмотра—минимально необходимое количество переходов с главной страницы.
    Аналогичную функцию выполняют и файлы sitemap, но только для
    приложений. Данная проблема полностью решена в протоколе более высокго
    уровня WebDAV с помощью добавленного метода PROPFIND, который
    позволяет получить не только дерево каталогов, но и список параметров
    каждого ресурса.

  • Отсутствие поддержки распределённости. Изначально протокол HTTP
    разрабатывался для решения типичных бытовых задач, где само по себе время
    обработки запроса должно занимать незначительное время или вовсе не
    приниматься в расчёт. Однако со временем стало очевидно, что при
    промышленном использовании с применением распределённых вычислений при
    высоких нагрузках на сервер протокол HTTP оказывается непригоден. В
    связи с этим с 1998 году был предложен альтернативный протокол HTTP-NG (англ. HTTP Next
    Generation), но этот протокол до сих пор находится на стадии разработки.

Что такое TCP/IP

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

Полностью пишется, как, Transmission Control Protocol/Internet Protocol, что в переводе означает — Протокол управления передачи/Интернета.

Позволяет взаимодействовать между собой устройствам, находящимся в разных сетях и с различными операционными системами, например, между Windows, Mac OS, Linux и т.д.

Название данного стека — набора правил сложилось из основных двух:

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

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

Как работает TCP/IP — принцип работы

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

Так обмениваются между собой программы по сети:

Программа 1 — отправитель:
IP адрес: 192.168.0.32
Порт: 2054

Программа 2 — получатель:
IP адрес: 192.168.0.34
Порт: 2071

Пересылаемые данные пакета:
— — —

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

Стек протоколов TCP/IP

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

1. Прикладной / Для приложений. Это: HTTP, SMTP, DNS, FTP и т.д. Т.е. Веб, почта, передача файлов и прочее.2. Транспортный. Это: TCP, UPD и т.д. Отвечает за связь между компьютерами и за доставку данных.3. Сетевой (межсетевой). IP, IGMP и т.д. Отвечает за адресацию.4. Канальный / Сетевые интерфейсы. Это: Ethernet, Wi-Fi, DSL.

На этом стеке и реализовано все взаимодействие пользователей в IP сетях. Также, существуют и другие стеки: OSI, IPX/SPX, IPX/SPX.

В заключение

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

Стеки

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

  • Подготовку информации
  • Ее передачу
  • Прием информации
  • Вспомогательные действия

Подобное разбиение на функции позволяет протоколам работать слаженно. Несколько протоколов, которые работают одновременно, в связке принято называть стеком. В большинстве современных протоколов уровни в стеке совпадают с уровнями основополгающей моделью OSI, которая была разработана и утверждена сертификационным комитетом ISO в 1984 году. Стек представляет собой некий конгломерат протоколов, являя собой единое целое. Стек делиться по алгоритмическим уровням. Каждый из этих уровней для выполнения своих задач использует собственный протокол. Для каждого уровня применим собственный набор правил. В соновном принято выделять три типа стеков:

  • Прикладные. Такие протоколы работают на высшем уровне в соответствии с моделью OSI. Они обеспечивают обмен данными между OSI-уровнями.
  • Сетевые. Эти протоколы обеспечивают поддержку сеансов связи между компьютерами. Фактически они являются гарантией качественной и надежной связи.
  • Транспортные. Такие протоколы наиболее популярны, и занимаются предоставлением услуг связи. На деле они управляют маршрутизацией, маршрутизацией, проверкой ошибок, а также запросами на повторную передачу данных.

Что такое ARP протокол или как происходит взаимодействие устройств ЛВС?

ARP — это протокол по которому определяется MAC-адрес узла по его IP-адресу. Например, в нашей локальной сети есть несколько компьютеров. Один должен отправить информацию другому, но при этом знает только его IP-адрес, а для взаимодействия на физическом уровне нужен MAC-адрес. Что происходит? Один из компьютеров отправляет широковещательный запрос всем участникам локальной сети. Сам запрос, содержит IP-адрес требуемого компьютера и собственный MAC-адрес. Другой компьютер с данным IP-адресом, понимает, что запрос пришел к нему и в ответ высылает свой MAC-адрес на тот, который пришел в запросе. После чего собственно и инициализируется процесс передачи информационных пакетов.

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

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

Adblock
detector