
Компьютер запущен, браузер открыт, но вместо стартовой страницы вы видите лишь страницу ошибки, сообщающую о том, что подключение к Интернету не удалось установить. Случалось ли с вами такое? Проверка маршрутизатора и кабеля Ethernet не выявила никаких проблем, и только когда вы запустили диагностику ошибок, вы нашли ответ: На компьютере отсутствует как минимум один сетевой протокол. В некоторых случаях запуск автоматического восстановления и перезагрузка устраняют ошибку. Но часто протокол отсутствует и после этого, или сообщение об ошибке появляется снова через некоторое время. Возможными причинами могут быть, например, устаревшие драйверы, сложности с используемым антивирусным ПО или брандмауэром.
Почему же сетевые протоколы играют такую важную роль в установлении интернет-соединения? Для того чтобы понять это, необходимо более подробно рассмотреть различные типы сетевых протоколов и их различные функции.
Что такое сетевой протокол?
Чтобы объединить компьютеры в сеть, казалось бы, достаточно просто использовать кабель Ethernet. Но без помощи кабеля компьютерные системы не способны обмениваться пакетами данных и поэтому не могут установить соединение для передачи данных. Эту задачу выполняют сетевые протоколы, которые связаны с соответствующим семейством протоколов на так называемом коммутационном, или сетевом, уровне (уровень 3 согласно модели OSI). Они содержат соглашения об обмене данными и таким образом регулируют условия их последующей транспортировки, адресации, маршрутизации и проверки ошибок. Чтобы два компьютера могли общаться друг с другом, им нужны одинаковые сетевые протоколы. Они договариваются о следующих условиях передачи данных, которые либо помещаются перед соответствующим пакетом в качестве заголовка, либо прилагаются в качестве прицепа:
- Размер пакета или пакетов данных
- Тип пакета
- Отправитель и адресат
- Другие задействованные протоколы
Почему существуют различные сетевые протоколы?
Не каждое соединение данных между компьютерными системами вяжется по одной и той же схеме. В результате есть разница, соединяете ли вы два компьютера в домашней сети или через Интернет в рамках огромной компьютерной сети и отправляете данные нескольким адресатам. Аналогичным образом, большую роль играет коммуникационная иерархия участников. Именно поэтому для отдельных форм связи существуют различные сетевые протоколы. Эти протоколы имеют следующие возможные сценарии применения и отличительные особенности:
- Количество партнеров по общению: Различные сетевые протоколы можно различать по количеству компьютеров, которые могут подключаться к ним в каждый момент времени. Если, например, передаваемые данные адресованы одному получателю, то это одноадресная передача. Обмен между более чем двумя партнерами по коммуникации происходит через многоадресные соединения. Отправка пакетов данных всем пользователям сети называется широковещательной передачей — этот тип соединения, очевидно, лучше всего известен по радио и телевидению.
- Путь потока данных: Направление, в котором движутся данные, — еще одна характеристика, которая отличает различные сетевые протоколы друг от друга. Протоколы с симплексной передачей представляют собой одностороннюю связь, где один компьютер выступает только в качестве передатчика, а другой — только в качестве приемника. При полудуплексной передаче партнеры по коммуникации могут обмениваться данными поочередно. Полнодуплексная передача позволяет передавать данные одновременно и в обоих направлениях.
- Иерархия партнеров по коммуникации: Некоторые типы соединений, например, модель клиент-сервер, основаны на четко определенной иерархической структуре. В этом случае, например, различные клиенты инициируют соединение с одним сервером, который затем обрабатывает запросы. Симметричная коммуникация, аналог асимметричной коммуникации в этом примере, характеризуется соединениями «равный-равному» или «компьютер-компьютер». При такой форме структуры все компьютеры имеют равные права и поэтому могут как предлагать услуги, так и пользоваться ими.
- Синхронизация коммуникации: Обмен данными можно также различать по тому, синхронизированы ли отдельные биты между передатчиком и приемником (синхронная связь) или нет (асинхронная связь).
- Тип соединения: Сетевые протоколы также можно разделить на ориентированные на соединение и протоколы без соединения. Протоколы, ориентированные на соединение, требуют, чтобы соединение между отправителем и получателем существовало в течение всего времени передачи, и стараются обеспечить, чтобы данные поступали в определенном порядке и были повторно переданы в случае сбоя. Протоколы без соединения обходятся без установки и удаления соединения, поэтому их пакеты данных содержат значительно меньше информации. Но данные также могут поступать на приемник в случайном порядке и не передаются автоматически в случае неправильной передачи.
Помимо технической основы, разнообразие сетевых протоколов также обусловлено тем, что многие производители разработали собственные протоколы или стеки протоколов для своих устройств.
Какие существуют сетевые протоколы?
Для сетевого уровня, как и для всех других уровней, существует ряд стандартизированных, но также и собственных протоколов, которые подходят для различных областей применения или частично ограничены определенными операционными системами или устройствами. Многие из этих протоколов сегодня уже неактивны, в основном из-за более широкого распространения семейства интернет-протоколов. Эти стеки с более чем 500 протоколами также содержат наиболее важный и известный сетевой протокол IP (Internet Protocol), который является основой интернета.
Интернет-протокол выполняет задачу по транспортировке пакетов данных от отправителя к получателю по нескольким сетям. Для этого он определяет правила адресации и маршрутизации, или нахождения пакетов данных. IP является стандартным сетевым протоколом не только для глобальных сетей (WAN) — отдельных всемирных сетей, которые соединяют Интернет друг с другом, — но и для локальных сетей. Он поддерживается всеми производителями и операционными системами, но при этом требует необходимых ноу-хау в плане конфигурации, а также соответствующего оборудования (маршрутизатора).
В следующей таблице представлен обзор исторически важных сетевых протоколов:
Сетевой протокол | Лицензия | Платформы | Описание | Функции | Слабые стороны |
---|---|---|---|---|---|
IP (Интернет-протокол) | Свободный (RFC 791 / 2460) | Кросс-платформенный | Без соединения; длина адреса: 128 бит (IPv6) / 32 бита (IPv4) | Маршрутизация, адресация | Очень обширный стек протоколов; функции безопасности реализованы не сразу (IPv4) |
ARP (протокол разрешения адресов) | Бесплатный (RFC 826) | Кросс-платформенный | Связь между уровнями 2 и 3 с собственной функцией кэша | Сопоставление адресов (присвоение MAC-адресов IP-адресам) для IPv4 | Нет проверки коррекции подключенного назначения: Риск ARP спуфинга |
NDP (Neighbor Discovery Protocol) | Бесплатный (RFC 4861) | Кросс-платформа | Связь между уровнями 2 и 3 с собственной функцией кэша | Сопоставление адресов для IPv6; идентификация двойных IP-адресов | Защита от спуфинга не интегрирована в стандарт (требуется расширение SEND) |
ICMP (Internet Control Message Protocol) | Бесплатный (RFC 792) | Кросс-платформенный | Независимый компонент IPv4 | Обмен информацией и сообщениями об ошибках | Может быть направлен/использован для Dos/DDoS-атак |
SNA (архитектура системных сетей) | Собственная разработка (IBM) | Устройства IBM | Прежняя иерархическая сетевая структура с различными протоколами | Соединяет компьютеры и их ресурсы с сетями SNA | Подключение к сетям, не относящимся к SNA, затруднено; сравнительно высокая стоимость |
NBF (NetBIOS Frames Protocol) | Проприетарный (Microsoft) | Windows (до 2000 года включительно) | Прежний протокол для систем Windows | Связь с уровнем отображения (NetBIOS) и уровнем предохранителей (LLC) | Не маршрутизируемый; подходит только для небольших сетей (до 20 компьютеров) |
IPX (Internetwork Packet Exchange) | Проприетарная (Novell) | NetWare (сетевая операционная система уже не поддерживается), Linux, Windows | Протокол без соединений, функционально аналогичен IP; длина адреса: 80 бит (48 бит адрес хоста, 32 бита номер сети). | Маршрутизация, адресация | Не подходит для больших глобальных сетей |
DDP (протокол доставки дейтаграмм) | Собственный (Apple) | Устройства, поддерживающие AppleTalk (до Mac OS X 10.6 включительно) | Часть прекращенного стека протоколов AppleTalk; без соединения; длина адреса: максимум 13 байт заголовка и 587 байт пользовательских данных. | Маршрутизация, адресация | Риск AppleTalk-спуфинга; слабая пропускная способность данных из-за малого размера пакетов |
OSPF (Open Shortest Path First) | Бесплатный (RFC 2328) | Кросс-платформенный | Сетевой протокол, основанный на алгоритме Дейкстры, особенно подходит для сетей крупных компаний | Оптимизирует маршрутизацию с учетом стоимости передачи; динамическое распределение нагрузки | Высокая загрузка процессора и требования к памяти; сложная конфигурация и обслуживание |
Протоколы передачи берут на себя транспортировку пакетов данных
После того, как протоколы коммутационного уровня создали основу для связи, необходим еще один протокол для того, чтобы пакеты данных достигли соответствующих приложений. В модели OSI эта пересылка осуществляется на транспортном уровне (уровень 4). Каждый стек также имеет свои собственные протоколы. Для семейства интернет-протоколов это, в частности, следующие протоколы
- TCP (протокол управления передачей)
- и UDP (User Datagram Protocol).
С момента большого успеха Интернета первый упомянутый TCP сравнялся с IP в качестве стандарта для сетевых соединений. В большинстве случаев он опирается непосредственно на IP, поэтому часто используются сети TCP/IP. Как протокол, ориентированный на соединение, TCP требует наличия существующего соединения между пользователями связи для передачи пакетов данных. Он гарантирует надежную передачу данных и то, что все пакеты придут в полном комплекте и в правильном порядке. Для этого протокол добавляет к данным дополнительную информацию, такую как порядковый номер и контрольную сумму.
UDP — это аналог TCP в семействе интернет-протоколов для простой и быстрой передачи небольших пакетов данных без соединения. Соединения UDP не обеспечивают никакой безопасности для пакета, прибывшего к адресату, но благодаря низкому уровню администрирования данных (дополнительная информация в заголовке), нет явного преимущества в скорости передачи данных, где небольшие ошибки передачи не являются проблемой. По этой причине протокол User Datagram Protocol используется для потокового аудио и видео, запросов DNS и соединений VPN (Virtual Private Network).
Как и семейство интернет-протоколов, другие стеки протоколов также имеют специфические протоколы передачи, основанные на их сетевых протоколах и во многом схожие с TCP. Сети Novell, например, ждут на транспортном уровне с протоколом SPX (Sequenced Packet Exchange). В стеке AppleTalk пакеты данных могут передаваться с помощью протокола ATP (AppleTalk Transaction Protocol).