Перевод октета из десятичной формы в двоичную осуществляется записью 1 или 0 в соответствующий бит октета слева направо, пока не будет получено искомое десятичное число. Если запись 1 в очередной бит приводит к тому, что полученная сумма превосходит десятичное число, просто запишите в этот бит 0 и перейдите к следующему. Допустим, надо перевести IP-адрес 172.31.230.218 в двоичный вид. Первым делом запишите последовательность возможных весов битов в таблицу:
Начнем с первого числа — 128. Поскольку 128 меньше 172, запишем 1 в первый бит, а наша промежуточная сумма будет 128. Затем посмотрим вес второго бита — 64. Так как 128 + 64 больше 172, второй бит установим в 0. Затем перейдем к третьему биту, вес которого — 32. 128 и 32 в сумме дают меньше 172, поэтому запишем в этот бит 1. Промежуточная сумма становится 128 + 0 + 32=160. Перейдем к четвертому биту, его вес — 16. 160 и 16 в сумме дают больше 172, поэтому пишем 0. Вес пятого бита — 8. Сумма 160 + 8 меньше 172, пишем в пятый бит 1, а промежуточная сумма становится 128 + 0 + 32 + 0 + 8 = 168. И наконец вес шестого бита — 4, сумма 168 и 4 равна 172, т. е. искомому числу. Поэтому пишем 1 в шестой бит, а оставшиеся седьмой и восьмой биты заполняем нулями.
Таким образом, первый октет в двоичной форме выглядит так: 10101100
Выполнив аналогичные операции с остальными октетами получим двоичное представление адреса 172.31.230.218: 10101100 00011111 11100110 11011010
Перевод между системами счисления с помощью калькулятора.При помощи Калькулятора эта операция выполняется намного быстрее. Чтобы воспользоваться функцией перевода между системами счисления, в меню Вид(View) выберите Инженерный (Scientific)и установите переключатель в положение Decили Bin (в зависимости от того, из какой системы счисления необходимо перевести число). Например, для перевода двоичного числа 11001100 в десятичное представление, отметьте Bin, введите двоичное число. После ввода двоичного числа просто установите Dec и получите число в десятичном представлении.
Примечание:как и в десятичной нотации, калькулятор отбрасывает крайние левые нули, октет 00001110 отображается как 1110. Поэтому необходимо контролировать число отображаемых в окошке калькулятора битов, чтобы не перепутать значения. Например, легко спутать двоичное число 1100001 (десятичное 97) с 11000001 (десятичное значение 193). Если число бит меньше 8, для представления октета IP-адреса надо добавить необходимое количество нулей слева.
Идентификаторы сети и узла
Маршрутизаторы, переправляющие пакеты данных между TCP/IP-сетями не обязаны знать, какому именно узлу предназначен тот или иной IP-пакет. Вместо этого маршрутизатор считывает из IP-пакета только адрес сети, в которой находится узел — приемник пакета, а затем на основе своей таблицы маршрутизации определяет, каким образом доставить пакет в сеть, в которой расположен адресат. Точное местоположение узла определяется только после доставки пакета в нужный сегмент сети.
Такой механизм маршрутизации возможен благодаря делению IP-адреса на два компонента:
• идентификатор сети (network ID) — первая часть IP-адреса, представляющая конкретную сеть в более крупной TCP/IP-сети (например в Интернете);
• идентификатор узла (host ID) — вторая часть IP-адреса, определяющая узел TCP/IP (рабочую станцию, сервер, маршрутизатор или любое другое ТСР/IР- устройство). Например, разбиение IP-адреса (131.107.16.200) на идентификаторы сети (это первые два октета — 131.107) и узла (последние два октета — 16.200).
Маска подсети
Еще один необходимый для нормальной работы TCP/IP параметр — маска подсети (subnet mask), которая служит для определения, в какой сети находится приемник пакета — локальной или внешней. Маска подсети — это 32-битный адрес, представляющий собой последовательность битов со значением 1, который используется для выделения, или маскировки, идентификатора сети адреса назначения пакета и отделения идентификаторов сети и узла. Каждому узлу сети TCP/IP нужна маска подсети (если сеть не разбита.на подсети, т. е. состоит из одной подсети) или маска по умолчанию (в случае разбиения сети на подсети).
Например, такое 32-битное число представляет маску подсети по умолчанию для узлов с адресами класса В (например 172.20.16.200):
11111111 11111111 00000000 00000000 (255.255.0.0)
Когда TCP/IP-узел с адресом 172.20.16.200 отправляет пакет по адресу 172.21.17.201, он сначала выполняет побитовую операцию И по отношению к локальным адресу и маске подсети. Поскольку эта логическая операция в результате дает 0 во всех битах кроме тех, в который в обоих операндах стояли 1, то 172.20.16.200 И 255.255.0.0 = 172.20.0.0
Затем узел повторяет эту операцию, но вместо адреса отправителя подставляет адрес получателя. В результате получается 172.21.0.0. Затем TCP/IP сравнивает результаты этих операций. Если они совпадают, получатель расположен в этой же подсети. Иначе приемник и получатель расположены в разных подсетях.