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

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

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

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

Листинг 6.1. Программы использования аскетов для клиента и сервера /* На втой странице содержится клиентская програииа, запрашивающая файл у серверной прогрвнны, расположенной на следующей странице. */ /* Сервер в ответ на запрос высылает файл.*/ 4(тпс!цбе <зуз/бурев.п> Фтпс!цбе <зуз/зосиет.п> Ф)пс1цбе <пег!лет/тп.П> Ф1пс!цбе <петПЬ.П> Нет!пе 5ЕКНЕК РОКТ !2345 /* По договоренности иежду клиентои и серверои */ 4(бет1пе ВОГ 5!7Е 409б /* Разиер передаваеных блоков */ тп! швтп((пт агдс. спвг *агдч) [ !пт с,з.Ьутез; спвг ьцг[ВОГ 517е]: /*буфер для входящего файла */ зтгисс Поз(ей! *П; /*информация о сервере */ вггцст зоскаббг тп спвппе1; /*хранит !Р=адрес */ (т (агдс)-3) Гаса)("Для запуска введите: клиент иия сервера иия файла" ); П - дебпоз(Ьупаще(агдч[Ц ); /* поиск 1Р-адреса хоста */ тт()П) Га(а1("Ошибка выполнения дегпов!Ьупвше") з - зосиет(РГ !НЕТ, 5ОСК 5ТКЕРН.

1РРКОТО ТСР); тт (з<0) Га(аТ("Сонет"): вешает(дспаппе1, О. зттеоцспаппе1)); спаппе1.зтп Тают)у-РГ !НЕТ; шещсру(дсПайпе1.зтп айбг.з аббг,П>П аббг,П>П 1епд(П); сцаппе1.зтп рог(=птопз(5ЕКЙЕК РОКТ): с - соппесь(з.(з(гцст зосиаббг *) всцаппе1. з(теог(спаппе))); тт (с<0) Гага!("Ошибка соединения"): /* Соединение установлено. Посылается имя файла с нулевым байтои на конце */ ыгттбеиз, агдч[2], з[г1еп(агдч[2])+!); /* Получить файл. записать на стандартное устройство вывода */ 662 Глава 8.

Транспортный уровень юП!1е (1) ( Ьутез - геаб(з, Ьцг, ВОГ 517Е); !т Сбутез <- 0) ех!1(О); ыг!Ье(1. Ьцт. Ьуьез); /* Читать из сокета */ /* Проверка конца файла */ /* Записать на стандартное устройство вывода */ ГаСа1(сПаг *зтг!п9) ( рг!ПЬТ( взтп". 5тг!ПО)' ех!Ь(1); ) /* Код про/рампы для сервера */ ((!пс1цбе <зуз/Сурез.п> ф!Пс)цбе <зуз/Тспт).П> Ф!Пс1цбе «зуз/зосхеС.П> ш!пс1цбе <лет!лет/тп.п> (/!пс1цбе <пеббЬ.П> !п( ша!п(!Пс аг9с.

спаг *агОУЕ)): ( !пс з, Ь. 1, Тб. за. Ьутез. оп - 1: сбаг Ьцг[ВОГ 517Е); /* буфер для исходящего файла */ зтгцсс зосйаббг !и сПаппе1: /* содержит !Р-адрес */ /* Создать структуру адреса для привязки к сокету */ шаваев(аспаппе1, О, зтзеог(спаппе1)); /* Нулевой канал */ спаппе1.зтп Ташт1у - АГ 1ИЕТ: сцаппе).з1п асбг.з абог = Птоп)(1ИАООЙ АИУ); сПаппе1.5тп рогт - Птопз(5ЕКУЕЙ РОКТ); /* Пассивный режии. Ожидание соединения */ з - зосйет(АГ 1ИЕТ, 50СК 5ТКЕАМ, 1РРКОТО ТСР); /* создать сокет */ тТ (з<0) тасаТ("ошибка сокета"): зевзоскорт(з, БОБ 5ОСКЕТ.

50 ЙЕОБЕАООЙ. (спаг *) Воп. з!герт(оп)); Ь = Ь!Пб(з, (зтгцст зосхаббг *) асбаппе1, з!геоТ(спаппе1)); !т (Ь<0) Тата1("Ошибка связывания" ); 1 - 1!зтеп(з, ООЕОЕ 517Е); /* Определение размера очереди */ !Т (1<0) тата)("Ошибка ожидания"): /* Теперь сокет установлен и связан. Ожидание и обработка соединения */ ыП11е (1) ( за - ассерв(з. О, О): /* Блокировать обработку запроса */ !Т (за<0) таса1("Ошибка доступа"); геаб(за, Ьцг. ВОГ 517Е); /* считать иия файла из сокета */ /* Получить и вернуть файл */ гц - орел(ьцт. 0 ЙООиеу): /" Открыть файл для отсылки */ Убег!пе 5ЕЙУЕЙ РОЙТ 17345 /* По договоренности между клиентом и серверои */ (/бег!пе ВОГ 517Е 4096 /* Разиер передаваеиых блоков */ обет!пе ПОБОЕ 517Е 10 Элементы транспортных протоколов 663 !т (/б < О) тата)("Ошибка открытия файла" ); иЫ)е (1) ( Ьугев - геаб(/б.

Ьц/, ВОР 51ЛЕ); )т (Ьувев <- О) Ьгеах: ыг((е(ва, Ьц/, в/вез): ) с)озе(тб); с)ове(ва); /* Читать из файла */ /* Проверка конца файла */ /* Записать байты в сокет */ /* Закрыть файл */ /* Разорвать соединение */ ) ) Кстати говоря, такой сервер построен далеко не по последнему слову техники. Осуществляемая проверка ошибок минимальна, а сообщения об ошибках реализованы весьма посредственно. Понятно, что ни о какой защите информации здесь говорить не приходится, а применение аскетичных системных вызовов (Ль(1Х вЂ” зто не лучшее решение с точки зрения независимости от платформы, Делаются нскоторыс нскоррсктныс с тсхничсской точки зрения предположения, например, о том, что имя файла всегда поместится в буфер и будет передано без ошибок.

Система будет обладать низкой производительностью, поскольку все запросы обрабатываются только последовательно (используется один поток запросов). Несмотря на эти недостатки, с помощью данной программы можно организовать полноценный работающий файл-сервер для Интернета. Более подробную информацию можно найти в (Ыуепз, 1997), Элементы транспортных протоколов Подсеть Маршрутизатор Мвршрутизвто Хост квнвп связи в б рис. 6.4.

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

Это отличие оказьгвает важное влияние на протоколы. 664 Глава 6, Транспортный уровень Во-первых, на уровне передачи данных маршрутизатору не требуется указывать, с каким маршрутизатором он хочет поговорить, — каждая выходная линия однозначно определяет маршрутизатор, На транспортном уровне требуется явно указывать адрес получателя.

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

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

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

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

В сетях АТМ это точки доступа к службе АА1.-ВАР (Яегч1се Ассезз Ро!пг). Мы будем пользоваться нейтральным термином ТИАР (Тгапзрогг Бегч(се Ассезз Ро1пг— точка доступа к службам транспортного уровня). Аналогичные конечные точки сетевого уровня называются ХОР (Хегюогк Бегч1се Ассезз Ро1пг — точка доступа к сетевому сервису). Примерами ХБАР являются 1Р-адреса. Рисунок 6.5 иллюстрирует взаимоотношения между ХБАР, Т5АР и транспортным соединением. Прикладные процессы как клиента, так и сервера могут Элементы транспортных протоколов 566 связываться с ТИАР для установки соединения с удаленным Т8АР. Такие соединения проходят через ХЯАР на каждом хосте, как показано на рисунке. ТВАР нужны для того, чтобы различать конечные точки, совместно использующие М5АР, в сетях, где у каждого компьютера есть свой 1ч1ЯАР.

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

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

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

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