что такое интерфейс и протокол
Разбираемся с понятиями «Интерфейс» и «Протокол»
Понятия «Протокол» и «Интерфейс» неразрывно связаны друг с другом, именно поэтому их так часто путают не только новички, но и опытные специалисты в области IT-технологий. Эти термины используются всегда, когда речь идёт о передаче данных. Причём, не важно, какой обмен данными имеется в виду, это может быть обмен между приложениями, устройствами, между человеком и компьютером – во всех этих случаях мы имеем дело с «интерфейсом» и «протоколом». Однако не многие могут дать внятный ответ на вопрос: «в чём разница между этими понятиями?», попросту путают эти термины или считают их синонимами. В данной статье мы постараемся раз и навсегда внести ясность в этот вопрос.
Для начала дадим определения.
Интерфейс – совокупность аппаратных и программных средств, необходимых для взаимодействия с программой, устройством, функцией и т.д.
Протокол — набор правил, соглашений, сигналов, сообщений и процедур, регламентирующий взаимодействие между сопрягаемыми объектами.
Сложно? На самом деле всё проще, чем кажется. Давайте разбираться!
Что такое интерфейс
Возьмём простой пример: обмен информацией между двумя людьми. Допустим, вам нужно передать сообщение своему другу из другого города. Вы можете это сделать многими способами: отправить ему письмо обычной почтой, почтовым голубем или воспользоваться электронной, можете написать в социальной сети, позвонить по телефону или Skype. Всё это – интерфейсы. Необходимо запомнить, что интерфейс всегда отвечает на вопросы: «Как?», «Каким способом?».
Понятие «интерфейс» также используется, когда речь идёт о взаимодействии компьютерной программы или устройства с человеком. Можно услышать: «программа имеет дружелюбный интерфейс» или «пылесос с беспроводным интерфейсом». В этих случая так же речь идёт о способах взаимодействия. Например, телевизором можно управлять с помощью пульта дистанционного управления или с помощью кнопок. Это его интерфейсы. Для подключения внешних устройств телевизоры имеют интерфейсы USB, DVI, HDMI и другие.
Если мы говорим про интерфейс компьютерной программы, то это тоже способ обмена данными: можно работать в программе пользуясь удобной графической оболочкой, а можно с помощью командной строки.
Как вы понимаете, чтобы организовать обмен данными по какому-либо интерфейсу, необходимо чтобы все участники взаимодействия обладали этим интерфейсом: для того, чтобы написать другу по электронной почте – нужно, чтобы у него был e-mail, а для того чтобы управлять беспроводным пылесосом, нужен пульт.
Интерфейс может содержать в себе другие интерфейсы. Когда мы говорим про передачу сообщения обычной почтой, мы говорим про один интерфейс. Но на самом деле наше письмо может доставляться поездом, самолётом, автотранспортом – это тоже интерфейсы, но они «скрыты» от нас, мы никак не участвуем в их выборе, поэтому для нас это один интерфейс «Почта России».
Что такое протокол
На этом же примере разберёмся, что же такое протокол. Вы можете отправить письмо в виде текста на русском языке или на китайском, можете нарисовать рисунок или послать аудиозапись (если это электронное письмо). Это и есть протоколы передачи – правила, с помощью которых кодируется информация, которую вы собираетесь передать. Протоколы могут быть наложены друг на друга. Например, вы можете написать письмо, пользуясь шифром, который знаете только вы и ваш друг, а символы в нём использовать из кириллицы – то есть вы как бы наложите на одни правила обмена информацией другие правила более высокого уровня. Адресат расшифрует ваше послание, если конечно он владеет этими правилами.
На конверте письма нужно указать адрес получателя – это тоже часть протокола – правила, необходимые для передачи сообщения, но не нужные для его расшифровки. Поэтому, в общем случае при передаче данных может использоваться несколько протоколов. Каждая строка адреса получателя – это директива для разных сегментов почтовой сети. Например, для почтового отделения, откуда письмо начнёт свой путь, не важны улица, дом и номер квартиры получателя, важен только город, куда нужно направить письмо.
В цифровой технике всё происходит аналогично. Когда мы отправляем сообщение пользователю в социальной сети, оно проходит огромное количество промежуточных звеньев от браузера вашего компьютера до браузера компьютера адресата – это сетевые карты, роутеры, шлюзы и т.д. Поскольку всё это оборудование связано разными интерфейсами, наше исходное сообщение «обрастает» большим количеством дополнительной информации на каждом сетевом уровне.
Заключение
Итак, в данной статье мы разобрались, что интерфейс – это способ обмена информацией, а протокол – это совокупность правил, которые необходимо соблюдать при передаче данных по выбранному интерфейсу. При обмене информацией может использоваться несколько интерфейсов, каждый из которых использует свой протокол передачи. При этом каждый протокол как бы оборачивает данные в свою коробку. Получается своеобразная «матрёшка» из данных, которая потом «разбирается» обратно до исходного сообщения, которое и получает адресат.
Модель OSI. Понятие об интерфейсах и протоколах. Рекомендация ITU-T X.200
Основы построения компьютерных сетей.
Компьютерной сетью называется совокупность узлов (ком-ров, терминалов,
периферийных устройств), имеющих возможность информационного взаимодействия друг с другом с помощью специального коммутационного оборудования и программного обеспечения.
По широте охвата принято делить сети на несколько категорий:
Интернет (Internet)– это глобальная информационная система, которая
• логически связана единым адресным пространством;
• может поддерживать соединения с коммутацией пакетов на основе семейства специализированных протоколов;
• предоставляет услуги высокого уровня.
В Интернет приняты следующие определения.
Узел (Node) – любой сетевой элемент, имеющий хотя бы один сетевой адрес (IP-адрес). Примеры узла: оконечное устройство (хост), маршрутизатор, шлюз.
Хост (Host) – конечный узел, который является либо источником, либо получателем информации, либо тем и другим одновременно. Примеры хоста: компьютер (PC), сервер (Server), принтер (Printer). Как правило, имеет не более одного физического интерфейса.
Маршрутизатор (Router, R) – узел, который ретранслирует пакеты между интерфейсами в соответствии с сетевым адресом. Имеет не менее двух физических интерфейсов. Иногда маршрутизатор называют шлюзом.
Шлюз (Gateway, GW) – узел, связывающий протоколы или каналы связи с различной технологией, например, сеть коммутации каналов и сеть коммутации пакетов.
Модуль (Module) – программно-аппаратное средство, входящее в состав узла и реализующее определенную функцию (протокол). Может одновременно входить в состав другого модуля. Примеры модуля: модуль IP, модуль ICMP.
Интерфейс (Interface) – перечень соглашений между передающей и приемной сторонами об уровне и форме сигналов, размерах сообщений, способах контроля ошибок и т.д., обеспечивающий взаимодействие различных модулей.
Протокол (Protocol) – формальное описание набора правил, которые управляют обменом информацией между узлами сети.
Порт (Port) – 1) интерфейс межсетевого взаимодействия на физическом уровне. Может иметь закрепленный за ним сетевой адрес. Примеры портов: E1, T1, E3, T3. 2)Идентификатор процесса (приложения) верхнего уровня, который взаимодействует с нижележащими уровнями.
Коммутационное устройство – аппаратное средство, осуществляющее соединение узлов по запросу. Примеры коммутационных устройств: коммутатор (Switch), маршрутизатор (Router).
Локальная сеть (Local Network) – небольшая группа узлов, связанная единым адресным пространством. Примеры локальных сетей: Ethernet, Token Ring.
Пакет (Packet) – структурированная информация, имеющая IP-адрес и полезную нагрузку.
Действием, полезнымдля пользователей, является обмен информацией между конечными устройствами. Поток информации, передаваемой по сети, называют сетевым трафиком Трафик кроме полезной информации включает и служебную ее часть- неизбежные накладные расходы на организацию взаимодействия узлов сети.
Пропускная способность линии связи определяется как кол-во информации, проходящей через линию за единицу времени, называется также полосой пропускания(bandwidth). Измеряется в бит/с (bps). Для активного коммутационного оборудования применимо понятие производительность.
Базовая модель взаимодействия открытых систем ВОС(OSI)
Модель OSI. Понятие об интерфейсах и протоколах. Рекомендация ITU-T X.200
Для oрганизации взаимодействия между сетевыми устройствами организацией ISO была разработана модель ВОС. Она основана на уровневых протоколах, что позволяет обеспечить:
Функции любого узла разбиваются на уровни, для конечных систем их семь.
Внутри каждого узла взаимодействие между уровнями идет по вертикали. Взаимодействие между двумя узлами логически происходит по горизонтали – между соответствующими уровнями. Реально же из-за отсутствия непосредственных горизонтальных связей производится спуск до нижнего уровня в источнике, связь через физическую среду и подъем до соответствующего уровня в приемнике информации. Каждый уровень обеспечивает свой набор сервисных функций(сервисов), прикладная ценность которых возрастает с повышением уровня.
Уровень, с которого посылается запрос, и симметричный ему уровень в отвечающей системе формируют свои блоки данных. Данные снабжаются служебной информацией данного уровня и спускаются на уровень ниже, пользуясь сервисами соответствующего уровня, на этом уровне к полученной информации также присоединяется служебная информация, и так происходит спуск до самого нижнего уровня, сопровождаемый “обрастанием” заголовками. Наконец, по нижнему уровню вся эта конструкция достигает получателя, где по мере подъема вверх освобождается от служебной информации соответствующего уровня. В итоге сообщение, посланное источником, в “чистом виде” достигает соответствующего уровня системы-получателя, независимо от того, как оно его достигло. Служебная информация управляет процессом передачи и служит для контроля его успешности и достоверности. В случае возникновения проблем может быть сделана попытка их уладить на том уровне, где они обнаружены, если уровень не может решить проблему, он сообщает о ней на его вышестоящий уровень.
Сервисы по передачи данных могут быть гарантированными и не гарантированными. Гарантированный сервис на вызов ответит сообщением об успешности или неуспешности операции. Негарантированный сервис сообщит только о выполнении операции, а дошли ли данные до получателя, при этом неизвестно. Контроль достоверности и обработка ошибок может выполнятся на разных уровнях и инициировать повтор передачи блока, Как правило, чем ниже уровень, на котором контролируются ошибки, тем быстрее они обрабатываются.
Уровни модели OSI.
Уровни модели рассмотрим сверху вниз.
7. Прикладной уровень– высший уровень модели. Он обеспечивает пользовательской прикладной программе доступ к сетевым ресурсам.
Примеры задач уровня:
Примеры протоколов прикладного уровня:
· FTAM (File Transfer, Access and Management) – удаленное манипулирование файлами.
· FTP (File Transfer Protocol) – пересылка файлов.
· X.400 – передача сообщений и сервис электронной почты.
· CMIP (Common Management Information Protocol) – управление сетью в стандарте ISO.
5. Сеансовый уровень обеспечивает инициацию и завершение сеанса – диалога между устройствами, синхронизацию и последовательность пакетов в сетевом диалоге, надежность соединения до конца сеанса (обработку ошибок, повторные передачи).
Примеры протоколов сеансового уровня:
· NetBios (Network Basic Input/Output System) – именование узлов, негарантированная доставка коротких сообщений без установления соединений, установление виртуальных соединений и гарантированная доставка сообщений, общее управление. Протокол распространяется еще и на 6-й и на 7-й уровни.
4. Транспортный уровень.уровень поддерживает два режима установления связи установлением соединения и без установления соединения. Каждый из режимов идентифицируется своим протоколом (Protocol).
В стандартах Интернет принято кодирование в шестнадцатеричном коде. Первый режим используется модулем TCP, имеющий код протокола 6 (в шестнадцатеричном коде – 0x06)
TCP (Transmission Control Protocol) – Протокол управления передачей с гарантией доставки дейтаграмм, он вначале устанавливает виртуальное соединение между двумя абонентами, а потом по этому пути передает их пакеты. Связь по TCP – дуплексная и без ошибок. По сути дела протокол TCP позволяет в стеке TCP/IP совмещать две разные технологии: датаграммную и виртуального соединения
Второй режим используется модулем UDP без гарантии доставки информации получателю (гарантия доставки обеспечивается приложением). Протокол UDP имеет код 17 (в шестнадцатеричном коде – 0x11).
3.Сетевой уровень–обеспечивает перемещение информации в виде пакетов между сетями (интерфейсами канального уровня), используя сетевой адрес. Семейство протоколов третьего уровня нижележащими уровнями идентифицируется типом протокола (ICMP – типом 0x0001, IP – типом 0x800, ARP – типом 0x0806). Связка “номер порта – сетевой адрес” называется сокетом. Пара сокетов – на передаче и приеме – однозначно определяет установленное соединение.
Адрес назначения каждого пакета, попавшего в модуль IP, анализируется, чтобы понять, куда его следует дальше направить: в собственное приложение или на переместить другой интерфейс для дальнейшей транспортировке по сети.
Уровень отвечает за адресацию (трансляцию физических и сетевых адресов, обеспечение межсетевого взаимодействия);
Примеры протоколов сетевого уровня:
ARP (Address Resolution Protocol) – взаимное преобразование аппаратных и сетевых адресов.
IP (Internet Protocol) – межсетевой протокол. Обеспечивает доставку пакетов в IP-сети в соответствии с адресом назначения, протокол доставки дейтаграмм, основа стека TCP/IP
При этом условия гарантии доставки пакетов, в IP не заложены. IP – это протокол негарантированной доставки пакетов. Сам пакет прокладывает себе путь через цепочку маршрутизаторов, выбирая для данного момента самый благоприятный маршрут.
ICMP (Internet Control Message Protocol). Протокол межсетевых управляющих сообщений. Является составной частью IP модуля и служит для извещения друг друга об ошибочных ситуациях при транспортировке пакетов по сети.
· поиск пути от источника к получателю или между двумя промежуточными устройствами;
· установление и обслуживание логической связи между узлами для установления связи как ориентированной, так и не ориентированной на соединение.
· форматирование данных в соответствии с коммуникационной технологией (локальные сети, глобальные сети).
· идентификацию абонентов, проверку на легальность, приоритеты;
· передача управления при перемещении абонентов;
· взаимодействие с другими сетями.
· контроль ресурсов каналов связи;
· установление процедуры передачи и приема;
· разрешение конфликтов доступа к среде;
· контроль состояния канала связи;
· формирование команд управления аппаратурой
При взаимодействии с канальным уровнем другого узла осуществляет:
· интерливинг – деинтерливинг символов сообщений для исключения влияния быстрых флуктуаций сигнала в канале(импульсные помехи);
· контроль качества передачи сообщений, формирование требований на повторную передачу;
· выбор скорости передачи сообщений.
IEEE в сетевой модели IEEE 802 ввел дополнительное деление канального уровня на 2 подуровня.
На канальном уровне осуществляется коммутация пакетов в локальной сети. Существует много технологий канальных уровней – Ethernet, Token Ring, FDDI и другие.
Каждая из технологий рассчитана на определенную топологию: Ethernet – на подключение всех узлов к общей шине, а Token Ring и FDDI имеют кольцевую
Физический уровень –обеспечивает физическое кодирование бит кадра в электрические (оптические) сигналы и передачу их по линиям связи.
· преобразование пользовательской информации из программного(цифрового) представления в физическое (цивровой сигнал):
· модуляция сигнала и его передача через среду;
· прием и демодуляция физического сигнала;
· восстаровление сообщения из демодулированного сигнала;
Интерфейс с канальным уровнем:
SNMP (Simple Network Management Protocol). Простой протокол управления сетью.
HTTP (Hyper Text Transfer Protocol). Протокол передачи гипертекста.
SMTP электронная почта
Стек протоколов TCP/IP
Рисунок 5.1 – Связь уровней TCP/IP с ЭВМОС
Как видно, модель уровней TCP/IP отличается от ЭВМОС. Эти отличия заключаются как в количестве уровней, так и в их функциональном содержании.
Начнем снизу. Первый и второй уровни в стеке протоколов TCP/IP не регламентируются. Это означает, что третий (сетевой) уровень IP должен взаимодействовать с любым протоколом канального уровня. Это взаимодействие, как правило, решается с помощью инкапсуляции IP пакетов в кадры канального уровня, например Ethernet или PPP (рис 5.2).
Рисунок 5.2 – Инкапсуляция данных различных уровней
Уровень межсетевого взаимодействия IP-Internet Protocol совпадает с сетевым уровнем ЭМВОС, поэтому в дальнейшем будем называть его просто сетевым уровнем. Основное его назначение выбор маршрута следования пакетов по определенному критерию и передача пакета по этому маршруту в составных сетях независимо от протоколов канального уровня. При этом условия гарантии доставки пакетов, в IP не заложены. IP – это протокол негарантированной доставки пакетов. Сам пакет прокладывает себе путь через цепочку маршрутизаторов, выбирая для данного момента самый благоприятный маршрут.
Транспортный уровень с точки зрения передачи пакетов содержит два альтернативных варианта:
UDP(User Datagram Protocol) – протокол негарантированной доставки, который обеспечивает передачу пакетов датаграммным способом и по сути является продолжением протокола IP.
TCP (Transmission Control Protocol) – протокол с управлением передачи, принципиально отличающийся от UDP, поскольку он вначале устанавливает виртуальное соединение между двумя абонентами, а потом по этому пути передает их пакеты наряду с пакетами других абонентов. Связь по TCP – дуплексная и без ошибок. По сути дела протокол TCP позволяет в стеке TCP/IP совмещать две разные технологии: датаграммную и виртуального соединения.
Шестой и седьмой уровни функционально объединены в один прикладной, который представляет все сервисы сети Интернет: электронную почту SMTP, доступ к базам данных WWW, передачу файлов FTP и многое другое. Состав сервисов этого уровня непрерывно расширяется.
Введение в сетевую терминологию, интерфейсы и протоколы
Базовое понимание сетевых технологий необходимо любому человеку, который имеет отношение к управлению сервером. Эти знания помогут вам запустить и отладить работу сетевых сервисов и своевременно обнаружить проблемы.
В данной статье представлен базовый обзор общих сетевых терминов и протоколов, а также характеристики различных уровней сетевого взаимодействия.
Основные сетевые термины
В данном разделе вы найдёте определения основных терминов и понятий, имеющих отношение к созданию и управлению сетями.
Конечно, этот список нельзя назвать исчерпывающим – он содержит только основные понятия, которые используются в сетевых технологиях.
Сетевые уровни
Сетевое взаимодействие часто представляют в виде горизонтальных соединений между хостами, однако реализация такого взаимодействия распределяется по вертикали по всему компьютеру или сети.
Существует множество встроенных друг в друга технологий и протоколов, которые упрощают сетевое взаимодействие. Каждый последующий, более высокий уровень упрощает использование необработанных данных приложениями и пользователями.
Это также позволяет использовать более низкие уровни для обработки трафика, не тратя время и силы на разработку новых протоколов и приложений.
Когда машина отправляет данные, они попадают на высший сетевой уровень и фильтруются каждым последующим уровнем. На самом низком уровне происходит фактическая передача на другую машину, после чего данные фильтруются уровнями в обратном порядке.
Каждый уровень может добавить оболочку вокруг полученных данных, что поможет следующим уровням понять, что делать с данными при их передаче.
Модель OSI
OSI (Open Systems Interconnect) – это базовая модель взаимодействия открытых систем, которая состоит из 7 уровней:
Модель TCP/IP
Модель TCP/IP (набор протоколов Internet) – ещё одна популярная модель, которая состоит из 4 уровней (они совпадают с некоторыми уровнями OSI):
Сетевые интерфейсы
Интерфейсы являются сетевыми точками связи компьютера. Каждый интерфейс связан с физическим или виртуальным сетевым устройством.
Как правило, на вашем сервере будет один настраиваемый сетевой интерфейс для каждой имеющейся Ethernet-карты или беспроводной интернет-карты.
Кроме того, сервер определит виртуальный сетевой интерфейс (loopback, или localhost). Он используется как интерфейс для соединения приложений и процессов на одном компьютере с другими приложениями и процессами. Во многих инструментах он упоминается как интерфейс «lo».
Администраторы часто используют один интерфейс (обычно eth0) для обслуживания трафика в Интернете, а другой интерфейс (eth1) – для локальной или частной сети.
Протоколы
Сетевые технологии подразумевают совмещение нескольких различных протоколов. Таким образом, одна часть данных может быть передана с помощью нескольких протоколов, встроенных друг в друга.
Рассмотрим самые популярные и распространённые протоколы, начиная с протоколов низкого уровня.
Протокол управления доступом к среде
Media access control, или протокол управления доступом к среде используется для различения устройств. Предполагается, что каждое устройство получает уникальный MAC-адрес, который отличает его от любого другого устройства в Интернете.
Присваивание оборудованию MAC-адресов позволяет ссылаться на устройство по уникальному значению, даже если программное обеспечение устройства изменило его имя.
Media access control является одним из базовых протоколов канального уровня.
Протокол IP
Протокол IP – один из основных протоколов сети Интернет. IP-адреса уникальны в каждой сети и позволяют машинам обращаться друг к другу через сеть. Протокол реализован на сетевом уровне модели IP/TCP.
Сети могут быть связаны между собой, но трафик должен быть маршрутизирован при пересечении границ сети. Этот протокол предусматривает небезопасную сеть и несколько путей к тому же адресату.
Существует несколько различных реализаций протокола IP. Наиболее распространенной реализацией является IPv4, хотя из-за нехватки доступных адресов IPv4 и улучшения возможностей протоколов все более популярным становится IPv6.
Протокол ICMP
Протокол ICMP (internet control message protocol) – это протокол, который используется для отправки сообщений между устройствами. Эти пакеты используются многими сетевыми инструментами диагностики (например, ping и traceroute).
Обычно ICMP-пакеты передаются, когда пакет другого типа сталкивается с какой-либо проблемой. В основном, они используются как механизм обратной связи для сетевых коммуникаций.
Протокол TCP
Протокол TCP (transmission control protocol) – протокол управления передачей данных. Он реализован на транспортном уровне модели IP/TCP и используется для установления безопасных соединений.
TCP – один из протоколов, которые помещают данные в пакеты. Затем он передает пакеты удаленному концу соединения, используя методы нижних уровней. На другом конце соединения он может проверять ошибки, запрашивать определенные фрагменты и повторно собирать информацию в один логический элемент для отправки на прикладной уровень.
Протокол создает соединение до передачи данных при помощи трёхэтапного квитирования. Этот способ позволяет участникам соединения подтвердить запрос и согласовать способ обеспечения безопасности данных.
После отправки данных соединение сбрасывается с помощью механизма четырёхэтапного квитирования.
Протокол TCP используется в электронной почте, WWW, FTP, SSH. Можно с уверенностью сказать, что без TCP интернет не был бы таким, каким мы его знаем сегодня.
Протокол UDP
UDP (user datagram protocol) – это протокол пользовательских датаграмм, популярный сопутствующий протокол для TCP, который также реализуется на транспортном уровне.
Основное отличие между UDP и TCP состоит в том, что UDP предоставляет небезопасную передачу данных. Он не проверяет, были ли данные получены на другом конце соединения. Часто это считается серьёзным недостатком, однако некоторым функциям необходим именно такой механизм.
Поскольку UDP не проверяет получения данных, он намного быстрее, чем TCP. Он не устанавливает соединение с удаленными нодами, а просто передаёт данные на этот хост.
Такие простые транзакции используются в простых взаимодействиях (например, для запроса сетевых ресурсов). UDP также является отличным протоколом для передачи данных с одной машины на множество клиентов в режиме реального времени. Он идеально подходит для VOIP, игр и других приложений, которые должны работать без задержки.
Протокол HTTP
HTTP (hypertext transfer protocol) – это протокол передачи гипертекста. Он реализуется на прикладном уровне, который формирует основу для коммуникации в Интернете.
HTTP определяет ряд функций, которые сообщают удаленной системе о запросе. Например, GET, POST и DELETE взаимодействуют с запрошенными данными по-разному.
Протокол FTP
FTP (file transfer protocol) – это протокол передачи файлов. Он также находится на прикладном уровне и обеспечивает способ передачи полных файлов с одного хоста на другой.
Этот протокол по своей природе небезопасен, поэтому его не рекомендуется использовать в любой открытой сети (если только он не реализован как общедоступный ресурс, предназначенный только для загрузки файлов).
Протокол DNS
DNS (domain name system) – это система доменных имен. Этот протокол прикладного уровня предоставляет удобный механизма именования интернет-ресурсов. Он связывает доменное имя с IP-адресом и позволяет вам обращаться к сайтам по имени в вашем браузере.
Протокол SSH
SSH (secure shell) – это протокол шифрования, реализованный на прикладном уровне, который может использоваться для безопасного обмена данными с удаленным сервером. На этом протоколе основано много дополнительных технологий.
Существует много других важных протоколов, которые не охвачены в этой статье. Однако теперь вы знакомы с базовыми сетевыми протоколами и их применением.