
Адресация в tcp/ip
IP-адреса
В протоколе Internet (IP) используются адреса длиной 32 разряда, состоящие из двух частей. 32 разряда разделены на четыре октета, как показано ниже:
01111101 00001101 01001001 00001111
Значения октетов обычно записываются в десятичной нотации:
125 13 73 15
IP-адреса состоят из двух частей - адреса сети и адреса хоста. Такая структура IP-адреса позволяет удаленному хосту при отправке информации задавать как удаленную сеть, так и хост в этой удаленной сети. Хост с нулевым адресом (0) применяется для ссылки на саму сеть.
В TCP/IP предусмотрено три класса IP-адресов: А, В и С. От класса зависит длина адреса сети (и адреса хоста) в IP-адресе. В зависимости от размера сети, она может быть отнесена к тому или иному классу.
Адрес класса A состоит из 8-разрядного адреса сети и 24-разрядного локального адреса или адреса хоста. Первый бит в сетевом адресе предназначен для указания класса сети, остальные 7 битов - реальный адрес сети. Поскольку максимальное число, которое можно представить в двоичном виде семью битами, равно 128, то в классе А может быть 128 адресов сети. Два адреса из этих 128 возможных адресов зарезервированы для специальных случаев: сетевой адрес 127 зарезервирован для локальных циклических адресов, а сетевой адрес, состоящий из одних единиц, означает адрес оповещения.
Таким образом, существует 126 возможных адресов сети класса А и 16 777 214 адресов локальных хостов. В адресе класса A старший разряд равен 0.
Адрес сети (8 разрядов) |
Локальный адрес хоста (24 разряда) |
01111101 |
00001101 01001001 00001111 |
^ первый разряд всегда 0
Значения первого октета адресов класса А лежат в диапазоне от 1 до 126.
Адрес класса B состоит из 16-разрядного адреса сети и 16-разрядного адреса хоста. Первые два бита в адресе сети предназначены для указания класса сети, остальные 14 битов - реальный адрес сети. Существует 16 384 возможных адресов сети и 65 536 адресов локальных хостов. В адресе класса B два старших разряда равны 10.
Адрес сети (16 разрядов) |
Локальный адрес хоста (16 разряда) |
10011101 00001101 |
01001001 00001111 |
^первые два разряда всегда 1 и 0
Значения первого октета адресов класса B лежат в диапазоне от 128 до 191.
Адрес класса C состоит из 24-разрядного адреса сети и 8-разрядного адреса локального хоста. Первые два бита в адресе сети предназначены для указания класса сети, остальные 22 бита - реальный адрес сети. Таким образом, существует 2 097 152 возможных адреса сети и 256 адресов локальных хостов. В адресе класса C два старших разряда равны 11.
Адрес сети (24 разряда) |
Локальный адрес хоста (8 разрядов) |
11011101 00001101 01001001 |
00001111 |
^первые два разряда всегда 1 и 1
Другими словами, значения первого октета адресов класса C лежат в диапазонах от 192 до 223.
Arp и mac адрес
ARP (протокол определения адреса) — протокол канального уровня, предназначенный для определения MAC-адреса по известному IP-адресу. Наибольшее распространение этот протокол получил благодаря повсеместности сетей IP, построенных поверх Ethernet, поскольку практически в 100 % случаев при таком сочетании используется ARP.
Принцип работы:
Узел, которому нужно выполнить отображение IP-адреса на локальный адрес, формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно.
Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным.
В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес.
Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса. Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы.
MAC-адрес — это уникальный идентификатор, присваиваемый каждой единице оборудования компьютерных сетей. Большинство сетевых протоколов канального уровня используют одно из трёх пространств MAC-адресов, управляемых IEEE: MAC-48, EUI-48 и EUI-64. Адреса в каждом из пространств теоретически должны быть глобально уникальными.
В широковещательных сетях (Ethernet)MAC-адрес позволяет уникально идентифицировать каждый узел сети и доставлять данные только этому узлу. Таким образом, MAC-адреса формируют основу сетей на канальном уровне, которую используют протоколы более высокого (сетевого) уровня. Для преобразования MAC-адресов в адреса сетевого уровня и обратно применяются специальные протоколы (например, ARP и RARP в сетях IPv4 и NDP в сетях на основе IPv6).
Существует распространенное мнение, что MAC-адрес жестко вшит в сетевую карту и сменить его нельзя или можно только с помощью программатора. На самом деле это не так. MAC-адрес легко меняется программным путем, так как значение, указанное через драйвер, имеет более высокий приоритет, чем зашитое в плату. В Windows смену MAC-адреса можно осуществить встроенными средствами ОС.