Информатика ЕГЭ 12 задание разбор

4.2 IP-адрес в протоколе IPv4. Структура IP-адреса: как узнать номер сети и номер узла?

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, в этой теме я предлагаю разобраться со структурой IP-адреса и откуда вообще берутся какие-то номера сети и номера узлов, ведь IP-адрес с виду цельная и неделимая сущность. Также в этой записи мы коротко поговорим о маске подсети и зачем она нужна, увидим, что когда-то было всё плохо и сети были классовыми, а сейчас всё стало хорошо благодаря CIDR и VLSM и сети стали бесклассовые и в завершении посмотрим на формы записи IP-адресов в протоколе IPv4.

Если тема компьютерных сетей вам интересна, то можете ознакомиться с другими записями курса.

Оглавление первой части: «Основы взаимодействия в компьютерных сетях».

Оглавление четвертой части: «Сетевой уровень: протокол IP и его версия IPv4».

4.2.1 Введение

Структура IP-адреса — это одна из самых важных тем для понимания принципов работы протокола IP, эта тема очень тесно связана с маршрутизацией, механизмом работы классовых сетей и механизмом маски подсети переменной длинны, если вы не разберетесь со структурой IP-адреса, вы, конечно, не будете испытывать проблем с тем, чтобы настроить на своем ПК доступ в Интернет, но у вас не будет понимания принципов работы IP сетей. Надеюсь, я вас убедил в том, что тема важная, хоть и небольшая.

4.2.2 Структура IP-адреса и маска подсети

В протоколе IP есть две очень важные вещи, которые сделали его вездесущим. Первое – это заголовок IP-пакета, который определяет функционал протокола, а второе – это IP-адрес, который, следует заметить, является частью заголовка, но о нем стоит поговорить отдельно, чем мы сейчас и займемся. Я более чем уверен, что вы уже видели IP-адреса и более того, работали с ними, но если нет, то вот вам пример: 192.168.1.0. Для человека IP-адреса в протоколе IPv4 чаще всего представлены вот в таком виде.

Тут ничего сложного нет. Для нас IP-адрес разбит на четыре кусочка, разделителем между кусочками служат точки, каждый такой кусочек представляет собой один байт или один октет, следовательно, максимально возможное число, которое можно записать равно 255, а минимальное число ноль. Получается, что чисто теоретически можно использовать адреса от 0.0.0.0 до 255.255.255.255. Правда часть из этих адресов зарезервирована под специальные нужды, это мы обсудим в отдельной теме. Сейчас же будем считать, что нам доступно два в тридцать второй степени IP-адресов или 4 294 967 296, которых уже катастрофически не хватает, поэтому происходить плавное внедрение протокола IPv6.

На самом деле IP-адрес – это не просто четыре числа, разделенных точками, а более интересная и сложная сущность. Во-первых, следует заметить, что маршрутизаторы не знают десятичной системы счисления, так же, как и абонентские узлы, для них IP-адрес представлен набором нулей и единиц в нашем случае (192.168.1.0), IP-адрес для машины выглядит как-то так: 11000000 (192) 10101000 (168) 00000001 (1) 00000000 (0). Октеты в данном случае я разделил пробелами, думаю, тут всё очевидно: каждый байт – это восемь двоичных значений (0 или 1), а всего у нас для IP-адреса выделено четыре байта, то есть 32 бита, отсюда вытекает и два в тридцать второй степени IP-адресов.

Я сразу оговорился, что IP-адрес более сложная штука, чем кажется на первый взгляд. Дело всё в том, что IP-адрес включает в себя два параметра, которые позволяют идентифицировать узел в глобальной сети: номер узла и номер сети. Вообще, протокол IP предусматривает два механизма разбиения IP-адреса на номер сети и номер узла. Первый механизм называется классовая адресация, а второй механизм называется CIDR (Classless Inter-Domain Routing) или бесклассовая адресация. В этой теме мы сделаем поверхностный обзор этих механизмов, а в дальнейшем разберемся с ними детально.

Сейчас же сделаем небольшое отступление и поговорим про байты и биты, а если быть более точным, то про порядок нумерации байтов и битов в байте. Для примера возьмем IP-адрес 192.168.1.0 и запишем его в двоичном виде.

4.2.1-Номера-октетов-и-битов-в-IP-адресе.png

Рисунок 4.2.1 Номера октетов и битов в IP-адресе

В таблице показана нумерация октетов и бит в октетах так, как это реализуется в сетях модели TCP/IP. Эта нумерация справедлива как для IP-адреса в отдельности, так для всего заголовка IP-пакета. Крайний левый байт или самый первый байт называется старшим и его порядковый номер ноль, последний байт — младший и его порядковый номер три. То же самое относится и к битам: самый старший бит имеет порядковый номер ноль, а самый младший бит в байте имеет порядковый номер семь. Такая нумерация называется от старшего к младшему или big-endian, иногда такой порядок называется сетевым порядком.

Кстати, если у вас процессор интеловской архитектуры, то он нумерует байты и биты в обратном порядке, то есть от младшего к старшему, big-endian или интеловский порядок нумерации. Есть еще смешанный порядок и переключаемый порядок, но это нам уже не очень интересно. Почему в компьютерных сетях используется прямой порядок? Да очень просто, дело в том, что в таком порядке числа удобнее сравнивать, а сетевые устройства в основном только и делают, что сравнивают то, что им пришло в пакетах с тем, что записано в их конфигурациях или памяти.

4.2.3 Классовые сети

Классовые сети были единственным способом разделить пространство IP-адресов между всеми желающими до 1993 года, то есть с 1981 по 1993 год, в 1993 году появился механизмы VLSM и CIDR, которые сделали процесс деления более гибким, из этого можно сделать вывод, что в начале девяностых уже появились первые проблемы с нехваткой IP-адресов в протоколе IPv4.

Классовая адресация, как ясно из названия, делит всё пространство IP-адресов на классы, всего этих классов пять: A, B, C, D, E. Как понять к какому классу принадлежит IP-адрес? Да очень просто! Посмотреть на его первые биты. Приведу небольшой список, чтобы было понятно, к какому классу какой IP-адрес относится:

  • сети класса А определяются значением первого бита, если первый бит IP-адреса нулевой, то это означает, что он относится к сети класса А, во всех остальных случаях – это другой класс;
  • сети класса B определяются по значениям первых двух бит IP-адреса, IP-адрес относится к сети класса B в том случае, если первый бит имеет значение 1, а второй 0;
  • IP-адрес будет принадлежать к сети класса C, если первый бит адреса будет равен 1, второй бит тоже 1, а третий будет 0;
  • сети класса D определяются по первым четырем битам IP-адреса, при этом первый бит 1, второй бит 1, третий бит 1, а четвертый 0, стоит добавить, что сети класса D использовались для многоадресной рассылки или иначе multicast;
  • и наконец сети класса E были зарезервированы и их нельзя было использовать простым смертным, определялись они первыми четырьмя битами, каждый из которых должен был иметь значение 1.

Для ясности давайте посмотрим на примере IP-адресов для каждого класса:

  1. Сеть класса А. IP-адрес в десятичном виде: 10.10.0.1. IP-адрес в двоичном виде: 00001010 00001010 00000000 00000001. Обратите внимание на то, что первый бит равен нулю, он как раз и определяет, что данный IP-адрес принадлежит к сети класса A.
  2. Сеть класса B. IP-адрес в десятичном виде: 130.25.25.12. IP-адрес в двоичном виде: 1000 0010 00011001 00011001 000011000. Принадлежность к данному классу определяют первых два бита: 10.
  3. Сеть класса C. IP-адрес в десятичном виде: 192.168.1.0. IP-адрес в двоичном виде: 11000000 10101000 00000001 00000000. Значение первых трех бит определяют принадлежность этого адреса к классу C.
  4. Сеть класса D. IP-адрес в десятичном виде: 224.0.0.6. IP-адрес в двоичном виде: 11100000 00000000 00000000 00000110. Значение первых четырех бит выделены жирным.
  5. Сеть класса E. IP-адрес в десятичном виде: 240.10.10.10. IP-адрес в двоичном виде: 11110000 00001010 00001010 00001010.

С классами сетей всё ясно и понятно, остается нераскрытым вопрос: как понять из какой подсети тот или иной IP-адрес, но об этом мы поговорим в теме про классовые сети, сейчас же только отмечу, что принадлежность IP-адреса к той или иной подсети определяется значением некоторых бит в самом IP-адресе и фиксированной маской, которая в любом случае будет сопровождать этот адрес.

4.2.4 Бесклассовые сети (CIDR) и маска подсети переменной длины (VLSM)

Бесклассовая адресация или CIDR – это механизм разделения сети на подсети в современных сетях передачи данных, этот механизм позволил существенно экономить адреса и не тратить лишнего. CIDR тесно связан с понятием VLSM (variable length subnet mask) или маска подсети переменной длинны, можно просто маска подсети или маска, на данный момент вас поймут верно. Становится понятно, что здесь уже нет жестких рамок классов, поскольку и самих классов нет. Теперь для того чтобы понять к какой подсети относится IP-адрес, самого IP-адреса недостаточно, нужна еще и маска подсети, которая, следует сказать, не передается по сети, она указывается только на конечных узлах и маршрутизаторах (а, например, L2 коммутаторы и хабы вообще ничего не знают про IP-адреса, первые работают на канальном уровне, а вторые реализуют механизмы физического уровнямодели OSI 7, про разницу между хабами, коммутаторами и роутерами читайте здесь), и для нее нет отдельного поля в IP-пакете.

Как выглядит маска подсети? Да на самом деле, как IP-адрес, вот несколько примеров маски: 255.255.255.0, 255.255.254.0, 255.248.0.0. Заметили, здесь общего? Ну, кроме того, что во всех примерах первый октет 255. Общая составляющая будет заметна, если написать все эти маски в двоичном виде:

  • 255.255.255.0: 11111111 11111111 11111111 00000000;
  • 255.255.254.0: 11111111 11111111 11111110 00000000;
  • 255.248.0.0: 11111111 11111000 00000000 00000000.

Обратите внимание: у каждой маски вначале идут только единицы, затем идут только нули, чередоваться нули и единицы в маске подсети не могут. Например, не может быть вот такой маски: 255.254.255.0 или в двоичной системе: 11111111 11111110 11111111 00000000. И это очень важно, поскольку именно на границе нулей и единиц маски подсети находится граница между номером сети и номером узла в IP-адресе.

На примере будет все немного яснее, давайте возьмем следующий IP-адрес и маску: 192.168.1.25/24, иначе это можно было бы записать так: 192.168.1.25 с маской 255.255.255.0, число 24 означает количество единиц в маске. Если вам просто дать этот IP-адрес без маски, то вы не сможете сказать: какие биты этого IP-адреса отданы под номер сети, а какие под номер узла, с маской же все становится понятно. Чтобы понять где здесь номер сети, а где номер узла, нужно перевести и маску, и IP-адрес в двоичную систему счисления. Давайте сделаем всё это в виде таблицы.

4.2.2-Переводим-IP-адрес-и-маску-подсети-в-двоичный-вид.png

Рисунок 4.2.2 Переводим IP-адрес и маску подсети в двоичный вид

Сразу отметим, что те биты IP-адреса, напротив которых в маске подсети стоят единицы, будут относиться к номеру сети, а те биты адреса, напротив которых у маски нули, относятся к номеру хоста. Чтобы узнать номер узла и номер сети нужно выполнить операцию «логическое И» между соответствующими битами IP-адреса и маски. Операция «логическое И» в двоичной системе счисления эквивалентна операции умножения в десятичной: 1×1=1, 1×0=0, 0×0=0. Вы уже понимаете, что номер сети в IP-адресе при использовании CIDR и VLSM определяется маской, а именно единичными битами маски, то есть для нашего случая номер сети это: 192.168.1.0, а под номера узлов у нас остается диапазон с 192.168.1.1 по 192.168.1.254, заметьте, что есть еще 192.168.1.255 — это широковещательный IP-адрес для данной сети и его нельзя назначить узлу или интерфейсу маршрутизатора.

Мы рассмотрели простой пример использования маски подсети, в данном случае граница между номером сети и номером узла в IP-адресе проходит по границе предпоследнего октета, но не всегда бывает так, например, маска 255.248.0.0 проводит границу между номером сети и номером узла посередине октета, но о таких случаях мы поговорим в отдельной теме, посвященной бесклассовой адресации (CIDR) и механизму маски подсети (VLSM).

4.2.5 Форма записи IP-адреса и сокращения

Теперь вас стоит немного удивить и сказать, что ни один официальный документ, посвященный IP протоколу, не говорит нам о том, как правильно записывать IP-адрес в документах, на бумаге или в конфигурациях того или иного устройства. На самом деле IP-адрес — это число, которое можно записать в любой системе счисления, хоть в восьмеричной.

Форма записи октетов, разделенных точками, просто удобна для человека: 127.0.0.1. Но для машины IP-адрес число, которое может находиться в диапазоне от 00000000 00000000 00000000 00000000 до 11111111 11111111 11111111 11111111 или в десятичной системе счисления: от 0 до 4 294 967 295. И вы понимаете, что IP-адрес 127.0.0.1 — это не число 127001, это вот такое число 01111111 00000000 00000000 00000001 или в десятичной системе: 2 130 706 433. Более того, если вы запустите командую строку или эмулятор терминала в своей операционной системе, то сможете пропинговать IP-адрес 127.0.0.1, используя число выше, если не верите, то смотрите листинг ниже.

Эстетами или проще говоря тем, кому хочется понтанутся, было придумано еще два способа записи IP-адресов в десятичном виде, эти способы идут к нам из стека BSD и функции inet_aton (). Первый способ записи выглядит так: 8bit.24bit. Вот так будет выглядеть IP-адрес в 127.0.0.1: 127.1, в двоичном виде он будет выглядеть так: 01111111.000000000000000000000001. То есть под первое число выделено 8 бит, а под второе 24.  Windows вполне себе понимает такую форму записи.

Чтобы было понятнее, приведу еще один пример: 127.267894, чтобы понять, что это за IP, вам нужно будет перевести его в двоичный вид, разбить на октеты и восстановить его в том виде, к которому мы привыкли или просто попробовать пропинговать адрес:

Вторая сокращенная форма записи IP-адреса выглядит так: 8bit.8bit.16bit. Адрес 127.0.0.1 в этой форме можно записать так: 127.0.1. Винда понимает и эту форму:

Для примера давайте пропингуем адрес 127.99.259, чтобы посмотреть как происходит преобразование:

Нормальный человек никогда не будет вам рекомендовать использовать для записи IP-адреса обычные числа или формы 8bit.24bit, 8bit.8bit.16bit. Дело в том, что эти формы записи IP-адресов настолько непривычны, что не всем удобно и понятно с ними работать, вас могут просто банально не понять, если вместо IP-адреса вы напишите огромное число или сокращенную форму записи. Второй момент заключается в том, что не всё оборудование и не каждая программа сможет работать с такими формами записи IP-адресов, нет никакой гарантии того, что разработчик софта вообще знал о том, что такие формы допустимы в протоколе IP.

4.2.6 Выводы

Итак, какие выводы можно сделать по IP-адресам в протоколе IPv4 и их структуре? IP-адрес состоит из двух частей: номера сети и номера узла. Для отделения мух от котлет у нас есть два механизма: классовая адресация, которая уже не используется из-за неэкономного расходования ограниченного ресурса IP-адресов, а также механизмы VLSM и CIDR, которые позволяют очень гибко делить сети на подсети. Оба этих механизма мы рассмотрим более подробно, сейчас же был просто поверхностный взгляд.

Также стоит сказать, что IP-адреса узлам назначаются администратором вручную или при помощи DHCP-сервера, который настраивает администратор. Если же у вас сеть разделена на подсети, то у каждой подсети должен быть уникальный номер, а еще внутри подсети каждый узел должен иметь уникальный номер.

Нужно сказать еще и о том, что очень часто вместе с IP-адресом узла, нам нужно будет использовать IP-адрес шлюза и маску сети, обе эти настройки никак не передаются по сети, поскольку для них нет поля в заголовке IP-пакета. В заголовке есть только IP-адрес источника и IP-адрес назначения, этой информации хватает маршрутизатору для того, чтобы выбрать направление, по которому будет направлен пакет.

Возможно, эти записи вам покажутся интересными

На уроке рассматривается решение 12 задания ЕГЭ по информатике, включая задания 2019 годаНазадК оглавлениюДалее

Объяснение заданий 12 ЕГЭ по информатике

12 тема — «Сетевые адреса» — характеризуется, как задания базового уровня сложности, время выполнения – примерно 2 минуты, максимальный балл — 1

Адресация в Интернете

Адрес документа в Интернете (с английского — URL — Uniform Resource Locator) состоит из следующих частей:

  • протокол передачи данных; может быть:
  • http (для Web-страниц) или
  • ftp (для передачи файлов)
  • встречается также защищенный протокол https;
  • символы-разделители ://, отделяющие название протокола от остальной части адреса;
  • доменное имя сайта (или IP-адрес);
  • может присутствовать также: каталог на сервере, где располагается файл;
  • имя файла.

Каталоги на сервере разделяются прямым слэшем «/»

Пример:

1-127-500x115.png

Где:

  1. имя протокола сетевой службы – определяет тип сервера HTTP (протокол передачи гипертекста);
  2. разделитель в виде символа двоеточия и двух символов Slash;
  3. полное доменное имя сервера;
  4. путь поиска web-документа на компьютере;
  5. имя web-сервера;
  6. домен верхнего уровня «org»;
  7. имя национального домена «ru»;
  8. каталог main на компьютере;
  9. каталог news в каталоге main;
  10. конечная цель поиска – файл main_news.html.

Сетевые адреса

Физический адрес или MAC-адрес – уникальный адрес, «вшитый» на производстве — 48-битный код сетевой карты (в 16-ричной системе):


00-17-E1-41-AD-73</pre>

IP-адрес – адрес компьютера (32-битное число), состоящий из: номер сети + номер компьютера в сети (адрес узла):


15.30.47.48</pre>

Маска подсети:

  • необходима для определения того, какие компьютеры находятся в той же подсети;
в 10-м представлении     в 16-м представлении

255.255.255.0 -> FF.FF.FF.0</pre>маска в двоичном коде всегда имеет структуру: сначала все единицы, затем все нули:</li>1…10…0при наложении на IP-адрес (логическая конъюнкция И) дает номер сети:</li>1-89-500x99.png

Та часть IP-адреса, которая соответствует битам маски равным единице, относится к адресу сети, а часть, соответствующая битам маски равным нулю – это числовой адрес компьютера

таким образом, можно определить каким может быть последнее число маски:</li>

1_11-4-500x176.png

если два узла относятся к одной сети, то адрес сети у них одинаковый.</li>

Расчет номера сети по IP-адресу и маске сети

Итак:

В маске под­се­ти старшие биты, от­ве­ден­ные в IP-адресе ком­пью­те­ра для номера сети, имеют зна­че­ние 1 (255); млад­шие биты, от­ве­ден­ные в IP-адресе ком­пью­те­ра для ад­ре­са компьютера в подсети, имеют зна­че­ние .

1_1-12.png

* Изображение взято из презентации К. Полякова

Порядковый номер компьютера в сети

2-500x319.png

* Изображение взято из презентации К. Полякова

Число компьютеров в сети

Количество компьютеров сети определяется по маске: младшие биты маски — нули — отведены в IP-адресе компьютера под адрес компьютера в подсети.

Если маска:1_11-31-500x83.png То число компьютеров в сети:


27 = 128 адресов</pre>

Из них 2 специальных: адрес сети и широковещательный адрес

Значит:


128 — 2 = 126 адресов</pre>

Решение заданий 12 ЕГЭ по информатике

Ip-адрес и доменное имя сайта: правила построения

12_7: Решение задания 12 (Поляков К., вариант 17):

На месте преступления были обнаружены четыре обрывка бумаги. Следствие установило, что на них записаны фрагменты одного IP-адреса. Криминалисты обозначили эти фрагменты буквами А, Б, В и Г. Восстановите IP-адрес. В ответе укажите последовательность букв, обозначающих фрагменты, в порядке, соответствующем IP-адресу.000-69-500x78.png

✍ Решение:

  • Вспомним правила построения IP-адреса.
  • Исключим фрагменты, которые не могут соответствовать началу IP-адреса: это фрагмент Б (с точки не может начинаться IP-адрес).
  • Исключим фрагменты, которые не могут соответствовать концу IP-адреса: это фрагмент В (отсутствие точки в начале, и, при этом, в остальных фрагментах нет таких, где в конце стояла бы точка (***.)).
  • Фрагмент А должен быть либо на последнем месте, либо после него должен находиться только Б (так как следом должна идти точка).
  • Фрагмент Б может находиться только в конце, так как последующий за ним фрагмент увеличит число до величины, большей 255, чего не может быть в IP-адресе (например, 322).
  • Переберем оставшиеся варианты, и найдем искомый IP-адрес:
ВГАБ: 222.222.222.32  

Ответ: ВГАБ

12_8: Решение задания 12 (Поляков К., вариант 7):

На сервере school.edu находится файл rating.net, доступ к которому осуществляется по протоколу http. Фрагменты адреса данного файла закодированы буквами а, Ь, с… g (см. таблицу). Запишите последовательность этих букв, которая кодирует адрес указанного файла в Интернете.

a .edu
b school
c .net
d /
e rating
f http
g ://

✍ Решение:

Ответ:fgbadec

Определение адреса сети по IP-адресу и маске сети

12_3: Решение задания 12 (Поляков К., вариант 25):В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

 По заданным IP-адресу узла сети и маске определите адрес сети:

  IP-адрес: 145.92.137.88Маска: 255.255.240.0  

При записи ответа выберите из приведенных в таблице чисел четыре элемента IP-адреса и запишите в нужном порядке соответствующие им буквы без точек.

A B C D E F G H
145 255 137 128 240 88 92

  Типовые задания для тренировки

✍ Решение:

  • Для решения задания необходимо вспомнить, что IP-адрес сети так же как и маска сети хранятся в 4 байтах записанных через точку. То есть каждое из отдельных чисел IP-адреса и маски сети хранится в 8-разрядном двоичном виде. Для получения адреса сети необходимо выполнить поразрядную конъюнкцию этих чисел.
  • Так как число 255 в двоичном представлении — это 8 единиц, то при поразрядной конъюнкции с любым числом, в результате получится то же самое число. Таким образом, нет необходимости брать во внимание те байты IP-адреса, которые соответствуют числу 255 в маске сети. Поэтому первые два числа IP-адреса останутся такими же (145.92).
  • Остается рассмотреть числа 137 и 88 IP-дареса и 240 маски. Число в маске соответствует восьми нулям в двоичном представлении, то есть поразрядная конъюнкция с любым числом превратит это число в .
  • Переведем оба числа ip-адреса и маски сети в двоичную систему и запишем IP-адрес и маску друг под другом, чтобы осуществить поразрядную конъюнкцию:
  137 : 10001001   88 :  1011000    -  IP-адрес  240 : 11110000    0 : 00000000    -  маска сети        1000000000000000    -  результат поразрядной конъюнкции  

Переведем результат в 10-ю систему счисления:</li>

100000002 = 12810

Итого, для адреса сети получаем байты:</li>

145.92.128.0

Ставим в соответствие буквы в таблице и получаем BHEA.</li>

Результат: BHEA

Предлагаем посмотреть подробный видеоразбор:

Определение маски сети

12_1: ЕГЭ по информатике 2017 задание 12 ФИПИ вариант 1 (Крылов С.С., Чуркина Т.Е.):В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, — в виде четырех байтов, причем каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда — нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

 Например, если IP-адрес узла равен 211.132.255.41, а маска равна 255.255.201.0, то адрес сети равен 211.132.201.0

Для узла с IP-адресом 200.15.70.23 адрес сети равен 200.15.64.0. Чему равно наименьшее возможное значение третьего слева байта маски? Ответ запишите в виде десятичного числа.   Типовые задания для тренировки

✍ Решение:

  • Третий байт слева соответствует числу 70 в IP-адресе и 64 — в адресе сети.
  • Адрес сети — это результат поразрядной конъюнкции маски и IP-адреса в двоичной системе:
   ? ? ? ? ? ? ? ? -> третий байт маски  И (&)0 1 0 0 0 1 1 02 -> 7010  =   0 1 0 0 0 0 0 02 -> 6410

Наименьшим возможным результатом маски может быть:</li>

   1 1 0 0 0 0 0 0 - третий байт маски  И (&)0 1 0 0 0 1 1 02 -> 7010  =   0 1 0 0 0 0 0 02 -> 6410

Здесь самый старший бит взят за единицу, хотя для результата конъюнкции можно было взять ноль (0 & 0 = 0). Однако, так как следом стоит гарантированная единица, значит, в старший бит ставим тоже 1. Как известно, в маске сначала идут единицы, а потом нули (не может быть такого: 0100…, а может быть только так: 1100…).</li>Переведем 110000002 в 10-ю систему счисления и получим 192.</li>

Результат: 192

Пошаговое решение данного 12 задания ЕГЭ по информатике доступно в видеоуроке:

12_2: 12 задание. Демоверсия ЕГЭ 2018 информатика:Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.   Для узла с IP-адресом 57.179.208.27 адрес сети равен 57.179.192.0. Каково наибольшее возможное количество единиц в разрядах маски?   Типовые задания для тренировки

✍ Решение:

  • Поскольку адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, то получим:
   255.255.?.?    -> маска  &   57.179.208.27  -> IP-адрес  =   57.179.192.0   -> адрес сети  

Так как первые два байта слева в IP-адресе узла и адресе сети совпадают, значит, в маске для получения такого результата при поразрядной конъюнкции в двоичной системе должны быть все единицы. Т.е.:</li>

111111112 = 25510

Для того, чтобы найти оставшиеся два байта маски, необходимо перевести соответствующие байты в IP-адресе и адресе сети в 2-ю систему счисления. Сделаем это:</li>

  20810 = 110100002  19210 = 110000002

Теперь посмотрим, какая может быть маска для данного байта. Пронумеруем биты маски справа налево:</li>

7  6 5  4 3  2  1  0   1 1 1 0 0 0 0 0   -> маска  &   1 1 0 1 0 0 0 0  =   1 1 0 0 0 0 0 0  

Для 5-го бита получаем: ? & 0 = 0 -> в маске может находиться как единица, так и . Но так как по заданию у нас спрашивается наибольшее возможное количество единиц, то значит, необходимо сказать, что в маске данный бит равен 1.</li>Для 4-го бита получаем: ? & 1 = 0 -> в маске может находиться только .</li>Так как в маске сначала идут единицы, а затем все нули, то после этого нуля в 4-м бите все остальные будут нули. И 4-й слева байт маски будет равен 010.</li>Получим маску: 11111111.11111111.11100000.00000000.</li>Посчитаем количество единиц в маске:</li>

8 + 8 + 3 = 19

Результат: 19

Подробное решение 12 задания демоверсии ЕГЭ 2018 года смотрите на видео:

12_9: Решение задания 12 (с сайта К. Полякова, вариант 139):Два узла, находящиеся в разных подсетях, имеют IP-адреса 132.46.175.26 и 132.46.170.130. В масках обеих подсетей одинаковое количество единиц. Укажите наименьшее возможное количество единиц в масках этих подсетей.

✍ Решение:

  • В маске подсети сначала следуют единичные биты, которые соответствуют адресу подсети в IP-адресе компьютера. Так как адреса подсети двух компьютеров из условия задачи разные, но при этом количество единиц в их масках совпадает, то необходимо определить в IP-адресах компьютеров первый слева бит, который у них будет различен. Этот бит будет относиться к адресу подсети, а остальные биты, идущие справа от него, могут относиться уже к адресу компьютера.
  • Таким образом, найдем первый слева различный бит:
  175: 10101111  170: 1010110  

Получаем, что в маске подсети все биты, включая тот, что соответствует выделенным, будут равны единице. Отобразим это, переводя в двоичную систему счисления только интересующий нас байт. Выделим ту часть адресов, которая соответствует наименьшему возможному адресу подсети (соответственно, наименьшему количеству единиц в маске):</li>

  адрес 1: 132.46.10101111.26  адрес 2: 132.46.10101010.130  маска : 255.255.11111100.00000000  

255 для маски — это 8 единиц. Посчитаем общее количество единиц в маске (она одинакова для обеих компьютеров):</li>

  8 + 8 + 6 = 22

Ответ: 22

Количество различных значений маски

12_6: Решение задания 12 (Краевая работа, Дальний Восток, 2018):Для узла с IP-адресом 93.138.161.94 адрес сети равен 93.138.160.0. Для скольких различных значений маски это возможно?   Типовые задачи для тренировки

✍ Решение:

Результат: 5

Видеоразбор задания:

Определение номера компьютера

12_4: Решение задания 12 (Поляков К., вариант 33):Если маска подсети 255.255.255.128 и IP-адрес компьютера в сети 122.191.12.189, то номер компьютера в сети равен _____.   Типовые задания для тренировки

✍ Решение:

  • Единичные биты маски (равные единице) определяют адрес подсети, т.к. адрес подсети — это результат поразрядной конъюнкции (логического умножения) битов маски с IP-адресом.
  • Остальная часть маски (начиная с первого нуля) определяет номер компьютера.
  • Поскольку в двоичном представлении число 255 — это восемь единиц (11111111), то при поразрядной конъюнкции с любым числом, возвращается то же самое число (1 ∧ 0 = 0; 1 ∧ 1 = 1). Таким образом, те байты в маске, которые равны числам 255, мы рассматривать не будем, т.к. они определяют адрес подсети.
  • Начнем рассмотрение с байта равного 128. Ему соответствует байт 189 IP-адреса. Переведем эти числа в двоичную систему счисления:
  128 = 100000002  189 = 101111012

Те биты IP-адреса, которые соответствуют нулевым битам маски, служат для определения номера компьютера. Переведем получившееся двоичное число в десятичную систему счисления:</li>

  01111012 = 6110

Результат: 61

Подробное решение данного задания смотрите на видео:

Количество адресов компьютеров

12_5: Решение задания 12 (Поляков К., вариант 41):В терминологии сетей TCP/IP маской подсети называется 32-разрядное двоичное число, определяющее, какие именно разряды IP-адреса компьютера являются общими для всей подсети — в этих разрядах маски стоит 1. Обычно маски записываются в виде четверки десятичных чисел — по тем же правилам, что и IP-адреса.Для некоторой подсети используется маска 255.255.255.192. Сколько различных адресов компьютеров теоретически допускает эта маска, если два адреса (адрес сети и широковещательный) не используют?   Типовые задания для тренировки

✍ Решение:

  • Единичные биты маски (равные единице) определяют адрес подсети, остальная часть маски (начиная с первого нуля) определяет номер компьютера. То есть для адреса компьютера существует столько вариантов, сколько можно получить из нулевых битов в маске.
  • В нашем случае первые слева три байта маски мы рассматривать не будем, т.к. число 255 в двоичном представлении — это восемь единиц (11111111).
  • Рассмотрим последний байт маски, равный 192. Переведем число в двоичную систему счисления:
  19210 = 110000002

Итого получили 6 нулей в маске сети. Значит, на адресацию компьютеров выделяется 6 бит или, другими словами, 26 адресов компьютеров. Но поскольку два адреса уже зарезервировано (по условию), то получим:</li>

  26 - 2 = 64 - 2 = 62

Результат: 62

Видеоразбор задания смотрите ниже:

НазадК оглавлениюДалее

Решил завести ещё одну рубрику и начать с «главного» вопроса для этой рубрики. Как по сетевой массе рассчитать количество адресов. Сетевой адрес состоит из двух частей: адреса сети и адреса хоста в этой сети. А маска сети как раз и является той разделительной чертой, которая разделяет эти адреса.

А хотели бы Вы стать гуру в этом вопросе? Научиться легко разбираться в сетевых настройках на профессиональном уровне? Если да, то напишите мне через страницу обратной связи.

Теория: маска сети определяет, сколько бит в IP адресе идентифицирует сеть. Рассмотрим частные адреса (RFC1918) из сети класса «С»: они занимают диапазон 192.168.0.0 — 192.168.255.255. Маска этого сегмента 192.168.0.0/16. Как рассчитать, сколько это адресов?

Запись 192.168.0.0/16 (255.255.0.0) означает, что под адрес сети занято 16 бит. Если адрес перевести в двоичное исчисление, то первые 16 бит это – 192.168. Это и есть адрес сети: 192.168.0.0.

Практика: адрес сети это первый адрес, данного сегмента. Этот адрес нельзя назначить никакому хосту. Если сеть задана в таком виде, то адреса типа : 192.168.1.0, 192.168.1.255 это просто адреса хостов, при такой маске их можно назначать компьютерам. Но если задать сеть как 192.168.1.0/24, то оба вышеуказанных адреса назначить каким-либо устройствам не удастся. В этом случае, первый адрес является адресом сети, а второй broadcast адресом для этой сети.

Broadcast адрес это второй служебный адрес для каждой сети. Он нужен для рассылки все адресам сети. Если послать сетевой пакет на этот адрес, то он придет на все адреса своего сегмента сети. Broadcast адрес всегда последний адрес сети. Поэтому назначить адресов в любой сети можно всегда на два адреса меньше. В случае всего сегмента частых адресов класса «С» это адреса: 192.168.0.0 и 192.168.255.255.

Теперь как посчитать, сколько же адресов может быть в сети. Важное замечание: адресов в любой сети всегда четное! Более того, оно всегда кратно степени двойки. То есть число адресов – это число, равное два в степени: число бит, оставшееся от вычитания количества бит под адрес сети из полного числа бит. Всего в адресе 32 бита, в нашем случае под адрес сети выделено 16 бит, под адреса остается тоже 16. Это значит, чтобы узнать количество адресов в данной сети надо два возвести в 16 степень. Это будет 65536 адресов. Сеть такого масштаба вряд ли кому то нужна. Чаще бывают более мелкие сети. Например, маска /30 означает, что под адреса остается только 2 бита. Соответственно, два во второй степени будет четыре. Сколько же адресов можно использовать в такой сети для назначения устройствам? Правильный ответ: всего один! Потому что, как выяснили ранее, два адреса в каждой сети служебные. Остается два адреса. Но если мы хотим подключить компьютер с адресом с такой маской в сеть, то нам нужно будет ещё выделить адрес в этой сети для маршрутизатора, через который можно будет попасть в другие сети, поскольку в данной сети других адресов нет.

Крайние случаи: /0 и /32. Маска /0 означает все адреса, весь интернет. Маска /32 означает единичный хост. Такие адреса провайдеры выделяют для экономии. Соединение в таком случае возможно только точка-точка. То есть используется протокол PPP.

Расчет маски в нотации 255.255.255.0 довольно просто в случае, если первые 3 октета 255. В противном случае надо переводить десятичное число в двоичное и выяснять количество бит, которое оно означает. Либо вычитать это число из 256 и определить в какую степень нужно возвести двойку, чтобы получить это число. Степень и будет равна числу бит. В случае, если маска определяется только последним октетом, можно посчитать следующим образом. Максимальное число адресов в данной ситуации 256, нумерация начинается с нуля! Если последний октет 255 – это соответствует маске /32 и означает единичный хост. Если последний октет ноль, то этот случай соответствует маске /24 и адресов в данной сети – 256. промежуточные варианты определяются также, как я описал чуть выше. Например, последний октет 240. Вычитаем это число из 256, получаем 16. В сети с такой маской может быть 16 адресов и соответственно можно включить 14 компьютеров. А если такую сеть выделил провайдер, то только 13, так как один адрес придется использовать под маршрутизатор. Как видите все просто. Теперь как перевести из одного представления маски в другое. Возьмем опять маску 255.255.255.240. В такой сети может быть 16 адресов. 16 – это два в четвертой степени. Следовательно, под адреса выделено 4 бита. Значит под сеть – 28. Маска по CIDR будет /28. Теперь обратно. Возьмем маску для разнообразия /26. 32-26=6. 6 бит под адреса. Адресов в этом случае будет: два в шестой степени = 64. Соответственно: 256-64=192. Маска будет: 255.255.255.192. Вот так легко рассчитываются адреса и маски.

В заключение ещё один момент. Адреса сети имеют определенные значения. От маски сети зависит, какие значения они могут принимать. Для простоты возьмем сеть 192.168.1.0/24. в этой сети только один адрес сети: 192.168.1.0. Меняем маску на 25. В этом случае адресов в сети может только 128. наша сеть разбивается на две: 192.168.1.0/25 и 192.168.1.128/25. Если передадим ещё один бит маске сети — /26, то сетей будет уже 4 по 64 адреса: 192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26 и 192.168.1.192/26 и так далее. Думаю, что теперь каждый сможет определить, сколько адресов, какой адрес сети и какой адрес broadcast для сети 196.68.1.120/27. Если возникнут затруднения или что-то осталось непонятным задайте мне вопрос на сайте.

CIDR IPv4

ПоделитьсяИспользуемые источники:

  • https://zametkinapolyah.ru/kompyuternye-seti/struktura-ip-adresa-kak-uznat-nomer-seti-i-nomer-uzla.html
  • https://labs-org.ru/ege-12_/
  • https://nahoste.ru/set/maska-seti-kak-rasschityvat/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации