Соединения. Для организации надежной передачи данных предусматривается установление ло-гического соединения между двумя прикладными процессами

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

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

В рамках соединения осуществляется обязательное подтверждение правильно­сти приема для всех переданных сообщений и при необходимости выполняется повторная передача. Соединение в TCP позволяет вести передачу данных одновре­менно в обе стороны, то есть полнодуплексную передачу.

8.3. Протокол DHCP. Автоматизация назначения IP-адресов

Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора утомительную процедуру. Протокол Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов.

DHCP может поддерживать способ автоматического динамического распределения адресов, а также более простые способы ручного и автоматического статического назначения адресов. Протокол DHCP работает в соответствии с моделью клиент-сервер. Во время старта системы компьютер, являющийся DHCP-клиентом, посылает в сеть широковещательный запрос на получение IP-адреса. DHCP-cep-вер откликается и посылает сообщение-ответ, содержащее IP-адрес. Предполагает­ся, что DHCP-клиент и DHCP-сервер находятся в одной IP-сети.

При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды (lease duration), что дает возможность впоследствии повторно использовать этот IP-адрес для назначения другому компьютеру. Основное преимущество DHCP — автоматизация рутинной работы администратора по конфигурированию стека TCP/IP на каждом компьютере. Иногда динамическое разделение адресов позволяет строить IP-сеть, количество узлов в ко­торой превышает количество имеющихся в распоряжении администратора IP-адресов.

DHCP обеспечивает надежный и простой способ конфигурации сети TCP/IP, гарантируя отсутствие дублирования адресов за счет централизованного управле­ния их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжительность аренды», которая определяет, как дол­го компьютер может использовать назначенный IP-адрес, перед тем как снова за­просить его от DHCP-сервера в аренду.

Примером работы протокола DHCP может служить ситуация, когда компью­тер, являющийся DHCP-клиентом, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к дру­гой подсети, то ему автоматически назначается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей.

DHCP-сервер может назначить клиенту не только IP-адрес клиента, но и дру­гие параметры стека TCP/IP, необходимые для его эффективной работы, напри­мер, маску, IP-адрес маршрутизатора по умолчанию, IP-адрес сервера DNS, доменное имя компьютера и т. п.

8.4. Система доменных имен DNS. Разрешение доменных имен.

Для идентификации компьютеров аппаратное и программное обеспечение в сетях TCP/IP полагается на IP-адреса, поэтому для доступа к сетевому ресурсу в параметрах программы вполне достаточно указать IP-адрес, чтобы программа правильно поняла, к какому хосту ей нужно обратиться. Например, команда ftp://192.45.66.17 будет устанавливать сеанс связи с нужным ftp-сервером, а команда https://203.23.106.33 откроет начальную страницу на корпоративном Web-сервере. Однако пользователи обычно предпочитают работать с символьными именами компьютеров, и операци­онные системы локальных сетей приучили их к этому удобному способу. Следова­тельно, в сетях TCP/IP должны существовать символьные имена хостов и механизм для установления соответствия между символьными именами и IP-адресами.

В операционных системах, которые первоначально разрабатывались для работы в локальных сетях, таких как Microsoft Windows или IBM OS/2, пользователи всегда работали с символьными именами компьютеров. Так как ло­кальные сети состояли из небольшого числа компьютеров, то использовались так называемые плоские имена, состоящие из последовательности символов, не разде­ленных на части. Примерами таких имен являются: smash, clone. Эти так называемые NetBIOS-имена являются одним из основных типов плоских имен в локальных сетях.

Для стека TCP/IP, рассчитанного в общем случае на работу в больших территориально распределенных сетях, подобный подход оказывается неэффективным. Плоские имена не дают возможности разработать единый алгоритм обеспече­ния уникальности имен в пределах большой сети. В небольших сетях уникальность имен компьютеров обеспечивает администратор сети, записывая несколько десятков имен в журнале или файле. При росте сети задачу решают уже несколько администраторов, согласовывая имена между собой неформальным способом. Однако если сеть расположена в разных городах или странах, то администраторам каждой части сети нужно придумать способ именования, который позволил бы им давать имена новым компьютерам независимо от других администраторов, обеспе­чивая в то же время уникальность имен для всей сети. Самый надежный способ решения этой задачи — отказ от плоских имен в принципе.

Для эффективной организации именования компьютеров в больших сетях естественным является применение иерархических составных имен.

В стеке TCP/IP применяется доменная система имен, которая имеет иерархическую древовидную структуру, допускающую использование в имени произвольного количества составных частей.

Иерархия доменных имен аналогична иерархии имен файлов, принятой во мно­гих популярных файловых системах. Дерево имен начинается с корня, обозначае­мого здесь точкой (.). Затем следует старшая символьная часть имени, вторая по старшинству символьная часть имени и т. д. Младшая часть имени соответствует конечному узлу сети.

Примерами доменных имен приведенного на рисунке дерева могут быть:

www.ibm.com

www.yandex.ru

mail.ucl.ac.uk

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

Совокупность имен, у которых несколько старших составных частей совпадают, образуют домен имен (domain). Например, имена wwwl.zil.mmt.ru, ftp.zil.mmt.ru, yandex.ru и sl.mgu.ru входят в домен ru, так как все эти имена имеют одну общую старшую часть — имя ru.

Если один домен входит в другой домен как его составная часть, то такой домен могут называть поддоменом (subdomain), хотя название домен за ним также остает­ся. Обычно поддомен называют по имени той его старшей составляющей, которая отличает его от других поддоменов. Например, поддомен mmt.ru обычно называют поддоменом (или доменом) mmt. Имя поддомену назначает администратор вышестоящего домена.

Необходимо подчеркнуть, что компьютеры входят в домен в соответствии со своими составными именами, при этом они могут иметь совершенно различные IP-адреса, принадлежащие к различным сетям и подсетям/

В Internet корневой домен управляется центром InterNIC. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций — следующие обозначения:

• corn — коммерческие организации (например, im'crosoft.com);

• edu — образовательные (например, mit.edu);

• gov — правительственные организации (например, nsf.gov);

• org — некоммерческие организации (например, fidonet.org);

• net — организации, поддерживающие сети (например, nsf.net).

Для того, чтобы устанавливать соотвествие IP-адресов доменным именам служит служба (Domain Name System, DNS). DNS — это централизованная служба, основанная на распределенной базе отображений «доменное имя — IP-адрес». Служба DNS использует в своей работе протокол типа «клиент-сервер». В нем определены DNS-серверы и DNS-клиенты. DNS-серверы поддерживают распределенную базу отображений, а DNS-клиенты обращаются к серверам с запросами о разрешении доменного имени в IP-адрес. Для каждого домена имен создается свой DNS-сервер.

Каждый DNS-сервер кроме таблицы отображений имен содержит ссылки на DNS-серверы своих поддоменов. Эти ссылки связывают отдельные DNS-серверы в единую службу DNS. Ссылки представляют собой IP-адреса соответствующих серверов.

В общем процесс разрешиния имени выглядит так:

• DNS-клиент запрашивает локальный DNS-сервер, то есть тот сервер, который обслуживает поддомен клиента. Запрос может выглядить так «Какой IP-адрес имеет компьютер с именем www.yandex.ru?»

• если локальный DNS-сервер знает ответ, то он сразу же возвращает его клиенту. Это может соответствовать случаю, когда запрошенное имя входит в тот же поддомен, что и имя клиента, а также может соответствовать случаю, когда сервер уже узнавал данное соответствие для другого клиента и сохранил его в своем кэше;

• если же локальный сервер не знает ответ, то он выполняет итеративные запросы к корневому серверу и получив ответ, он передает его клиенту, который все это время просто ждал его от своего локального DNS-сервера.

8.5. Сетевая архитектура реализации стека TCP/IP в ОС Windows

Сетевая архитектура реализации стека протоколов TCP/IP в ОС Windows представлена на рисунке. Сложность изучения архитектуры сосотоит в том, что в силу исторически сложившихся причин и факторов она будет отличаться от «классической» модели стека TCP/IP, о которой шла речь ранее.

Интерфейс NDIS

Интерфейс NDIS представляет собой программную прослойку, через которую средства сетевого уровня общаются с драйверами сетевых адаптеров и самими адаптерами. Цель использования интерфейса NDIS – стандартизация процесса такого общения. Если провести параллель с 7-уровневой моделью OSI, то можно сказать, что все, что находится ниже прослойки NDIS, относится к физичекому и канальному уровню.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: