Эндрю Уэзеролл - Компьютерные сети. 5-е издание
- Название:Компьютерные сети. 5-е издание
- Автор:
- Жанр:
- Издательство:Питер
- Год:2011
- ISBN:9785446100682
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Уэзеролл - Компьютерные сети. 5-е издание краткое содержание
Компьютерные сети. 5-е издание - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
44. Файловый сервер, моделируемый листингом 6.1, далек от совершенства. Можно внести некоторые улучшения. Проделайте следующие изменения:
1) Пусть у клиента появится третий аргумент, указывающий байтовый диапазон.
2) Добавьте флаг -w в программу клиента, который позволил бы записывать файл на сервер.
45. Почти все сетевые протоколы должны уметь работать с сообщениями. Если вы помните, протоколы передают сообщения путем добавления/отделения заголовков. Некоторые протоколы могут разбивать сообщение на несколько фрагментов, а потом восстанавливать его из этих фрагментов. Попробуйте разработать библиотеку управления сообщениями, реализовав поддержку создания нового сообщения, добавления/отделения заголовка, разбиения одного сообщения на два, объединения двух сообщений в одно и сохранения копии сообщения. Насколько это возможно, минимизируйте копирование данных из одного буфера в другой. Важно, чтобы эти операции работали только с указателями, не затрагивая данных, содержащихся в сообщении.
46. Разработайте и реализуйте систему сетевого общения (чат), рассчитанную на несколько групп пользователей. Координатор чата должен располагаться по общеизвестному сетевому адресу, использовать для связи с клиентами протокол UDP, настраивать чат-серверы перед каждой сессией общения и поддерживать каталог чат-сессий. На каждую сессию должен выделяться один обслуживающий сервер. Для связи с клиентами сервер должен использовать TCP. Клиентская программа должна позволять пользователям начинать разговор, присоединяться к уже ведущейся дискуссии и покидать сессию. Разработайте и реализуйте код координатора, сервера и клиента.
Глава 7
Прикладной уровень
Завершив изучение базовых сведений о компьютерных сетях, мы переходим к уровню, на котором расположены все приложения. Все уровни, находящиеся ниже прикладного, служат для обеспечения надежной доставки данных, но никаких полезных для пользователя действий не производят. В этой главе мы изучим некоторые реальные сетевые приложения.
Разумеется, даже прикладной уровень нуждается в обслуживающих протоколах, с помощью которых осуществляется функционирование приложений. Соответственно, прежде чем начать рассмотрение самих приложений, мы изучим один из таких протоколов. Речь идет о службе имен доменов, DNS, обеспечивающей присвоение имен в Интернете. Затем мы рассмотрим три реально действующих приложения: электронную почту, Всемирную паутину и, наконец, мультимедиа. Мы закончим эту главу рассказом о доставке контента, в том числе и в равноранговых (пиринговых — peer-to-peer или сокращенно р2р) сетях.
7.1. Служба имен доменов DNS
Хотя программы теоретически могут обращаться к веб-страницам, почтовым ящикам и другим ресурсам по сетевым адресам компьютеров (например, IP), на которых хранится данная информация, пользователям тяжело запоминать такие адреса. Кроме того, размещение веб-страницы компании по адресу 128.111.24.41 будет означать, что в случае переезда сервера компании на новую машину новый IP будет необходимо сообщить всем заинтересованным лицам. Для отделения имен машин от их адресов было решено использовать понятные имена высокого уровня. Поэтому обратиться к веб-серверу компании можно по адресу www.cs.washington.edu. Тем не менее, так как сеть сама по себе понимает только числовые адреса, нужен механизм преобразования имен в сетевые адреса. В следующих разделах мы изучим, как производится это отображение в Интернете.
Когда-то давно во времена сети ARPANET соответствие между текстовыми и числовыми адресами просто записывалось в файле hosts.txt, в котором перечислялись все имена компьютеров и их IP-адреса. Каждую ночь все хосты получали этот файл с сайта, на котором он хранился. В сети, состоящей из нескольких сотен больших машин, работающих под управлением системы с разделением времени, такой подход оправдывал себя.
Однако еще за долго до того, как к сети были подключены миллионы компьютеров, всем стало ясно, что этот способ не сможет работать вечно. Во-первых, размер файла рано или поздно стал бы слишком большим. Однако, что еще важнее, если управление именами хостов не осуществлять централизованно, неизбежно возникновение конфликтов имен. В то же время представить себе централизованное управление именами всех хостов гигантской международной сети довольно сложно. Для разрешения всех этих проблем в 1983 году и была разработана служба имен доменов( DNS, Domain Name System). С тех пор она стала важнейшей частью Интернета.
Суть системы DNS заключается в иерархической схеме имен, основанной на доменах, и распределенной базе данных, реализующей эту схему имен. В первую очередь эта система используется для преобразования имен хостов в IP-адреса, но также может использоваться и в иных целях. Определение системы DNS дано в RFC 1034, 1035, 2181 и далее разработано во многих других.
В общих чертах система DNS применяется следующим образом. Для преобразования имени в IP-адрес прикладная программа обращается к библиотечной процедуре, называющейся распознавателем( resolver), передавая ей имя в качестве параметра. Мы видели пример распознавателя gethostbyname в листинге 6.1. Распознаватель посылает запрос, содержащий имя, локальному DNS-серверу, который ищет имя и возвращает соответствующий IP-адрес распознавателю, который, в свою очередь, передает этот адрес вызвавшей его прикладной программе. Запрос и ответ передаются как UDP-пакеты. Имея IP-адрес, программа может установить TCP-соединение с адресатом или послать ему UDP-пакеты.
7.1.1. Пространство имен DNS
Управление большим и постоянно изменяющимся набором имен представляет собой нетривиальную задачу. В почтовой системе на письмах требуется указывать (явно или неявно) страну, штат или область, город, улицу, номер дома, квартиру и фамилию получателя. Благодаря использованию такой иерархической схемы не возникает путаницы между Марвином Андерсоном, живущим на Мейн-стрит в Уайт-Плейнс, штат Нью-Йорк, и Марвином Андерсоном с Мейн-стрит в Остине, штат Техас. Система DNS работает аналогично.
Для Интернета основа иерархии именования разработана организацией под названием ICANN( Internet Corporation for Assigned Names and Numbers — интернет-корпорация по присвоению имен и адресов). ICANN была создана для этих целей в 1998 году, так как Интернет развился во всемирный экономический концерн. Интернет концептуально разделен на более чем 250 доменов верхнего уровня( top-level domains). Доменами называют в Интернете множество хостов, объединенных в логическую группу. Каждый домен верхнего уровня подразделяется на поддомены (subdomains), которые, в свою очередь, также могут состоять из других доменов и т. д. Все эти домены можно рассматривать в виде дерева, показанного на рис. 7.1. Листьями дерева являются домены, не разделяющиеся на поддомены (но состоящие из хостов, конечно). Такой конечный домен может состоять из одного хоста или может представлять компанию и содержать в себе тысячи хостов.
Читать дальшеИнтервал:
Закладка: