Известных протоколов передачи передача данных. Основные протоколы сети интернет

Сетевым протоколом называется набор правил, позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть компьютерами. Фактически разные протоколы зачастую описывают лишь разные стороны одного типа связи; взятые вместе, они образуют так называемый стек протоколов. Названия <протокол> и <стек протоколов> также указывают на программное обеспечение, которым реализуется протокол.

  • Прикладной уровень (Application layer). Верхний (7-й) уровень модели, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Пример: HTTP, POP3, SMTP.
  • Уровень представления (Presentation layer). 6-й уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На уровне представления может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
  • Сеансовый уровень (Session layer). 5-й уровень модели отвечает за поддержание сеанса связи, что позволяет приложениям взаимодействовать между собой длительное время. Сеансовый уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
  • Транспортный уровень (Transport layer). 4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP
  • Сетевой уровень (Network layer). 3-й уровень сетевой модели OSI, предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
  • Уровень звена данных (Data Link layer). Часто это уровень называется канальным. Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Данные, полученные с физического уровня, он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS
  • Физический уровень (Physical layer). Самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы (хабы), повторители (ретрансляторы) сигнала и медиаконверторы. Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом.

Основные протоколы используемые в работе Интернет:

  • TCP/IP
  • IMAP4
  • Gorpher

КЛАССИФИКАЦИЯ КС ПО РАЗМЕРУ. НАЗВАНИЕ ТИПОВ КС, ИХ ПРИМЕРНАЯ ПРОТЯЖЕННОСТЬ И ПРИМЕНЕНИЕ .

Локальная сеть

Локальная сеть – это компьютерная сеть небольшой протяженности: в пределах комнаты, этажа, здания. Обычно такие сети действуют в пределах одного учреждения и имеют небольшой радиус действия: 1-10 км. Она сеть всегда является ведомственной. В настоящее время не существует четких ограничений на территориальный разброс абонентов локальной вычислительной сети. Обычно такая сеть привязана к конкретному месту. К классу локальных сетей относятся сети отдельных предприятий, фирм, банков, офисов и т.д. Локальная сеть обеспечивает высокие скорости передачи данных. А так как в этих сетях среда обычно контролируема, линии связи короткие, элементы структуры однородные, то частота ошибок в них низкая и протоколы обмена упрощены. В локальных сетях обычно не используются средства коммуникации общего назначения (телефонные линии) для организации обмена информацией. Дополнительное преимущество такой сети заключается в значительной экономии ресурсов. Так, вместо того, чтобы иметь принтер для каждого компьютера, можно иметь только один принтер. Любой компьютер в сети мог послать информацию для печати на этот принтер

Основные компоненты локальной сети: несколько ПК, снабженных сетевым адаптером, или сетевой картой; среда передачи, объединяющая необходимые узлы; сетевое программное обеспечение. Для объединения компьютеров в локальную сеть требуется вставить в каждый подключаемый к сети компьютер сетевой адаптер (контроллер), который позволяет компьютеру получать информацию из локальной сети и передавать данные в сеть, а также соединить компьютеры кабелями, по которым происходит передача данных между компьютерами и другими подключенными к сети устройствами (принтерами, сканерами и т.д.). В некоторых типах сетей кабели соединяют компьютеры непосредственно, в других соединение кабелей осуществляется через специальные устройства-концентраторы (или hub), коммутаторы и др. В небольших сетях обычно компьютеры соединяются кабелями с концентратором, который и передает сигналы от одних подключенных к нему компьютеров к другим. Технические средства определяют лишь потенциальные возможности компьютерных сетей. Истинные же ее возможности определяет программное обеспечение. Что же дают локальные сети? экономию места в памяти, т.к. многие пользователи применяют одни и те же программные продукты; хорошую систему защиты при записи информации; обеспечение связи между отдельными пользователями через компьютерную почту.

Региональные сети

Региональные сети – это сети, существующие обычно в пределах города, района, области, страны. Они связывают абонентов, расположенных на значительном расстоянии друг от друга. Обычно расстояние между абонентами региональной вычислительной сети составляет десятки-сотни километров. Они являются объединением нескольких локальных сетей и частью некоторой глобальной. Особой спецификой по отношению к глобальной не отличаются. Региональные вычислительные сети имеют много общего с локальными, но они, по многим параметрам, сложнее их. Например, помимо обмена данными и голосового обмена, региональные вычислительные сети могут передавать видео- и аудиоинформацию. Эти сети разработаны для поддержки больших расстояний, чем локальные вычислительные сети. Они могут использоваться для связывания нескольких локальных вычислительных сетей в высокоскоростные интегрированные сетевые системы. Региональные вычислительные сети сочетают лучшие характеристики локальной (низкий уровень ошибок, высокая скорость передачи) с большей географической протяженностью. В последнее время стали еще выделять класс корпоративных сетей. Они охватывают обычно крупные корпорации. Их масштаб и структура определяются потребностями предприятий – владельцев.

Глобальные сети

Глобальная вычислительная сеть объединяет абонентов, расположенных в различных странах, на различных континентах. Взаимодействие между абонентами такой сети может осуществляться на базе телефонной линии связи, радиосвязи и систем спутниковой связи. Глобальные вычислительные сети позволяют решить проблему объединения информационных ресурсов всего мира и организации доступа к этим ресурсам. Для подключения к удаленным компьютерам и компьютерным сетям используются телефонные сети. Процесс передачи данных по телефонным линиям должен происходить в форме электрических колебаний – аналога звукового сигнала, в то время как в компьютере информация хранится в виде кодов. Для того чтобы передать информацию от компьютера через телефонную линию, коды должны быть преобразованы в электрические колебания. Этот процесс носит название модуляции. Для того чтобы адресат смог почитать на своем компьютере то, что ему отправлено, электрические колебания должны быть обратно превращены в машинные коды – демодуляция. Устройство, которое осуществляет преобразования данных из цифровой формы, в которой они хранятся в компьютере, в аналоговую (электрические колебания), в которой они могут быть переданы по телефонной линии, и обратно, называется модем (сокращенно от МОдулятор ДЕМодуляции). Компьюте, в этом случае, должен иметь специальную телекоммуникационную программу, которая управляет модемом, а также отправляет и получает последовательности сигналов передаваемой информации. Глобальные вычислительные сети создаются путем объединения локальных и региональных вычислительных сетей. Они представляют собой конгломерат различных технологий. По сравнению с локальной вычислительной сетью большинство глобальных отличают медленная скорость передачи и более высокий уровень ошибок. Новые технологии в области глобальных вычислительных сетей нацелены на разрешение этих проблем. Глобальные сети, кроме того, что они охватывают очень большие территории, имеют и ряд других особенностей по сравнению с локальной сетью. Глобальные сети, в основном, используют в качестве каналов связи телефонные линии – это медленные каналы с высоким уровнем ошибок. Однако в настоящее время все более внедряются высокоскоростные оптоволоконные и радиоспутниковые каналы связи.

Понимание работы сетей на базовом уровне имеет очень важное значение для каждого администратора сервера или веб-мастера. Это необходимо для правильной настройки ваших сервисов в сети, а также легкого обнаружения возможных проблем и решения неполадок.

В этой статье мы рассмотрим общие концепции сетей интернета, обсудим основную терминологию, самые распространенные протоколы, а также характеристики и предназначение каждого из уровней сетей. Здесь собрана только теория, но она будет полезна начинающим администраторам и всем интересующимся.

Перед тем как обсуждать основы сети интернет, нам нужно разобраться с некоторыми общими терминами, которые часто используются специалистами и встречаются в документации:

  • Соединение - в сетях, соединение означает возможность передавать данные между устройствами. Перед тем как начнется передача данных, должно состоятся соединение, параметры которого описаны протоколом;
  • Пакет - это основной структурный блок данных в сети. Все данные передаются в виде пакетов, большие данные разделяются на небольшие пакеты, фиксированного размера. В каждом пакете есть заголовок, в котором находится информация о данных, пункте назначения, отправителе, строке жизни пакета, времени отправки и т д;
  • Сетевой интерфейс - это физическое или виртуальное устройство, которое позволяет компьютеру подключиться к сети. Если у вас есть две сетевые карты на компьютере, то вы можете настроить сетевой интерфейс для каждой из них. Также сетевой интерфейс может быть виртуальным, например, локальный интерфейс lo;
  • LAN - это ваша локальная сеть, к ней подключены только ваши компьютеры и больше никто не имеет к ней доступа. Это может быть ваша домашняя или офисная сеть;
  • WAN - это глобальная сеть интернет, обычно этот термин применяется для обозначения всей сети интернет, также этот термин может относиться к сетевому интерфейсу;
  • Протокол - набор правил и стандартов, которые определяют команды и способ коммуникации между устройствами. Существует множество протоколов и мы их рассмотрим ниже. Самые популярные из них - это TCP, UDP, IP и ICMP, также есть протоколы сети интернет более высокого уровня, например, HTTP и FTP;
  • Порт - это адрес на компьютере, который связан с определенной программой. Это не сетевой интерфейс и не местоположение. С помощью портов программы могут общаться между собой;
  • Брандмауэр - это программное обеспечение, которое контролирует все сетевые пакеты, проходящие через компьютер. Проходящие пакеты обрабатываются на основе правил, созданных пользователем. Также брандмауэр может закрывать определенные порты, чтобы сделать работу компьютера более безопасной;
  • NAT -это служба преобразования сетевых адресов между локальной и глобальной сетью. Количество свободных сетевых адресов в сети уменьшается, поэтому необходимо найти решение, и решением стало создания локальных сетей, где несколько компьютеров могут иметь один IP адрес. Все пакеты приходят на роутер, а он уже потом с помощью NAT распределяет их между компьютерами.
  • VPN - это виртуальная частная сеть, с помощью нее можно объединить несколько локальных сетей через сеть интернет. Используется в большинстве случаев для обеспечения безопасности.

Вы можете найти намного больше терминов, но здесь мы перечислили все самые основные, которые будут встречаться чаще всего.

Уровни сетей и модель OSI

Обычно, сети обсуждаются в горизонтальной плоскости, рассматриваются протоколы сети интернет верхнего уровня и приложения. Но для установки соединений между двумя компьютерами используется множество вертикальных слоев и уровней абстракции. Это означает, что существует несколько протоколов, которые работают друг поверх друга для реализации сетевого соединения. Каждый следующий, более высокий слой абстрагирует передаваемые данные и делает их проще для восприятия следующим слоем, и в конечном итоге приложением.

Существует семь уровней или слоев работы сетей. Нижние уровни будут отличаться в зависимости от используемого вами оборудования, но данные будут передаваться одни и те же и будут иметь один и тот же вид. На другую машину данные всегда передаются на самом низком уровне. На другом компьютере, данные проходят все слои в обратном порядке. На каждом из слоев к данным добавляется своя информация, которая поможет понять что делать с этим пакетом на удаленном компьютере.

Модель OSI

Так сложилось исторически, что когда дело доходит до уровней работы сетей, используется модель OSI или Open Systems Interconnect. Она выделяет семь уровней:

  • Уровень приложений - самый верхний уровень, представляет работу пользователя и приложений с сетью Пользователи просто передают данные и не задумываются о том, как они будут передаваться;
  • Уровень представления - данные преобразуются в более низкоуровневый формат, чтобы быть такими, какими их ожидают получить программы;
  • Уровень сессии - на этом уровне обрабатываются соединения между удаленным компьютерами, которые будут передавать данные;
  • Транспортный уровень - на этом уровне организовывается надежная передача данных между компьютерами, а также проверка получения обоими устройствами;
  • Сетевой уровень - используется для управления маршрутизацией данных в сети пока они не достигнут целевого узла. На этом уровне пакеты могут быть разбиты на более мелкие части, которые будут собраны получателем;
  • Уровень соединения - отвечает за способ установки соединения между компьютерами и поддержания его надежности с помощью существующих физических устройств и оборудования;
  • Физический уровень - отвечает за обработку данных физическими устройствами, включает в себя программное обеспечение, которое управляет соединением на физическом уровне, например, Ehternet или Wifi.

Как видите, перед тем, как данные попадут к аппаратному обеспечению им нужно пройти множество слоев.

Модель протоколов TCP/IP

Модель TCP/IP, еще известная как набор основных протоколов интернета, позволяет представить себе уровни работы сети более просто. Здесь есть только четыре уровня и они повторяют уровни OSI:

  • Приложения - в этой модели уровень приложений отвечает за соединение и передачу данными между пользователям. Приложения могут быть в удаленных системах, но они работают как будто бы находятся в локальной системе;
  • Транспорт - транспортный уровень отвечает за связь между процессами, здесь используются порты для определения какому приложению нужно передать данные и какой протокол использовать;
  • Интернет - на этом уровне данные передаются от узла к узлу по сети интернет. Здесь известны конечные точки соединения, но не реализуется непосредственная связь. Также на этом уровне определяются IP адреса;
  • Соединение - этот уровень реализует соединение на физическом уровне, что позволяет устройствам передавать между собой данные не зависимо от того, какие технологии используются.

Эта модель менее абстрактная, но мне она больше нравиться и ее проще понять, поскольку она привязана к техническим операциям, выполняемым программами. С помощью каждой из этих моделей можно предположить как на самом деле работает сеть. Фактически, есть данные, которые перед тем, как будут переданы, упаковываются с помощью нескольких протоколов, передаются через сеть через несколько узлов, а затем распаковываются в обратном порядке получателем. Конечные приложения могут и не знать что данные прошли через сеть, для них все может выглядеть как будто обмен осуществлялся на локальной машине.

Основные протоколы интернета

Как я уже сказал. в основе работы сети лежит использование нескольких протоколов, которые работают один поверх другого. Давайте рассмотрим основные сетевые протоколы интернет, которые вам будут часто встречаться, и попытаемся понять разницу между ними.

  • MAC или (Media Access Control) - это протокол низкого уровня, который используется для идентификации устройств в локальной сети. У каждого устройства, подключенного к сети есть уникальный MAC адрес, заданный производителем. В локальных сетях, а все данные выходят из локальной сети и попадают в локальную сеть перед тем, как попасть к получателю, используются физические MAC адреса для обозначения устройств. Это один из немногих протоколов уровня соединения, с которым довольно часто приходится сталкиваться.
  • IP (Internet Protocol) - расположен уровнем выше, за MAC. Он отвечает за определение IP адресов, которые будут уникальными для каждого устройства и позволяют компьютерам находить друг друга в сети. Он относится к сетевому уровню модели TCP/IP. Сети могут быть связанны друг с другом в сложные структуры, с помощью этого протокола компьютеры могут определить несколько возможных путей к целевому устройству, причем во время работы эти пути могут меняться. Есть несколько реализаций протокола, но наиболее популярной на сегодняшний день является IPv4 и IPv6.
  • ICMP (Internet control message protocol) - используется для обмена сообщениями между устройствами. Это могут быть сообщения об ошибках или информационные сообщения, но он не предназначен для передачи данных. Такие пакеты используются в таких диагностических инструментах, как ping и traceroute. Этот протокол находится выше протокола IP;
  • TCP (Transmission control protocol) - это еще один основной сетевой протокол, который находится на том же уровне, что и ICMP. Его задача - управление передачей данных. Сети ненадежны. Из-за большого количества путей пакеты могут приходить не в том порядке или даже теряться. TCP гарантирует, что пакеты будут приняты в правильном порядке, а также позволяет исправить ошибки передачи пакетов. Информация приводится к правильному порядку, а уже затем передается приложению. Перед передачей данных создается соединение с помощью так называемого алгоритма тройного рукопожатия. Он предусматривает отправку запроса и подтверждение открытия соединения двумя компьютерами. Множество приложений используют TCP, это SSH, WWW, FTP и многие другие.
  • UDP (user datagram protocol) - это популярный протокол, похожий на TCP, который тоже работает на транспортном уровне. Отличие между ними в том, что здесь используется ненадежная передача данных. Данные не проверяются при получении, это может выглядеть плохой идеей, но во многих случаях этого вполне достаточно. Поскольку нужно отправлять меньше пакетов, UDP работает быстрее, чем TCP. Поскольку соединение устанавливать не нужно, то этот протокол может использоваться для отправки пакетов сразу на несколько машин или IP телефонии.
  • HTTP (hypertext transfer protocol) - это протокол уровня приложения, который лежит в основе работы всех сайтов интернета. HTTP позволяет запрашивать определенные ресурсы у удаленной системы, например, веб страницы, и файлы;
  • FTP (file transfer protocol) - это протокол передачи файлов. Он работает на уровне приложений и обеспечивает передачу файла от одного компьютера к другому. FTP - не безопасный, поэтому не рекомендуется его применять для личных данных;
  • DNS (domain name system) - протокол того же уровня, используемый для преобразования понятных и легко читаемых адресов в сложные ip адреса, которые трудно запомнить и наоборот. Благодаря ему мы можем получить доступ к сайту по его доменному имени;
  • SSH (secure shell) - протокол уровня приложений, реализованный для обеспечения удаленного управления системой по защищенному каналу. Многие дополнительные технологии используют этот протокол для своей работы.

Есть еще очень много других протоколов, но мы рассмотрели только сетевые протоколы, которые больше всего важны. Это даст вам общие понятия того, как работает сеть и интернет в целом.

Выводы

В этой статье мы рассмотрели основы сетей и протоколов, которые используются для организации их работы. Конечно, этого совсем недостаточно, чтобы понять все, но теперь у вас есть определенная база и вы знаете как различные компоненты взаимодействуют друг с другом. Это поможет вам понимать другие статьи и документацию. Если вас серьезно заинтересовали основы сети интернет, то тут не хватит нескольких статей. Вам нужна книга. Обратите внимание на Камер Д. Сети TCP/IP. Принципы, протоколы и структура. В свое время я ее прочитал и мне очень понравилось.

На завершение видео про модель OSI:

Достаточно часто мне приходиться сопрягаться со специализированным ПО (и железом, хотя в конечном итоге идет сопряжение со вшитым на плату фирмвейром), изготовитель каждого из которых предоставляет свой протокол обмена данными.

Какими свойствами и особенностями обладает хороший, годный грамотный, качественный протокол?

В идеале, протокол должен быть абстрагирован от более нижнего уровня взаимодействия, будь то передача по TCP, UDP, по serial порту, USB, Bluetooth, через цифровой радиосигнал, или даже по голубиной почте . И надо учитывать, что далеко не все из них гарантируют доставку и\или достоверность передающихся данных.

Небольшой дисклеймер: говоря о достоверности данных, я имею ввиду их неискаженность вследствие помех и иных ошибок в среде передачи. В статье я не буду затрагивать темы пласта технологий, связанных с безопасностью в ИТ. Допустим что наши Алиса и Боб могут друг другу доверять, и никакая Ева им помешать не может . (Например у коллег вопрос безопасности решается включением всех территориально разделенных участников взаимодействия в хорошо защищенный VPN, не имеющий в свою очередь доступа наружу)

В большинстве протоколов реализована схема «Вопрос-Ответ». Это можно представить как разговор, в котором на каждую реплику своего собеседника вы реагируете вербально, и в том же смысловом ключе. Таким образом участниками взаимодействия достигается уверенность в том, что их сообщения переданы и адекватно восприняты. Однако эта схема допустима и эффективна не для всех задач: в случаях когда задержка в общении должна быть минимизирована, или ответ на каждую из многочисленных реплик признается избыточным (например для отладочных сообщений), реализуется схема «Старт-Стоп». При получении сообщения на «Старт» ваш собеседник начинает сыпать в вас потоком реплик, и замолкает лишь при слове «Стоп». Сообщения, отправляемые в потоке, обычно имеют инкрементируемый порядковый номер, и если при принятии потока сообщений были проблемы с обработкой\было пропущено одно из них, его можно перезапросить отдельно по этому самому номеру.

Все протоколы можно разделить на две группы, (по представлению данных): символьные и бинарные .
Символьные протоколы, с которыми мне приходилось встречаться, базировались либо на XML, либо на JSON-строках. Из их достоинств можно упомянуть о более простой отладке взаимодействия (вследствие их читаемости), о простоте реализации (наличия готовых парсеров), и пресловутой универсальности.
Теперь о недостатках. Очевидно, что такие протоколы являются крайне избыточными, мизерная доля полезной информации плавает в массивной, неэффективной обёртке. При передаче любой числовой информации приходиться заниматься их конвертацией в строковое представление и обратно. Больным местом является передача бинарных данных (и хорошо, что без них бывает можно обойтись, но в ряде случаев это невозможно). Составители протоколов обычно выкручиваются применением Base64 , или даже просто передачей бинарной строки в её hex-овом представлении, по два символа на байт.
Также хочется отметить, что полная спецификация того же XML крайне обширна, и стандартные парсеры, при всей их полноте возможностей, достаточно громоздки и медлительны, поэтому распространена практика, когда отдел или контора в итоге пишет и пользуется собственным парсером.

Конечно, для определенных задач , символьные протоколы являются, если не наиболее эффективным, то по крайней мере вполне приемлимым вариантом, но мы с вами идём дальше.

Теперь бинарные протоколы. Сразу же надо вспомнить о Гулливерских войнах тупоконечников и остроконечников . Лично я симпатизирую big-endian, т.к. не считаю неявную типизацию little-endian «чем-то хорошим», да и в моей среде разработки big-endian является нативным.
Бинарные протоколы (не все, но те, которые я отношу к грамотным) можно разделить на два уровня: уровень контейнера и уровень данных. На плечи первого уровня ложится ответственность за целостность и достоверность передачи данных, а так же за доступность обнаружения сообщения в байтовом потоке, и, само собой, за хранение в себе сообщения уровня данных. Второй уровень должен содержать информацию, ради которой всё сетевое взаимодействие и затевалось, в удобном для обработки формате. Его структура в основном зависит от решаемых задач, но и по нему есть общие рекомендации (о которых ниже).

Размеры сообщений (дискретных пакетов байт, которые можно обрабатывать независимо от предыдущих и последующих принимаемых данных) бывают фиксированными и переменными . Понятно, что с фиксированным размером сообщений всё проще - вычитается, начиная с заголовка (о нём позже), определенное количество байт и отправляется на обработку. Зачастую, для обеспечения гибкости, составители таких протоколов включают в сообщение область фиксированного размера (иногда до 80% от общего объема), зарезервированное под модификации нынешнего протокола. На мой взгляд, это не самый эффективный путь обеспечения гибкости, зато избыточность появляется еще какая.
Рассмотрим сообщения переменной длины.
Тут уже можно подробней поговорить о непременном атрибуте бинарного сообщения в любом протоколе - о заголовке (Это вышеупомянутый уровень контейнера).
Обычно заголовки начинаются с константной части, позволяющей, с определенной вероятностью обнаружить начало сообщения в непрерывном байтовом потоке. Очевидно, что имеется риск появления такой константы в произвольном потоке байт, и, хотя увеличение объема этот риск снижает (я встречал константы вида 0123456789VASIA9876543210), целесообразней использовать проверки на основе подсчета контрольной суммы .
За константой обычно следует номер версии протокола, который дает нам понять, в каком формате должно происходить дальнейшее считывание (и имеем ли мы вообще возможность обработать это сообщение - вдруг такая версия нам неизвестна). Следующая важная часть заголовка: информация о самом содержимом контейнера. Указывается тип содержимого (по факту, тот же номер версии протокола для уровня данных), его длина и контрольная сумма. Имея эту информацию, можно уже без проблем и опасений считать содержимое и приступить к его разбору.
Но не прямо сразу! Заголовок должна заключать контрольная сумма его самого (исключая из расчета конечно саму контрольную сумму) - только так мы можем быть уверены в том, что считали только что не белиберду, а валидный заголовок, за которым следуют предназначенные нам данные. Не совпала контрольная сумма? Придётся искать следующее начало нового заголовка дальше по потоку…

Представим, что мы дошли до этапа, что получили наконец неискаженное сообщение уровня данных. Его структура зависит от той области задач той системы, в которой реализован ваш сетевой обмен, однако в общем виде у сообщения тоже бывает быть свой заголовочек , содержащий информацию о типе сообщения. Можно различить как общую специфику сообщения, (например «Запрос Set», «Утвердительный Ответ на Set», «Отрицательный Ответ на Set», «Запрос Get», «Ответ Get», «Потоковое сообщение»), так и конкретную область применение сообщения. Попробую привести пример с потолка:
Тип запроса: Запрос Set (0x01)
Идентификатор модуля-адресата сообщения: PowerSupplyModule (0x0A)
Идентификатор группы сообщений: UPS Management (0x02)
Идентификатор типа сообщения: Reboot (0x01)
Дальше тело сообщения может содержать информацию об адресе ИБП, который Модуль управления энергообеспечением должен перезагрузить, через сколько секунд это сделать и т.п.
На это сообщение мы рассчитываем получить ответное сообщение с типом запроса «Утвердительный Ответ» и последующими 0x0A0201 в заголовке.
Конечно, такое подробное описание типа сообщения может быть избыточным когда межсетевое взаимодействие не предусматривает большого числа команд, так что формировать структуру сообщения надо исходя из требований ТЗ.
Так же будет полезно, если сообщение с «Отрицательным Ответом» будет содержать код ошибки, из-за которой не удалось ответить на команду утвердительно.

Заканчивая своё повествование, добавлю, что тема взаимодействия приложений весьма обширна и порою холиворна(что по факту означает, что в ней нет технологии «серебряной пули»), и отмечу, что те взгляды, что я излагаю, являются лишь компиляцией из опыта по работе с отечественными и зарубежными коллегами. Спасибо за внимание!

upd.
Имел удовольствие пообщаться с критиком своей статьи, и теперь прихожу к осознанию, что я осветил вопрос со своей если можно так выразиться, «байтолюбской», точки зрения. Конечно, раз идет курс на универсальность обработки хранения и передачи данных, то в таком ключе символьные протоколы (в первую очередь говорю об XML) могут дать фору любым другим решениям. Но относительно попытки повсеместного их применения позволю себе процитировать Вирта:
Инструмент должен соответствовать задаче. Если инструмент не соответствует задаче, нужно придумать новый, который бы ей соответствовал, а не пытаться приспособить уже имеющийся.

Протоколы связи в АСУ ТП

В современных системах автоматизации, в результате постоянной модернизации производства, все чаще встречаются задачи построения распределенных промышленных сетей с использованием гибких протоколов передачи данных.


Прошли те времена, когда где-нибудь в аппаратной ставился огромный шкаф с оборудованием, к нему тянулись километры толстых пучков кабелей, ведущих к датчикам и исполнительным механизмам. Сегодня, в подавляющем большинстве случаев, на много выгоднее установить несколько локальных контроллеров, объединенных в единую сеть, тем самым сэкономив на установке, тестировании, вводе в эксплуатацию и техническом обслуживании по сравнению с централизованной системой.


Для организации промышленных сетей используется множество интерфейсов и протоколов передачи данных, например Modbus, Ethernet, CAN, HART, PROFIBUS и пр. Они необходимы для передачи данных между датчиками, контроллерами и исполнительными механизмами (ИМ); калибровки датчиков; питания датчиков и ИМ; связи нижнего и верхнего уровней АСУ ТП. Протоколы разрабатываются с учетом особенностей производства и технических систем, обеспечивая надежное соединение и высокую точность передачи данных между различными устройствами. Наряду с надежностью работы в жестких условиях все более важными требованиями в системах АСУ ТП становятся функциональные возможности, гибкость в построении, простота интеграции и обслуживания, соответствие промышленным стандартам.


Наиболее распространённой системой классификации сетевых протоколов является теоретическая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model ). Спецификация этой модели была окончательно принята в 1984 году Международной Организацией по Стандартизации (ISO). В соответствии с моделью OSI протоколы делятся на 7 уровней, расположенных друг над другом, по своему назначению — от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями). Взаимодействие между уровнями может осуществляться, как вертикально, так и горизонтально (Рис. 1). В горизонтальном взаимодействии программам требуется общий протокол для обмена данными. В вертикальном - посредством интерфейсов.


Рис. 1. Теоретическая модель OSI.


Прикладной уровень

Прикладной уровень - уровень приложений (англ. Application layer ). Обеспечивает взаимодействие сети и приложений пользователя, выходящих за рамки модели OSI. На этом уровне используются следующие протоколы: HTTP, gopher, Telnet, DNS, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, Modbus TCP, BACnet IP, IMAP, POP3, SMB, MFTP, BitTorrent, eD2k, PROFIBUS.


Представительский уровень

Представительский уровень (англ. Presentation layer ) - уровень представления данных. На этом уровне может осуществляться преобразование протоколов и сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. К этому уровню традиционно относят следующие протоколы: HTTP, ASN.1, XML-RPC, TDI, XDR, SNMP, FTP, Telnet, SMTP, NCP, AFP.


Сеансовый уровень

Сеансовый уровень (англ. Session layer ) управляет созданием/завершением сеанса связи, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия. Используемые протоколы: ASP, ADSP, DLC, Named Pipes, NBT, NetBIOS, NWLink, Printer Access Protocol, Zone Information Protocol, SSL, TLS, SOCKS.


Транспортный уровень

Транспортный уровень (англ. Transport layer ) организует доставку данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. Разделяет данные на фрагменты равной величины, объединяя короткие и разбивая длинные (размер фрагмента зависит от используемого протокола). Используемые протоколы: TCP, UDP, NetBEUI, AEP, ATP, IL, NBP, RTMP, SMB, SPX, SCTP, DCCP, RTP, TFTP.


Сетевой уровень

Сетевой уровень (англ. Network layer ) определяет пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, за определение кратчайших маршрутов, коммутацию и маршрутизацию, за отслеживание неполадок и заторов в сети. Используемые протоколы: IP, IPv6, ICMP, IGMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP, RIP.


Канальный уровень

Канальный уровень (англ. Data link layer ) предназначен для обеспечения взаимодействия сетей на физическом уровне. Полученные с физического уровня данные проверяет на ошибки, если нужно исправляет, упаковывает во фреймы, проверяет на целостность, и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. Используемые протоколы: STP, ARCnet, ATM, DTM, SLIP, SMDS, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, StarLan, L2F, L2TP, PPTP, PPP, PPPoE, PROFIBUS.


Физический уровень

Физический уровень (англ. Physical layer ) предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Используемые протоколы: RS-232, RS-422, RS-423, RS-449, RS-485, ITU-T, xDSL, ISDN, T1, E1, 10BASE-T, 10BASE2, 10BASE5, 100BASE-T, 1000BASE-T, 1000BASE-TX, 1000BASE-SX.


Как вы могли заметить, многие протоколы упоминаются сразу на нескольких уровнях. Это говорит о недоработанности и отдаленности теоретической модели от реальных сетевых протоколов, поэтому привязка некоторых из них к уровням OSI является условной.


В мировой практике, среди сетей общего применения, наиболее широко распространен протокол HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста» ). Относится к прикладному и представительскому уровням теоретической модели OSI. HTTP базируется на технологии «клиент-сервер», то есть существует потребитель (клиент), который инициирует соединение и посылает запрос, и поставщик (сервер), который ожидает соединения для получения запроса, производит необходимые действия и возвращает обратно сообщение с результатом. Основным типом НТТР-клиента является браузер, например Mozilla Firefox, Opera или Microsoft Internet Explorer. HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов.


Рис. 2. Технология клиент сервер.


На базе HTTP разработаны расширенные протоколы: HTTPS (англ. Hypertext Transfer Protocol Secure ), поддерживающий шифрование, и HTTP-NG (англ. HTTP Next Generation ), увеличивающий быстродействие Web и расширяющий возможности промышленного применения.


Положительные стороны: простота разработки клиентских приложений, возможность расширения протокола путем добавления собственных заголовков, распространенность протокола.


Отрицательные стороны: большой размер сообщений, по сравнению с двоичными данными, отсутствие навигации в ресурсах сервера, невозможность использования распределенных вычислений.


создание удаленных диспетчерских пунктов, Web-приложения для SCADA систем, программное обеспечение промышленных контроллеров, организация видеонаблюдения.


На сегодняшний день протокол HTTP и его модификации поддерживаются оборудованием и программным обеспечением большинства производителей. Рассмотрим некоторые из них.


В оборудовании компании Korenix серий JetNet, JetRock, JetPort, JetI/O, JetBox (построение сетей на базе промышленного Ethernet), JetWave (беспроводные решения) протоколы семейства HTTP используются для организации доступа, конфигурирования и управления устройствами.


Компания ICPDAS для работы с протоколом HTTP предлагает следующее оборудование и программное обеспечение. Контроллеры серии ХРАК, WinPAC, WinCon, LinPAC, ViewPAC работают под управлением операционных систем Windows и Linux, с встроенным HTTP-сервером. Программные пакеты InduSoft (SCADA), ISaGRAF, Web HMI, VXCOMM, MiniOS7 Studio, также используют HTTP-сервер для связи и взаимодействия с устройствами.


Управляемые коммутаторы, встраиваемые компьютеры, оборудование промышленных беспроводных сетей, производства компании Моха, не обходятся без использования протоколов семейства HTTP.


Рис. 3. Совместимость протоколов семейства Modbus.


Для организации взаимодействия между элементами автоматизации в промышленных сетях передачи данных широко применяется коммуникационный протокол Modbus. Существуют три основные реализации протокола Modbus, две для передачи данных по последовательным линиям связи, как медным EIA/TIA-232-E (RS-232), EIA-422, EIA/TIA-485-A (RS-485), так и оптическим и радио: Modbus RTU и Modbus ASCII, и для передачи данных по сетям Ethernet поверх TCP/IP: Modbus TCP.


Различие между протоколами Modbus ASCII и Modbus RTU заключается в способе кодирования символов. В режиме ASCII данные кодируются при помощи таблицы ASCII, где каждому символу соответствует два байта данных. В режиме RTU данные передаются в виде 8-ми разрядных двоичных символов, что обеспечивает более высокую скорость передачи данных. ASCII допускает задержку до 1 секунды в отличии от RTU, где сообщения должны быть непрерывны. Также режим ASCII имеет упрощенную систему декодирования и управления данными.


Протоколы семейства Modbus (Modbus ASCII, Modbus RTU и Modbus TCP/IP) используют один прикладной протокол, что позволяет обеспечить их совместимость. Максимальное количество сетевых узлов в сети Modbus - 31. Протяженность линий связи и скорость передачи данных зависит от физической реализации интерфейса. Элементы сети Modbus взаимодействуют, используя клиент-серверную модель, основанную на транзакциях, состоящих из запроса и ответа.


Обычно в сети есть только один клиент, так называемое, «главное» (англ. master) устройство, и несколько серверов — «подчиненных» (slaves) устройств. Главное устройство инициирует транзакции (передаёт запросы). Подчиненные устройства передают запрашиваемые главным устройством данные, или производят запрашиваемые действия. Главный может адресоваться индивидуально к подчиненному или инициировать передачу широковещательного сообщения для всех подчиненных устройств. Подчиненное устройство формирует сообщение и возвращает его в ответ на запрос, адресованный именно ему.


Области промышленного применения:


Простота применения протоколов семейства Modbus в промышленности обусловило его широкое распространение. На сегодняшний день, оборудование практически всех производителей поддерживает протоколы Modbus.


Компания ICPDAS предлагает широкий спектр коммуникационного оборудования для организации сетей на базе протоколов семейства Modbus: серия I-7000 (шлюзы DeviceNet, серверы Modbus, адресуемые коммуникационные контроллеры); программируемые контроллеры серий ХРАК, WinPAC, WinCon, LinPAC, ViewPAC.


Операторские панели производства компании Weintek, частотные преобразователи Control Techniques для связи с контроллерами также используют протокол Modbus.


Традиционно протоколы семейства Modbus поддерживаются OPC серверами SCADA систем (Clear SCADA, компании Control Microsystems, InTouch Wonderware, TRACE MODE)для связи с элементами управления (контроллерами, ЧРП, регуляторами и др.).


Рис. 4. Сеть Profibus.


В Европе широкое распространение получила открытая промышленная сеть PROFIBUS (PROcess FIeld BUS). Изначально, прототип этой сети был разработан компанией Siemens для своих промышленных контроллеров.


PROFIBUS объединяет технологические и функциональные особенности последовательной связи полевого уровня. Она позволяет объединять разрозненные устройства автоматизации в единую систему на уровне датчиков и приводов. Сеть PROFIBUS основывается на нескольких стандартах и протоколах, использует обмен данными между ведущим и ведомыми устройствами (протоколы DP и PA) или между несколькими ведущими устройствами (протоколы FDL и FMS).


Сеть PROFIBUS можно ассоциировать с тремя уровнями модели OSI: физический, канальный и уровень приложений.


Единым протоколом для доступа к шине для всех версий PROFIBUS является реализованный на втором уровне модели OSI протокол PROFIBUS-FDL. Данный протокол использует процедуру доступа с помощью маркера (token). Так же, как и сети на базе протоколов Modbus, сеть PROFIBUS состоит из ведущих (master) и ведомых (slave) устройств. Ведущее устройство может управлять шиной. Когда у ведущего (master) устройства есть право доступа к шине, оно может передавать сообщения без удаленного запроса. Ведомые устройства - это обычные периферийные устройства, не имеют прав доступа к шине, то есть они могут только подтверждать принимаемые сообщения или передавать сообщения ведущему устройству по его запросу. В минимальной конфигурации сеть может состоять либо из двух ведущих, либо из одного ведущего и одного ведомого устройства.


Одни и те же каналы связи сети PROFIBUS допускают одновременное использование нескольких протоколов передачи данных. Рассмотрим каждый из них.


PROFIBUS DP (Decentralized Peripheral - Распределенная периферия) — протокол, ориентированный на обеспечение скоростного обмена данными между ведущими DP-устройствами и устройствами распределённого ввода-вывода. Протокол характеризуется минимальным временем реакции и высокой стойкостью к воздействию внешних электромагнитных полей. Оптимизирован для высокоскоростных и недорогих систем.


PROFIBUS PA (Process Automation - Автоматизация процесса) — протокол обмена данными с оборудованием полевого уровня, расположенным в обычных или взрывоопасных зонах. Протокол позволяет подключать датчики и приводы на одну линейную шину или кольцевую шину.


PROFIBUS FMS (Fieldbus Message Specification - Спецификация сообщений полевого уровня) - универсальный протокол для решения задач по обмену данными между интеллектуальными сетевыми устройствами (контроллерами, компьютерами/программаторами, системами человеко-машинного интерфейса) на полевом уровне. Некоторый аналог промышленного Ethernet, обычно используется для высокоскоростной связи между контроллерами и компьютерами верхнего уровня.


Все протоколы используют одинаковые технологии передачи данных и общий метод доступа к шине, поэтому они могут функционировать на одной шине.


Положительные стороны: открытость, независимость от поставщика, распространенность.


Области промышленного применения: организация связи датчиков и исполнительных механизмов с контроллером, связь контроллеров и управляющих компьютеров, связь с датчиками, контроллерами и корпоративными сетями, в SCADA системах.


Основную массу оборудования использующего протокол PROFIBUS составляет оборудование компании SIEMENS. Но в последнее время этот протокол получил применение у большинства производителей. Во многом это обусловлено распространенностью систем управления на базе контроллеров Siemens.


Рис. 5. Сеть Profibus на базе оборудования ICP DAS.


Компания ICPDAS для реализации проектов на базе PROFIBUS предлагает ряд ведомых устройств: шлюзы PROFIBUS/Modbus серии GW, преобразователи PROFIBUS в RS-232/485/422 серии I-7000, модули и каркасы удаленного ввода/вывода PROFIBUS серии PROFI-8000. В настоящие время инженерами компании ICPDAS ведутся интенсивные разработки в области создания PROFIBUS ведущего устройства.

Предварительная настройка BIOS

Смысл настройки BIOS состоит в том, чтобы загрузка компьютера началась с того устройства, которое содержит дистрибутив операционной системы. В нашем случае нужно сделать так, чтобы компьютер загружался с DVD -привода или USB -накопителя. Для этого будем использовать BIOS

  • Использование DVD-привода

    Использование DVD -привода

    Применение DVD -привода для установки операционной системы - стандартный подход, который выбирает большинство пользователей. Никаких особых требований при этом нет, единственное, что нужно, - сам DVD -привод, поскольку в силу размера дистрибутива операционной системы для установки используется именно DVD , a не CD .

  • Использование FLASH-накопителя

    Использование FLASH -накопителя

    Чтобы flash -накопитель можно было использовать для установки операционной системы, недостаточно скопировать на него дистрибутив операционной системы, нужно еще сделать так, чтобы с него можно было загрузить компьютер, то есть flash -накопитель должен содержать загрузочную область.

  • Теоретические сведения о сетях

    Основные протоколы передачи данных

    Основные протоколы передачи данных

    Как вы уже могли заметить, количество протоколов, обслуживающих модель взаимодействия открытых систем, достаточно велико. Некоторые из этих протоколов, особенно низкоуровневые, не представляют особого интереса в плане знакомства с их принципом работы. Но принцип работы и возможности других протоколов все же стоит знать, особенно таких, как TCP/IP, UDP, POP3 и др.

    Стеки протоколов

    Как уже упоминалось выше, часто за организацию работы всех уровней модели ISO/OSI отвечают стеки протоколов. Плюсом использования стеков протоколов является то, что все протоколы, входящие в стек, разработаны одним производителем, то есть они способны работать максимально быстро и эффективно.

    За время существования сетей было разработано несколько различных стеков протоколов, среди которых наиболее популярными являются TCP/IP, IPX/SPX, NetBIOS/SMB, Novell NetWare , DECnet и др.

    В составе стеков находятся протоколы, работающие на разных уровнях модели ISO/OSI, однако обычно выделяют только три типа протоколов: транспортный , сетевой и прикладной .

    Плюсом использования стеков протоколов является то, что протоколы, работающие на нижних уровнях, применяют давно отлаженные и популярные сетевые протоколы, такие как Ethernet, FDDI и т д. Благодаря аппаратной реализации этих протоколов становится возможным использовать одно и то же оборудование для разных типов сетей и тем самым достигать их совместимости на аппаратном уровне. Что касается высокоуровневых протоколов, то каждый из стеков имеет свои преимущества и недостатки, и очень часто случается так, что нет жесткой привязки «один протокол - один уровень», то есть один протокол может работать сразу на двух-трех уровнях.

    Привязка

    Важным моментом в функционировании сетевого оборудования, в частности сетевого адаптера, является привязка протоколов. На практике она позволяет использовать разные стеки протоколов при обслуживании одного сетевого адаптера. Например, можно одновременно использовать стеки TCP/IP и IPX/SPX, и если при попытке установления связи с адресатом с помощью первого стека произошла ошибка, автоматически происходит переключение на использование протокола из следующего стека. В этом случае важным моментом является очередность привязки, поскольку она однозначно влияет на использование того или иного протокола из разных стеков.

    Вне зависимости от того, какое количество сетевых адаптеров установлено в компьютере, привязка может осуществляться как «один к нескольким», так и «несколько к одному», то есть один стек протоколов можно привязать сразу к нескольким адаптерам или несколько стеков к одному адаптеру.

    TCP/IP

    Стек протоколов TCP / IP (Transmission Control Protocol / Internet Protocol ) на сегодня является наиболее распространенным и функциональным. Он работает в локальных сетях любых масштабов. Кроме того, это единственный из протоколов, который позволяет работать глобальной сети Интернет.

    Протокол был создан в 70-х годах прошлого века управлением Министерства обороны США. Именно с его подачи началась разработка протокола, целью которого было соединение любых двух компьютеров, как бы далеко они ни находились. Конечно, они преследовали свою цель - обеспечить постоянную связь с центром управления, даже если все вокруг будет разрушено в результате военных действий. В итоге была образована глобальная сеть ARPAnet, которую министерство активно использовало в своих целях.

    Толчком к дальнейшему усовершенствованию и широкому распространению стека TCP/IP стал тот факт, что его поддержка была реализована в компьютерах c операционной системой UNIX. В результате популярность протокола TCP/IP возросла.

    В стек протоколов TCP/IP входит достаточно много протоколов, работающих на различных уровнях, но свое название он получил благодаря двум протоколам - TCP и IP.

    TCP (Transmission Control Protocol) - транспортный протокол, предназначенный для управлением передачей данных в сетях, использующих стек протоколов TCP/ IP. IP (Internet Protocol) - протокол сетевого уровня, предназначенный для доставки данных в составной сети с использованием одного из транспортных протоколов, например TCP или UDP. Нижний уровень стека TCP/IP использует стандартные протоколы передачи данных, что делает возможным его применение в сетях с использованием любых сетевых технологий и на компьютерах с любой операционной системой.

    Изначально протокол TCP/IP разрабатывался для применения в глобальных сетях, именно поэтому он является максимально гибким. В частности, благодаря способности фрагментации пакетов данные, несмотря на качество канала связи, в любом случае доходят до адресата. Кроме того, благодаря наличию IP-протокола становится возможной передача данных между разнородными сегментами сети.

    Недостатком TCP/IP-протокола является сложность администрирования сети. Так, для нормального функционирования сети требуется наличие дополнительных серверов, например DNS, DHCP и т. д., поддержание работы которых и занимает большую часть времени системного администратора.

    IPX/SPX

    Стек протоколов IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) является разработкой и собственностью компании Novell. Он был разработан для нужд операционной системы Novell NetWare, которая еще до недавнего времени занимала одну из лидирующих позиций среди серверных операционных систем.

    Протоколы IPX и SPX работают на сетевом и транспортном уровнях модели ISO/ OSI соответственно, поэтому отлично дополняют друг друга. Протокол IPX может передавать данные с помощью датаграмм, используя для этого информацию о маршрутизации в сети.

    Однако для того, чтобы передать данные по найденному маршруту, необходимо сначала установить соединение между отправителем и получателем. Этим и занимается протокол SPX или любой другой транспортный протокол, работающий в паре с IPX.

    К сожалению, стек протоколов IPX/SPX изначально ориентирован на обслуживание сетей небольшого размера, поэтому в больших сетях его использование малоэффективно: излишнее использование широковещательного вещания на низкоскоростных линиях связи недопустимо.

    NetBIOS/SMB

    Достаточно популярный стек протоколов, разработкой которого занимались компании IBM и Microsoft, соответственно, ориентированный на использование в продуктах этих компаний. Как и у TCP/IP, на физическом и канальном уровне стека NetBIOS/SMB работают стандартные протоколы, такие как Ethernet, Token Ring и другие, что делает возможным его использование в паре с любым активным сетевым оборудованием. На верхних же уровнях работают протоколы NetBIOS (Network Basic Input/Output System) и SMB (Server Message Block).

    Протокол NetBIOS был разработан в середине 80-х годов прошлого века, но вскоре был заменен на более функциональный протокол NetBEUI (NetBIOS Extended User Interface), позволяющий организовать очень эффективный обмен информацией в сетях, состоящих не более чем из 200 компьютеров.

    Чтобы обмен между компьютерами был возможен, каждый из них должен обладать логическим именем. Для обмена данными между компьютерами используются логические имена, присваиваемые компьютерам динамически при их подключении к сети. При этом таблица имен распространяется на каждый компьютер сети. Поддерживается также работа с групповыми именами, что позволяет передавать данные сразу нескольким адресатам.

    Главные плюсы протокола NetBEUI - скорость работы и очень малые требования к ресурсам. Если требуется организовать быстрый обмен данными в небольшой сети, состоящей из одного сегмента, лучшего протокола для этого не найти. Кроме того, для доставки сообщений установленное соединение не является обязательным требованием: в случае отсутствия соединения протокол использует датаграммный метод, когда сообщение снабжается адресом получателя и отправителя и «пускается в путь», переходя от одного компьютера к другому.

    Однако NetBEUI обладает и существенным недостатком: он полностью лишен понятия о маршрутизации пакетов, поэтому его использование в сложных составных сетях не имеет смысла.

    Что касается протокола SMB (Server Message Block), то с его помощью организуется работа сети на трех самых высоких уровнях - сеансовом, уровне представления и прикладном уровне. Именно при его использовании становится возможным доступ к файлам, принтерам и другим ресурсам сети. Данный протокол несколько раз был усовершенствован (вышло три его версии), что позволило применять его даже в таких современных операционных системах, как Microsoft Vista и Windows 7. Протокол SMB универсален и может работать в паре практически с любым транспортным протоколом, например TCP/IP и SPX.

    HTTP

    Пожалуй, самый востребованный из протоколов, с которым ежедневно работают десятки миллионов пользователей Интернета по всему миру.

    Протокол HTTP (HyperText Transfer Protocol) разрабатывался специально для Интернета: для получения и передачи данных по Интернету. Он работает по технологии «клиент - сервер», которая подразумевает, что есть клиенты, запрашивающие информацию (например, просмотр содержимого веб-страницы), и серверная часть, которая обрабатывает эти запросы и отсылает ответ.

    HTTP работает на уровне приложений. Это означает, что данный протокол должен пользоваться услугами транспортного протокола, в качестве которого по умолчанию выступает протокол TCP.

    Первая версия протокола HTTP была разработана еще в начале 90-х годов прошлого века и на то время полностью удовлетворяла пользователей своими возможностями. Но со временем, когда в Интернет пришла графика и динамичные изображения, возможностей протокола стало не хватать и он постепенно начал изменяться.

    В своей работе протокол использует понятие URI (Uniform Resource Identifier) - уникального идентификатора ресурса, в качестве которого обычно выступает адрес веб-страницы, файла или любого другого логического объекта. При этом URI поддерживает работу с параметрами, что позволяет расширять функциональность протокола. Так, используя параметры, можно указать, в каком формате и кодировке вы хотите получить ответ от сервера.

    Это в свою очередь позволяет передавать с помощью HTTP не только текстовые документы, но и любые двоичные данные.

    Основным недостатком протокола HTTP является избыточный объем текстовой информации, необходимой для того, чтобы клиент мог правильно отобразить полученный от сервера ответ. При большом объеме содержимого веб-страницы это может создавать излишне большой трафик, что ухудшает восприятие информации. Кроме того, протокол полностью лишен каких-либо механизмов сохранения состояния, что делает невозможной навигацию по веб-страницам посредством одного лишь HTTP-протокола. По этой причине вместе с HTTP-протоколом используются сторонние протоколы либо пользователю необходимо работать с браузером, обрабатывающим HTTP-запросы.

    FTP

    Протокол FTP (File Transfer Protocol) является «родным братом» протокола HTTP, только, в отличие от последнего, он работает не с текстовыми или двоичными данными, а с файлами.

    Этот протокол - один из старейших: он появился еще в начале 70-х годов прошлого века. Как и HTTP, он работает на прикладном уровне и в качестве транспортного протокола использует TCP-протокол. Его основная задача - передача файлов с/на FTP-сервер.

    FTP-протокол представляет собой набор команд, которые описывают правила подключения и обмена данными. При этом команды и непосредственно данные передаются с использованием различных портов. В качестве стандартных портов используются порты 21 и 20: первый - для передачи данных, второй - передачи команд. Кроме того, порты могут быть динамическими.

    Размер файлов, передаваемых с помощью FTP-протокола, не лимитируется. Предусмотрен также механизм докачки файла, если в процессе передачи произошел обрыв связи.

    Главным недостатком FTP-протокола является отсутствие механизмов шифрования данных, что позволяет перехватить начальный трафик и определить с его помощью имя пользователя, а также его пароль подключения к FTP-серверу. Чтобы избежать подобной ситуации, параллельно используется протокол SSL, с помощью которого данные шифруются.

    РОРЗ и SMTP

    Использование электронной почты для обмена сообщениями уже давно является альтернативой обычной почте. Электронная почта гораздо эффективнее и быстрее. Ее использование стало возможным благодаря протоколам POP3 (Post Office Protocol Version 3) и SMTP (Simple Mail Transfer Protocol).

    Протокол POP3 работает на прикладном уровне и применяется для получения электронных сообщений из почтового ящика на почтовом сервере. При этом он использует один из портов и транспортный протокол TCP.

    Сеанс связи с почтовым сервером разбит на три этапа: авторизация , транзакция и обновление . Авторизации пользователя происходит при соединении с почтовым сервером, для чего может использоваться любой почтовый клиент, поддерживающий работу с протоколом POP3. На этапе транзакции клиент запрашивает у сервера выполнение необходимого действия, например получения информации о количестве сообщений, получения самих сообщения либо их удаления. Процесс обновления предназначен для выполнения запроса клиента. После окончания обновления сеанс связи завершается до поступления следующего запроса на соединение.

    Протокол POP3 позволяет только получать электронные сообщения, а для их отправки приходится использовать другой протокол, в качестве которого чаще всего применяется SMTP, точнее, его усовершенствованная версия - ESMTP (Extended SMTP).

    Как и POP3, протокол SMTP работает на прикладном уровне, поэтому ему необходимы услуги транспортного протокола, в роли которого выступает протокол TCP. При этом отправка электронных сообщений также происходит с использованием одного из портов, например 25 порта.

    IMAP

    IMAP (Interactive Mail Access Protocol) - еще один почтовый протокол, созданный на основе протокола POP3. Он был разработан позже протокола POP3. В результате в нем были учтены все недостатки и добавлено большое количество новых востребованных функций.

    Наиболее полезными среди них является возможность частичного скачивания сообщений, анализируя содержимое которых можно эффективно настраивать фильтры, сортирующие письма или отсеивающие спам.

    Еще одна немаловажная функция - механизм оптимизации использования каналов, по которым передаются сообщения. Эти каналы не всегда быстрые и незагруженные, поэтому наличие такой функции существенно облегчает жизнь пользователя. Имеется также возможность передачи сообщений по небольшим частям, что очень полезно, когда размер письма большой, например 5-10 Мбайт.

    SLIP

    Протокол передачи данных SLIP (Serial Line Internet Protocol) создан специально для организации постоянного подключения к Интернету с использованием имеющейся телефонной линии и обычного модема. Из-за высокой стоимости этот тип подключения могут позволить себе немногие пользователи. Как правило, такое подключение создается в организациях, имеющих сервер, на котором находится веб-страница организации и другие ресурсы (база данных, файлы).

    Данный протокол работает вместе с протоколом TCP/IP и находится на более низком уровне. Перед тем как информация с модема поступит на обработку TCP/ IP-протоколу, ее предварительно обрабатывает SLIP-протокол. Выполнив все необходимые действия, он создает другой пакет и передает его TCP/IP.

    РРР

    Протокол РРР (Point-to-Point Protocol) выполняет ту же работу, что и описанный выше SLIP. Однако он лучше выполняет эти функции, так как обладает дополнительными возможностями. Кроме того, в отличие от SLIP, PPP может взаимодействовать не только с TCP/IP, но и с IPX/SPX, NetBIOS, DHCP, которые широко используются в локальных сетях. Протокол PPP более распространен также благодаря использованию на интернет-серверах с установленной операционной системой семейства Windows NT (SLIP применяют для соединения с серверами, работающими в операционной системе UNIX).

    Х.25

    Протокол Х.25, который был создан в 1976 году и усовершенствован в 1984 году, работает на физическом, канальном и сетевом уровнях модели взаимодействия ISO/OSI. Его разработкой занимался консорциум, состоящий из представителей многих телефонных компаний, и создавали его специально для использования на существующих телефонных линиях.

    Когда разрабатывался X.25, цифровая телефонная линия была редкостью - использовалась в основном аналоговая. По этой причине в нем присутствует система обнаружения и коррекции ошибок, что существенно повышает надежность связи. В то же время эта система замедляет скорость передачи данных (максимальная - 64 Кбит/с). Однако этот факт не мешает использовать его там, где прежде всего требуется высокая надежность, например в банковской системе.

    Frame Relay

    Frame Relay - еще один протокол, предназначенный для передачи данных по телефонной линии. Помимо высокой надежности (как у X.25), он обладает дополнительными полезными нововведениями. Поскольку передаваемые данные могут иметь формат видео, аудио или содержать электронную информацию, есть возможность выбирать приоритет передаваемого содержимого.

    Еще одна особенность протокола Frame Relay - его скорость, которая достигает 45 Мбит/с.

    AppleTalk

    Протокол AppleTalk является собственностью компании Apple Computer. Он был разработан для установки связи между компьютерами Macintosh.

    Как и TCP/IP, AppleTalk представляет собой набор протоколов, каждый из которых отвечает за работу определенного уровня модели ISO/OSI.

    В отличие от протоколов TCP/IP и IPX/SPX, стек протокола AppleTalk использует собственную реализацию физического и канального уровней, а не протоколы модели ISO/OSI.

    Рассмотрим некоторые протоколы стека AppleTalk.

    · DDP (Datagram Delivery Protocol) - отвечает за работу сетевого уровня. Его основное предназначение - организация и обслуживание процесса передачи данных без предварительной установки связи между компьютерами.

    · RTMP (Routing Table Maintenance Protocol) - работает с маршрутными таблицами AppleTalk. Любая такая таблица содержит информацию о каждом сегменте, куда возможна доставка сообщений. Таблица состоит из номеров маршрутизаторов (порта), которые могут доставить сообщение к выбранному компьютеру, количества маошрутизаторов, параметров выбранных сегментов сети (скорости, загруженности и т. п).

    · NBP (Name Binding Protocol) - отвечает за адресацию, которая сводится к привязке логического имени компьютера к физическому адресу в сети. Кроме процесса привязки имени, он отвечает за регистрацию, подтверждение, стирание и поиск этого имени.

    · ZIP (Zone Information Protocol) - работает в паре с протоколом NBP, помогая ему производить поиск имени в рабочих группах, или зонах. Для этого он использует информацию ближайшего маршрутизатора, который создает запрос по всей сети, где могут находиться входящие в заданную рабочую группу компьютеры.

    · ATP (AppleTalk Transaction Protocol) - один из протоколов транспортного уровня, который отвечает за транзакции. Транзакция - это набор из запроса, ответа на этот запрос и идентификационного номера, который присваивается данному набору. Примером транзакции может быть сообщение о доставке данных от одного компьютера другому. Кроме того, ATP умеет делать разбивку больших пакетов на более мелкие с последующей их сборкой после подтверждения о приеме или доставке.

    · ADSP (AppleTalk Data Stream Protocol) - протокол , аналогичный ATP. Он отвечает за доставку пакетов. Однако в данном случае осуществляется не одна транзакция, а гарантированная доставка, которая может повлечь за собой несколько транзакций. Кроме того, протокол гарантирует, что данные при доставке не будут утеряны или продублированы.