3. DHCP-запрос. Новый клиент выбирает одно из полученных им предложений от серверов и отвечает на выбранное им предложение DHCP-запросом, повторяя в нем конфигурационные параметры.
4. DHCP-подтверждение. Сервер отвечает на DHCP-запрос DHCP-подтверждением, подтверждая запрашиваемые параметры.
Как только клиент получает DHCP-подтверждение, диалог клиента и сервера завершается, и клиент может использовать выделенный ему протоколом DHCP IP-адрес в течение срока аренды. Поскольку клиенту адрес может требоваться дольше, протокол DHCP также предоставляет механизм для продления срока аренды.
Простой пример диалога клиента и сервера для конфигурации сети, изображенной на рис. 10.13, показан на рис. 10.14.

Рис. 10.14 Диалог DHCP-клиента и DHCP-сервера
Значение протокола DHCP для поддержки функции самонастройки должно быть очевидно. Представим себе студента, переходящего со своим лэптопом из класса в библиотеку, а оттуда — в свою комнату в общежитии. В каждом помещении он подключается к новой сети и таким образом каждый раз получает новый IP-адрес.
Трудно себе представить ситуацию, в которой при каждом подключении лэптопа настройка его IP-адреса и других параметров выполнялась бы вручную системным администратором. Кроме того, мало кто из студентов (кроме посещающих занятия по компьютерным сетям) обладает достаточной квалификацией для подобной настройки. Однако с точки зрения мобильности у протокола DHCP есть несколько недостатков. Поскольку каждый раз, когда узел соединяется с новой сетью, ему предоставляется протоколом DHCP новый сетевой адрес, невозможно поддерживать соединение с удаленным приложением в то время, когда мобильный узел перемещается между сетями.
9. Трансляторы сетевых адресов
Итак, теперь мы знаем, что у каждого устройства, поддерживающего протокол IP, Должен быть IP-адрес. С распространением небольших и домашних офисов это бы означало, что каждый раз, когда в таком офисе возникает необходимость установить локальную сеть или соединить друг с другом несколько машин, поставщику услуг Интернета пришлось бы выделять блок адресов для всех машин маленького офиса. В случае роста сети (например, у детей в доме помимо настольных персональных компьютеров появились карманные компьютеры, телефоны с поддержкой протокола IP или сетевые игровые приставки) такому офису нужно было бы выделить блок адресов большего размера. А что, если Интернет-провайдер уже распределил все соседние участки адресного пространства? И что нужно знать об управлении IP-адресами типичному домовладельцу? К счастью, существует более простой метод выделения адресов, нашедший широкое применение в подобных ситуациях. Этим методом является (RFC 2663, RFC 3022) так называемая трансляция сетевых адресов (Network Address Translation, NAT).
Рисунок 10.15 иллюстрирует работу маршрутизатора, поддерживающего трансляцию сетевых адресов (NAT-маршрутизатора). У этого маршрутизатора есть интерфейс, представляющий собой часть домашней сети (на правой стороне рисунка). Адресация в пределах домашней сети полностью аналогична тому, что мы уже видели — у всех четырех интерфейсов домашней сети один и тот же сетевой адрес 10.0.0/24. От обсуждавшейся выше ситуации данный пример отличается взаимоотношением между домашним маршрутизатором и Интернет-провайдером. На NAT-маршрутизаторе не работает протокол внутренней маршрутизации для связи с маршрутизатором Интернет-провайдера. В самом деле, для внешнего мира NAT-маршрутизатор выглядит как единое устройство с одним IP-адресом — весь трафик, исходящий из домашнего маршрутизатора в Интернет, помечается IP-адресом отправи, а весь прибывающий из Интернета трафик должен иметь IP-адрес получаТаким образом, NAT-маршрутизатор скрывает от внешнего мира детали домашней сети. (Обычно маршрутизатор получает свой адрес у DHCP-сервера Интернет-провайдера и сам выступает в роли DHCP-сервера для компьютеров своей домашней сети.)

Рис. 10.15 Трансляция сетевых адресов
Теперь вам, вероятно, непонятно, как маршрутизатор определяет, кому предназначается прибывшая из Интернета дейтаграмма, если все дейтаграммы маркируются одним и тем же IP-адресом получателя. Дело в том, что маршрутизатор различает прибывающие дейтаграммы по номерам портов, которые с помощью таблицы трансляции адресов (NAT-таблицы) преобразуются во внутренние адреса и номера портов.
Вернемся к примеру на рисунке. Предположим, пользователь, сидящий за хостом 10.0.0.1, запрашивает web-страницу с некоторого web-сервера (порт 80) с IP-адресом 128.119.40.186. Хост выбирает себе произвольный номер порта отправии отправляет дейтаграмму в локальную сеть. NAT-маршрутизатор получает дейтаграмму, генерирует новый номер порта 5001, которым заменяет оригинальный номер порта, а IP-адрес отправителя заменяет своим IP-адресом 138.76.29.7.
Генерируя новый номер порта, NAT-маршрутизатор может выбирать любое число, которого нет в NAT-таблице. (Обратите внимание, что поле номера порта состоит из 16 бит, поэтому протокол NAT может поддерживать более 60 000 одновременных соединений с единственным IP-адресом маршрутизатора!) Web-сервер, не имея представления о том, что полученная им дейтаграмма с HTTP-запросом была обработана NAT-маршрутизатором, отвечает дейтаграммой, в поле адреса получателя которой указан IP-адрес NAT-маршрутизатора, а в поле номера порта— порт 5001. Получив эту дейтаграмму, NAT-маршрутизатор по указанным в дейтаграмме IP-адресу получателя и номеру порта находит в NAT-таблице соответствующий IP-адрес (10.0.0.1) и номер порта (3345) браузера домашней сети. Затем маршрутизатор заменяет оба этих поля найденными в таблице и переправляет дейтаграмму в домашнюю сеть.
В последние годы трансляция сетевых адресов получила широкое распространение. Но мы должны сказать, что многие члены IETF громко возражают против этого метода. Во-первых, заявляют они, номера портов предназначались для адресации процессов, а не хостов. Это нарушение в самом деле может стать причиной проблем для серверов, обслуживающих домашние сети, так как (см. главу 2) сервер ждет входящие обращения к так называемым хорошо известным номерам портов.
Во-вторых, говорят они, маршрутизаторы должны обрабатывать пакеты только до уровня 3. В-третьих, протокол NAT противоречит так называемому «сквозному аргументу», заключающемся в том, что хосты должны взаимодействовать друг с другом напрямую, без вмешательства узлов, изменяющих IP-адреса и номера портов. И в-четвертых, для решения проблемы нехватки IP-адресов мы должны использовать протокол IPv6 (см. раздел «Протокол IPv6»), а не применять всяческие временные «жучки» и «затычки» вроде трансляции сетевых адресов. Тем не менее, нравится вам это или нет, трансляция сетевых адресов уже стала важной составляющей Интернета.
9. Резюме
В этой главе мы также познакомились с другой проблемой масштабирования. В больших компьютерных сетях маршрутизатору может потребоваться одновременно обрабатывать миллионы потоков пакетов между различными парами отправитель-получатель. За годы работы разработчики ; сетей пришли к важному выводу: чтобы маршрутизатор мог обрабатывать такое большое количество потоков, функции маршрутизатора должна быть максимально простыми. Для упрощения работы маршрутизатора доступны разные методы, включая использование вместо виртуальных каналов дейтаграмм на сетевом уровне, применение упрощенного заголовка фиксированной длины, устранения фрагментации, предоставление минимального обслуживания (обслуживание по остаточному принципу). Возможно, наиболее важный принцип здесь заключается в том, чтобы не отслеживать отдельные потоки, а принимать решения о выборе маршрутов исключительно на базе иерархически структурированных адресов получателей, указанных в пакетах. Интересно отметить, что почтовая служба применяла подобный принцип на протяжении многих лет.
10. Вопросы для самоконтроля.
1. Перечислите основные компоненты Интернета?
2. Что представляет собой IP-адрес?
3. Что представляет собой стандарт CIDR (Classless Inter-Domain Routing— бесклассовая внутридоменная маршрутизация)
4. Кто предоставляет IP-адреса организациям?
5. Как выделяется IP-адрес хостам?
6. Перечислите основные поля IP-дейтаграмм?
7. Что такое фрагментация дейтаграмм?
8. Какой протокол используется хостами для обмена информацией сетевого уровня друг с другом?
9. Какой протокол используется для назначения хостам IP-адресов в динамическом режиме?
11. Тесты для самоконтроля знаний.
1. Что такое ARPANET? Выберите один из вариантов ответа:
a) набор сетей Ральфа Крамдсна;
b) сеть, созданная агентством DARPA;
c) протокол транспортного уровня;
d) сеть с протоколом, не ориентированным на соединение.
2. Какой из протоколов набора TCP/IP является протоколом транспортного уровня, не ориентированным на соединение? Выберите один из следующих вариантов ответа:
a) TCP;
b) UDP;
c)IP;
d) SNMP.
3. TCP/IP:
a) используется только в локальных сетях;
b) применяется только на компьютерах IBM PC;
c) располагается на общественном домене;
d) разработан доктором Изернетом.
4. Какая организация определяет часть 1Р-адреса, идентифицирующую сеть? Выберите один из предложенных вариантовответа:
a) NetCen;
b) NetworkCenter;
c) Nicnet;
d) ICANN.
5. Кем обычно задается часть IP-адреса, идентифицирующая хост? Выберите один из вариантов ответа:
a) ТСР/1Р-координатором;
b) ICANN;
c) администратором локальной сети;
d) администратором баз данных.
6. Наибольшее количество хостов в локальной сети позволяют определять адреса:
a) класса А;
b) класса В;
c) класса С;
d) класса D.
7. Какому классу принадлежит 1Р-адрес 198.78.41.0? Выберите один из вариантов ответа:
a) классу А;
b) классу В;
c) классу С;
d) классу D.
8. Маска подсети 255.255.255.192:
a) увеличивает часть IP-адреса, определяющую сеть, на 16 бит;
b) увеличивает часть IP-адреса, определяющую сеть, на 26 бит;
c) увеличивает часть IP-адреса, определяющую сеть, на 36 бит,
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |


