Для решения сложных задач используется универсальный прием декомпозиция, т.е. разбиение сложной задачи на несколько простых задач – модулей.
Декомпозиция состоит в четком определении каждого модуля, а также порядка и взаимодействия.
Наиболее эффективная концепция декомпозиции – многоуровневый подход. После представления исходной задачи в виде множества модулей, эти модули группируют и упорядочивают по уровням. Уровни, в свою очередь, образуют иерархию. Группа модулей, составляющая каждый уровень, для решения своих задач должна обращаться с запросами только к модулям соседнего нижележащего уровня. С другой стороны, результаты работы каждого из модулей могут быть переданы только модулем соседнего вышележащего уровня.
Межуровневый интерфейс (интерфейс услуг) определяет набор функций, которые нижележащий уровень передает вышележащему уровню.
В сетевом взаимодействии участвуют две стороны. Для взаимодействия двух сторон необходимо организовать согласованную работу двух иерархий аппаратных и программных средств на двух разных компьютерах. Оба узла должны принять множество соглашения.
Схема взаимодействия двух узлов
Каждый уровень поддерживает интерфейсы двух типов:
1 – интерфейсы услуг с выше- и нижележащими уровнями;
2 – интерфейсы со средствами взаимодействия другой стороны (протокол).
Протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы – соседних уровней в одном узле.
Стек протоколов – иерархически организованный набор протоколов, достаточных для организации взаимодействия узлов в сети.
Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств. А протоколы верхних уровней – только программными средствами.
Протокольные сущности одного уровня двух взаимодействующих сторон обмениваются сообщениями в соответствии с определенным для них протоколом. Сообщения состоят из заголовка и поля данных. Работа каждого протокольного модуля состоит в интерпретации заголовков, поступающих к нему сообщений и выполнении связанных с этим действий. Заголовки сообщений разных протоколов имеют разную структуру.
Модель OSI
Назначение модели OSI состоит в обобщенном представлении средств сетевого взаимодействия. Она определяет:
– уровни взаимодействия систем в сетях с коммутацией пакетов;
– стандартные названия уровней;
– функции, которые должен выполнять каждый уровень.
В модели OSI средство взаимодействия делится на 7 уровней:
1 – прикладной;
2 - представления;
3 – сеансовый;
4 – транспортный;
5 – сетевой;
6 – канальный;
7 – физический.
Приложение A обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса ПО прикладного уровня формирует сообщение стандартного формата. После формирования сообщения прикладной уровень отправляет его вниз. Протокол уровня представления н основе полученной информации из заголовка выполняет требуемые действия и добавляет к сообщению собственную информацию, т.е. новый заголовок. Далее сообщение передается сеансовому уровню и так далее до физического уровня. Физический уровень передает сообщение адресату по линии связи. Когда сообщение приходит на компьютер-адресат, он принимает его и перемещает вверх по уровням. Каждый уровень анализирует заголовок своего уровня, выполняет соответствующие функции, удаляет заголовок и передает сообщение вверх.
Физический уровень передает потоки битов по физическим каналам. Функции выполняются сетевым адаптером или последовательным портом.
Канальный уровень выполняет функции:
- установление логического соединения между логическими узлами;
- согласование скоростей передатчика и приемника информации;
- обеспечение надежной передачи обнаружения и коррекции ошибок.
Уровень формирует из пакетов собственные протокольные единицы-кадры, состоящие из поля данных и заголовка. Важнейшей информацией заголовка кадра является адрес назначения.
Кроме того этот уровень может обеспечить надежность передачи, например, путем фиксирования границ кадра, помещая специальную последовательность битов в его начало и конец.
В сетях, построенных на основе разделяемой среды, канальный уровень проверяет доступность разделяемой среды.
Сетевой уровень служит для образования единой транспортной системы, объединяющей несколько сетей. Технология, позволяющая соединять в единую сеть множество сетей – технология межсетевого взаимодействия. Функции сетевого уровня реализуются группой протоколов или маршрутизаторами. Маршрутизатор имеет несколько сетевых интерфейсов, к каждому из которых может быть подключена одна сеть. Данные, которые необходимо передать поступают от транспортного уровня. На сетевом уровне данные снабжаются заголовком и формируется пакет. Для того чтобы протоколы сетевого уровня могли доставлять пакеты любому узлу составной сети, эти узлы должны иметь уникальные адреса в пределах данной сети – сетевой адрес.
Транспортный уровень обеспечивает передачу данных с определенной степенью надежности. Модель OSI определяет 5 классов транспортного сервиса. Эти виды сервиса отличаются качеством предоставляемых услуг (срочность, возможностью восстановления прерванной связью, способностью к обнаружению и исправлению ошибок передачи).
Сеансовый уровень управляет взаимодействием сторон, т.е. фиксирует, какая из сторон является активной в настоящий момент и предоставляет средства синхронизации сеанса.
Уровень представления обеспечивает представление передаваемой по сети информации, не меняя при этом её содержания. На этом уровне могут проходить шифрование и дешифрование данных.
Прикладной уровень – это набор разнообразных протоколов, с помощью которых пользователи в сети получают доступ к разделяемым ресурсам. Единица данных этого уровня – сообщение.
Технологии доступа
Для упрощения и удешевления аппаратных и программных решений разработчики первых локальных сетей остановились на совместном использовании общей среды передачи данных.
Использование разделяемых сред позволяет упростить логику передачи данных. Недостаток – плохая масштабируемость.
Локальные сети, являясь пакетными сетями, используют принцип временного мультиплексирования, т.е. разделяют передающую среду во времени.
Алгоритм управления доступом к среде является одной из важнейших характеристик технологий локальной сети.
Технология Ethernet
Основная среда – коаксиальный кабель.
На уровне MAC, который обеспечивает доступ к среде и передачу кадра, для идентификации сетевых интерфейсов узлов сети используются регламентированные уникальные шестибайтовые адреса – MAC-адреса (каждый сетевой адаптер имеет, по крайней мере, один MAC-адрес). Обычно он записывается в виде шести пар шестнадцатеричных цифр, разделенных тире или двоеточием, например: 11-AO-17-3D-BC-01.
Помимо отдельных интерфейсов MAC-адрес может определять группу интерфейсов или даже все интерфейсы сети. Первый бит старшего байта адреса назначения – признак того, является адрес индивидуальным или групповым. Если этот бит = 0, то адрес индивидуальный, т.е. идентифицирует один сетевой интерфейс. Если =1 – групповым. Групповой адрес связан только с интерфейсами, сконфигурируемым как члены группы, номер которой указан в групповом адресе. Если сетевой интерфейс включен в группу, то наряду с уникальным MAC-адресом ассоциируется также групповой адрес. Второй бит старшего байта определяет способ назначения адреса. Если бит=0, то централизованный, если = 1 – локальный. В три старших байта адреса производитель помещает выданный идентификатор. За уникальность младших трех байтов адреса отвечает производитель оборудования.
Сетевые адаптеры Ethernet могут работать в режиме неразборчивого захвата, т.е. сетевые адаптеры захватывают все кадры, поступающие на интерфейс независимо от их MAC-адресов назначения (используется в случае мониторинга адреса).
Формат кадра
6 байт | 6 байт | 2 байта | 46-1500 байт | 4 байта |
DA | SA | T | Данные | FCS |
Адрес узла назначения | Адрес узла отправителя | Условный код протокола верхнего уровня. Требуется для поддержки интерфейсных функций мультиплексирования и демультиплексирования кадров при взаимодействии с протоколами верхних уровней | Данные, которые передаются | Поле контроля последовательности кадра |
Доступ к среде и передача данных в технологии Ethernet
Метод доступа в сетях Ethernet на разделяемой проводной среде носит название CSMA/CD.
Все компьютеры в сети на разделяемой среде имеют возможность немедленно получить данные, которые любой из компьютеров начал передавать в общую среду В таком случае говорят, что среда, к которой подключены все станции, работают в режиме коллективного доступа. Чтобы получить возможность передавать кадр, интерфейс отправитель должен убедиться, что разделяемая среда свободна. Это достигается прослушиванием основной гармоники сигналов или несущей частоты. Признаком «незанятости» среды является отсутствие на ней несущей частоты. Если среда свободна, то узел готов к передаче данных. Все станции, подключенные к кабелю, начинают записывать байты передаваемого кадра в свои встроенные буферы. Та станция, которая узнает свой адрес в заголовке кадра, продолжает записывать в его содержимое свой буфер. А остальные станции прием кадра прекращает. Станция назначения обрабатывает полученные данные и передает их вверх по своему стеку. Кадр Ethernet содержит не только адрес назначения, но и адрес источника, поэтому станция получатель знает, кому нужно послать ответ. После окончания передачи кадра все узлы сети обязаны выдержать технологическую паузу, которая занимает 9,6 мкс и которая нужна для приведения сетевых адаптеров в исходное состояние, а также для предотвращения монопольного захвата среды одной из станций. После окончания паузы узлы имеют право начать передачу своего кадра, т.к. среда свободна.
Механизм прослушивания среды и паузы между кадрами не гарантируют исключения ситуации, когда две или более станции одновременно решают, что среда свободна. Говорят, что при этом происходит коллизия, т.к. содержимое обоих кадров сталкивается на общем кабеле и происходит искажение информации. Для возникновения коллизии не обязательно, чтобы несколько станций начали передачу одновременно. Чтобы корректно обработать коллизию все станции одновременно наблюдают за возникающими на кабеле сигналами. Если передаваемые и наблюдаемые сигналы отличаются, то фиксируется факт обнаружения коллизий. Для повышения вероятности скорейшего обнаружения коллизии всеми станциями сети станция, которая обнаруживает коллизию, прерывает передачу своего кадра и отправляет в сеть специальную последовательность из 32 бит, называемую JAM-последовательностью. После этого передающая станция обязана прекратить передачу и сделать паузу.
Token Ring и FDDI
Основная среда передачи данных – витая пара. Для адресации станции используются MAC-адреса того же формата, что и Ethernet. Метод доступа Token Ring основан на передачи от узла к узлу специального токена (маркера доступа), при этом только узел, владеющий токеном, может передавать данные в кольцо. Существует лимит на период монопольного использования среды – время удержания токена, по истечении которого станция обязана передать токен своему соседу.
В технологии FDDI применяется двойное кольцо с целью обеспечения отказоустойчивости.
Технология ATM
Асинхронный режим передачи (ATM) является технологией, позволяющей по сети передавать различные типы трафика (голосовые, видео и цифровые данные). При этом обеспечивается достаточная пропускная способность для каждого из них и гарантируется своевременная доставка чувствительных к задержкам передачи данных.
Основой являются коммутируемые сети с трансляцией ячеек и установлением соединений.
ATM разбивает весь трафик на 5 классов: A, B, C, D и X. Первые четыре – трафик типовых приложений, которые отличаются устойчивым набором требований к задержкам и потерям пакетов, а также тем, генерируют они трафик с постоянной или переменной битовой скоростью. Класс X зарезервирован для уникальных приложений, набор характеристик и требований которых не относится ни к одному из первых четырех классов.
Данные передаются небольшими пакетами фиксированного размера – ячейки. А в сетях с разделяемой средой доступа передача осуществляется пакетами переменной длины – кадры.
Чтобы уменьшить время ожидания передачи ячейки, её размер должен быть мал. Однако маленький размер ячейки увеличивает накладные расходы на передачу из-за наличия большого количества интервалов между передачами ячеек. Размер ячейки ATM составляет 53 байта, из которых 48 байт отводится на данные, а 5 - на заголовок ячейки блока информации.
Для передачи пакетов по сети ATM от источника к месту назначения источник должен сначала установить соединение с получателем. Сети с установлением соединений могут резервировать для конкретного соединения полосу пропускания, гарантируя для каждого соединения определенную скорость передачи данных. При установлении соединения, коммутаторы определяют оптимальный маршрут для передачи данных. Когда соединение установлено, коммутаторы начинают передачу данных. Передача ячеек осуществляется с использованием адресных таблиц, в которых содержится информация об адресе порта, из которых поступают ячейки, идентификаторы виртуальных каналов и виртуальных путей.
Виртуальный канал – соединение между двумя конечными станциями ATM, которое устанавливается на время их взаимодействия. Он является двунаправленным, поэтому после установления соединения каждая конечная станция может, как посылать пакеты другой станции, так и получать от неё по этому каналу. Существует 3 типа виртуальных каналов:
1 – постоянные виртуальные каналы (PVC) – постоянное соединение между двумя конечными станциями, которое устанавливается вручную в процессе конфигурирования сети. Он проходит через все коммутаторы, расположенные между конечными станциями. После установки, для него резервируется определенная часть полосы пропускания и двум конечным станциям не требуется устанавливать или сбрасывать соединения;
2 – коммутируемые виртуальные каналы (SVC) – устанавливается динамически, когда две конечные станции обмениваются данными друг с другом. По окончании обмена через некоторый промежуток времени канал сбрасывается. Соединение устанавливается только в том случае, если сеть в состоянии поддерживать данное соединение;
3 – интеллектуальные постоянные виртуальные каналы (SPVC) – устанавливается вручную на этапе конфигурирования сети, при этом оператор сети указывает только конечные станции, для которых должно быть установлено соединение. Для каждого нового сеанса передачи данных, коммутатор определяет: по какому пути будут проходить ячейки.
Виртуальный путь – путь между двумя коммутаторами, которое существует постоянно, независимо от того, есть соединение или нет. Когда пользователь запрашивает виртуальный канал, коммутаторы определяют, какой виртуальный путь использовать для достижения конечных станций.
По одному и тому же виртуальному пути может передаваться одновременно трафик множества виртуальных каналов.
Стек протокола TCP/IP
Стек TCP/IP широко используется как в локальных, так и в глобальных сетях. Он имеет структуру, состоящую из четырех уровней:
Прикладной уровень | FTP, SMPT, HTTP и т.д. |
Транспортный уровень | TCP, UDP |
Сетевой уровень | IP, ICMP, RIP, OSPF |
Уровень сетевых интерфейсов | Не регламентируется |
Прикладной уровень соответствует трем верхним уровням модели OSI: прикладному, представления и сеансовому. Он объединяет сервисы, предоставляемые системой пользовательским приложениям.
К службам прикладного уровня относят:
- протокол передачи файлов FTP;
- протокол передачи почты SMTP;
- протокол передачи гипертекста HTTP и т.д.
Протоколы прикладного уровня развертываются на конечных узлах или хостах.
Транспортный уровень может предоставлять вышележащему уровню два типа сервиса:
1 – гарантированную доставку обеспечивает протокол управления передачей TCP;
2 – доставку по возможности или с максимальными усилиями обеспечивает протокол пользовательских дейтаграмм UDP.
Для того чтобы обеспечить надёжную доставку данных, протокол TCP предусматривает установление логического соединения, что позволяет ему нумеровать пакеты, подтверждать их прием квитанциями, в случае потери организовывать повторные передачи, распознавать и уничтожать дубликаты и доставлять прикладному уровню пакеты в том порядке, в котором они были отправлены. Благодаря этому протоколу объекты на узле отправителя и узле получателя могут поддерживать обмен данными в дуплексном режиме.
Второй протокол, UDP, является простейшим дейтаграммным протоколом, когда задача надежного обмена не ставиться.
От прикладного протокола транспортный уровень принимает задание на передачу данных с тем или иным качеством прикладному уровню получателя. Программные модули протоколов прикладного уровня устанавливаются также на хостах.
Сетевой уровень [уровень интернета] обеспечивает перемещение пакетов в пределах составной сети, образованной соединением нескольких подсетей. Основной протокол – межсетевой протокол IP. В его задачу входит: продвижение пакетов между сетями от одного маршрутизатора к другому до тех пор, пока пакет не попадет в сеть назначения. Он развертывается не только на хостах, но и на всех маршрутизаторах.
Протокол IP – дейтаграммный протокол, работающий без установления соединений по принципу доставки с максимальными усилиями.
К сетевому уровню также относят протоколы, выполняющие вспомогательные функции:
- протоколы маршрутизации RIP и OSPF предназначены для изучения топологии сети, определения маршрутов и составления таблиц маршрутизации;
- протокол межсетевых управляющих сообщений ICMP, предназначенный для передачи маршрутизаторам источнику сведений об ошибках, возникших при передаче пакетов.
Уровень сетевых интерфейсов отвечает только за организацию взаимодействия с подсетями разных технологий, входящими в составную сеть.
Задачу организации интерфейса между технологиями TCP/IP и любой другой промежуточной технологией сети можно свести к двум задачам:
1 – упаковка IP пакета в единицу передаваемых данных промежуточной сети;
2 – преобразование сетевых адресов в адреса технологий данной промежуточной сети.
Система DNS
См. Олифера (стр. 583)