Понятие протокола, и связанные с ним понятия
Вид материала | Документы |
- Программа курса лекций, 33.31kb.
- А, а также связанные с этим сервисы, частично или полностью через пакетные сети, 211.32kb.
- Тема Основные понятия о правовых явлениях, 165.32kb.
- Контрольная работа по предмету «Логика», 57.32kb.
- Понятия налоги и налогообложение. Налоговая система понятие налога и сбора. Принципы, 2182.16kb.
- Задачи: Продолжить формирование понятия о внутренней среде и ее компонентах. Раскрыть, 161.91kb.
- Естественные науки 14 апреля с 10. 00 до 17., 82.95kb.
- Словари профессий, 47.56kb.
- Программа форума «служба протокола» день первый (02. 06. 2011г., четверг), 114.5kb.
- Программа форума «служба протокола» день первый (02. 06. 2011г., четверг), 107.69kb.
Адресация в IP-сетях
Виды адресов: Локальные (Физические, MAC) адреса, Сетевые адреса (IP), Символьные имена (DNS).
К адресам, используемым в сети Internet, как и в любой сложной по составу и структуре системе, предъявляется целый ряд требований, подчас взаимно исключающих.
Адреса должны однозначно идентифицировать объект, и быть уникальными в своем пространстве применения.
Адреса должны быть по возможности компактны.
Для целей маршрутизации адреса должны иметь иерархическую структуру, соответствующую логической структуре сети.
Адреса, поскольку они используются людьми, должны быть удобны для запоминания и нести смысловую нагрузку.
Все эти требования одновременно удовлетворить невозможно, но поскольку в разных случаях приоритетное значение приобретают различные требования, можно создать несколько взаимосвязанных, но различных систем адресации.
Это приводит к тому, что каждый компьютер в сети имеет, по крайней мере, три адреса, в трех системах адресации:
Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети – это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта – идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие как Х.25 или Frame Relay, локальный адрес назначается администратором глобальной сети.
IP-адрес, состоящий из 4 байт, например, 217.16.30.131. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами.
Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла – гибкое, и граница между этими полями может устанавливаться, в общем случае, почти произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.
Символьный идентификатор – имя, например, JKI.KIEV.COM.UA. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на прикладном уровне, например, в протоколах HTTP, FTP или telnet.
Для идентификации процессов, имеющих доступ к сетевым протоколам в пределах одного узла сети, используется система номеров протокола (protocol, IP) и порта (port, TCP/UDP).
Связь между стандартными протоколами и соответствующими номерами протокола и порта установлена рекомендацией RFC-1700 “ASSIGNED NUMBERS”. Для прочих процессов она может устанавливаться произвольно в зависимости от реализации.
Примеры назначений RFC1700
Protocol (всего определенно 100 значений)
0 Reserved
1 ICMP Internet Control Message [RFC792,JBP]
2 IGMP Internet Group Management [RFC1112,JBP]
3 GGP Gateway-to-Gateway [RFC823,MB]
4 IP IP in IP (encapsulation) 6 [JBP]
5 ST Stream [RFC1190,IEN119,JWF]
6 TCP Transmission Control [RFC793,JBP]
7 UCL UCL [PK]
8 EGP Exterior Gateway Protocol [RFC888,DLM1]
9 IGP any private interior gateway [JBP]
10 BBN-RCC-MON BBN RCC Monitoring [SGC]
11 NVP-II Network Voice Protocol [RFC741,SC3]
12 PUP PUP [PUP,XEROX]
13 ARGUS ARGUS [RWS4]
14 EMCON EMCON [BN7]
15 XNET Cross Net Debugger [IEN158,JFH2]
16 CHAOS Chaos [NC3]
17 UDP User Datagram [RFC768,JBP]
Port
0/tcp Reserved
0/udp Reserved
echo 7/tcp Echo
echo 7/udp Echo
ftp-data 20/tcp File Transfer [Default Data]
ftp-data 20/udp File Transfer [Default Data]
ftp 21/tcp File Transfer [Control]
ftp 21/udp File Transfer [Control]
telnet 23/tcp Telnet
telnet 23/udp Telnet
smtp 25/tcp Simple Mail Transfer
smtp 25/udp Simple Mail Transfer
Установление соответствия между адресами разных уровней, протоколы преобразования адресов.
Отображение символьных адресов на IP-адреса: служба DNS
DNS (Domain Name System) – это распределенная база данных, поддерживающая иерархическую систему имен для идентификации узлов в сети Internet. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Спецификация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена компьютеров в IP-адрес.
Протокол DNS является служебным протоколом прикладного уровня. Этот протокол несимметричен – в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Internet. Клиенты сервера DNS знают IP-адрес сервера DNS своего административного домена и по протоколу UDP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес.
Если данные о запрошенном соответствии хранятся в базе данного DNS-сервера, он сразу посылает ответ клиенту, если же нет – он посылает запрос DNS-серверу другого домена, который может сам обработать запрос, либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Internet. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется тем, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов, для повышения надежности своей работы.
База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена.
Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов должны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры (.uk,.ua,.ru), а для различных типов организаций используются следующие аббревиатуры:
.com - коммерческие организации (например, microsoft.com); .edu – образовательные (например, mit.edu); .gov - правительственные организации (например, nsf.gov); .org - некоммерческие организации (например, fidonet.org); .net – организации, поддерживающие сети (например, nsf.net).
Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уникальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Internet однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к корню. Пример полного DNS-имени: citint.dol.ru.
Отображение физических адресов на IP-адреса осуществляют протоколы ARP и RARP.
В протоколе IP адрес узла, то есть адрес компьютера или порта маршрутизатора, назначается произвольно администратором сети и прямо не связан с его локальным адресом. Существуют протоколы, в которых это не так, например, протокол IPX стека IPX/SPX (Novel) использует в качестве номера узла его физический (MAC) адрес. Платой за это становится большой размер адреса (IPX – 12 байт), и зависимость от локальной сетевой технологии. Протокол IPX и разрабатывался специально для локальных (в смысле LAN) сетей, использующих единый формат физического адреса, в то время как IP изначально разрабатывался для объединения разнородных сетей, различающихся, в том числе, форматами физических адресов. Подход, используемый в IP, удобно использовать в крупных сетях и по причине его независимости от формата локального адреса, и по причине стабильности, так как в противном случае, при смене на компьютере сетевого адаптера, это изменение должны бы были учитывать все адресаты всемирной сети Internet (в том случае, конечно, если сеть подключена к Internet'у). Существуют и протоколы, позволяющие автоматизировать процесс назначения IP-адресов, например DHCP (Dynamic Host Configuration Protocol). При этом реализована возможность динамического назначения адресов на определенное время (время аренды).
Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol, ARP. Протокол ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети – протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, Frame Relay), как правило, не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу – нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP – RARP (Reverse Address Resolution Protocol) и используется при старте станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP-запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP-запрос и сравнивают указанный в нем IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети.
Узел, отправляющий ARP-запрос, заполняет в пакете все поля, кроме поля искомого локального адреса (для RARP-запроса не указывается искомый IP-адрес). Значение этого поля заполняется узлом, опознавшим свой IP-адрес.
Важно отметить, что в случае, если искомый узел находится в другой логической сети, ARP-ответ будет содержать локальный адрес маршрутизатора, через который достижим этот адрес.
В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IP-адреса адресу узла сети X.25, который имеет смысл локального адреса. В последнее время наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенного маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости установления соответствия между IP-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора.
Таблицы соответствия адресов пополняются не только в результате ARP запросов. Ведь каждый IP-пакет приходящий на узел, содержит IP-адрес отправителя, и упакован в кадр локальной сети с соответствующим локальным адресом.
Виды IP-адресов и их интерпретация.
Как мы уже упоминали, в протоколе IP адрес узла включает в себя поля номера сети и номер узла в этой сети, причем граница между ними может смещаться. Опять-таки, во многих других протоколах сетевого уровня эти поля имеют фиксированную длину, например, в том же протоколе IPX поле номера сети – всегда 4 байта, а поле номера узла – всегда 6 байт. Подход IP более гибок, но создает проблему интерпретации адресов. Изначально для этих целей был задействован механизм классов адресов, при этом принадлежность к классу определялась первыми битами адреса. Мы уже вскользь упоминали эту систему при рассмотрении протокола IP.
Форматы классовой адресации
старшие биты | Формат | Наименьший адрес сети | Наибольший адрес сети | Класс |
0 | 7 бит сеть, 24 бита хост | 01.0.0.0 | 126.0.0.0 | А |
10 | 14 бит сеть, 16 бит хост | 128.0.0.0 | 191.255.0.0 | В |
110 | 21 бит сеть, 8 бит хост | 192.0.1.0 | 223.255.255.0 | С |
111 | Расширенный режим адресации. | | | |
1110 | Адрес группы multicast | 224.0.0.0 | 239.255.255.255 | D |
11110 | Не используется | 240.0.0.0 | 247.255.255.255 | E |
Расширенные адреса никогда не присваиваются отдельным узлам. На сегодняшний день определен только один класс расширенных адресов D – multicast. Адреса групп multicast не содержат номера сети и узла и обрабатываются особым способом. Группы рассылки создаются по инициативе одного узла при посредстве протокола IGMP (Internet Group Management Protocol). Их использование (если группы не ограничиваются одной локальной сетью) требует модификации протоколов маршрутизации. Тем не менее, это единственное средство обращения за пределы сети по типу «один к многим».
Некоторые адреса интерпретируются особым образом:
0.0.0.0. – узел, породивший данный пакет. Только в поле адреса отправителя.
<0>
<-1><-1> – циркулярно ко всем узлам той же сети, к которой принадлежит отправитель ( Limited broadcast).
Вообще, поле, заполненное нулями, традиционно интерпретируется как «это» (этот узел, эта сеть), а заполненное единицами – как «всем».
127. <не 0 и не -1> – тест ПО без выхода в реальную сеть (loopback).
Наконец, существует набор адресов, которые исключены из централизованного распределения в Internet, и предназначены для использования в корпоративных сетях. Он включает в себя одну сеть класса A – 10.X.X.X, 16 сетей класса B – 172.16.X.X172.31.X.X и 256 сетей класса C – 192.168.0.X192.168.255.X. В классе D(multicast) для использования исключительно в корпоративных сетях выделен диапазон адресов 239.X.X.X.
Подсети
Система классов IP-адресов, хотя и достаточно гибкая, на определенном уровне перестала удовлетворять пользователей по следующим причинам:
Сети, заслуженно пользующиеся адресами классов A и B, и включающие в себя тысячи, десятки тысяч и более узлов, очевидно, сами имеют иерархическую структуру, но адрес ее явно не отражает.
Сети класса C и в самом деле могут быть логически однородными, но теперь нас лимитирует общее число возможных IP-адресов. Если сеть класса C максимально может включать до 254 узлов (номера узлов 0 и 255, как мы помним, имеют особый смысл), а реально включает, например, 20, остальные 234 адреса окажутся потерянными для сети. А ведь минимальным числом узлов в сети является 2 – например, для канала точка-точка, соединяющего два маршрутизатора7.
Между тем число пользователей, и соответственно, компьютеров, подключенных к сети Internet (до 350 млн), уже сравнимо с максимальным количеством возможных IP-адресов (около 3,5 млрд, учитывая что 0,5 млрд адресов расширенной адресации не присваиваются узлам, а есть еще и 0 и –1, интерпретируемые особо).
В этих условиях рациональное использование адресного пространства становится насущной необходимостью. Выход был найден введением дополнительного структурирования IP-адреса:
Этот режим гибких адресов описан в RFC-950 Internet Standard Subnetting Procedure.
Подсети при этом физически остаются отдельными сетями, и требуют своих маршрутизаторов. Чтобы не нарушать уже назначенные адреса, допускается деление адреса узла на подсеть и узел не только смежными группами бит.
К подсетям применимы широковещательные обращения <0><0><-1> и
Проблема заключается в том, что теперь узел или маршрутизатор не знает, как интерпретировать адреса, поскольку поля подсети и узла могут начинаться где угодно.
Для разрешения этой проблемы были введены два новых сообщения протокола ICMP:
Address Mask Request (код 17) и Address Mask Reply (код 18). Данные типы сообщений описаны в документе RFC-950 "Internet Standard Subnetting Procedure".
Узел или маршрутизатор, который нуждается в получении маски подсети, отправляет сообщение 17 маршрутизатору, управляющему данной сетью.
Если узел не знает адреса маршрутизатора, он может отправить запрос широковещательно:
Source address: 36.40.0.123
Destination address: 255.255.255.255
Protocol: ICMP = 1
Type: Address Mask Request = 17
Code: 0
Mask: 0
Маршрутизатор отвечает ему
Source address: 36.40.0.62
Destination address: 36.40.0.123
Protocol: ICMP = 1
Type: Address Mask Reply = 18
Code: 0
Mask: 255.255.0.0
В полях, занимаемых номерами сети и подсети, теперь стоят единицы.
Важно отметить, что маски используются не только в случае работы с подсетями. С обычными адресами до введения Internet Standard Subnetting Procedure также использовались маски, чтобы определить, какая часть адреса должна интерпретироваться как номер сети. Однако эти маски были статичными, они определялись первыми битами адреса, и не изменялись. Теперь же маску надо запрашивать явно, поскольку она может быть, в общем случае, почти произвольной. Возможный вариант – маска –1 (все единицы) – означает, что данный узел адресуется особо, и заданный для него маршрут применим только к нему, и к остальным узлам той же логической сети следует обращаться иначе.
Изначально маски были внутренним средством маршрутизаторов, и использовались не только для разделения сетей на подсети, но и с обратной целью – объединения маршрутов к группе сетей, имеющей общий префикс. В самом деле, хранить два миллиона маршрутов ко всем возможным сетям класса C еще технически возможно, но просматривать таблицу такого объема при маршрутизации каждого пакета – это уже чересчур. Маршрутизатору удаленного офиса, связывающего небольшую сеть с Internet, допустим, достаточно знать, какие адреса относятся к своей сети (их передавать в большую сеть не надо), а все остальные направлять связанному с ним магистральному маршрутизатору. Но как быть магистральному маршрутизатору? Первоначально маски устанавливались вручную администратором, либо изменялись путем агрегирования маршрутов самим маршрутизатором. Обмен масками впервые был определен в 1985 году в выше упомянутом RFC-950, а протоколы обмена маршрутной информацией включают в свои сообщения маски примерно с начала 90-х годов (RIP-2, OSPF). В настоящее время все основные протоколы обмена маршрутной информацией поддерживают маски, и механизм классов для индивидуальных адресов узлов можно считать почти «вымершим».