Адресация узлов сети
При объединении компьютеров в сеть необходимо решать проблему их адресации. Компьютер может иметь несколько сетевых интерфейсов или внешних портов, через которые ведется обмен данными с другими компьютерами. Например, для создания полносвязной структуры из N компьютеров необходимо, чтобы у каждого имелся (N-1) интерфейс.
Адреса бывают индивидуальные – для идентификации отдельного интерфейса, групповые – если данные направляются одновременно нескольким узлам, широковещательные – если данные должны быть доставлены всем узлам сети.
Адреса могут быть числовыми и символьными
Числовой адрес: 129.26.255.255 записан в десятичном коде и тот же адрес 81.1А.FF.FF в шестнадцатиричном коде. Символьные адреса предназначены для запоминания людьми и обычно несут смысловую нагрузку. Например, символьный адрес: site.domen.ru
Множество адресов, которые являются допустимыми в рамках некоторой схемы адресации, называются адресным пространством.
Адресное пространство может иметь плоскую (линейную) организацию. В этом случае множество адресов никак не структурировано. Примером, плоского числового адреса является MAC-адрес (Media Access Control) , который используется для однозначной идентификации сетевых интерфейсов в локальных сетях. МАС-адрес записывают в виде 12-значного числа в 16-ричной системе счисления. Например, 00Е0А77F1920. Этот адрес используется только аппаратурой, прописан в памяти сетевого адаптера компанией-изготовителем, и поэтому часто называется аппаратным (hardware) адресом. При замене аппаратуры, например, сетевого адаптера, изменяется адрес сетевого интерфейса компьютера.
Адресное пространство может иметь иерархическую организацию. В этом случае множество адресов организовано в виде вложенных друг в друга подгрупп, которые последовательно сужают адресуемую область. Типичным примером иерархического адреса является сетевой IP-адрес. В IP-адресе поддерживается двухуровневая иерархия. Адрес делится на старшую часть – номер сети, и младшую часть – номер узла (хоста) в сети. Пример IP-адреса 129.26.245.55. Здесь старшие 2 числа 129.26 означают номер сети, а младшие 2 числа 245.55 – номер компьютера (хоста) в сети.
Символьные имена в компьютерных сетях являются составными и имеют иерархическую древовидную структуру. Части имени отделяются точками. Младшая часть имени записывается слева и соответствует конечному узлу сети. Совокупность имен, у которых несколько старших частей совпадают, образуют домен имен. Например, в имени mail.yandex.ru: mail – имя конечного узла в домене второго уровня yandex.ru., который в свою очередь является составной частью домена первого уровня ru. .
Для преобразования адресов из одного вида в другой используются специальные процедуры в сети, которые называются протоколами разрешения адреса (address resolution protocol).
Коммутация и мультиплексирование
Информационным потоком или потоком данных (data flow, data stream) называют последовательность блоков данных (пакетов, ячеек, кадров), объединенных набором общих признаков, которые выделяют этот поток из общего сетевого трафика.
Например, данные выходящие из одного компьютера, можно определить как единый поток или разделить его на потоки, относящиеся к разным сетевым приложениям – электронной почте, обращению к Web-серверу.
Транзитный узел (например, коммутатор) должен уметь распознавать потоки данных, которые на него поступают, чтобы осуществлять их передачу именно на тот свой интерфейс, который ведет к следующему нужному узлу. Обязательным признаком потока при коммутации является адрес узла назначения.
Определить поток – это значит задать для него набор отличительных признаков, на основании которых коммутаторы смогут направлять поток по предназначенному для него маршруту. Признаком потока может быть адрес узла назначения, числовой идентификатор – метка потока, номер входного интерфейса коммутатора.
Определить маршрут передачи данных – это значит определить последовательность транзитных узлов и их интерфейсов, через которые надо передавать данные.
В качестве критерия оптимальности выбранного маршрута могут выступать: доступная пропускная способность каналов связи; загруженность каналов; задержки времени, вносимые каналами; количество промежуточных транзитных узлов; надежность каналов и узлов.
Если в сети для определенного информационного потока создается маршрут, то каждый узел на маршруте создает в своей памяти в маршрутной таблице (или в таблице коммутации) запись, в которой признаку информационного потока (метке потока, номеру входного интерфейса, адресу узла назначения) ставится в соответствие номер выходного интерфейса.
Коммутатор (switch) пересылает блоки данных, которые называются кадры (frame) или ячейки (cell). Трансляция кадра в выходной интерфейс может начаться сразу после анализа заголовка кадра.
Реализуются коммутаторы аппаратно-программно. Коммутация осуществляется по физическим адресам устройств (MAC-адресам).
Существует два типа коммутации:
- “буферная” (store and forward); при этом, если скорость поступления кадров по каналу превысит скорость их обработки, буфер данного порта может переполниться, и продолжающие приходить кадры будут отбрасываться;
- “обрезная” (cut-through); коммутаторы, использующие эту форму коммутации, называются сквозными, и они начинают транслировать кадр в выходной порт сразу по получении заголовка, не дожидаясь полного приема кадра;
На рисунке ниже показана функциональная схема коммутатора EtherSwitch, предложенного фирмой Kalpana в 1990 году для использования в локальной сети Ethernet.
Рис. Функциональная схема коммутатора фирмы Kalpana
В этом коммутаторе системный модуль поддерживает общую адресную таблицу коммутатора. Коммутационная матрица отвечает за пересылку кадров между портами. Каждый порт имеет свой процессор кадров. При поступлении кадра в один из портов, процессор анализирует несколько первых байт, чтобы прочитать адрес назначения. После определения адреса процессор принимает решение о передаче кадра, не анализируя остальные байты. По адресной таблице выбирается соответствующий выходной порт. Коммутационная матрица формирует соединение входного и выходного портов. Если полученный адрес отсутствует в адресной таблице, он записывается в новой строке, а кадр передается методом широкого вещания через все порты, за исключением принявшего.
В общем случае в сети на интерфейсы коммутатора может поступать один поток или суммарный (агрегированный) поток из нескольких составляющих.
Перед коммутацией агрегированный поток подвергается операции демультиплексирования – разделения суммарного потока на составляющие. После коммутации несколько отдельных потоков мультиплексируются, то есть образуется общий, агрегированный поток, который можно передавать по одному физическому каналу связи.