Главная » Просмотр файлов » Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU)

Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 65

Файл №1130092 Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU)) 65 страницаЭ. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092) страница 652019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 65)

Таким образом, сетевой уровень может действовать так, как будто машины обмениваются пакетами напрямую. В листинге ЗА также перечислен ряд процедур. Это библиотечные процедуры, детали которых зависят от конкретной реализации, и их внутреннее устройство мы рассматривать не будем. Как уже упоминалось ранее, процедура иэ1г ~ог ечепЬ представляет собой холостой цикл ожидания какого-нибудь события. Процедуры го пегиог1 1ауег и асов пеьиог1 1ауег используются уровнем передачи Элементарные протоколы передачи данных 243 данных для передачи пакетов сетевому уровню и для получения пакетов от сетевого уровня соответственно. Обратите внимание: процедуры ргое рнузрса1 1ауег и со рпузаса1 1ауег используются для обмена кадрами между уровнем передачи данных и физическим уровнем, тогда как процедуры Со пеСногк 1ауег и тгое пеСногх 1ауег применяются для передачи пакетов между уровнем передачи данных и сетевым уровнем.

Другими словами, процедуры Со пегногк 1ауег рр тгое пеСногк 1ауег относятся к интерфейсу между уровнями 2 и 3, тогда как процедуры Сгоо рнушса1 1ауег и Со раугпса1 1ауег относятся к интерфейсу между уровнями 1 и 2. В большинстве протоколов предполагается использование ненадежного канала, который может случайно потерять целый кадр. Для обработки подобных ситуаций передарощий уровень передачи данных, посылая кадр, запускает таймер, Если за установленный интервал времени ответ не получен, таймер воспринимает это как тайм-аут, и уровень передачи данных получает сигнал прерывания. В наших примерах протоколов это реализовано в виде значения ечепС=С1щеовг, возвращаемого процедурой ею С рог ечепС.

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

Когда уровень передачи данных разрешает работу сетевого уровня, последний получает также разрешение прерывать работу первого, когда ему нужно послать пакет. Такое событие мы будем обозначать как ечепС=пеСногх 1ауег геайу. Когда сетевой уровень отключен, он не может инициировать такие события. Тщательно следя за включением и выключением сетевого уровня, уровень передачи данных не допускает ситуации, в которой сетевой уровень заваливает его пакетами, для которых не осталось места в буфере. Последовательные номера кадров всегда находятся в пределах от О до МАХ БЕ~ (включительно).

Число МАХ БЕД различно в разных протоколах. Для увеличения последовательного номера кадров на 1 циклически (то есть с обнулением при достижении числа МАХ БЕ0) используется макрос рпс. Он определен в виде макроса, поскольку используется прямо в строке в тех местах программы, где быстродействие является критичным. Как мы увидим позднее в этой книге, производительность сети часто ограничена быстродействием протоколов. Определение простых операций в виде макросов не снижает удобочитаемости программы, увеличивая при этом ее быстродействие. К тому же, поскольку МАХ БЩ в разных протоколах будет иметь разные значения, то, определив инкремент в виде макроса, можно один и тот же код без проблем использовать в нескольких протоколах.

Такая возможность крайне полезна для симулятора. 244 Глава 3. Уровень передачи данных Лиотинг 3.1. Общие объявления для последующих протоколов. Объявления располагаются в файле рготосо).П //бе/тле МАХ РКТ 1024 /* опрелеляет Разиер пакета в бай~ах "/ Суребет епца Сга1зе, Сгце) Ьоо1еап; Суребет цпзтрпед тпс вец пг: */ суребег зсгцсс Сцпзтйпед спаг басаЕмдх Ркт):) расхес: /" определение паке~а */ суребег епца Спаса. аск лак) /гаже хтпоп /* отпределение типа пакета */ /" ожидать события и вернут~ тип события в переменной ечепС */ чо!б ыатС Гог ечепс/ечепС Суре *ечепС).

/* получить пакет у сетевого уровня для передачи по каналу */ чотб Ггоа песыогй 1ауег(раскеС *р); /* передать информацию из полученного пакета сетевоиу уровню */ чотб Со песыогй 1ауег(расйеС *р): /* получить пришедший пакет у физического уровня и скопировать его в г */ чотб Ггоа рлузтса1 1ауег(/гаже *г); /* передать кадр физическому уровню для передачи */ чотд Со РПуз1са1 1ауег//гаже *з): /* запустить тайиер и разрешить собьпие с1аеоцс */ чотб всагс Стаег(вод пг Х): /* остановить тайнер и запретить событие Стаеоцс "/ чо10 асор С1аег(вец пг Х)г /* запустить вспомогательный таймер и разрешить событие аск Стаеоцс */ чотб всагС аск Стаег(чотб): /* остановить вспоиогательный таймер и запрети~ь событие асх стаеоцс */ чо1/1 асор асй СтаегСчотб); /* Разрешить сетевоиу уровню инициировать событие петыогй 1ауег геабу */ чо1б епаб)е пебиогк )ауеггчотб); /* запРетить сетевоиу уровню инициировать событие песыогк 1ауег геабу */ чотб бтзаб)е песыогй 1ауег/чотб); /* иакрос тпс развертывается прямо в строке: циклически увеличить переиенную Х */ ябв/1ПЕ тПСГК) 1/ Гк < МАХ ОЕО) К = Х ч 1: Е1ЗЕ Х = 0 Суреает зтгцсС 1 */ /гаже Хтпд К1пб: зец пг зец: зец пг асй; раскеС тпго: ) /гаже.

/* тип Ьоо1еап */ /* порядковые ноиера кадров или подтвеождений /" данный уровень занимается транспорткровкой кадров /* тип надра */ /* порядновый ноиео */ /* попер подтверждения */ /* пакет сетевого уровня */ Элементарные протоколы передачи данных 246 Объявления в листинге 3.1 являются частью всех последующих протоколов. для экономии места и удобства ссылок они были извлечены и собраны вместе, но, по идее, они должны быть объединены с протоколами. В языке С такое объединение производится с помощью директивы препроцессора тгт пс1цде с указанием ссылки на файл ргогасобй, в котором помещаются данные определения. Неограниченный симплексный протокол В качестве первого примера мы рассмотрим самый простой протокол.

Данные передаются только в одном направлении. Сетевой уровень на передающей и приемной сторонах находится в состоянии постоянной готовности. Временем обработки можно пренебречь. Размер буфера неограничен. И что лучше всего, канал связи между уровнями передачи данных никогда не теряет и не искажает кадры. Этот совершенно нереальный протокол, которьш мы назовем «утопия», показан в листинге 3.2. Протокол состоит пз двух процедур, зепбег (отправтгтель) и сосет уег (получатель). Процедура вепбег работает на уровне передачи данных посылающей машины, а процедура гесш уег — на уровне передачи данных принимающей машины.

Ни последовательные номера, ни подтверждения не используются, поэтому МАХ БЕО не требуется. Единственным возможным событием является бгаюе вггт хат. (то есть прибытие неповрежденного кадра). Процедура вепбег представляет собой бесконечный цикл, начинаютцийся с оператора нлт1е, посылающий данные на линию с максимально возможной скоростью. Тело цикла состоит из трех действий; получения пакета (всегда обязательное) с сетевого уровня, формирования исходящего пакета с помощью переменной з и отсылки пакета адресату.

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

Наконец, порция данных передается сетевому уровню, а уровень передачи данных отправляется ждать следующий кадр. Листинг 3.2. Неограниченный симплексный протокол (* Протокол 1 (утопия) обеспечивает толька одностороннюю передачу данных — от отправителя к получателю. Предполагается, что в канале связи нет ошибок и что получатель способен игновенно обрабатывать получаеине данные. Соответственно. отправитель в цикле передает данные нв линию с иаксииагжно доступной для него скоростью.

Характеристики

Тип файла
DJVU-файл
Размер
10,09 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее