- Сетевые протоколы — что это
- Модели, на которых работает интернет
- Популярные сетевые протоколы
- UDP
- TCP
- FTP
- RTP
- DNS
- ICMP
- HTTP
- NTP
- SSH
- Протоколы передачи данных: что это, какие бывают и в чём различия?
- IP — Internet Protocol
- TCP/IP — Transmission Control Protocol/Internet Protocol
- UDP — User Datagram Protocol
- FTP — File Transfer Protocol
- DNS
- HTTP — HyperText Transfer Protocol
- NTP — Network Time Protocol
- SSH — Secure SHell
Сетевые протоколы — что это
Интернет очень большой, но на базовом уровне представляет собой связь между множество разных компьютерных устройств. Эта связь обеспечивается через сетевые протоколы — наборы правил, которые регулируют обмен информацией, его порядок и особенности. Протоколов создано много, и в этой статье мы рассмотрим наиболее известные из них, относящиеся к межсетевому, транспортному и прикладному уровню, а также затронем ещё несколько смежных тем.
Модели, на которых работает интернет
Долгое время моделью, отвечающей за установку открытой связи между двумя хостами, являлась Open Systems Interface (OSI), установившая семь уровней протоколов (физический, транспортный, сетевой и т. д.). Она не считалась сетевой архитектурой, так как просто задавала входные и выходные данные для каждого уровня. Поскольку современные протоколы научились работать сразу на нескольких уровнях модели OSI, её на смену пришла новая четырёхуровневая модель: TCP/IP.
Новая модель, как видно из названия, объединяет два основных протокола: Transmission Control Protocol и Internet Protocol. Первый отвечает за надёжную и передачу данных и её целостность, а второй — за маршрутизацию. Все новые сетевые протоколы разрабатываются на базе этой модели. Например, заходя на сайт Cloud4Y, вы используете протоколы IP, TCP и HTTPS.
Для большей наглядности сравним обе модели.
Популярные сетевые протоколы
UDP
User Datagram Protocol, о связке которого с протоколом TCP мы рассказывали, представляет собой протокол передачи данных, не требующий предварительной установки соединения между хостами. Он быстрый, но часто теряет пакеты данных во время доставки. А
TCP
Transmission Control Protocol — протокол сквозной связи, созданный в 1974 году и до сих пор востребованный в мире. Надёжный, но медленный. Перед тем, как начинать передачу данных, достигается рукопожатие для установления соединения, и лишь затем начинается передача пакетов. При необходимости пакеты дублируются.
FTP
File Transfer Protocol — протокол прикладного уровня для передачи файлов, появившийся в 1971 году. Использует два канала для передачи данных. Первый , управляющий процессом передачи, называют командным. Второй, передающий информацию — транспортным. FTP — надёжный протокол. Сервер в данном случае называют удалённым хостом, а клиент — локальным. Работает по клиент-серверной модели. После аутентификации пользователь получает доступ к файловой системе. В некоторых случаях возможен анонимный доступ.
RTP
Real-time Transfer Protocol — транспортный протокол, работающий в реальном времени. Нужен для потоковой передачи аудио- и видеоданных. Умеет передавать данные нескольким получателям одновременно. Чаще всего применяется для передачи голоса в IP-телефонии.
DNS
Под аббревиатурой DNS прячется не только система доменных имён Domain Name System. Данное название носит и протокол, благодаря которому эта система и функционирует. Протокол помогает серверам DNS обмениваться базами данных, а клиентским устройствам — запрашивать у
ICMP
Internet Control Message Protocol — важный протокол, который нужен для слежения за ошибками во взаимодействии устройств. Он диагностирует проблемы и определяет, получены ли данные отправителем. Если нет, протокол ICMP генерирует ошибку для отправки на отправляющее устройство. Данный протокол иногда используется злоумышленниками для сетевых атак путём генерации большого объёма ICMP-сообщений.
HTTP
HyperText Transfer Protocol — протокол, который создавался для передачи HTML-файлов, но впоследствии пригодился для всех файлов в сети. Этот протокол клиент-серверного типа не сохраняет промежуточное состояние. Для обмена информацией обычно используется TCP/IP. У HTTP есть защищённая версия: HTTPS. Она поддерживает шифрование, а данные передаются поверх криптопротокола TLS.
NTP
Network Time Protocol — протокол для синхронизации локальных часов устройства с точным временем в интернете. NTP работает на базе алгоритма Марзулло поверх UDP. За счёт этого удаётся добиться более высокой точности времени и скорости передачи данных.
SSH
Secure Shell — защищённый протокол прикладного уровня, необходимый для удалённого управления ОС через протокол TCP. В SSH весь трафик шифруется с использованием заданного вами алгоритма шифрования. Протокол позволяет обрабатывать другие сетевые протоколы передачи, включая аудио- или видеопоток. Его удобно использовать для удалённого подключения клиента к серверу и работы оттуда.
Протоколы передачи данных: что это, какие бывают и в чём различия?
Интернет очень большой и комплексный. Но на базовом уровне это всего лишь связь между различными компьютерами (не только персональными). Эта связь представляет из себя сетевые протоколы передачи данных — набор правил, который определяет порядок и особенности передачи информации для конкретных случаев.
Протоколов большое множество. Про основные из них рассказано далее.
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.
HTTP — HyperText Transfer Protocol
Изначально протокол передачи HTML-документов. Сейчас же он используется для передачи произвольных данных в интернете. Он является протоколом клиент-серверного взаимодействия без сохранения промежуточного состояния. В роли клиента чаще всего выступает веб-браузер, хотя может быть и, например, поисковый робот. Для обмена информацией протокол HTTP в большинстве случаев использует TCP/IP.
HTTP имеет расширение HTTPS, которое поддерживает шифрование. Данные в нём передаются поверх криптографического протокола TLS.
NTP — Network Time Protocol
Не все протоколы передачи нужны для обмена классического вида информацией. NTP — протокол для синхронизации локальных часов устройства со временем в сети. Он использует алгоритм Марзулло. Благодаря нему протокол выбирает более точный источник времени. NTP работает поверх UDP — поэтому ему удаётся достигать большой скорости передачи данных. Протокол достаточно устойчив к изменениям задержек в сети.
Последняя версия NTPv4 способна достигать точности 10мс в интернете и до 0,2мс в локальных сетях.
SSH — Secure SHell
Протокол для удалённого управления операционной системой с использованием TCP. В SSH шифруется весь трафик, причём с возможностью выбора алгоритма шифрования. В основном это нужно для передачи паролей и другой важной информации.
Также SSH позволяет обрабатывать любые другие протоколы передачи. Это значит, что кроме удалённого управления компьютером, через протокол можно пропускать любые файлы или даже аудио/видео поток.
SSH часто применяется при работе с хостингами, когда клиент может удалённо подключиться к серверу и работать уже оттуда.