Книга: Linux-сервер своими руками
1.7.2. Протокол и интерфейс
Разделы на этой странице:
1.7.2. Протокол и интерфейс
Теперь пора уже перейти к протоколам, в частности, к протоколу TCP/IP, который лежит в основе сети Интернет. Протокол — это совокупность правил, определяющая взаимодействие абонентов вычислительной системы (в нашем случае — сети) и описывающая способ выполнения определенного класса функций. Еще один термин, который мы будем часто употреблять — интерфейс. Интерфейс — это средства и правила взаимодействия компонент системы между собой. Чтобы лучше понять значения этих терминов, обратите внимание на рис. 1.6. На этом рисунке изображены две системы (компьютера) — А и В.
Из рис. 1.6 видно, что средства, которые обеспечивают взаимодействие модулей разных уровней в рамках одной системы (например, В1 и В2), называются интерфейсом, а средства, обеспечивающие взаимодействие компонент одного уровня разных систем (например, А1 и В1), называются протоколом. Протокол и интерфейс можно сравнить еще и так: разговор двух директоров разных предприятий можно назвать протоколом, а разговор директора и подчиненного одного предприятия можно считать интерфейсом. Как вы уже догадались, разговор сотрудников разных предприятий будет протоколом.
Рис. 1.6. Протоколы и интерфейсы
Теперь, когда мы уже знаем, что означает слово «протокол», перейдем к рассмотрению основных протоколов.
Самым главным — святыней всех святынь — является протокол TCP/IP. TCP/IP (Transmission Control Protocol/Internet Protocol — Протокол Управления Передачей/Интернет-протокол) — это базовый транспортный сетевой протокол. На этом протоколе основана вся сеть Интернет.
Следующий важный протокол — это RIP (Routing Information Protocol). Протокол RIP используется для маршрутизации пакетов в компьютерных сетях. Для маршрутизации также используется протокол OSPF (Open Shortest Path First), который является более эффективным, чем RIP. ICMP (Internet Control Message Protocol) — протокол межсетевых управляющих сообщений. Существует несколько типов данного протокола, которые используются для определенных целей (установление соединения, проверка доступности узла).
FTP (File Transfer Protocol) — протокол передачи файлов. Служит для обмена файлами между системами. Например, вам нужно передать файл на сервер или, наоборот, скачать файл с сервера. Для этого вам нужно подключиться к файловому серверу (он же FTP-сервер) и выполнить необходимую вам операцию. Подключение осуществляется с помощью FTP-клиента. Простейший FTP-клиент входит в состав практически любой операционной системы. Обычно для запуска FTP-клиента нужно ввести команду ftp.
HTTP (Hyper Text Transfer Protocol) — протокол обмена гипертекстовой информацией, то есть документами HTML. Протокол HTTP используется Web-серверами. HTTP-клиенты называются браузерами.
POP (Post Office Protocol) — протокол почтового отделения. Этот протокол используется для получения электронной почты с почтовых серверов. А для передачи электронной почты служит протокол SMTP (Simple Mail Transfer Protocol) — протокол передачи сообщений электронной почты.
Раз уж затронули тему почтовых протоколов, давайте разберемся, как происходит чтение и отправление почты. Для получения сообщений пользователь соединяется с POP-сервером, сообщает ему свое имя пользователя и пароль, и, если аутентификация прошла успешно, получает сообщения. Обратите внимание, что пользователь именно получает сообщения, а не просматривает их. Прочитать сообщение пользователь может только после его загрузки на свой компьютер. Обычно полученные сообщения удаляются на сервере, но это зависит от настроек почтового клиента пользователя. Почтовый клиент — это программа, которая выполняет все операции по работе с электронной почтой. Самыми распространенными почтовыми клиентами являются The Bat!, Outlook, Outlook Express, Netscape Messenger, KMail.
Для передачи сообщения пользователь просто соединяется с SMTP-сервером и передает сообщение. При этом никакой аутентификации не происходит, хотя можно настроить сервер так, что он будет запрашивать имя пользователя и пароль перед началом передачи сообщения на сервер. Настройке SMTP-аутентификации посвящен п. 13.2 этой книги. После передачи сообщения на сервер SMTP оно становится в очередь. Через определенное время это сообщение передается нужному POP-серверу, который принимает сообщение. Потом сообщение может получить пользователь, для которого оно предназначено. Если же сервер SMTP не может отправить сообщение (например, нужный POP-сервер не существует или недоступен, или же адресат не зарегистрирован на этом сервере POP), письмо возвращается отправителю.
Для чтения почты существует и другой протокол — IMAP. Его отличие от протокола POP состоит в том, что пользователь читает сообщения электронной почты, не загружая их на свой компьютер. Все сообщения хранятся на сервере. При удалении сообщения оно удаляется с сервера. SLIP (Serial Line Internet Protocol) — протокол подключения к сети Интернет по последовательной линии. Используется для установления связи с удаленными узлами через низкоскоростные последовательные интерфейсы. В настоящее время вытеснен протоколом РРР и практически не используется. РРР (Point-to-Point Protocol) обеспечивает управление конфигурацией, обнаружение ошибок и повышенную безопасность при передаче данных на более высоком уровне, чем протокол SLIP. Поэтому при настройке сервера рекомендуется использовать именно этот протокол. Протокол PPP рассмотрен в RFC 1547 и RFC 1661.
Прежде чем перейти к рассмотрению протокола TCP/IP, рассмотрим семиуровневую модель взаимодействия открытых систем. Под открытой системой понимается любая система, построенная в соответствии с открытыми спецификациями. Протокол также можно рассматривать как определенное соглашение, принятое взаимодействующими объектами, в нашем случае — это компьютеры, работающие в сети. Соглашение (протокол) не обязательно должно быть стандартным, но на практике стараются использовать именно стандартные протоколы.
В начале 80-х годов международной организацией по стандартизации (ISO — International Organization for Standardization) была разработана модель взаимодействия открытых систем (OSI — Open System Interconnection). В другой литературе вы можете встретить и другие названия этой модели: сокращенное — модель OSI или более полное — семиуровневая модель взаимодействия открытых систем OSI. Средства взаимодействия (см. рис. 1.7) в модели OSI делятся на семь уровней:
1. Физический.
2. Канальный.
3. Сетевой.
4. Транспортный.
5. Сеансовый.
6. Представительный.
7. Прикладной.
Рис. 1.7. Модель OSI
Благодаря этому задача сетевого взаимодействия разбивается на несколько более мелких задач. Это позволяет при разработке новых способов и инструментов сетевого взаимодействия не разрабатывать их заново целиком и полностью, а использовать уже готовые решения, заменив только некоторые его части. Непосредственно друг с другом взаимодействуют только физические уровни. Все остальные уровни напрямую взаимодействуют только с выше– и нижележащими уровнями: пользуются услугами нижележащего и предоставляют услуги вышележащему. Друг с другом такие уровни контактируют косвенным образом, через посредство нижележащих уровней.
Примечание. В некоторых случаях сетевого взаимодействия физический уровень как таковой отсутствует, при этом его функции выполняет самый низлежащий уровень.
Из рис. 1.7 видно, что по мере прохождения сообщения через уровни модели OSI к пересылаемым данным добавляется служебная информация, свидетельствующая о прохождении данных через определенный уровень.
Рассмотрим взаимодействие двух компьютеров более подробно на примере файловой службы. Допустим, нам (компьютер 1) нужно записать какую-нибудь информацию в файл на удаленном компьютере 2. Обычное сообщение состоит из заголовка и поля данных. В заголовке содержится различная служебная информация. Как изменяется заголовок видно из рис. 1.7. Например, в заголовке может содержаться информация о нашем компьютере (его адрес), компьютере получателя, а также имя и расположение файла, в который нужно записать информацию. Поле данных может быть и пустым, но в нашем случае, очевидно, содержит информацию, которую нужно записать в файл.
Приложение (процесс 1) формирует стандартное сообщение, которое передается прикладному уровню. Точнее, процесс 1 работает на прикладном уровне.
После формирования сообщения прикладной уровень передает его представительному уровню. На этом уровне в заголовок добавляются указания для представительного уровня компьютера-адресата. Потом сообщение передается сеансовому уровню, который добавляет свою информацию и т.д. Процесс вложения одного протокола в другой называется инкапсуляцией.
Когда сообщение поступает на компьютер-адресат, оно принимается физическим уровнем и передается вверх с уровня на уровень. Каждый уровень анализирует содержимое заголовка своего уровня, выполняет содержащиеся в нем указания, затем удаляет относящуюся к себе информацию из заголовка и передает сообщение далее вышележащему уровню. Этот процесс называется декапсуляцией. Далее приведено описание уровней взаимодействия.
Физический уровень (Physical Layer)
Физический уровень передает биты по физическим каналам связи, например, коаксиальному кабелю или витой паре. На этом уровне определяются характеристики электрических сигналов, которые передают дискретную информацию, например: тип кодирования, скорость передачи сигналов. К этому уровню также относятся характеристики физических сред передачи данных: полоса пропускания, волновое сопротивление, помехозащищенность.
Функции физического уровня реализуются сетевым адаптером или последовательным портом. Примером протокола физического уровня может послужить спецификация 100Base-TX (технология Ethernet).
Канальный уровень (Data link Layer)
Канальный уровень отвечает за передачу данных между узлами в рамках одной локальной сети. Узлом будем считать любое устройство, подключенное к сети.
Этот уровень выполняет адресацию по физическим адресам (МАС-адресам), «вшитым» в сетевые адаптеры предприятием-изготовителем. Каждый сетевой адаптер имеет свой уникальный МАС-адрес, то есть вы не найдете две сетевые платы с одним и тем же МАС-адресом.
Канальный уровень переводит поступившую с верхнего уровня информацию в биты, которые потом будут переданы физическим уровнем по сети. Он разбивает пересылаемую информацию на фрагменты данных — кадры (frames).
На этом уровне открытые системы обмениваются именно кадрами. Процесс пересылки выглядит примерно так: канальный уровень отправляет кадр физическому уровню, который отправляет кадр в сеть. Этот кадр получает каждый узел сети и проверяет, соответствует ли адрес пункта назначения адресу этого узла. Если адреса совпадают, канальный уровень принимает кадр и передает наверх вышележащим уровням. Если же адреса не совпадают, то он просто игнорирует кадр.
В используемых протоколах канального уровня заложена определенная топология. Топологией называется способ организации физических связей и способы их адресации. Канальный уровень обеспечивает доставку данных между узлами в сети с определенной топологией, то есть для которой он разработан. К основным топологиям (см. рис. 1.8) относятся:
• Общая шина.
• Кольцо.
• Звезда.
Рис. 1.8. Основные топологии локальных компьютерны хсетей
Протоколы канального уровня используются компьютерами, мостами, маршрутизаторами. Глобальные сети (в том числе и Интернет) редко обладают регулярной топологией, поэтому канальный уровень обеспечивает связь только между компьютерами, соединенными индивидуальной линией связи. При этом для доставки данных через всю глобальную сеть используются средства сетевого уровня (протоколы «точка-точка»). Примерами протоколов «точка-точка» могут послужить РРР, LAP-B.
Сетевой уровень (Network Layer)
Данный уровень служит для образования единой транспортной системы, которая объединяет несколько сетей. Другими словами, сетевой уровень обеспечивает межсетевое взаимодействие.
Протоколы канального уровня передают кадры между узлами только в рамках сети с соответствующей топологией. Проще говоря — в рамках одной сети.
Нельзя передать кадр канального уровня узлу, который находится в другой сети. Данное ограничение не позволяет строить сети с развитой структурой или сети с избыточностью связей. Построить одну большую сеть также невозможно из-за физических ограничений. К тому же даже если построить довольно большую сеть (например, спецификация 10Base-T позволяет использовать 1024 узла в одном сегменте), производительность данной сети не будет вас радовать. Более подробно о причинах разделения сети на подсети и возникающих при этом трудностях мы поговорим немного позже, а сейчас продолжим рассматривать сетевой уровень.
На сетевом уровне термин сеть следует понимать как совокупность компьютеров, которые соединены в соответствии с одной из основных топологий и использующих для передачи данных один из протоколов канального уровня.
Сети соединяются специальными устройствами — маршрутизаторами. Маршрутизатор собирает информацию о топологии межсетевых соединений и на основании этой информации пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от компьютера-отправителя компьютеру-адресату, который находится в другой сети, нужно совершить некоторое количество транзитных передач между сетями. Иногда их еще называют хопами (от англ. hop — прыжок). При этом каждый раз выбирается подходящий маршрут.
Сообщения на сетевом уровне называются пакетами. На сетевом уровне работают несколько видов протоколов. Прежде всего — это сетевые протоколы, которые обеспечивают передвижение пакетов по сети, в том числе в другую сеть. Поэтому довольно часто к сетевому уровню относят протоколы маршрутизации (routing protocols) — RIP и OSPF.
Еще одним видом протоколов, работающих на сетевом уровне, являются протоколы разрешения адреса — Address Resolution Protocol (ARP). Хотя эти протоколы иногда относят и к канальному уровню.
Классические примеры протоколов сетевого уровня: IP (стек TCP/IP), IPX (стек Novell).
Транспортный уровень (Transport Layer)
На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Некоторые приложения самостоятельно выполняют обработку ошибок при передаче данных, но большинство все же предпочитают иметь дело с надежным соединением, которое как раз и призван обеспечить транспортный уровень. Этот уровень обеспечивает требуемую приложению или верхнему уровню (сеансовому или прикладному) надежность доставки пакетов. На транспортном уровне определены пять классов сервиса:
1. Срочность.
2. Восстановление прерванной связи.
3. Наличие средств мультиплексирования нескольких соединений.
4. Обнаружение ошибок.
5. Исправление ошибок.
Обычно уровни модели OSI, начиная с транспортного уровня и выше, реализуются на программном уровне соответствующими компонентами операционных систем.
Примеры протоколов транспортного уровня: TCP и UDP (стек TCP/IP), SPX (стек Novell).
Сеансовый уровень (Session Layer)
Сеансовый уровень устанавливает и разрывает соединения между компьютерами, управляет диалогом между ними, а также предоставляет средства синхронизации. Средства синхронизации позволяют вставлять определенную контрольную информацию в длинные передачи (точки), чтобы в случае обрыва связи можно было вернуться назад (к последней точке) и продолжить передачу.
Сеанс — это логическое соединение между компьютерами. Каждый сеанс имеет три фазы:
1. Установление соединения. Здесь узлы «договариваются» между собой о протоколах и параметрах связи.
2. Передача информации.
3. Разрыв связи.
Не нужно путать сеанс сетевого уровня с сеансом связи. Пользователь может установить соединение с Интернет, но не устанавливать ни с кем логического соединения, то есть не принимать и не передавать данные.
Представительный уровень (Presentation Layer)
Представительный уровень изменяет форму передаваемой информации, но не изменяет ее содержания. Например, средствами этого уровня может быть выполнено преобразование информации из одной кодировки в другую. Также на этом уровне выполняется шифрование и дешифрование данных.
Пример протокола представительного уровня: SSL (Secure Socket Layer). Данный протокол обеспечивает секретный обмен данными.
Прикладной уровень (Application Layer)
Данный уровень представляет собой набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к совместно используемым ресурсам. Единица данных называется сообщением.
Примеры протоколов: HTTP, FTP, TFTP, SMTP, POP, SMB, NFS.
Интернет и модель OSI
При взаимодействии открытой системы и Интернет модель OSI упрощается, так как некоторые протоколы Интернет включают в себя функции нескольких уровней. Если к сети Интернет подключается один пользователь, а не вся сеть, то автоматически исчезают канальный и физический уровни, потому что нет сетевых адаптеров, а значит, нет и физических адресов. В данном случае конечным протоколом будет протокол типа «точка-точка», например, РРР. В этот протокол будут вложены все остальные.
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- 8.3.2. Последовательные интерфейсы
- Использование программы с графическим интерфейсом для обмена по коммутируемой линии
- Протоколирование хода обработки пакетов
- Программный интерфейс сокетов
- Интерфейсы и протоколы
- Улучшенный протокол локальных соединений (XNET)
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Множественные интерфейсы и имена методов
- 2.1 Интерфейс SCSI
- 2.2 Интерфейсы IDE, EIDE и АТА
- 3.5 Проблемы доступа при использовании нескольких протоколов