Главная » Просмотр файлов » Э. Таненбаум, Д. Уэзеролл - Компьютерные сети

Э. Таненбаум, Д. Уэзеролл - Компьютерные сети (1114668), страница 17

Файл №1114668 Э. Таненбаум, Д. Уэзеролл - Компьютерные сети (Э. Таненбаум, Д. Уэзеролл - Компьютерные сети) 17 страницаЭ. Таненбаум, Д. Уэзеролл - Компьютерные сети (1114668) страница 172019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Ониприводят к возникновению системных прерываний в привилегированном режиме,в результате чего управление машиной передается операционной системе, котораяи отсылает нужные пакеты.Набор доступных примитивов зависит от природы сервиса. Скажем, примитивысервисов с установлением соединения и без него различаются. В табл. 1.3 приведен минимальный набор примитивов, обеспечивающий надежную передачу битового потока­54   Глава 1.

Введениев среде типа «клиент-сервер». Они будут знакомы поклонникам сокет-интерфейсаБеркли, поскольку примитивы — упрощенная версия этого интерфейса.Таблица 1.3. Шесть сервисных примитивов, обеспечивающих простую передачус установлением соединенияПримитивЗначениеLISTEN (ожидание)Блокировка, ожидание входящего соединенияCONNECT (соединение)Установка соединения с ожидающим объектом того же рангаACCEPT (прием)Прием входящего соединения от объекта того же рангаRECEIVE (прием)Блокировка, ожидание входящего сообщенияSEND (отправка)Отправка сообщения ожидающему объекту того же рангаDISCONNECT (разрыв)Разрыв соединенияЭти примитивы могут использоваться для взаимодействия запрос-ответ в средеклиент-сервер.

Чтобы проиллюстрировать, как это происходит, мы покажем набросок простого протокола, который осуществляет службу, используя общепризнанныедейтаграммы.Вначале сервер исполняет ����������������������������������������������������LISTEN����������������������������������������������, показывая тем самым, что он готов устанавливать входящие соединения. Этот примитив обычно реализуется в виде блокирующегосистемного вызова. После его исполнения процесс сервера приостанавливается до техпор, пока не будет установлено соединение.Затем процесс клиента выполняет примитив CONNECT, устанавливая соединениес сервером.

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

Затем процесс сервера может установить соединение с помощью ACCEPT. Он посылаетответ (2) назад к процессу клиента, чтобы принять соединение. Прибытие этого ответа освобождает клиента. Начиная с этого момента считается, что сервер и клиентустановили соединение.Самым очевидным жизненным примером такого взаимодействия может служитьзвонок покупателя (клиента) в сервисный центр компании. Менеджер сервисногоцентра должен находиться у телефона, чтобы иметь возможность ответить на звонок.Клиент совершает звонок. Когда менеджер поднимает трубку, считается, что соединение установлено.Следующим шагом будет выполнение сервером примитива RECEIVE, подгота­вливающего систему к принятию первого запроса.

В нормальной ситуации это происходит сразу же после прекращения ожидания (LISTEN), даже до того, как клиентполучает подтверждение соединения. Системный вызов RECEIVE вновь блокируетсервер.1.3. Сетевое программное обеспечение  55Рис. 1.15. Простейшее взаимодействие клиента и сервера с использованиемобщепризнанных дейтаграммКлиент выполняет SEND��������������������������������������������������������������������������������������������������������������������, передает запрос (3) и сразу же выполняет �������������RECEIVE������, ожидая ответ. Прием пакета с запросом разблокирует сервер, благодаря чему он может обработать запрос. По окончании обработки сервер выполняет примитив �����������������SEND�������������, и ответ отсылается клиенту (4).

Прием пакета разблокирует клиента, теперь наступает его очередьобрабатывать пакет. Если у клиента есть еще запросы к серверу, он может отослать их.Когда запросы клиента окончены, он осуществляет разрыв соединения с помощьюDISCONNECT�������������������������������������������������������������. Обычно первый примитив DISCONNECT��������������������������������������������������������������отсылает пакет, уведомляющий сервер об окончании сеанса, и блокирует клиента (5). В ответ сервер генерируетсвой примитив DISCONNECT, являющийся подтверждением для клиента и командой,разрывающей связь. Клиент, получив его, разблокируется, и соединение считаетсяокончательно разорванным.

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

Но стоит представить себе передачу большогосообщения (скажем, мегабайтного файла), причем в обе стороны, причем с ошибкамипри передаче, потерянными пакетами и т. д., как ситуация меняется. Если ответ сервера состоит из нескольких сотен пакетов, парочка из которых затерялась по пути,то как клиент узнает, что он получил сообщение не в полном объеме? Как он узнаето том, что последний принятый пакет является действительно последним? Допустим,клиент запросил второй файл. Как он отличит пакет 1 из второго файла от потерянногопакета 1 из первого файла, который вдруг нашелся? Короче говоря, в реальном мирепростой протокол запросов-ответов без подтверждений часто не подходит. В главе 356   Глава 1. Введениемы обсудим протоколы, позволяющие решать самые разные проблемы, возникающиепри передаче данных. А сейчас поверьте на слово: наличие надежной связи с упорядоченным байтовым потоком между процессами — это удобно.1.3.5.

Службы и протоколыСлужбы и протоколы являются различными понятиями. Различие между ними стольважно, что мы хотели бы еще раз обратить на него ваше внимание. Служба (илисервис)����������������������������������������������������������������������� ����������������������������������������������������������������������— это набор примитивов (операций), которые более низкий уровень предоставляет более высокому. Служба определяет, какие именно операции уровень будетвыполнять от лица своих пользователей, но никак не оговаривает, как должны реализовываться эти операции. Служба описывает интерфейс между двумя уровнями, в котором нижний уровень является поставщиком сервиса, а верхний — его потребителем.Напротив, протокол — это набор правил, описывающих формат и назначение кадров, пакетов или сообщений, которыми обмениваются объекты одного ранга внутриуровня.

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

Это показано на рис. 1.16. Оченьважно не путать эти два понятия.Стоит провести аналогию с языками программирования. Службу можно уподобитьабстрактному типу данных или объекту в объектно-ориентированных языках программирования. Он определяет операции, которые могут выполняться с объектом,но не описывает, как реализованы эти операции. В этом случае протокол, напротив,относится к реализации службы и, таким образом, невидим для пользователей службы.Рис. 1.16. Связь между службой и протоколомВо многих старых системах служба не отделялась от протокола. В результате типичный уровень мог содержать примитив службы SEND PACKET, в котором пользовательдолжен был указать ссылку на полностью собранный пакет. Это означало, что любыеизменения протокола тут же становились видимыми для пользователей. Большинство разработчиков сетей сегодня считают подобный подход серьезнейшей ошибкой.1.4.

Эталонные модели  571.4. Эталонные моделиОбсудив многоуровневые сети в общих чертах, пора рассмотреть несколько примеров.Мы опишем два важных архитектурных типа — эталонные модели OSI и TCP/IP.Несмотря на то что протоколы, связанные с эталонной моделью OSI, сейчас не ис­пользуются, сама модель до сих пор весьма актуальна, а свойства ее уровней, которыебудут обсуждаться в этом разделе, очень важны.

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

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

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

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