Лекции 2010-го года (1130544), страница 3
Текст из файла (страница 3)
Архитектуры сетей, стеки протоколов, сами протоколы - вот основныепредметы, рассматриваемые в данном курсе.Рисунок 1-9. Пример организации потока информации при виртуальном взаимодействииуровней 5При передаче сообщения между уровнями над сообщением выполняются определенныепреобразования, показанные на рисунке 1-9. Здесь на каждом уровне к сообщениюдобавляется заголовок. Заголовок содержит управляющую информацию - комуадресовано сообщение, время, дату, порядковый номер и т.д. На уровне 3 исходноесообщение уровня 4 разбивают на два, поскольку длина сообщения уровня 4 с заголовкомуровня 3 превышает заранее определенную допустимую для передачи на нижележащемуровне длину.1.6.3.
Основные вопросы организации уровнейВсе функции организации и функционирования сети распределены между уровнями. Всетях с разной архитектурой это распределение между уровнями разное. Однако накаждом уровне необходимо решать следующие вопросы:15• адресация отправителя и получателя на уровне: на каждом уровне нужен механизмдля адресации отправителей и получателей• правила установления соединения с одноименным уровнем• правила передачи данныхoтолько в одном направлении - simplex, поочередно в обоих направлениях -half-duplex или в оба направления одновременно - duplexдопустимо ли совмещать виртуальные соединения вышележащего уровнячерез одно и то же соединение на нижележащем уровне; каковомаксимальное число совмещаемых так виртуальных соединений, каковыприоритеты в их обслуживании;oмультиплексирование и демультиплексирование виртуальных каналов• обнаружение и исправление ошибок при передаче• сохранение исходной последовательности данных при передаче• на каждом уровне нужен механизм, предотвращающий ситуацию, когдаодноименный уровень получателя начинает «захлебываться», т.е.
когдаотправитель отправляет пакеты с большей скоростью, чем получатель успеваетих обрабатывать• выбор маршрута при передаче: когда между получателем и отправителем естьнесколько маршрутов, то какой из них выбрать?• не все процессы на любом уровне могут работать с сообщениями произвольнойдлины, поэтому при передаче необходимо осуществлять:oразбиение, передачу и сборку сообщенийoвыбирать оптимальную длину фрагмента при разбиении или, наоборот,соединение нескольких коротких сообщений в одно более длинное(например, как быть, если процесс работает со столь короткимисообщениями, что их раздельная пересылка не эффективна?)o1.6.4.
Интерфейсы и сервисКак уже было сказано, одно из главных предназначений каждого уровня - обеспечитьнадлежащий сервис для вышележащего уровня.Активные элементы уровня, т.е. те, которые могут сами совершать действия, в отличие оттех, над которыми совершают действия, будем называть активностями. Активности могутбыть программными и аппаратными.
Активности одного и того же уровня на разныхмашинах будем называть равнозначными или одноименными активностями. Активностиуровня n+1 являются пользователями сервиса, создаваемого активностями уровня n,которые, в свою очередь, называются поставщиками сервиса. Сервис может быть разногокачества, например, быстрая и дорогостоящая связь или медленная и дешевая.Доступ к сервису осуществляется через так называемые точки доступа к сервису - SAP(Service Access Points). Каждая точка доступа к сервису имеет уникальный адрес.Например, телефонная розетка на стене - это точка доступа к сервису АТС.
Каждойрозетке сопоставлен определенный номер - номер телефона.Чтобы осуществить обмен информацией между двумя уровнями, нужно определитьинтерфейс между ними. Типичный интерфейс: активность на уровне n+1 передает IDU(Interface Data Unit - интерфейсную единицу данных) активности на уровне n через SAP(рисунок 1-10). IDU состоит из SDU (Service Data Unit - сервисной единицы данных) иуправляющей информации. SDU передается по сети равнозначной сущности, а затем - науровень n+1. Управляющая информация нужна нижележащему уровню, чтобы правильнопередать SDU, но она не является частью передаваемых данных.16Рисунок 1-10. Взаимосвязь уровней через интерфейсЧтобы передать SDU по сети нижележащему уровню, может потребоваться разбить его начасти.
Каждая часть снабжается заголовком (header) и концевиком, и передается каксамостоятельная единица данных протокола - PDU (Protocol Data Unit - единица данныхпротокола). Заголовок в PDU используется протоколом при передаче. В нем указано,какой PDU содержит управляющую информацию, а какой - данные, порядковый номер ит.д.1.6.5.
Сервис с соединением и сервис без соединенияУровни могут предоставлять вышележащим уровням два вида сервисов:ориентированный на соединение и без соединения.Сервис с соединением предполагает, что между получателем и отправителем сначалаустанавливается соединение, и только потом доставляется сервис. Пример - телефоннаясеть.Сервис без соединения действует подобно почтовой службе. Каждое сообщение имеетадрес получателя. В надлежащих точках оно маршрутизируется по нужному маршруту,независимо от других сообщений. При таком сервисе вполне возможно, что сообщение,позже посланное, придет раньше.
В сервисе с соединением это невозможно.Любой сервис характеризуется качеством. Например, надежный сервис, гарантирующийдоставку данных без потерь, предполагает подтверждение получения каждого сообщения.Несомненно, это требует определенных накладных расходов. Это - плата за качество.Пример надежного сервиса с соединением - передача файлов. Ясно, что вряд ли кто-торискнет передавать файл, пусть даже быстрее, при возможности потерять часть битов илинарушить их порядок.Надежный сервис с соединением имеет две разновидности: с сохранением структурыпередаваемых данных, например, последовательность сообщений, и просто поток байтов.В первом случае четко различаются границы каждого сообщения. Если было послано двасообщения по 1 Мбайт, то получено будет два сообщения по 1 Мбайт.
Ни при какихусловиях у получателя не окажется одно сообщение в 2 Мбайт.В случае потока байтов получатель получит 2 Мбайт. У него нет способа распознать, толи это 2 сообщения по 1 Мбайт, то ли 1 сообщение в 2 Мбайт, то ли 2048 сообщений по 1байту. Если мы захотим передать книгу на фотонаборное устройство, то нам надопроследить, чтобы каждая страница имела четкие границы. В то же время для поддержки17соединения между терминалом и сервером в режиме командной строки потока байтоввполне достаточно.Другой важной характеристикой качества сервиса является величина задержки в канале.Для некоторых приложений задержки из-за уведомления получения данныхнеприемлемы. Примерами таких приложений являются цифровая телефонная связь,цифровые видеоконференции.
При телефонном разговоре люди готовы смириться сшумом на линии, искажениями слов, но паузы из-за уведомлений будут простонеприемлемы. Аналогично при видеоконференции или передаче видеофильма.Небольшие дефекты картинки допустимы, но подергивание экрана из-за уведомленийбудет раздражать зрителя.Пример приложения, не требующего соединения, - электронная почта. Вряд лиотправитель второстепенного сообщения захочет ждать установки и разрыва соединения,оплачивать весь этот сервис, чтобы передать такое сообщение.
Ему вряд ли требуетсястопроцентная гарантия доставки, особенно, если это связано с увеличением стоимости.Все, что ему нужно - простой способ передать сообщение, которое с большойвероятностью будет принято, но без всяких гарантий. Ненадежный сервис (т.е. безуведомления) часто называют дейтаграммным (datagram), по аналогии с телеграммой безуведомления. Однако для тех приложений, где необходима гарантия доставки даженебольшого сообщения, используется дейтаграмм-сервис с подтверждением, подобнотелеграмме с уведомлением о получении.Другой разновидностью дейтаграммного сервиса является сервис «запрос-ответ».
Онтипичен для взаимодействия между клиентами и сервером. Ниже в таблице 1-11приведены примеры сервисов.Таблица 1-11. Разные типы сервисаОринтированныесоединенияБез соединенияСервисПримерНадежный поток сообщенийПоследовательность страницНадежный поток байтовУдаленный вход в системуНенадежное соединениеОцифрованная речьНенадежная дейтаграммаНеважная электронная почтаПодтверждаемая дейтаграмма Заказная электронная почтаЗапрос-ответЗапрос базы данных1.6.6. Примитивы сервисаФормально сервис можно описать в терминах примитивных операций, или примитивов, спомощью которых пользователь или какая-либо активность получает доступ к сервису.
Спомощью этих примитивов активность на вышележащем уровне сообщает активности нанижележащем уровне, что необходимо сделать, чтобы вышележащая активность получиланужную услугу (сервис). В свою очередь, нижележащая активность может использоватьэти примитивы, чтобы сообщить вышележащей активности о действии, выполненномравнозначной активностью.
Примитивы можно разделить на четыре класса, как показано втаблице 1-12.Таблица 1-12. Примитивы сервиса18ПримитивЗначениеRequest (Запрос)Пользователь требует от сервиса каких-либо действий.Indication (Индикация)Пользователя информируют о каком-либо событии.Response (Ответ)Пользователь требует ответа на какое-либо событие.Confirm(Подтверждение)Получен ответ на сделанный ранее запрос.Для иллюстрации работы примитивов рассмотрим, как соединение устанавливается иразрывается.