Основные протоколы передачи данных — журнал «Доктайп»
Протоколы — это правила в интернете, по которым устройства с разными операционными системами и программным обеспечением обмениваются данными. С их помощью, например, пользователь Safari на MacBook получает сообщение, отправленное через Chrome на Android.
Чтобы обмениваться данными было удобнее, задачи по их отправке и получению разделены. Создана архитектура «клиент-сервер», где клиент отправляет запрос, а сервер принимает его и возвращает ответ.
Сервер — это специальная программа, или мощный компьютер, его ещё называют хост-системой. Клиент — любое устройство для работы с сайтом, например, ноутбук, смартфон или бортовой компьютер в автомобиле.
Веб-приложение — это клиент-серверное приложение, в котором клиентом выступает браузер. Допустим, на сервере хранится HTML-страница с кодом. Браузер получает файл и показывает этот код как привычную страницу сайта.
Браузер отправляет запрос, а сервер принимает его и возвращает ответКакие бывают протоколы
Протоколы определяют правила выполнения конкретных задач. Но фронтендерам необязательно знать все существующие протоколы — достаточно разбираться в основных.
Internet Protocol — IP
IP отвечает за поиск компьютеров в сети по их IP-адресам. Ещё он предоставляет стратегию маршрутизации, то есть составляет оптимальный маршрут для передачи данных.
Данные в интернете передаются IP-пакетами. У каждого пакета есть заголовок и данные. В заголовке находятся IP-адреса источника и пункта назначения. Данные — это само содержимое, например, часть веб-страницы.
Работу IP можно сравнить с почтовым отделением: протокол направляет IP-пакеты по интернету так же, как почта рассылает письма по всему миру. При доставке почта использует пункты передачи: письмо из отделения сначала попадает на поезд, потом на грузовик и в конце вручается адресату. В интернете тоже есть «пункты передачи» — их называют маршрутизаторами. Цель маршрутизатора — отправить пакет в пункт назначения по самому короткому пути. Если всё идёт хорошо, пакет прибывает на ближайший к получателю маршрутизатор, который точно знает, куда его отправить. Но бывает и так, что какой-то из маршрутизаторов на пути взломан или вышел из строя, и тогда выбирается другой путь:
Множество соседних путей делает передачу данных более надёжнойDNS
Уникальный IP-адрес есть у каждого домена. Он записывается в виде четырёх чисел от нуля до 255 — например, 74.125.20.113. Введите этот адрес в браузерную строку и посмотрите, на какой сайт вы попали.
Ответ: на https://www.google.com/
DNS связывает IP-адрес с понятным для людей доменным именем, например, 178.79.181.169 превращается в htmlacademy.ru:
Принцип работы DNS похож на поиск и вызов контактов в телефоне. Вряд ли кто-то помнит 1317а друзей — да это и необязательно, ведь они хранятся в списке контактов. Когда мы хотим кому-то позвонить, то просто находим нужное имя и нажимаем кнопку вызова — в этот момент начинается соединение, но не по имени, а по 1317у телефона.
DNS-сервер — это и есть «список всех контактов», то есть IP-адресов, которые там хранятся. Каждому IP-адресу присвоен домен. И когда мы вводим в строке браузера имя домена, то происходит запрос к DNS-серверу — запрашивается IP-адрес.
SSL/TLS
SSL — криптографический протокол шифрования запросов и ответов, он нужен для безопасного перемещения данных по интернету, а TLS — его продвинутая версия. SSL уже почти не используют, но это название было таким популярным, что его до сих пор употребляют, а любой SSL-сертификат у хостинг-компаний — TLS-сертификат.
TCP и UDP
Оба протокола отвечают за передачу данных и работают поверх IP, но с небольшой разницей. TCP доставляет данные без потерь, поэтому его используют для передачи фотографий, сообщений и другой важной информации. А вот UDP не гарантирует доставку, но зато он гораздо быстрее. Его используют, когда скорость важнее надёжности, например, при передаче аудиосообщений или видеотрансляциях.
HTTP и HTTPS
HTTP и HTTPS предназначены для передачи данных и в итоге пользователи могут просматривать веб-страницы. На самом деле HTTPS — это не отдельный протокол, а расширение HTTP. Он безопаснее, так как использует SSL/TLS для шифрования обычных запросов и ответов.
HTTP
HTTP — один из самых используемых протоколов в интернете, поэтому посмотрим подробнее, как он работает.
Протокол работает в формате запрос-ответ с двумя участниками общения:
- клиент — формирует запросы и обрабатывает ответы;
- сервер — обрабатывает запросы и формирует ответы.
Клиент делает запрос на сервер для передачи каждого ресурса: файлов HTML, CSS, JavaScript, изображений или видеофайлов. Затем сервер отвечает на запрос, отправляя ресурс.
Представим, что мы создали HTML со следующей разметкой:
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Главная страница</title> <link rel="stylesheet" href="styles.css"> </head> <body> <header> <img src="logo.svg" alt=""> </header> </body> </html>
Это простой HTML-файл, в котором подключены два ресурса: стилевой файл style.
Для каждого запроса и ответа открывается своё TCP-соединение. При каждом соединении происходит трёхстороннее «рукопожатие»: клиент и сервер трижды обмениваются пустыми пакетами данных, чтобы удостовериться в существовании друг друга и готовности к работе с данными:
Запрос-ответ выглядит так:
Трёхстороннее «рукопожатие» нужно проводить в каждом TCP-соединении, так как HTTP не запоминает состояния, поэтому ни клиент, ни сервер не могут сохранять информацию между различными запросами. HTTP — один из самых ранних протоколов, и при его создании никто не ожидал, что на веб-странице придётся загружать так много ресурсов.
Такое «рукопожатие» делает загрузку страницы медленнее. Чтобы решить проблему, разработчикам приходится сокращать количество загружаемых ресурсов, например, использовать спрайты или разделять файлы по разным доменам — этот метод называется domain sharding. Такие манипуляции уменьшают количество TCP-соединений, хотя и создают свои трудности.
HTTP/2
HTTP/2 — улучшенная версия HTTP. По данным Can I Use, его поддерживают большинство браузеров.
Главное нововведение этого протокола — одно TCP-соединение на разные запросы, или мультиплексирование:
Как выглядит запрос-ответ в HTTP/2:
Ещё в HTTP/2 появился push-сервер, то есть сервер может отправлять больше ответов на один клиентский запрос. Например, если клиент запрашивает файлы index.html, style.css и logo.svg, то сервер отправит сразу три файла. Без push-сервера клиенту нужно запрашивать каждый файл отдельно
Поэтому многие оптимизации под HTTP при переходе на HTTP/2 уже не нужны. Например, можно отказаться от разделения ресурсов по доменам.
HTTP/3
HTTP/3 — третья версия HTTP, основанная на QUIC — протоколе, который предполагает быстрое подключение к интернету через UDP.
Главное преимущество HTTP/3 — сокращение задержки при установке соединения. QUIC достаточно одного «рукопожатия», чтобы установить безопасный сеанс. А ещё HTTP/3 работает поверх UDP, поэтому скорость доставки данных быстрее, чем у HTTP и HTTP/2 поверх TCP.
Протокол уже получил статус предложенного стандарта, то есть браузеры почти завершили работу над поддержкой протокола. Но пока поддержки недостаточно, чтобы переводить сайт с HTTP/2 на HTTP/3.
WebSockets
В этом протоколе соединение устанавливается гораздо быстрее, чем в HTTP — здесь отправляется «рукопожатие» сразу со всей необходимой информацией для передачи данных. Канал при этом остаётся открытым, пока кто-то из сторон не прервёт его. Это означает, что запросы и ответы будут происходить практически мгновенно. А если сервер получит новые данные, он отправит их клиенту без запроса.
Протокол WebSockets используют там, где важна скорость доставки данных, например, в чатах и мессенджерах, играх, онлайн-трансляциях. Он, скорее всего, не пригодится при разработке простых веб-приложений, небольших CMS или при использовании REST API, где достаточно HTTP-запросов GET, POST, PUT и DELETE.
Зачем разбираться в протоколах и сетях
Протоколы — это то, с чем вы уже работали, но, возможно, даже не подозревали. Зная принципы их работы, вы сможете глубже разобраться в связи фронтенда и бэкенда, а ещё поймёте, какие оптимизации проводить в веб-приложении, как лучше передавать данные или как защитить сайт от взлома.
Выбор технологии для приложения
Знание протоколов даёт понимание, какие технологии использовать для определённых задач. Какой протокол выбрать для онлайн-чата с большим количеством пользователей, а какой — для загрузки фотографии пользователя в профиль.
Защита данных
Если знать уязвимости на пути передачи данных, можно предусмотреть и смягчить последствия атак на веб-приложение. Например, создать стратегию защиты данных банковских карт на стороне клиента и на стороне сервера.
Оптимизация приложения под протоколы
Зная особенности протоколов, можно ускорить веб-приложение и не тратить время на ненужную оптимизацию. А ещё появляется понимание, что менять при переходе на другой протокол.
Например, чтобы оптимизировать приложение под HTTP/1, нужно уменьшить количество TCP-соединений. Для этого разработчики сокращают количество файлов: все стили объединяют в styles.css, а все скрипты — в scripts.js. Для HTTP/2 такая оптимизация не нужна, поэтому можно разделить общие CSS и JS-файлы на отдельные и подключать на страницу только необходимые.
Спрайты — оптимизация для протокола HTTP. Их минус в том, что для каждой страницы загружается спрайт с иконками всего веб-приложения, даже если на странице используется всего несколько иконок. Для HTTP/2 можно загружать только те изображения, которые нужны пользователю. При этом необязательно полностью избавляться от спрайтов — можно создать спрайты для компонентов и использовать необходимые на конкретной странице.
Если приложение оптимизировано к HTTP/2, то для перехода на HTTP/3 ничего не нужно делать: все оптимизации подойдут и для HTTP/3.
Прохождение собеседований
Знание протоколов и сетей повышает ценность фронтендера и влияет на его зарплату. Чтобы успешно пройти собеседование на мидла в крупные компании, полезно знать TCP/IP, HTTP/HTTPS, DNS и WebSocket. Ещё нужно хотя бы на базовом уровне знать про безопасность: XSS-атаки и CORS — а разобраться в этой теме без знания протоколов не получится.
При разработке приложений полезно знать, как работает веб и по каким принципам передаются данные. Понимание протоколов позволяет шире смотреть на свою работу, а также знать, куда движется сфера IT и какие технологии будут востребованы в будущем. А ещё эти знания пригодятся при собеседовании на позицию мидла или сеньора. Так что, если вы планируете повысить уровень квалификации, в протоколах точно нужно разбираться. В этом вам помогут наши специализированные курсы.
Материалы по теме
- Как защитить приложение от хакеров
- Чем отличаются HTTP-методы GET и POST
- Протокол HTTP и работа с заголовками
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
ТелеграмПодкастБесплатные учебники
Сетевые протоколы — что это
Интернет очень большой, но на базовом уровне представляет собой связь между множество разных компьютерных устройств. Эта связь обеспечивается через сетевые протоколы — наборы правил, которые регулируют обмен информацией, его порядок и особенности. Протоколов создано много, и в этой статье мы рассмотрим наиболее известные из них, относящиеся к межсетевому, транспортному и прикладному уровню, а также затронем ещё несколько смежных тем.
Модели, на которых работает интернет
Долгое время моделью, отвечающей за установку открытой связи между двумя хостами, являлась Open Systems Interface (OSI), установившая семь уровней протоколов (физический, транспортный, сетевой и т. д.). Она не считалась сетевой архитектурой, так как просто задавала входные и выходные данные для каждого уровня. Поскольку современные протоколы научились работать сразу на нескольких уровнях модели OSI, её на смену пришла новая четырёхуровневая модель: TCP/IP.
Новая модель, как видно из названия, объединяет два основных протокола: Transmission Control Protocol и Internet Protocol.
Для большей наглядности сравним обе модели.
UDP
User Datagram Protocol, о связке которого с протоколом TCP мы рассказывали, представляет собой протокол передачи данных, не требующий предварительной установки соединения между хостами. Он быстрый, но часто теряет пакеты данных во время доставки. А
TCP
Transmission Control Protocol — протокол сквозной связи, созданный в 1974 году и до сих пор востребованный в мире. Надёжный, но медленный. Перед тем, как начинать передачу данных, достигается рукопожатие для установления соединения, и лишь затем начинается передача пакетов. При необходимости пакеты дублируются.
FTP
File Transfer Protocol — протокол прикладного уровня для передачи файлов, появившийся в 1971 году. Использует два канала для передачи данных. Первый, управляющий процессом передачи, называют командным. Второй, передающий информацию — транспортным. FTP — надёжный протокол. Сервер в данном случае называют удалённым хостом, а клиент — локальным. Работает по клиент-серверной модели. После аутентификации пользователь получает доступ к файловой системе. В некоторых случаях возможен анонимный доступ.
RTP
Real-time Transfer Protocol — транспортный протокол, работающий в реальном времени. Нужен для потоковой передачи аудио- и видеоданных. Умеет передавать данные нескольким получателям одновременно. Чаще всего применяется для передачи голоса в IP-телефонии.
DNS
Под аббревиатурой DNS прячется не только система доменных имён Domain Name System. Данное название носит и протокол, благодаря которому эта система и функционирует. Протокол помогает серверам DNS обмениваться базами данных, а клиентским устройствам — запрашивать у
ICMP
Internet Control Message Protocol — важный протокол, который нужен для слежения за ошибками во взаимодействии устройств. Он диагностирует проблемы и определяет, получены ли данные отправителем. Если нет, протокол ICMP генерирует ошибку для отправки на отправляющее устройство. Данный протокол иногда используется злоумышленниками для сетевых атак путём генерации большого объёма ICMP-сообщений.
HTTP
HyperText Transfer Protocol — протокол, который создавался для передачи HTML-файлов, но впоследствии пригодился для всех файлов в сети. Этот протокол клиент-серверного типа не сохраняет промежуточное состояние. Для обмена информацией обычно используется TCP/IP. У HTTP есть защищённая версия: HTTPS. Она поддерживает шифрование, а данные передаются поверх криптопротокола TLS.
NTP
Network Time Protocol — протокол для синхронизации локальных часов устройства с точным временем в интернете. NTP работает на базе алгоритма Марзулло поверх UDP. За счёт этого удаётся добиться более высокой точности времени и скорости передачи данных.
SSH
Secure Shell — защищённый протокол прикладного уровня, необходимый для удалённого управления ОС через протокол TCP. В SSH весь трафик шифруется с использованием заданного вами алгоритма шифрования. Протокол позволяет обрабатывать другие сетевые протоколы передачи, включая аудио- или видеопоток. Его удобно использовать для удалённого подключения клиента к серверу и работы оттуда.
cloud server
12 распространенных сетевых протоколов и объяснение их функций
СетьGetty Images/iStockphoto
Характеристика
Артикул 1 из 6
Часть: Основы компьютерных сетей
Работа в сети заставляет Интернет работать, но ни один из них не может быть успешным без протоколов.
Общие сетевые протоколы и их функции являются ключевыми для связи и подключения через Интернет.- Микаэла Госс, Редактор сайта
Без сетевых протоколов современный интернет перестал бы существовать.
Сетевые протоколы обеспечивают обмен информацией через Интернет и работают за кулисами настолько эффективно, что многие пользователи не задумываются о них или о том, как работает Интернет. Но специалистам по сетевым технологиям крайне важно знать и понимать протоколы как основу работы в сети.
В этом глоссарии рассматриваются 12 распространенных сетевых протоколов, с которыми должны быть знакомы сетевые инженеры, а также предоставляется информация об их основных функциях и важности.
1. Протокол разрешения адресов (ARP)ARP преобразует IP-адреса в MAC-адреса и наоборот, чтобы конечные точки локальной сети могли взаимодействовать друг с другом.
- Адреса IP версии 4 (IPv4) имеют длину 32 бита.
- адресов IPv6 имеют длину 128 бит.
- MAC-адреса — физический аппаратный номер устройства — представляют собой 12 шестнадцатеричных цифр, разделенных на шесть пар.
Преобразования между этими адресами должны выполняться для правильной связи устройства. ARP не требуется каждый раз, когда устройства пытаются обмениваться данными, потому что хост локальной сети сохраняет преобразованные адреса в своем кэше ARP. В результате процесс преобразования ARP в основном используется при подключении к сети новых устройств.
ARP транслирует MAC- и IP-адреса между конечными точками. 2. Протокол пограничного шлюза (BGP)BGP обеспечивает работу Интернета. Этот протокол маршрутизации контролирует, как пакеты проходят через маршрутизаторы в автономной системе (АС) — одной или нескольких сетях, управляемых одной организацией или провайдером, — и соединяются с разными сетями. BGP может соединять конечные точки в локальной сети друг с другом, а также может соединять конечные точки в разных локальных сетях друг с другом через Интернет.
Внешний BGP направляет сетевой трафик из различных AS в Интернет и наоборот. Внутренний BGP направляет сетевой трафик между конечными точками в пределах одной AS.
BGP часто используется для резервирования в Интернете, подключения к глобальной сети и IaaS. 3. Система доменных имен (DNS)DNS — это база данных, которая включает доменное имя веб-сайта и соответствующие ему IP-адреса. Люди используют доменное имя для доступа к веб-сайту, а устройства используют IP-адрес для поиска веб-сайта.
DNS преобразует доменное имя в IP-адреса, и эти преобразования включены в DNS. Серверы могут кэшировать данные DNS, необходимые для доступа к веб-сайтам. DNS также включает в себя протокол DNS, который входит в пакет IP, и детализирует спецификации, которые DNS использует для преобразования и обмена данными.
DNS важен, потому что он может быстро предоставить пользователям информацию и обеспечить доступ к удаленным хостам и ресурсам через Интернет.
4. Протокол динамической конфигурации хоста (DHCP)DHCP назначает IP-адреса конечным точкам сети, чтобы они могли взаимодействовать с другими конечными точками сети по IP. Всякий раз, когда устройство подключается к сети с сервером DHCP в первый раз, DHCP автоматически назначает ему новый IP-адрес и продолжает делать это каждый раз, когда устройство перемещает местоположение в сети.
Когда устройство подключается к сети, происходит квитирование DHCP. В этом процессе рукопожатия устройство и DHCP-сервер взаимодействуют, используя следующие шаги:
- Устройство устанавливает соединение.
- Сервер получает соединение и предоставляет доступные IP-адреса.
- Устройство запрашивает IP-адрес.
- Сервер подтверждает адрес для завершения процесса.
FTP — это клиент-серверный протокол, с помощью которого клиент запрашивает файл, а сервер предоставляет его. FTP работает поверх TCP/IP — набора коммуникационных протоколов — и требует канала команд и канала данных для связи и обмена файлами соответственно. Клиенты запрашивают файлы через командный канал и получают доступ к загрузке, редактированию и копированию файла, среди прочих действий, через канал данных.
FTP стал менее популярным, так как большинство систем начали использовать HTTP для обмена файлами. Однако FTP является распространенным сетевым протоколом для более конфиденциального обмена файлами, например, в банковской сфере.
6. Протокол передачи гипертекста (HTTP)Как и FTP, HTTP — это протокол обмена файлами, работающий поверх TCP/IP. Но HTTP в основном работает через веб-браузеры и обычно узнаваем для большинства пользователей. Когда пользователь входит в домен веб-сайта и стремится получить к нему доступ, HTTP обеспечивает доступ. HTTP подключается к серверу домена и запрашивает HTML-код сайта, который представляет собой код, структурирующий и отображающий дизайн страницы.
Другой формой HTTP является HTTPS, что означает HTTP over Secure Sockets Layer или HTTP Secure. HTTPS может шифровать HTTP-запросы и веб-страницы пользователя. Это обеспечивает большую безопасность для пользователей и может предотвратить распространенные угрозы кибербезопасности, такие как атаки «человек посередине».
HTTP предоставляет пользователям доступ к различным компонентам домена веб-сайта. 7. Интернет-протокол (IP)IP работает аналогично почтовой службе. Когда пользователи отправляют и получают данные со своего устройства, данные объединяются в пакеты. Пакеты похожи на письма с двумя IP-адресами: один для отправителя и один для получателя.
После того, как пакет покидает отправителя, он направляется к шлюзу, подобно почтовому отделению, который направляет его в нужном направлении. Пакеты продолжают проходить через шлюзы, пока не достигнут пункта назначения.
IP обычно сочетается с TCP для формирования TCP/IP, общего набора интернет-протоколов. Вместе IP отправляет пакеты адресатам, а TCP упорядочивает пакеты в правильном порядке, поскольку IP иногда отправляет пакеты не по порядку, чтобы обеспечить максимально быстрое перемещение пакетов.
8. Сначала открыть кратчайший путь (OSPF)OSPF работает с IP для отправки пакетов адресатам. IP направлен на отправку пакетов по кратчайшему маршруту, для чего и предназначен OSPF. OSPF сначала открывает кратчайший или самый быстрый путь для пакетов. Он также обновляет таблицы маршрутизации — набор правил, которые контролируют, куда перемещаются пакеты — и предупреждает маршрутизаторы об изменениях в таблице маршрутизации или сети, когда происходит изменение.
OSPF похож на протокол маршрутной информации и поддерживает его, который направляет трафик в зависимости от количества переходов, которые он должен пройти по маршруту, а также заменил протокол RIP во многих сетях. OSPF был разработан как более оптимизированная и масштабируемая альтернатива RIP. Например, RIP отправляет обновленные таблицы маршрутизации каждые 30 секунд, в то время как OSPF отправляет обновления только при необходимости и вносит обновления в конкретную часть таблицы, где произошло изменение.
RIP помогает определить, что путь через маршрутизатор C приводит к меньшему количеству переходов к месту назначения трафика. 9. Простой протокол передачи почты (SMTP)SMTP — самый популярный протокол электронной почты, входящий в набор TCP/IP и управляющий тем, как почтовые клиенты отправляют сообщения электронной почты пользователей. Почтовые серверы используют SMTP для отправки сообщений электронной почты от клиента на почтовый сервер на принимающий почтовый сервер. Однако SMTP контролирует не то, как клиенты электронной почты получают сообщения, а только то, как клиенты отправляют сообщения.
Тем не менее, SMTP требует других протоколов для правильной отправки и получения сообщений электронной почты. SMTP может работать с почтовым протоколом 3 или протоколом доступа к сообщениям в Интернете, которые контролируют, как сервер электронной почты получает сообщения электронной почты.
10. ТелнетTelnet предназначен для удаленного подключения и устанавливает соединения между удаленной конечной точкой и хост-компьютером для обеспечения удаленного сеанса. Telnet предлагает пользователю удаленной конечной точки войти в систему. После аутентификации пользователя Telnet предоставляет конечной точке доступ к сетевым ресурсам и данным на хост-компьютере.
Telnet существует с 1960-х годов и, возможно, был первым проектом современного Интернета. Однако в Telnet отсутствуют сложные средства защиты, необходимые для современных коммуникаций и технологий, поэтому он больше не используется.
11. Протокол управления передачей (TCP)TCP — это вторая половина TCP/IP, которая упорядочивает пакеты в таком порядке, чтобы IP мог их доставить. В частности, TCP нумерует отдельные пакеты, потому что IP может отправлять пакеты к месту назначения по разным маршрутам и получать их не по порядку, поэтому TCP исправляет это до того, как IP доставляет пакеты.
TCP также обнаруживает ошибки в процессе отправки, в том числе отсутствие каких-либо пакетов в соответствии с системой нумерации TCP, и требует от IP повторной передачи этих пакетов, прежде чем IP доставит данные по назначению. С помощью этого процесса пакет TCP/IP управляет связью через Интернет.
Ключевые различия между TCP и UDP включают порядок пакетов и варианты использования. 12. Протокол пользовательских дейтаграмм (UDP)UDP является альтернативой TCP и также работает с IP для передачи чувствительных ко времени данных. UDP обеспечивает передачу данных с малой задержкой между интернет-приложениями, что делает его идеальным для VoIP или других требований к аудио и видео.
В отличие от TCP, UDP не ожидает прибытия всех пакетов и не упорядочивает пакеты. Вместо этого UDP передает все пакеты, даже если некоторые из них еще не прибыли.
UDP передает исключительно пакеты, в то время как TCP передает, организует и обеспечивает получение пакетов. Хотя UDP работает быстрее, чем TCP, он менее надежен.
Примечание редактора: Эта статья была обновлена, чтобы сделать ее более удобной для чтения.
Следующие шагиBGP и OSPF: когда использовать каждый протокол
Введение в инкапсуляцию и декапсуляцию в сети
Последнее опубликовано в мае 2023 г.
Копать глубже в сетевой инфраструктуреКак применять и редактировать фильтры дисплея Wireshark
Автор: Кайл Джонсонсетевой протокол
Автор: Кинза ЯсарПротокол обратного разрешения адресов (RARP)
Автор: Эндрю ФрелихBGP (протокол пограничного шлюза)
Автор: Джон Берк
Часть: Основы компьютерных сетей
Статья 1 из 6
Унифицированные коммуникации- Приложение для совместной работы Stormboard переносит искусственный интеллект на виртуальную доску
Используя передовые технологии машинного обучения и обработки естественного языка, поставщик интерактивной совместной работы Stormboard запускает StormAI для . ..
- 4 ключевые угрозы безопасности унифицированных коммуникаций, на которые следует обратить внимание
Для обеспечения безопасности вашей системы унифицированных коммуникаций требуются инструменты, специально предназначенные для голосовых и видеоприложений. Узнайте, как…
- CPaaS привносит функции облачного контакт-центра в локальную среду
Организациям с локальными контакт-центрами не нужно выполнять полную миграцию в облако для модернизации своих систем. CPaaS может …
- Как исправить неработающую личную точку доступа iPhone
Проблемы с подключением, неправильно настроенные параметры и человеческий фактор могут вызвать проблемы с мобильной точкой доступа. ИТ и пользователи должны знать, как …
- Как выйти из режима киоска на любой ОС
Ручной выход из режима киоска по-прежнему необходим в эпоху управления мобильными устройствами для удобства и когда пришло время . ..
- Начало работы в режиме киоска для предприятия
В качестве выделенной конечной точки киоск может служить нескольким целям. Понимание этих возможностей, их преимуществ и проблем …
- Понимание использования блокчейна в центрах обработки данных
Блокчейн
наиболее известен своими криптовалютными приложениями, но центры обработки данных могут использовать его для различных бизнес-приложений …
- Сделайте операции мэйнфреймов эффективными с помощью этих стратегий
Мэйнфреймы влияют на итоговые показатели организации. Эксперт описывает некоторые ключевые стратегии для поддержания надежности при сохранении …
- Как использовать ChatGPT для управления приложениями мейнфреймов
ChatGPT может помочь ИТ-администраторам управлять приложениями для мэйнфреймов путем преобразования, оптимизации и улучшения кода. Кроме того, он может создавать …
- 4 ключевых способа, которыми партнеры оттачивают стратегию цифровой трансформации
Поставщики ИТ-услуг используют методологии, инструменты и платформы для реализации инициатив. Их усилия направлены на предотвращение …
- Партнерская экосистема оптимистична в отношении рыночных перспектив, генеративного ИИ
Поставщики услуг, несмотря на сохраняющуюся экономическую неопределенность, выражают оптимизм, обращая внимание на новые технологии и услуги …
- Изменения в партнерской экосистеме AWS связаны с независимыми поставщиками программного обеспечения и генеративным искусственным интеллектом
Поставщик облачной платформы находит партнеров среди независимых поставщиков программного обеспечения и системных интеграторов, развивая отношения с ИИ и упрощая свою…
Стек интернет-протокола
Стек интернет-протокола Хенрик Фристык, июль 1994 г.Как упоминалось в разделе Интернет, Интернет — это абстракция от базовых сетевых технологий. и разрешение физических адресов. В этом разделе представлены основные компонентов стека интернет-протокола и связывает стек с Модель стека эталонных протоколов ISO OSI. Модель Интернета стек протоколов показан на рисунке ниже.
В этом документе описываются различные части, представленные на этой диаграмме. Описаны протоколы верхнего уровня, например, FTP, Telnet, TFTP и т. д. в протоколе уровня представления раздел. Это оставляет следующие темы в качестве разделов в этом документ:
- Интернет-протокол (IP)
- Протокол пользовательских дейтаграмм (UDP)
- Протокол управления передачей (TCP)
- Протокол управления передачей транзакций (T/TCP)
- TCP/IP и OSI/RM
Интернет-протокол (IP)
Как видно на рисунке выше, стек Интернет-протокола обеспечивает надежная ветвь с установлением соединения (TCP) и без установления соединения обе ненадежные ветви (UDP) строятся поверх интернет-протокола.Интернет-протокол уровень в стеке протоколов TCP/IP — это первый уровень, который вводит абстракция виртуальной сети, которая является основным принципом Интернет-модель. Все детали физической реализации (в идеале даже хотя это не совсем так) скрыты ниже уровня IP. IP уровень обеспечивает ненадежную систему доставки без установления соединения. почему это недостоверный вытекает из того, что протокол не предоставляет каких-либо функций для восстановления после ошибок для дейтаграмм которые дублируются, теряются или поступают на удаленный хост в другой заказ, чем они отправляют. Если таких ошибок не возникает в физическом уровне протокол IP гарантирует, что передача завершено успешно.
Основной единицей обмена данными на уровне IP является Интернет. Дейтаграмма. Формат дейтаграммы IP и краткое описание наиболее важные поля включены ниже:
- ДЛИН
- Количество 32-битных сегментов в заголовке IP. Без всяких ВАРИАНТЫ, это значение равно 5
- ВИД УСЛУГИ
- Каждой дейтаграмме IP может быть присвоено значение приоритета в диапазоне от 0 до 7. показывая важность дейтаграммы. Это чтобы позволить Внеполосные данные должны маршрутизироваться быстрее, чем обычные данные. Этот очень важно, так как сообщение управления Интернетом Сообщения протокола (ICMP) передаются как часть данных IP-адреса. дейтаграмма. Несмотря на то, что сообщение ICMP инкапсулировано в IP дейтаграмма, протокол ICMP обычно рассматривается как неотъемлемая часть уровня IP, а не уровня UDP или TCP. Кроме того, ТИП Поле SERVICE позволяет классифицировать дейтаграмму, чтобы укажите, требуется ли желаемая услуга короткое время задержки, высокая надежность или высокая производительность. Однако для того, чтобы это имело какой-либо В результате шлюзы должны знать более одного маршрута к удаленному хосту. и, как описано во введении, это не вариант.
- ИДЕНТ., ФЛАГИ И СМЕЩЕНИЕ ФРАГМЕНТА
- Эти поля используются для описания фрагментации дейтаграммы.
Фактическая длина дейтаграммы IP в принципе не зависит от
длина физических кадров, передаваемых по сети,
называется максимальной единицей передачи (MTU) сети . Если
дейтаграмма длиннее, чем MTU, тогда она делится на набор
фрагменты, имеющие почти такой же заголовок, как исходная дейтаграмма, но
только тот объем данных, который помещается в физический фрейм. ИДЕНТ.
флаг используется для идентификации сегментов, принадлежащих одной и той же дейтаграмме, и
СМЕЩЕНИЕ ФРАГМЕНТА — это относительное положение фрагмента внутри
исходная дейтаграмма. Как только дейтаграмма фрагментирована, она остается как
что до тех пор, пока он не получит конечный пункт назначения. Если один или несколько сегментов
потеряны или ошибочны, вся дейтаграмма отбрасывается.
Однако базовая сетевая технология не полностью скрыта ниже уровня IP, несмотря на функциональность фрагментации. причина в том, что MTU может варьироваться от 128 и менее до нескольких тысяч байтов в зависимости от физической сети (Ethernet имеет MTU 1500 байт). Следовательно, это вопрос эффективности при выборе правильного размер дейтаграммы, чтобы свести фрагментацию к минимуму. Рекомендуется что шлюзы способны обрабатывать дейтаграммы размером не менее 576 байт. без использования фрагментации.
- ВРЕМЯ
- Это оставшееся время жизни (TTL) для дейтаграммы когда он путешествует по Интернету. Протокол маршрутной информации (RIP) указывает, что разрешено не более 15 переходов.
- IP-АДРЕС ИСТОЧНИКА и IP-АДРЕС НАЗНАЧЕНИЯ
- Адрес источника и получателя указан в заголовок дейтаграммы, чтобы получатель мог отправить ответ обратно в передающий хост. Однако обратите внимание, что только адрес хоста указано — не номер порта. Это связано с тем, что IP-протокол является Протокол IMP-to-IMP — это , а не сквозной протокол. А уровень требуется больше, чтобы фактически указать, какие два процесса на передающий хост и конечный пункт назначения, который должен получить дейтаграммы.
Протокол пользовательских дейтаграмм (UDP)
Протокол пользовательских дейтаграмм (UDP) — это очень тонкий протокол, построенный поверх Интернет-протокола. Базовой единицей данных является Пользователь. дейтаграмма и протокол UDP обеспечивают такие же ненадежные, служба без установления соединения, передающая пользовательские дейтаграммы как IP-протокол передает свои дейтаграммы. Основное отличие состоит в том, что UDP протокол сквозной протокол . То есть содержит достаточно информации для передачи пользовательской дейтаграммы из одного процесса в передающий хост другому процессу на принимающем хосте. Формат пользовательской дейтаграммы показано ниже:Поле LENGTH представляет собой длину пользовательской дейтаграммы, включая заголовок, то есть минимальное значение LENGTH равно 8 байтам. Источник PORT и DESTINATION PORT — это соединение между IP-адресом и процесс, работающий на хосте. Сетевой порт обычно идентифицируется целое число. Однако дейтаграмма пользователя не содержит никакого IP-адреса. Так как же протокол UDP узнает, когда конечный пункт назначения достиг?
При вычислении заголовка CHECKSUM протокол UDP добавляет 12-байтовый псевдозаголовок, состоящий из IP-АДРЕСА ИСТОЧНИКА, IP-АДРЕС НАЗНАЧЕНИЯ и некоторые дополнительные поля. Когда хозяин получает дейтаграмму UDP, он берет заголовок UDP и создает новую псевдозаголовок, использующий собственный IP-адрес в качестве IP-АДРЕСА НАЗНАЧЕНИЯ и IP-АДРЕС ИСТОЧНИКА, извлеченный из дейтаграммы IP. Затем это вычисляет контрольную сумму, и если она равна контрольной сумме UDP, то дейтаграмма получила конечный пункт назначения.
Как указано в стеке интернет-протокола Рисунок: протокол UDP часто используется в качестве основного протокола в протоколы приложений клиент-сервер, такие как TFTP, DNS и т. д., где накладные расходы на создание надежной, ориентированной на соединение передачи значительный. Эта проблема будет рассмотрена далее в следующих двух разделы.
Протокол управления передачей (TCP)
Управление передачей Протокол обеспечивает полнодуплексный, надежный, ориентированный на соединение службы на прикладной уровень, как показано на рисунке стека интернет-протокола. Эта секция описал основной принцип протокола TCP и то, как он обеспечивает надежное обслуживание протоколов прикладного уровня.Протокол TCP является потоково-ориентированным протоколом. Он предназначен для предоставлять программному обеспечению прикладного уровня сервис для передачи большой объем данных надежным способом. Он устанавливает полный дуплекс виртуальный канал между двумя передающими хостами, чтобы оба хоста одновременно может выкладывать данные в Интернет без указания узел назначения после установления соединения. В протоколе управления передачей транзакций (T/TCP) разделе клиент-серверное расширение протокола TCP. представлен как альтернатива потоковой архитектуре.
Формат сегмента TCP
Сегмент — это основная единица данных в протоколе TCP. Как большая часть следующие разделы основаны на этом блоке данных, формат представлены здесь:- ПОРТ ИСТОЧНИКА, ПОРТ НАЗНАЧЕНИЯ
- Протокол TCP использует тот же трюк с использованием псевдозаголовка вместо передачи исходного IP-адреса и получателя IP-адрес уже включен в IP-датаграмму. Поэтому только номера портов необходимы для однозначного определения взаимодействующего хосты.
- КОД
- Это поле используется для указания содержимого сегмента и, если должно быть предпринято определенное действие, например, если отправитель достиг EOF в потоке.
- ОПЦИИ
- Протокол TCP использует поле OPTIONS для обмена информацией
как максимальный размер сегмента, принятый между уровнями TCP на
два хоста. Текущие флаги определены
- URG Поле указателя срочности действительно
- ACK Поле подтверждения действительно
- PSH Этот сегмент запрашивает отправку
- RST Сброс подключения
- SYN Синхронизация порядковых номеров
- FIN Отправитель достиг конца своего потока байтов
- СМЕЩЕНИЕ
- Это целое число указывает смещение пользовательских данных в сегмент. Это поле требуется только потому, что число битов, используемых в Поле OPTIONS может варьироваться
- СРОЧНЫЙ УКАЗАТЕЛЬ
- Это поле можно инициализировать, чтобы оно указывало на место в пользовательском данные, где размещается срочная информация, такая как коды выхода и т. д. Тогда хост-получатель может обработать эту часть сразу же, как только она получает сегмент.
Надежная передача
На уровне IP-протокола пакеты могут отбрасываться из-за сетевых перегруженность, сбой шумового шлюза и т. д. Для обеспечения надежного службы, TCP должен восстанавливать данные, которые повреждены, потеряны, продублированы или доставлены не по порядку по интернет-связи система. Это достигается назначением НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ каждому байту. передано и требует положительного подтверждения (ACK) от принимающего хоста. Если ACK не получен в течение тайм-аута интервал, данные передаются повторно. В приемнике последовательность числа используются для правильного упорядочивания сегментов, которые могут быть получены порядка и устранения дубликатов. Повреждения обрабатываются путем добавления контрольную сумму для каждого переданного сегмента, проверяя ее в приемнике, и удаление поврежденных сегментов. Принцип проиллюстрирован на рисунок ниже:Хост A передает пакет данных на Хост B , но пакет теряется до того, как достигает пункта назначения. Однако, Host A установил таймер, когда следует ожидать ACK от Host B , поэтому, когда этот таймер истечет, пакет будет передан повторно. сложная часть метода заключается в том, чтобы найти значение периода ожидания поскольку сегмент TCP может перемещаться по сетям с разной скоростью с разные нагрузки. Это означает, что Время приема-передачи (RTT) может варьироваться от сегмента к сегменту. Простой способ расчета RTT заключается в использовании рекурсивного среднего значения с экспоненциальным окном для уменьшить важность старых ценностей.
Как упоминалось во введении к ТКП раздел, протокол является потоково-ориентированным протоколом. Оно использует неструктурированные потоки без метода индексации пользовательских данных, например. как записи и т. д. Кроме того, длина TCP-сегмента может варьироваться в зависимости от случай для IP-датаграммы и пользовательской дейтаграммы UDP. Следовательно подтверждение не может быть основано на номере сегмента, но должно на основе успешно переданных байтов.
Однако принцип PAR очень неэффективен, так как отправляющий узел должен дождаться подтверждения, прежде чем он сможет отправить следующий сегмент. Это означает, что минимальное время между двумя сегментами равно 1 RTT. плюс время, необходимое для обслуживания сегментов на обоих концах. ПТС Протокол решает эту проблему, используя скользящие окна на обоих концах.
Этот метод позволяет передающему хосту отправить столько байтов, сколько может храниться в окне отправки, а затем ждать подтверждения как удаленный хост получает сегменты и отправляет данные в другой направление. Подтверждение, отправленное обратно, является кумулятивным, так что оно все время показывает следующий байт , который ожидает принимающий хост чтобы увидеть. Пример с большим размером окна и выборочным ретрансляция показана на рисунке:
Байт номер 1 потерян, поэтому Хост B никогда не отправляет положительный ответ. подтверждение. Когда Host A истекает по таймауту на байте 1, он повторно передает это. Однако, поскольку остальные байты со 2-го по 5-й передаются успешно следующее подтверждение может немедленно перейти к 6, что является следующим ожидаемым байтом. Байт 2 также повторно передается как Хост точно не знает, сколько байтов ошибочно. Хост B просто отбрасывает байт 2, так как он уже загружен.
Технику окна также можно использовать для обеспечения контроля перегрузки. механизм. Как указано в сегменте TCP Формат Рисунок Каждый сегмент имеет поле WINDOW, которое указывает, как много данных, которые хост готов получить. Если хост сильно загружен, это может уменьшить параметр WINDOW и, следовательно, скорость передачи капли.
Однако, поскольку протокол TCP является сквозным протоколом, он не может видеть если проблема перегрузки возникла в промежуточном Интерфейс Процессор сообщений (IMP) (часто называемый процессором с коммутацией пакетов ). узел ) и, следовательно, он не имеет возможности контролировать его, регулируя размер окна. TCP решает эту проблему с помощью контрольного сообщения Интернета. Сообщения о подавлении источника протокола (ICMP).
Установление соединения
Когда необходимо открыть TCP-соединение, используется трехстороннее рукопожатие (3WHS). чтобы установить виртуальный канал, который существует до тех пор, пока соединение закрывается в конце передачи данных. 3WHS это описан ниже, так как это важная часть TCP протокола, но также показывает некоторую неэффективность протокола. принцип 3WHS показан на рисунке ниже:Блоки в середине символизируют соответствующую часть TCP. сегмент, то есть НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ, НОМЕР ПОДТВЕРЖДЕНИЯ и код. Активный хост A отправляет сегмент, указывающий, что он начинает свой ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР с x. Хост B отвечает ACK и указывает, что он начинается с НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ y. На третьем сегменте, оба хоста соглашаются с порядковыми номерами и тем, что они готов к передаче данных.
На рисунке только Хост A выполняет активное открытие. На самом деле два хосты могут открывать одновременно, и в этом случае оба хоста выполняют SYN-RECEIVED, а затем синхронизируйтесь соответствующим образом. Основная причина для 3WHS состоит в том, чтобы предотвратить инициирование старых дублирующих соединений от вызывая путаницу.
Обратите внимание, что НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ сегментов 3 и 4 одинаков, потому что ACK не занимает место для порядкового номера (если это так, то протокол закончит ACKing ACK!).
Однако установление TCP-соединения несколько обременительно. во многих приложениях, особенно в клиент-серверных приложениях например Всемирная паутина. В следующем разделе альтернатива представлено более легкое установление соединения.
Протокол управления передачей транзакций (T/TCP)
Протокол TCP является протоколом с высокой степенью симметрии, поскольку оба хоста могут передавать и получать данные одновременно. Тем не менее, не все приложения симметричны по своей природе. Типичным примером является протокол клиент-сервер, такой как домен Служба имен. Транзакционная передача Протокол управления (T/TCP), который является очень новым протоколом (июль 1994 г.) предлагает альтернативу TCP, когда требуется высокая производительность в клиент-серверные приложения. Некоторые требования высокого протоколы, ориентированные на транзакцию производительности, перечислены ниже:- Взаимодействие между клиентом и сервером основано на запрос, за которым следует ответ, то есть подход без сохранения состояния.
- Протокол должен гарантировать выполнение транзакции не более одного раза, и любые повторяющиеся пакеты, полученные сервером, должны быть отброшены.
- Нет явной процедуры открытия или закрытия соединения. Это напротив TCP и 3WHS, как описано выше.
- Минимальная задержка транзакции для клиента должна быть Раунд Время поездки (RTT) + Время обработки сервером (SPT) . То есть в основном то же требование, что и отсутствие явной процедуры открытия или закрытия.
- Протокол должен поддерживать надежный минимум транзакция ровно 1 сегмента в обоих направлениях.
Неявное установление соединения
Протокол T/TCP, как указано в названии, основан на протоколе TCP. протокола, а T/TCP обратно совместим с TCP. Однако один из особенности протокола T/TCP в том, что он может обходить 3WHS описано в предыдущем разделе, но в случае сбой может разрешить процедуру 3WHS.3HWS был введен для предотвращения старых дубликатов. инициации соединения от создания путаницы. Однако T/TCP обеспечивает альтернатива этому путем введения трех новых параметров в Поле OPTION в сегменте TCP:
- СЧЕТЧИК СОЕДИНЕНИЙ (СС)
- Это 32-битный номер воплощения, в котором уникальное значение назначается всем сегментам, отправляйте с Host A на Host B и другое отличное число в другую сторону. Ядро на обоих хостах сохраняет кэш всех номеров CC, используемых в настоящее время подключениями к удаленным хосты. При каждом новом соединении номер CC клиента монотонно увеличивается на 1, чтобы сегмент, принадлежащий новому соединению, мог быть отделены от старых дубликатов от предыдущих подключений.
- СОЕДИНЕНИЕ СЧЕТЧИКА НОВОЕ (CC.NEW)
- В некоторых ситуациях принцип монотонно возрастающей значение CC может быть нарушено либо из-за сбоя хоста, либо из-за того, что достигается максимальное число, то есть 4G, и счетчик возвращается к 0. На практике это возможно, потому что один и тот же номер CC является глобальным для все соединения. В этой ситуации отправляется сообщение CC.NEW, и удаленный хост сбрасывает свой кеш и возвращается к обычному TCP-соединению 3WHS учреждение. Этот сигнал всегда будет посылаться из клиент и — сервер.
- СОЕДИНЕНИЕ СЧЕТЧИКА ЭХО (CC.ECHO)
- В ответе сервера поле CC.ECHO содержит значение CC отправить клиентом, чтобы клиент мог проверить ответ как принадлежность к конкретной сделке.
В примере два сегмента отправляются в обоих направлениях. Соединение устанавливается, когда первый сегмент достигает сервера. Клиент остается в Состояние TIME-WAIT, которое объясняется в следующем разделе.
Прерывание соединения
Каждое соединение TCP или UDP между двумя хостами однозначно идентифицируется следующей 5-кортежностью:- Протокол (UDP, TCP)
- IP-адрес хоста A
- Номер порта хоста A
- IP-адрес хоста B
- Номер порта хоста B
Однако номера T/RCP CC обеспечивают уникальную идентификацию каждого транзакцию, поэтому протокол T/TCP может усекать WAIT-STATE путем сравнения номеров CC. Этот принцип можно посмотреть в качестве расширения конечного автомата одной транзакции, чтобы также включить информация о предыдущих и будущих транзакциях с использованием одного и того же 5-кортежа.
TTCP и Всемирная паутина
Как будет показано в описании World-Wide Web этой диссертации, принцип Всемирной паутины — это транзакционно-ориентированный обмен данными объект. Вот почему протокол T/TCP очень интересен. в этой перспективе.TCP/IP и OSI/RM
Международная организация по стандартизации (ISO) разработала второй доминирующая схема многоуровневого протокола, называемая открытой системой ISO Эталонная модель взаимосвязи (OSI/RM) . В этом разделе представлены эталонной модели OSI и сравнивает ее со стеком протоколов TCP/IP. как показано на рисунке.- Физический уровень
- Указывает физическое соединение между хост-компьютерами и IMP и как биты передаются по каналу связи.
- Канальный уровень
- Этот уровень определяет, как данные перемещаются между IMP с использованием кадров . Его основная задача — изменить сервис с физического уровня в пакетно-ориентированную безошибочную передачу.
- Сетевой уровень
- Кадры уровня канала передачи данных организованы в пакеты и направляются через сеть. Связи все еще между IMPs.
- Транспортный уровень
- Первый уровень, обеспечивающий сквозную транспортную услугу. Это гарантирует, что переданные данные правильно поступят на другой конец.
- Сеансовый уровень
- Этот уровень определяет, как два хоста могут устанавливать сеансы, когда данные могут передаваться в обоих направлениях по виртуальному соединению между двумя хозяевами.
- Уровень представления
- Уровень представления вводит набор синтаксиса и семантики информация, передаваемая через нижние уровни протокола.
- Прикладной уровень
- Этот уровень определяет независимую от платформы виртуальную сеть терминал, чтобы прикладные программы могли обмениваться данными независимо от используемое внутреннее представление данных.