Позиционная система счисления
Чтобы переводить числа из двоичной в десятичную систему счисления, нужно понимать позиционную систему счисления. Принцип позиционной системы счисления заключается в том, что значение цифры определяется ее «позицией» в последовательности цифр. Вам уже знакома наиболее распространенная система счисления — десятичная (с основанием 10).
На рис. 1 показана суть десятичной системы счисления с точкой-разделителем. Чтобы получить описание каждой строки, нажмите на ее заголовок. Чтобы воспользоваться позиционной системой, сопоставьте заданное число с его позиционным значением. В примере на рис. 2 показана позиционная запись десятичного числа 1234.
Позиционная запись двоичных чисел показана на рис. 3. Чтобы получить описание каждой строки, нажмите на ее заголовок.
В примере на рис. 4 показано соответствие двоичного числа 11000000 десятичному числу 192. Если бы двоичное число составляло 10101000, то ему бы соответствовало десятичное число 168.
Страница 7.1.1.4
Преобразование двоичных чисел в десятичный формат
Для преобразования двоичного IPv4-адреса в десятичный эквивалент с точкой-разделителем разделите IPv4-адрес на четыре 8-битных октета. Затем занесите двоичное позиционное значение в качестве двоичного числа первого октета и выполните соответствующее вычисление.
Например, предположим, что IPv4-адрес узла — 11000000.10101000.00001011.00001010. Для преобразования двоичного адреса в десятичный формат, начните с первого октета, как показано на рис. 1. Введите 8-битное двоичное число в качестве позиционного значения строки 1, а затем выполните вычисление, результатом которого будет десятичное число 192. Это число составит первый октет десятичной записи с точкой-разделителем.
Затем преобразуйте второй октет, как показано на рис. 2. Итоговое десятичное значение — 168; это будет второй октет.
Преобразуйте третий октет, как показано на рис. 4, и последний четвертый октет IP-адреса, как показано на рис. 5. Результат: 192.168.11.10.
Страница 7.1.1.5
Страница 7.1.1.6
Преобразование десятичных чисел в двоичный формат
Необходимо также понимать, как преобразовывать IPv4-адреса в десятичном формате с точкой-разделителем в двоичный формат. Полезным инструментом является таблица двоичных позиционных значений. Ниже показано, как использовать таблицу для преобразования десятичных чисел в двоичный формат:
· На рис. 1 задается вопрос: больше ли или равно десятичное число в октете (n) самому старшему биту (128). Если нет, введите двоичный 0 в качестве позиционного значения числа 128. Если да, введите двоичную 1 в качестве позиционного значения числа 128 и вычтите 128 из десятичного числа.
· На рис. 2 задается вопрос: больше ли или равен остаток (n) следующему по старшинству биту (64). Если нет, введите двоичный 0 в качестве позиционного значения числа 64; в противном случае введите двоичную 1 и вычтите 64 из десятичного числа.
· На рис. 3 задается вопрос: больше ли или равен остаток (n) следующему по старшинству биту (32). Если нет, введите двоичный 0 в качестве позиционного значения числа 32; в противном случае введите двоичную 1 и вычтите 32 из десятичного числа.
На рис. 4–8 продолжается вычисление десятичных значений до ввода всех позиционных значений для получения эквивалента в двоичном формате.
Страница 7.1.1.7
Примеры преобразования десятичных чисел в двоичный формат
Чтобы лучше понять этот процесс, рассмотрим IP-адрес 192.168.11.10. Воспользовавшись описанной выше процедурой, начнем с таблицы двоичных позиционных значений и первого десятичного числа 192.
На рис. 1 показано сравнение числа 192, чтобы определить, больше ли оно или равно старшему биту 128. Поскольку 192 больше 128, добавьте 1 в качестве старшего позиционного значения, что соответствует числу 128. Затем вычтите 128 из 192; получаем разницу (остаток) 64. На рис. 2 выполняется сравнение числа 64 со следующим по старшинству битом 64. Поскольку они равны, добавьте 1 в качестве следующего по старшинству позиционного значения. Введите двоичный 0 в оставшиеся позиции, как показано на рис. 3. Двоичное значение первого октета — 11000000.
Следующий октет — 168. На рис. 4 выполняется сравнение числа 168 со старшим битом 128. Поскольку 168 больше 128, введите 1 в качестве старшего позиционного значения. Затем вычтите 128 из 168; получаем разницу (остаток) 40. На рис. 5 выполняется сравнение числа 40 со следующим по старшинству битом 64. Поскольку 40 меньше 64, введите 0 в качестве следующего по старшинству позиционного значения. На рис. 6 выполняется сравнение со следующим по старшинству битом 32. Поскольку 40 больше 32, введите 1 в качестве позиционного значения и вычтите 32 из 40; получаем остаток 8. Число 8 соответствует конкретному позиционному значению. Поэтому введите 0 в качестве позиционного значения числа 16 и введите 1 в качестве позиционного значения числа 8, как показано на рис. 7. Введите нули во все остальные позиции. Как видно на рис. 8, двоичное значение третьего октета — 10101000.
Третий октет — 11. В случае простых или небольших десятичных чисел процедуру вычитания можно пропустить. Например, на рис. 9 показано полученное двоичное число. Это число можно довольно легко получить без вычитания (8 + 2 + 1 = 11). Двоичное значение второго октета — 00001011.
Четвертый октет — 10 (8 + 2). Как видно на рис. 10, двоичное значение четвертого октета — 00001010.
Преобразование между двоичной и десятичной системами счисления может поначалу показаться сложным, но чем больше вы будете практиковаться, тем проще сможете это делать.
Страница 7.1.1.8
Тема 7.1.2
Страница 7.1.2.1
Сетевая и узловая части
Понимание двоичной системы счисления необходимо, чтобы установить, находятся ли два узла в одной и той же сети. Как вы помните, IPv4-адрес является иерархическим адресом, который состоит из двух частей: сетевой и узловой. Определяя ту или иную часть, необходимо обращать внимание не на десятичное значение, а на 32-битный поток. Как показано на рисунке, в 32-битном потоке одна часть битов определяет сеть, а другая — узел.
Биты в сетевой части адреса должны быть одинаковыми у всех устройств, находящихся в одной сети. Биты в узловой части адреса должны быть уникальными для каждого узла в сети. Если два узла имеют одну битовую комбинацию в определенной сетевой части 32-битного потока, то эти два узла находятся в одной и той же сети.
Но как узлы определяют, какая из частей 32-битного потока является сетевой, а какая — узловой? Для этого используется маска подсети.
Страница 7.1.2.2
Маска подсети
Как показано на рис. 1, в ходе настройки IPv4-конфигурации узла необходимо задать три IPv4-адреса в десятичном формате с точкой-разделителем.
· IPv4-адрес — уникальный IPv4-адрес узла.
· Маска подсети используется для определения сетевой и узловой частей IPv4-адреса.
· Шлюз по умолчанию — локальный шлюз (т.е. IPv4-адрес интерфейса локального маршрутизатора), используемый для обращения к удаленным сетям.
При назначении устройству IPv4-адреса для определения адреса сети, к которому относится данное устройство, используется маска подсети. Сетевой адрес представляет все устройства в одной сети.
На рис. 2 показан адрес в десятичном формате с точкой-разделителем и 32-битная маска подсети. Обратите внимание, что маска подсети — это, по сути, последовательность битов 1, за которой следует последовательность битов 0.
Для идентификации сетевой и узловой части IPv4-адреса маска подсети побитово сравнивается с IPv4-адресом слева направо, как показано на рис. 3. Единицы в маске подсети определяют сетевую часть, а нули — узловую часть. Обратите внимание, что маска подсети на самом деле не содержит сетевой или узловой части IPv4-адреса; она лишь указывает компьютеру, где искать эти части в конкретном IPv4-адресе.
Сам процесс, используемый для определения сетевой и узловой частей адреса, называется логической операцией И (AND).
Страница 7.1.2.3.
Логическая операция И
Логическая операция И — одна из трех основных двоичных операций, используемых в дискретной логике. Двумя другими операциями являются ИЛИ (OR) и НЕ (NOT). При том, что все три операции используются в сетях передачи данных, для определения сетевого адреса применяется только операция И. Поэтому в этом разделе мы будем говорить только об операции И.
Логическое И — это сравнение двух битов, результаты которого показаны на рис. 1. Обратите внимание, что 1 И 1 = 1.
Чтобы определить сетевой адрес IPv4-узла, к IPv4-адресу и маске подсети побитово применяется логическая операция И. Применение логической операции И к адресу и маске подсети в результате дает сетевой адрес.
Для демонстрации использования операции И для определения сетевого адреса рассмотрим узел с IPv4-адресом 192.168.10.10 и маской подсети 255.255.255.0. На рис. 2 показан IPv4-адрес узла и его двоичный эквивалент. Двоичный адрес маски подсети узла показан на рис. 3.
Фрагменты, выделенные желтым на рис. 4, определяют биты И, дающие двоичную единицу в строке результатов операции И. Остальные сравнения битов дали двоичные нули. Обратите внимание, что в последнем октете больше нет битов с двоичной 1.
Наконец, на рис. 5 показан полученный сетевой адрес: 192.168.10.0 255.255.255.0. Таким образом, узел 192.168.10.10 находится в сети 192.168.10.0 255.255.255.0.
Страница 7.1.2.4
Страница 7.1.2.5
Длина префикса
Представление сетевых адресов и адресов узлов путем в виде маски подсети в десятичном формате с точкой-разделителем может быть очень громоздким. К счастью, существует альтернативный, более простой, способ определения маски подсети, называемый длиной префикса.
Длина префикса означает количество бит, установленных на единицу (1) в маске подсети. Она обозначается наклонной чертой вправо («/»), после которой идет набор единиц. Следовательно, нужно подсчитать число битов в маске подсети и поставить перед этим значением косую черту.
Например, см. таблицу на рисунке. В первом столбце перечислены различные маски подсети, которые могут использоваться с адресом узла. Во втором столбце указан полученный 32-битный двоичный адрес. В последнем столбце указана полученная длина префикса.
Об использовании различных типов длины префикса вы узнаете позже. Сейчас же мы будем говорить о маске подсети /24 (т.е. 255.255.255.0).
Страница 7.1.2.6
Сетевой адрес, адрес узла и широковещательный адрес
Каждый сетевой адрес содержит (или определяет) адреса узлов и широковещательный адрес, как описано на рис. 1.
· На рис. 2 перечислены и описаны конкретные адреса в сети 192.168.10.0 /24.
· Другие примеры приведены на рис. 3–7. На этих рисунках обратите внимание, что сетевая часть адреса остается неизменной, а меняется только узловая часть.
· На рис. 3 показан сетевой адрес 10.1.1.0 /24. Биты узла — все нули.
· На рис. 4 показан IPv4-адрес узла 10.1.1.10. Биты узла представляют собой сочетание нулей и единиц.
· На рис. 5 показан IPv4-адрес первого узла 10.1.1.1. Биты узла — все нули и одна единица. Обратите внимание, что он назначен интерфейсу маршрутизатора и поэтому станет шлюзом по умолчанию для всех узлов в этой сети.
· На рис. 6 показан IPv4-адрес последнего узла 10.1.1.254. Биты узла — все единицы и один ноль.
· На рис. 7 показан широковещательный адрес 10.1.1.255. Биты узла — все единицы.
Понятия, обсуждаемые в рамках этой темы, формируют основу для понимания IPv4-адресации. Вы должны четко понимать, как в сетевом адресе определены сетевая и узловая части с помощью маски подсети или длины префикса и логической операции И. Также обратите внимание на различные типы сетевых адресов в сети.
Страница 7.1.2.7