Протокол TCP/IP. Адресация в IP сетях.

1. Модель OSI

Модель OSI (Open System Intercinectin) является моделью которая сыграла ведущую роль в становлении сетей, в сегодняшнем их виде. Разработана она была в 80 - е годы. Модель представляет собой многоуровневый стек протоколов и состоит из 7 уровней: физический, канальны, сетевой, транспортный, сеансовый, уровень представления, упровень приложений (прикладной уровень). Наличие нескольких уровней очень полезно. Это позволяет при изменении апаратной части или програмных средств не переписывать весь стек протоколов заново, а лишь внести изменения в необходимый уровень.

Физический уровень - этот уровень отвечает за передачу данных по физическиой среде: витая пара, оптоволоконный кабель и др. Здесь определяется, тип передачи, метод кодирования, скорость передачи, типы разьемов, назначение контактов и др.
Канальный уровень - на этом уровне формируются кадры для передачи и обеспечивает корректность предачи каждого кадра. Здесь обнаруживаются и исправляются ошибки возникшие при передачи кадра, для этого используются контрольные суммы в конце каждого кадра. Здесь заклажен способ адресации компьютеров в сети.
Сетевой уровень - из самого названия этого уровня вытекает его назначение. Он служит для образования единой системы перадачи данных, которая может объеденять несколько сетей, даже если эти сети используют совершенно различные принципы передачи даных (канальный и физический уровень). То есть сетевой уровень осуществляет доставку данных между сетями. Именно на этом уровне действует протокол IP (протокол иежсетевого взаимодействия). Одна из главных задач этого уровня это маршрутизация - то есть выбора маршрута по которому будет перемещаться пакет от отправителя к адресату.
Транспортный уровень - этот уровень обеспечивает передачу данных для более старших уровней модели OSI. Этот уровень обеспечивает необходимый уровень достоверности передоваемых данных. Он отвечает за распознование и коррекцию ошибок. Этот уровень определяет качество связи - класс сервиса. Различают несколько классов от 0 до 4. Класс 0 обладает самым низким качеством, а класс 4 самым высоким.
Сеансовый уровень - отвечает за установление соединения между двумя компьютерами - начало сеанса связи. Также он отвечает за завершение сеанса и его восстанвление в случае необходимости.
Уровень представления - предназначен для подготовки данных для уровня приложений. Он отвечает за преобразование форматов между двумя уровнями. Здесь может производиться преобразование данных из одной кодировки в другую, а также шифорование и дишифрование потока данных.
Уровень приложений - это уровень конкретных прикладных программ при помощи которых пользователи получают доступ к ресурсам сети.

Структрура OSI приведена на рисунке ниже. Также на ричунке некоторые протоколы и то к какому уровню они относятся. Я также посчитал необходимым показать на этой схеме активные сетевые устройства и то на каком уровне они работают (Более подробно об этом см. статью по прокладеке сети на этом сайте).

Рис .1 Модель OSI;

При проддивижении сверху вниз по стеку протоколов (от уровня 7 к 1), каждый из уровней на основании служебной информации из предыдущего уровня выполняет необходимые действия и добавляет к пришедшим к нему от предыдущего уровня данным свю служебную информацию. получается чтото вроде обертывания посылки. На каждом уровне посылка упаковывается и на ней пишуться служебные данные, что с ней делать дальше. При приеме сообщения происходит его разборка каждым из уровней в обратном порядке.

2. Стек TCP/IP и маршрутизация

Теперь когда мы имеем некоторое представление о стеке OSI, рассмотрим протокол TCP/IP. Если дословно переводить, то: Протокол управления передачей / Межсетевой протокол. Протокол TCP/IP бал разработан более 25 лет назад по "Госзаказу" Министерства обороны США с целью объединения сети ARPAnet с другими сетями. Впервые он был внедрен в государственной сети DDN (Defence Data Network), которая включила в себя сети ARPAnet и Mil-net. Это стало началом Internet. Огромный вклад в популяризацию протокола TCP/IP внес университет Беркли, который реализовал протокол TCP/IP в ОС Unix. Рост популярности Unix привел к росту популярности протокола TCP/IP.

Протоколы TCP/IP примерно соответствует сеансовому, транспортному и содержит некоторые функции сетевого уровеней. Соответсвие показано на рисунке 1. Так как протокол TCP/IP не затрагивает канального и физического уровня его применение не ограничевается конкретными апаратными решениями. То есть может применяться в самых различных физических сетях: X.25, FDDI, Ethernet. За годы использования в сетях, протокол TCP/IP оброс большим количесвтом протоколов уровня приложений: FTP, SMTP,WWW и другие.

Стемительный рост популярности Internet и интеграции глобальных и локальных сетей привел к тому, что лидер среди протоколов локальных сетей IPX/SPX компании Novell стал быстро здавать свои позици. Начиная с 5 версии Novell Netware появилась возпожность реализовывать сети Novell на "чистом IP" или в оригинале "pure IP". Если сегодня заново создается локальная сеть, то с уверенностью можно утверждать, что базовым протоколом будет протокол TCP/IP. Сегодня это один из самых популярных протоколов.

Протокол TCP/IP состоит из двух протоколов TCP - Transmission Control Protocol (Протокол управления передачей) и IP - Internet Protocol (протокол межсетевого взаимодействия). Итак протокол TCP соответствет транспортному уровню и содержит некоторые функции сеансового. Протокол TCP обеспечивает организацию сеанса между двумя компьютерами, объединенными, через множество сетей. К его функциям относится исправление ошибок, и отслеживание прохождения пакетов по сети. Таким образом если какойто из пактов при передачи по сети потерялся, то в функции TCP входит повторная передача пактета. Протокол TCP обеспечивает необходимую надежность, покольку протокол IP не отвечает за надежность доставки сообщений. При передаче пакета протокол TCP добавляет к данным свой заголовок, в котором содержиться служебная информация.

Протокол TCP использует IP протокол в качествве транспортного средвства. Назначение IP протокола служит в передаче данных между сетями. При прохождении IP пакета между сетями он упаковывается в соответсвующие каждой конкретной сети средства транспортировки. Очень важно, то, что протокол IP рассматривает каждый IP пакет как независимую единицу. Здесь нет средств контоля за доставкой пакетов. Если узел передал IP пакет, то судьба этого пакета его уже не интересует. Все вопросы обеспечения надежности обеспечивает протокол TCP. Именно он организует повторную передачу, если какойто из IP акетов потерялся. Протокол IP как и протокол TCP добавляет к данным свой заголовок. Затем пакет продвигается по канальному и физическому уровню, где к нему добавляется соответствующий заголовок. В Ethernet сетях структура кадра будет выглядеть следующим образом.

рис. 2 Структура Ethernet кадра

Таким образом в сети у любого узала существуют два адреса. Это IP - адрес. Он сосоит из 4 байт, естественно в IP пакетах этот адрес передается в двоичной системе исчисления, а вот в настройках операционных систем он отображается в десятичной системеисчисления. При этом каждый байт отделяется точками. Максимальное значение байта в двоичной системе это: 11111111, в десятичной системе это число будет 255. Примером записи адреса можеи быть: 192.168.0.5. IP адрес используется на сетевом уровне. Он назначается вручную и может быть без труда изменен при необходимости. Существуют определенные правила назначения этих адресов (об этом ниже). В интернет порядком выдачи адресов ведает служба NIC (Network Information Center).

Еще один адрес это аппаратный адрес. Еще можно услышать MAC-адрес, Hardware -адрес, Ethernet -адрес. Этот адрес определяется адаптером физической части сети. Адрес назначается устройству на этапе производства и не может быть в последствии изменен. Для узлов входящих локальные сети этот адрес состоит из 6 - ти байт, записывается в 16 - ричной системе счисления и выглядит следующим образом: 08:03:05:e5:f9:33. Здесь старшие 3 байта - идентификатор производителя, младшие 3 байта назначаются самим производителем. Очень важно, как и в случае с IP адресами соблюдать уникальность этих адресов поэтому для каждого производителя централизованно выделяется диапазон адресов. Из этого диапазона он и назначает адреса (малдшие 3 байта).

Еще бывают NetBIOS и DNS имена. Используются они на уровне приложений (или прикладной уровень). Введены они для удобства поскольку запомнить цифровые имена достаточно сложно запомнить. Для преобразования Символьных имен в IP адреса существуют специальные службы (DNS и WINS).

Процессы протекающие с пактами в сети поможет следующий расинок (рис. 3). D - это шлюз (маршрутизатор) между сетями А и В. При передаче пакета из Сети 1 в Сеть 2 маршрутизацию осуществляет модуль IP и она прозрачна для TCP. Стоит также обратить внимание на структуру заголовков (см. схему внизу рисунка).

рис. 3 Прохождение пакетов между сетями

Как видно из рисунка для того чтобы передать пакет от узла А к узлу Е по сети узлу А необходимо знать МАС адрес узла назначения. Если это одна сеть, то это МАС адрес узла Е. Однако на нашем рисунке это разные сети разделенные шлюзом и соответственно в сети 1 Ethernet заголовок будет содержать адрес узла D. Для того чтобы поставить в соответствие IP адреса и МАС адреса существует протокол ARP (Adres Resolution Protocol -протокол разрешения адреса). На основе работы ARP протокола строятся ARP таблицы если при построении кадра выясняется, что на какой-то IP адрес в ARP талице не нашлось соответствия МАС адреса, то формируется ARP запрос. ARP ассылается широковещательно. Широковещательный запрос распространяется в пределах сети, в которой находиться узел сгенерировавший запрос.То есть в нашем случае ARP запрос сгенерированный узлом А получат все узлы Сети 1: А, В, С, D. Узел D (шлюз) помимо ARP таблицы содержит еще таблицу маршрутизации, которая показывает какой IP адрес на какой Ethernet порт узла D подключен. Получив ARP запрос узел D видит, что узел D согласно его таблицы маршрутизации находиться в другой сети - Сети 2. Поэтому на ARP запрос он формирует ответ, подставив в него свой МАС адрес в Сети 1. Получив ответ узел А упаковывает IP пакет указав в качестве МАС - адреса получателя, МАС адрес узла D в Сети 1 и отправляет пакет. Получив пакет узел D видит, что в заголовке IP указан не его адрес и проверяет свою таблицу маршрутизации. На основе данных таблицы маршрутизации он передает IP пакет на свой второе Ethernet присоединение. Здесь уже по знакомой нам схеме IP пакет упаковывается, к нему пристыкавывается MAC адрес. В Сети 2 это будет уже МАС адрес узла Е. (На рисунке 3 таблица составлена для Сети 1). Построение таблиц маршрутизации может вестись как в ручную (жесткая запись) так и с помощью специальных протоколов маршрутизации, например RIP (динамическая запись).

3. Адресация в IP сетях

Теперь вернемся к IP адресации. Как мы уже упоминали, IP адрес кодируется двоичным кодом и имеет длинну 4 байта. Для удобства в устройствах и програмных он отбражается, в виде 4 групп по группе на байт. Причем значение каждого байта записывается в десятичном формате, но изначально это двоичное число. Двоичное число в 4 байта представляет собой не что иное как адрес сети + адрес узла в сети. Какая часть относиться к адресу сети, а какая к номеру узла определяется классом сети. Класс сети определяется первыми битами в двоичном адресе. Всего существует 5 классов сетей: A, B, C, D, E.

Если адрес начинается с 0 то этот адрес отностится к классу А. Тогда номер сети занимает один байт, остальные 3 байта занимает адрес узла.
Если адрес начинается с 10 то этот адрес отностится к классу В. Адрес сети занимает первые 2 байта, адрес узла оставшиеся два байта.
Если адрес начинается с 110 то этот адрес отностится к класу С. Адрес сети занимает 3 байта, адрес узла занимает 1 байт.
Если адрес начинается с 1110 то это адрес класа D. Это так называемый групповой адрес. То есть пакет с таким адресом должны получить все узлы которые имеют этот адрес.
Адреса начинающиеся с 11110 зарезервированы.

С практической точки зрения для построения локальной сети имеют интерес только классы A, B, C. Как правило организации имеют небольшие сети до 35 машин и IP строиться на классе С.

В протоколе IP существуют особые адреса:
если IР-адрес состоит только из двоичных нулей то он обозначает адрес того узла, который сгенерировал этот пакет;
если в поле номера сети стоят 0, то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;
если все разряды IP-адреса равны то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);
если в поле адреса узла назначения стоят сплошные 1, то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);
адрес 127.0.0.1 для организации петли обратной связи при тестировании работы программного обеспечения узла "на себя". То есть без реальной отправки пакета по сети. Называется этот адрес loopback.

Более понятным сделает ситуацию рисунок 4.

рис. 4 Структура IP адреса и классы адресов.

4. Прикладные процессы работающие поверх TCP/IP

Каждому процессу уровня приложений (модель OSI), которое использует протокол TCP/IP ставиться в соответствие назначается инденификатор или номер, который называется портом. Порт служит для идентификации процессов использующих протокол TCP/IP и их отличия друг от друга. Номера портов уникальны. Первые 1024 порта (от 0 до 1023) отведены системным службам, начиная с 1024 номера порты могут назначаться произвольно. Приведем некоторые из наиболее известных номеров портов. 21 - FTP, 25 - SMTP, 80 - HTTP, 110 - POP3. Internet Explorer (IE) по умолчанию обращается к порту 80 - HTTP (протокол передачи гипертекста), однако его можно принудительно заставить обратиться и к другому порту. Правда последние будет иметь успех если этот порт открыт для доступа, например 192.168.0.12:1025 В этом примере на узле сномером 192.168.0.12 должна работать служба использующая порт 1025. Это может быть программа доступа к базе данных использующая интерфейс IE или какая либо другая программа.

5. Некоторые служебные протоколы

Систематизируем сведения по некоторым протоколам. ARP протокол. Как вы помните, в сети иногда возникает необходимость в сопоставлени IP адресов в соответствующие им локальные адреса (МАС - адреса). Вспомните пример приведенный выше кода пакте проходил из Сети 1 в Сеть 2. Если маршрутизатор в своей ARP таблице не находит соответсвия то в ход пускается протокол разрешения адреса Address Resolution Protocol (ARP). Этот протокол работет по разному в сетях использующих различные протоколы канального уровня (FDDI, Ethernet, ...) Иногда возникает необходимость решить обратную задачу. Тоесть по извесному локальному адресу (МАС - адресу) поставить в соответсвие IP адрес. Для этого используется RARP (Reverse Address Resolution Protocol - реверсивный ARP).

Следующим протоколом является DNS (Domain Name System). Запоминать цифровые имена сложно и не очень удобно. Поэтому улы в сети имеют буквенно цифромые имена. Поиск IP адреса по имени на основе широковешательных запросов в больших сетях не эффективен, поэтому была разработана служба DNS. Служба DNS распределенная служба. DNS-серверы хранят часть распределенной базы данных о соответствии символьных имен и IP-адресов. В сети интернет эта база данных распределена по административным доменам сети. В локальной сети при использовании в ней DNS сервера вся база храниться на нем. (Здесь стоит отвлечься и сказать, что если в локальной сети используется DHCP сервер, то необходимо, чтобы была органилована взаимная работа DNS и DHCP серверов. см. статью на сыйте "Установка и настройка DHCP сервера") Клиенты всети должны знать адрес DNS сервера. Он прописывается жестко или выдется DCHP сервером.

Сервис DHCP (Dynamic Host Configuration Protocol - протокол динамической конфигурации хостов) предназначен для динамического предоставления IP адресов клиентам. DHCP сервис также сообщает адреса шлюзов, маску подсети, доменное имя сервера DNS и некоторые другие параметры. Кроме того этот сервис может работать под протоколами ARP и BOOTP. Эти протоколы являются более старыми и менее устойчивы. несмотря на это они по прежнему используются некоторыми устройствами. Пожалуй главным отличием DHCP и BOOTP является то, что в BOOTP время аренды адреса по умолчанию равно бесконечности. Прядок работы DCHP смотри в статье "Установка и настройка DHCP сервера" расположеной на этом сайте.

 


Автор:Алекс


 
Для связи:linux-75@narod.ru
 
Hosted by uCoz