Обмен данных в сети
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
3 ОБМЕН ДАННЫХ В СЕТИ
3.1
Общие понятия. Протокол. Стек протоколов.
Главная цель, которая преследуется при соединении компьютеров в
сеть – это возможность использования ресурсов каждого компьютера всеми
пользователями сети. Для того, чтобы реализовать эту возможность,
компьютеры, подсоединенные к сети, должны иметь необходимые для
этого средства взаимодействия с другими компьютерами сети.
Задача разделения сетевых ресурсов включает в себя решение
множества
проблем
–
выбор
способа
адресации
компьютеров
и
согласование электрических сигналов при установление электрической
связи, обеспечение надежной передачи данных и обработка сообщений об
ошибках, формирование отправляемых и интерпретация полученных
сообщений, а также много других не менее важных задач.
Обычным подходом при решении сложной проблемы является ее
разбиение на несколько частных проблем – подзадач. Для решения каждой
подзадачи назначается некоторый модуль. При этом четко определяются
функции каждого модуля и правила их взаимодействия.
Частным случаем декомпозиции задачи является многоуровневое
представление, при котором все множество модулей, решающих подзадачи,
разбивается на иерархически упорядоченные группы – уровни. Для каждого
уровня определяется набор функций-запросов, с которыми к модулям
данного уровня могут обращаться модули выше лежащего уровня для
решения своих задач.
Такой набор функций, выполняемых данным уровнем для выше
лежащего уровня, а также форматы сообщений, которыми обмениваются
два
соседних
уровня
в
ходе
своего
взаимодействия,
называется
интерфейсом.
Правила взаимодействия двух машин могут быть описаны в виде набора
процедур для каждого из уровней. Такие формализованные правила,
определяющие
последовательность
и
формат
сообщений,
которыми
обмениваются сетевые компоненты, лежащие на одном уровне, но в разных
узлах, называются протоколами1.
Согласованный набор протоколов разных уровней, достаточный для
организации межсетевого взаимодействия, называется стеком протоколов.
При организации взаимодействия могут быть использованы два основных
типа протоколов. В протоколах с установлением соединения (connectionoriented network service, CONS) перед обменом данными отправитель и
получатель должны сначала установить логическое соединение, то есть
договориться о параметрах процедуры обмена, которые будут действовать
только в рамках данного соединения. После завершения диалога они должны
разорвать
это
соединение.
Когда
устанавливается
новое
соединение,
переговорная процедура выполняется заново.
Вторая
группа
установления
протоколов
соединения
-
протоколы
(connectionless
network
без
предварительного
service,
CLNS).
Такие
протоколы называются также дейтаграммными протоколами. Отправитель просто
передает сообщение, когда оно готово.
3.2
Из
Модель ISO/OSI
того,
что
протокол
является
соглашением,
принятым
двумя
взаимодействующими объектами, в данном случае двумя работающими в сети
компьютерами, совсем не следует, что он обязательно представляет собой
стандарт. Но на практике при реализации сетей стремятся использовать
стандартные протоколы. Это могут быть фирменные, национальные или
международные стандарты.
Международная
Организация
по
Стандартам
(International
Standards
Organization, ISO) разработала модель, которая четко определяет различные уровни
взаимодействия систем, дает им стандартные имена и указывает, какую работу
должен делать каждый уровень. Эта модель называется моделью взаимодействия
открытых систем (Open System Interconnection, OSI) или моделью ISO/OSI.
В модели OSI взаимодействие делится на семь уровней или слоев (рис.1).
Каждый уровень имеет дело с одним определенным аспектом взаимодействия.
Таким образом, проблема взаимодействия декомпозирована на 7 частных проблем,
каждая из которых может быть решена независимо от других. Каждый уровень
поддерживает интерфейсы с выше- и нижележащими уровнями.
Модель OSI описывает только системные средства взаимодействия, не
касаясь приложений конечных пользователей. Приложения реализуют свои
собственные протоколы взаимодействия, обращаясь к системным средствам.
Следует иметь в виду, что приложение может взять на себя функции некоторых
верхних уровней модели OSI, в таком случае, при необходимости межсетевого
обмена оно обращается напрямую к системным средствам, выполняющим функции
оставшихся нижних уровней модели OSI.
Приложение
конечного
пользователя
может использовать
системные
средства взаимодействия не только для организации диалога с другим
приложением, выполняющимся на другой машине, но и просто для получения
услуг того или иного сетевого сервиса.
Итак, пусть приложение обращается с запросом к прикладному уровню,
например к файловому сервису. На основании этого запроса программное
обеспечение прикладного уровня формирует сообщение стандартного формата, в
которое
помещает
служебную
информацию
(заголовок)
и,
возможно,
передаваемые данные. Затем это сообщение направляется представительному
уровню.
Представительный уровень добавляет к сообщению свой заголовок и
передает результат вниз сеансовому уровню, который в свою очередь добавляет
свой заголовок и т.д.
Наконец, сообщение достигает самого низкого, физического уровня,
который действительно передает его по линиям связи.
Когда
сообщение
по
сети
поступает
на
другую
машину,
оно
последовательно перемещается вверх с уровня на уровень. Каждый уровень
анализирует, обрабатывает и удаляет заголовок своего уровня, выполняет
соответствующие
данному
уровню
функции
и
передает
сообщение
вышележащему уровню.
Кроме термина "сообщение" (message) существуют и другие названия,
используемые сетевыми специалистами для обозначения единицы обмена
данными. В стандартах ISO для протоколов любого уровня используется такой
термин как "протокольный блок данных" - Protocol Data Unit (PDU). Кроме этого,
часто используются названия кадр (frame), пакет (packet), дейтаграмма (datagram).
3.3
Функции уровней модели ISO/OSI
Физический уровень. Этот уровень имеет дело с передачей битов по
физическим каналам, таким, например, как коаксиальный кабель, витая пара или
оптоволоконный кабель. К этому уровню имеют отношение характеристики
физических
сред
передачи
данных,
такие
как
полоса
пропускания,
помехозащищенность, волновое сопротивление и другие. На этом же уровне
определяются характеристики электрических сигналов, такие как требования к
фронтам импульсов, уровням напряжения или тока передаваемого сигнала, тип
кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются
типы разъемов и назначение каждого контакта.
Функции
физического
уровня
реализуются
во
всех
устройствах,
подключенных к сети. Со стороны компьютера функции физического уровня
выполняются сетевым адаптером или последовательным портом.
Канальный уровень. Одной из задач канального уровня является проверка
доступности среды передачи. Другой задачей канального уровня является
реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном
уровне биты группируются в наборы, называемые кадрами (frames). Канальный
уровень
обеспечивает
корректность
передачи
каждого
кадра,
помещая
специальную последовательность бит в начало и конец каждого кадра, чтобы
отметить его, а также вычисляет контрольную сумму, суммируя все байты кадра
определенным способом и добавляя контрольную сумму к кадру. Когда кадр
приходит, получатель снова вычисляет контрольную сумму полученных данных и
сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр
считается правильным и принимается. Если же контрольные суммы не совпадают,
то фиксируется ошибка.
В протоколах канального уровня, используемых в локальных сетях, заложена
определенная структура связей между компьютерами и способы их адресации.
Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя
узлами локальной сети, он это делает только в сети с совершенно определенной
топологией связей, именно той топологией, для которой он был разработан. К
таким типовым топологиям, поддерживаемым протоколами канального уровня
локальных сетей, относятся общая шина, кольцо и звезда. Примерами протоколов
канального уровня являются протоколы Ethernet, Token Ring, FDDI, 100VGAnyLAN.
Сетевой уровень. Этот уровень служит для образования единой
транспортной
системы,
объединяющей
несколько
сетей
с
различными
принципами передачи информации между конечными узлами.
Сообщения сетевого уровня принято называть пакетами (packets). При
организации доставки пакетов на сетевом уровне используется понятие "номер
сети". В этом случае адрес получателя состоит из номера сети и номера
компьютера в этой сети.
Для того, чтобы передать сообщение от отправителя, находящегося в одной
сети, получателю, находящемуся в другой сети, нужно совершить некоторое
количество транзитных передач (hops) между сетями, каждый раз выбирая
подходящий
маршрут.
Таким
образом,
маршрут
представляет
собой
последовательность маршрутизаторов, через которые проходит пакет.
Проблема выбора наилучшего пути называется маршрутизацией и ее
решение является главной задачей сетевого уровня. Эта проблема осложняется
тем, что самый короткий путь не всегда самый лучший. Часто критерием при
выборе маршрута является время передачи данных по этому маршруту, оно
зависит от пропускной способности каналов связи и интенсивности трафика,
которая может изменяться с течением времени.
На сетевом уровне определяется два вида протоколов. Первый вид
относится к определению правил передачи пакетов с данными конечных узлов от
узла к маршрутизатору и между маршрутизаторами. Именно эти протоколы
обычно имеют в виду, когда говорят о протоколах сетевого уровня. К сетевому
уровню относят и другой вид протоколов, называемых протоколами обмена
маршрутной информацией. С помощью этих протоколов маршрутизаторы
собирают информацию о топологии межсетевых соединений. Протоколы
сетевого уровня реализуются программными модулями операционной системы, а
также программными и аппаратными средствами маршрутизаторов.
Примерами протоколов сетевого уровня являются протокол межсетевого
взаимодействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX
стека Novell.
Транспортный уровень. На пути от отправителя к получателю пакеты
могут быть искажены или утеряны. Хотя некоторые приложения имеют
собственные средства обработки ошибок, существуют и такие, которые
предпочитают сразу иметь дело с надежным соединением. Работа транспортного
уровня заключается в том, чтобы обеспечить приложениям или верхним уровням
стека - прикладному и сеансовому - передачу данных с той степенью надежности,
которая
им требуется. Модель OSI
предоставляемых транспортным уровнем.
определяет пять классов сервиса,
Как правило, все протоколы, начиная с транспортного уровня и выше,
реализуются программными средствами конечных узлов сети - компонентами их
сетевых операционных систем. В качестве примера транспортных протоколов
можно привести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.
Сеансовый уровень. Сеансовый уровень обеспечивает управление диалогом
для того, чтобы фиксировать, какая из сторон является активной в настоящий
момент, а также предоставляет средства синхронизации. Последние позволяют
вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно
было вернуться назад к последней контрольной точке, вместо того, чтобы начинать
все с начала. На практике немногие приложения используют сеансовый уровень, и
он редко реализуется.
Уровень представления. Этот уровень обеспечивает гарантию того, что
информация, передаваемая прикладным уровнем, будет понятна прикладному
уровню в другой системе. При необходимости уровень представления выполняет
преобразование форматов данных в некоторый общий формат представления, а на
приеме, соответственно, выполняет обратное преобразование. Таким образом,
прикладные уровни могут преодолеть, например, синтаксические различия в
представлении данных. На этом уровне может выполняться шифрование и
дешифрование данных, благодаря которому секретность обмена данными
обеспечивается сразу для всех прикладных сервисов. Примером протокола,
работающего на уровне представления, является протокол Secure Socket Layer
(SSL), который обеспечивает секретный обмен сообщениями для протоколов
прикладного уровня стека TCP/IP.
Прикладной уровень. Прикладной уровень - это в действительности просто
набор разнообразных протоколов, с помощью которых пользователи сети
получают доступ к разделяемым ресурсам, таким как файлы, принтеры или
гипертекстовые Web-страницы, а также организуют свою совместную работу,
например, с помощью протокола электронной почты. Единица данных, которой
оперирует прикладной уровень, обычно называется сообщением (message).
Существует очень большое разнообразие протоколов прикладного уровня.
Приведем в качестве примеров хотя бы несколько наиболее распространенных
реализаций файловых сервисов: NCP в операционной системе Novell NetWare,
SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.
3.4
Протоколы
взаимодействия
приложений
и
протоколы
транспортной подсистемы
Функции всех уровней модели OSI могут быть отнесены к одной из двух
групп: либо к функциям, зависящим от конкретной технической реализации сети,
либо к функциям, ориентированным на работу с приложениями.
Три нижних уровня - физический, канальный и сетевой - являются
сетезависимыми, то есть протоколы этих уровней тесно связаны с технической
реализацией сети, с используемым коммуникационным оборудованием.
Три верхних уровня - сеансовый, уровень представления и прикладной ориентированы на приложения и мало зависят от технических особенностей
построения сети. На протоколы этих уровней не влияют никакие изменения в
топологии сети, замена оборудования или переход на другую сетевую
технологию.
Транспортный уровень является промежуточным, он скрывает все детали
функционирования нижних уровней от верхних уровней. Это позволяет
разрабатывать
приложения,
независящие
от
технических
непосредственно занимающихся транспортировкой сообщений.
средств,
Рисунок 2 показывает уровни модели OSI, на которых работают различные
элементы сети.
Компьютер, с установленной на нем сетевой ОС, взаимодействует с другим
компьютером с помощью протоколов всех семи уровней. Это взаимодействие
компьютеры осуществляют через различные коммуникационные устройства:
концентраторы,
модемы,
мосты,
коммутаторы,
маршрутизаторы,
мультиплексоры. В зависимости от типа, коммуникационное устройство может
работать либо только на физическом уровне (повторитель), либо на физическом и
канальном (мост и коммутатор), либо на физическом, канальном и сетевом,
иногда захватывая и транспортный уровень (маршрутизатор).
3.5
Функциональное соответствие видов коммуникационного
оборудования уровням модели OSI
Лучшим способом для понимания отличий между сетевыми адаптерами,
повторителями,
мостами/коммутаторами
и
маршрутизаторами
является
рассмотрение их работы в терминах модели OSI. Соотношение между функциями
этих устройств и уровнями модели OSI показано на рисунке 3.
Повторитель, который регенерирует сигналы, за счет чего позволяет
увеличивать длину сети, работает на физическом уровне.
Сетевой адаптер работает на физическом и канальном уровнях. К
физическому уровню относится та часть функций сетевого адаптера, которая
связана с приемом и передачей сигналов по линии связи, а получение доступа
К
разделяемой среде передачи, распознавание МАС-адреса компьютера - это уже
функция канального уровня.
Мосты выполняют большую часть своей работы на канальном уровне. Для
них сеть представляется набором МАС-адресов устройств. Они извлекают эти
адреса из заголовков, добавленных к пакетам на канальном уровне, и используют
их во время обработки пакетов для принятия решения о том, на какой порт
отправить тот или иной пакет. Мосты не имеют доступа к информации об адресах
сетей, относящейся к более высокому уровню. Поэтому они ограничены в
принятии решений о возможных путях или маршрутах перемещения пакетов по
сети.
Маршрутизаторы
работают
на
сетевом
уровне
модели
OSI.
Для
маршрутизаторов сеть - это набор сетевых адресов устройств и множество
сетевых путей. Маршрутизаторы анализируют все возможные пути между
любыми двумя узлами сети и выбирают самый короткий из них. При выборе
могут приниматься во внимание и другие факторы, например, состояние
промежуточных узлов и линий связи, пропускная способность линий или
стоимость передачи данных.
Для того, чтобы маршрутизатор мог выполнять возложенные на него
функции ему должна быть доступна более развернутая информация о сети,
нежели та, которая доступна мосту. В заголовке пакета сетевого уровня кроме
сетевого адреса имеются данные, например, о критерии, который должен быть
использован при выборе маршрута, о времени жизни пакета в сети, о том, какому
протоколу верхнего уровня принадлежит пакет.
Благодаря использованию дополнительной информации, маршрутизатор
может осуществлять больше операций с пакетами, чем мост/коммутатор.
Поэтому программное обеспечение, необходимое для работы маршрутизатора,
является более сложным.
На рисунке 3 показан еще один тип коммуникационных устройств - шлюз,
который может работать на любом уровне модели OSI. Шлюз (gateway) - это
устройство, выполняющее трансляцию протоколов. Шлюз размещается между
взаимодействующими сетями и служит посредником, переводящим сообщения,
поступающие из одной сети, в формат другой сети. Шлюз может быть реализован
как чисто программными средствами, установленными на обычном компьютере,
так и на базе специализированного компьютера. Трансляция одного стека
протоколов в другой представляет собой сложную интеллектуальную задачу,
требующую максимально полной информации о сети, поэтому шлюз использует
заголовки всех транслируемых протоколов.
3.6
Спецификация IEEE 802
Примерно в то же время, когда появилась модель OSI, была опубликована
спецификация IEEE 802, которая фактически расширяет сетевую модель OSI. Это
расширение происходит на канальном и физическом уровнях, которые
определяют, как более чем один компьютер может получить доступ к сети,
избежав конфликтов с другими компьютерами сети.
Этот стандарт детализирует эти уровни посредством разбиения канального
уровня на 2 подуровня:
– Logical Link Control (LLC) – подуровень управления логической связью.
Управляет связями между каналами данных и определяет использование
точек логического интерфейса, называемых Services Access Point (Точки
доступа у службам), которые другими компьютерами могут использоваться
для передачи информации на верхние уровни модели OSI;
– Media Access Control (MAC) – подуровень управления доступом к
устройствам. Предоставляет параллельный доступ для нескольких сетевых
адаптеров на физическом уровне, имеет прямое взаимодействие с сетевой
картой компьютера и отвечает за обеспечение безошибочной передачи
данных между компьютерами в сети.
3.7
По стеку протоколов
Набор протоколов (или стек протоколов) представляет собой сочетание
протоколов,
которые
совместно
работают
для
обеспечения
сетевого
взаимодействия. Эти наборы протоколов обычно разбивают на три группы,
соответствующие сетевой модели OSI:
–
сетевые;
–
транспортные;
–
прикладные.
Сетевые протоколы предоставляют следующие услуги:
–
адресацию и маршрутизацию информации;
–
проверку на наличие ошибок;
–
запрос повторной передачи;
–
установление правил взаимодействия в конкретной сетевой среде.
Популярные сетевые протоколы:
–
DDP (Delivery Datagram Protocol – Протокол доставки дейтаграмм).
Протокол передачи данных Apple, используемый в AppleTalk.
–
IP (Internet Protocol – Протокол Интернет). Часть набора протоколов TCP/IP,
обеспечивающая адресную информацию и информацию о маршрутизации.
–
IPX (Internetwork Packet eXchange – Межсетевой обмен пакетами) и
NWLink. Протокол сетей Novell NetWare (и реализация этого протокола
фирмой Microsoft), используемый для маршрутизации и направления
пакетов.
–
NetBEUI. Разработанный совместно IBM и Microsoft, этот протокол
обеспечивает транспортные услуги для NetBIOS.
Транспортные
протоколы
отвечают
за
обеспечение
надежной
транспортировки данных между компьютерами.
Популярные транспортные протоколы:
– ATP (AppleTalk Transaction Protocol – Транзакционный протокол AppleTalk)
и NBP (Name Binding Protocol – Протокол связывания имен). Сеансовый и
транспортный протоколы AppleTalk.
–
NetBIOS/NetBEUI.
Первый
–
устанавливает
соединение
между
компьютерами, а второй – предоставляет услуги передачи данных для этого
соединения.
– SPX (Sequenced Packet exchange – Последовательный обмен пакетами) и
NWLink. Ориентированный на соединения протокол Novell, используемый
для обеспечения доставки данных (и реализация этого протокола фирмой
Microsoft).
–
TCP (Transmission Control Protocol – Протокол управления передачей).
Часть набора протоколов TCP/IP, отвечающая за надежную доставку
данных.
Прикладные протоколы, ответственные за взаимодействие приложений.
Популярные прикладные протоколы:
–
AFP (AppleTalk File Protocol – Файловій протокол AppleTalk).
Протокол удаленного управления файлами Macintosh.
–
FTP (File Transfer Protocol – Протокол передачи данных). Еще один член
набора протоколов TCP/IP, используемый для обеспечения услуг по
передаче файлов.
–
NCP (NetWare Core Protocol – Базовый протокол NetWare). Оболочка и
редиректоры клиента Novell.
–
SMTP (Simple Mail Transport Protocol – Простой протокол передачи почты).
Член набора протоколов TCP/IP, отвечающий за передачу электронной
почты.
–
SNMP (Simple Network Management Protocol – Простой протокол
управления сетью). Протокол TCP/IP, используемый для управления и
наблюдения за сетевыми устройствами.