Сегодня проведём урок на одну из самых it-шных тем в программе информатики. С 2024 тема после 2019 года снова вернулась в ЕГЭ в виде задания №13 вместо графов-маршрутов. Наша задача понять теоретическую часть вопроса и научиться решать любые виды заданий на эту тему. В чём сложность задания? В отсутствии каких-либо базовых знаний в этой области как у учеников , так и у преподавателей. А также в инженерной специфике задания. На самом деле задание просто немного нелепое в некотором смысле, поскольку практическая часть не имеет информационной полезности, т.е. программы по этой теме в большей степени представляют собой математические схемы подсчёта ненужной для масок и сетей информации. Т.е. если, например, взять полезность задания для знания функций администратора сетей, то данная концепция отсутствует в типах задания. Поэтому цель сводится, в общем, к программированию теории ради теории. Не только это задание и ещё ряд заданий выглядят нелепо в подаче ЕГЭ. Но мы с вами максимально приблизим тему к полезности и решим все виды теоретических "практических" заданий этого раздела информатики.
Почему этот урок идёт в рубрике нашего марафона неплановым? Ну, во-первых, потому что наш экспресс-курс предусматривает логическую последовательность освоения всех базовых понятий в информатике, а мы сейчас пока в точке алгоритмики нашего курса и до сетевых технологий ещё идти и идти, во-вторых, у многих ребят именно эта тема - самое слабое звено и нужна оперативная помощь, судя по большому числу разного рода обращений, в-третьих, тема, несмотря на непрактичность, ещё и довольно обширная в разновидности заданий. Поэтому параллельно включаем её освоение в наш марафон, чтобы она успела, так сказать, отложиться и освоиться
Мои ребята в центре обучения < Информатика Севастополь> как-то на занятии пожаловались, что учитель информатики в школе включил им трансляцию сайта по этой теме на уроке, не слова не сказав и не прокомментировав. Потоки непонятной информации с набором 32-битных адресов конечно произвели на учащихся некую паническую атаку и неуверенность в успехе на ЕГЭ. После пары занятий на наших курсах тема стала для ребят одной из обычных средних по уровню тем, так как, в принципе, не имеет каких-либо интеллектуальных или логических сложностей в освоении. Во всяком случае, всё то, что вы уже знаете из нашего экспресс-курса марафона по уровню сложности в некотором смысле труднее, нежели понятия масок сетей и адресов узлов сетей.
Поэтому смело пошли разбираться во всём по порядку.
Итак, вы открыли любой браузер и забили в нём какую-либо ссылку. И через несколько секунд вы смотрите контент сайта. И зачем вам надо знать то, каким образом всё происходит и что на самом деле творится под капотом? Но мы - информатики и должны познавать всё, в том числе процессы передачи информации. Как же компьютер получает по сети нужную нам информацию со всего мира? Тема очень обширная и из песни слов не выбросишь, чтобы понять её; поэтому придётся изучить всю схему технологий, в которых существуют понятия IP, сеть, маска сети, каналы и т.д.
Так вот, все наши запросы обеспечиваются интернет – глобальной сетью, объединяющей миллионы устройств, таких как компьютеры, серверы, роутеры, маршрутизаторы. За всю магию в интернет отвечают разные технологии, которые можно представить аппаратным и программным обеспечением интернет.
Советую следующее прочитать внимательно. Я максимально сжато обобщила для вас всё самое необходимое по данной теме для полного её понимания.
Аппаратная часть включает в себя
o оптоволоконный кабель, покрывший почти всю планету и даже проложенный на дне океана, объединяя Америку и Европу.
o маршрутизаторы – транзитные передатчики данных по сети
o серверы – спецмашины, хранящие данные и выдающие их пользователю по запросу
o DNS – серверы, хранящие информацию об адресах сайтов
o беспроводные устройства – модемы и роутеры, связанные с сотовыми антеннами
o пользовательские ПК и гаджеты
Программная часть включает в себя:
o браузеры – программы для доступа пользователей к ресурсам интернет
o DNS –система доменных имён, которая позволяет найти ресурсы по их имени. Эта технология - база данных интернет, где прописаны уникальные адреса каждого ресурса: IP адрес узла, на котором размещён сайт и URL– унифицированный указатель ресурса с именем сайта. Оба адреса указаны в кортеже – строке базы данных интернет. Домены (столбцы) базы данных имеют ключевые параметры – IP адреса, которые уникальны во всей глобальной сети
o Интернет протоколы TCP и IP. TCP – протокол контроля передачи данных при отправке и сборке пакетов. IP – протокол идентифицирует устройство в сети, т.е. обеспечивает адресацию узлов сети и маршрутизацию пакетов данных до них.
o Программные технологии WWW – всемирной паутины, являющейся лишь составной частью интернет, а не самой интернет и использующейся для просмотра контента сайтов
WEB - серверное ПО для обработки запросов браузеров пользователей
HTML – язык для отображения страниц web- сайтов
HTTP – протокол для обмена страницами между пользователем и сервером с методами Get – запрос данных с сервера и Post – отправка данных на сервер.
И вот всё это заточено на постоянную обработку данных. Весь объём данных в интернет уже перевалил за 125 зеттабайтов, а пользователей зарегистрировано более 5 млрд. Как же всё это работает? Давайте представим алгоритм процесса обработки вашего запроса в интернет.
1. Когда вы ввели ссылку (URL) в адресной строке браузера, браузер начинает поиск IP – адреса сервера, на котором находится данный сайт. Перед тем, как обратиться к DNS- серверу браузер проверяет, нет ли внутри него уже такой записи, ведь вы уже возможно могли посещать данный сайт ранее. Если не находится, то запрос идёт к ближайшему DNS – серверу провайдера с просьбой дать нужный IP – адрес, а тот может отправить запрос ещё дальше по цепочке к другим DNS –серверам
2. Когда браузер находит IP- адрес, он при помощи протокола TCP устанавливает соединение между устройствами, отслеживая целостность передачи данных, а IP обеспечивает адресацию узлов сети и отправку пакетов данных. Соединение происходит как бы в три этапа запрос-разрешение-соединение.
3. И вот после соединения начинается передача гипертекста документа при помощи протокола HTTP в браузере. Браузер получает код HTML от сервера и затем прорисовывает страницу и графику сайта, а также прописывает данные загрузки, чтобы при необходимости не повторять процесс поиска заново.
Т.е, главный момент – найти адрес – IP узла (сервера сети), где находится нужный ресурс, и отправить данные на IP устройство пользователя (клиента).
Как же нумеруются все узлы в интернет? Так вот, для обозначения адресов узлов используется набор чисел формата xxxx.xxxx.xxxx.xxxx Этот набор и называется IP – адресом. Каждое число соответствует одному байту и имеет величину от 0 до 255, а весь адрес составляет 32 бита.
Например, 192.158.0.1. при использовании IP v4;, а в версии протокола IPv6 адрес занимает 128 бит.
Теперь переходим к разбору IP как адреса сети.
В целом интернет – это глобальная сеть, но она имеет в своем составе сети и подсети разных уровней и узлы этих подсетей и сетей.
Например, те, кто владеет магистральными кабелями, т.е. ядром интернета относятся к провайдерам и сетям первого уровня. Их клиенты – провайдеры второго уровня, например провайдеры одной страны. Третий уровень – это провайдеры для подключения пользователей. Т.е. нам с вами провайдеры третьего уровня продают услуги интернет, подключая нас к сети по каналу, арендованному у провайдера второго уровня.
Есть корпоративные сети, локальные сети, региональные сети. Сеть включает в себя устройства, которые могут между собой взаимодействовать. Сеть – это какой-то диапазон (количество адресов) устройств, например, выделенных администратором для одной сети или подсети. Подсеть меньше сети и имеет меньший диапазон. Получается, что все IP идентифицируют как узлы, так и сети, так как любой узел относится к какой-либо сети. А как же определить в разноуровневых сетях, где в них IP адрес сети, а где адрес узла сети?
И здесь на помощь приходит маска сети, своего рода фильтр, разграничитель.
o Маска разделяет в IP – адресе сетевую часть адреса (префикс сети) от адреса узда в этой сети.
Как представляется маска? В виде 32-битного числа, которое включает от 0 до 32 единиц. После единиц следуют нули, но после нулей единиц не может быть. У маски есть два формата представления: первый похож на IP - адрес в виде двоично-десятичной формы: 255.255.0.0 а второй может быть представлена в виде числа от 0 до 32, обозначающих количество единиц в маске, т.е. префиксную часть сети. Например, для IP узла 192.168..2.15/24 – маска 255.255.255.0 ; так как 24 единицы – это 3 байта единиц, 11111111.11111111.11111111 ; адрес сети будет 192.168.2.0. Почему адрес сети будет 192.168.2.0?
Для определения адреса сети/подсети используется поразрядная конъюнкция. На нашем курсе пока мы не затрагивали тему логических операций АЛУ процессора, поэтому коротко о конъюнкции. Это логическая бинарная операция, которая имеет в результате значение истинно, если оба исходные выражения истинны. Эту операцию называют в разделе информатики – алгебре логики – логическим умножением. Т.е. при умножении 1 и 0 когда будет в результате 1? Тогда, когда 1*1, а в остальных случаях: 1*0=0; 0*1=0; 0*0=0 будут нули. Так вот 1 в маске указывает на истину в результате, т.е. исходное значение при умножении на один даёт исходное выражение, а на 0, даёт 0. Поэтому адрес сети получается в результате применения конъюнкции к каждому из 32 разрядов IP узла 32 разрядов маски поразрядно.
I. Например, IP узла 102. 9. 140.219, а маска 255.255.192.0. Найти адрес сети. Первые два числа мы можем сразу определить, так как в маске в двух первых байтах все единицы, а значит, в первых двух числах адреса сети будут исходные значения 102.9. Для определения третьего числа представим исходное третье число IP- узла в двоичном коде и также третий байт маски в двоичном коде. 140 - 128+12; по методу ряда для 8 разрядов 10001010; 192 – 128+64 – 11000000, а затем сделаем поразрядное логическое умножение:
o 10001010
o 11000000
o 10000000 128 – третий байт сети найден
Четвёртый байт сети будет равен 0, так как при умножении на 0 будет 0, значит адрес сети при заданной маске и исходном IP-узле будет 102.9.128.0
Теперь идём дальше. Если единицы маски определяют сеть – адрес сети, то что определяют нули маски? А нули определяют количество адресов, которые можно раздать компьютерам, находящимся в одной подсети. Если в маске n-нулей, то количество адресов компьютеров, которые можно подключить в эту сеть будет равно 2^n-2.
II.Например, для некоторой подсети используется маска 255.255.255.128. Сколько различных адресов компьютеров допускает эта маска?
Для определения кол-ва адресов надо найти кол-во нулей в маске. Первые три байта содержат единицы. Четвертыё байт 128 представим в двоичном коде 10000000. Кол-во нулей 7, значит адресов 2^7-2=126.
Почему минус два? Это адрес самой сети (нулевой) и адрес широковещательного канала, т.е. общего канала, который используется в сети для передачи данных всем участникам сети и для определения адресов, сервисов неизвестных устройств в сети
Также маска – это очень удобный инструмент для ранжирования сети, т.е. для изменения диапазона сети. Админы с помощью маски могут расширить кол-во компьютеров в сети для взаимодействия или наоборот ограничить. И это позволяет сделать новое значение маски. Чем меньше из 32 возможных отводится под сеть – единиц, тем больше возможных устройств можно подключить.
Иногда для формирования таблиц маршрутизации админу необходимо зная ip-узла и ip-сети составить маски для разных подсетей. Рассмотрим пример.
III. Например, для узла с IP-адресом 91.62.203.130 адрес сети 91.62.192.0. Найти наименьшее возможное кол-во единиц в двоичной записи маски подсети.
Первые два байта хоста – узла и подсети не изменяются 91.62– это в маске единицы 2*8=16. Последний байт в подсети 0, значит в маске он тоже 8 нулей. Теперь надо рассмотреть третий байт. Так как адрес сети получается при конъюнкции узла и маски, то представим в двоичном коде 203 и 192, а между ними найдём маску:
o 11001011 ______________ 11001011 _ 203 = 128+ 64+11
o 11000000 наименьшая _ 11110000 _ наибольшая Маски
o 11000000 _______________ 11000000 _ 192 = 128+ 64
Наименьшая маска будет содержать 16+2=18 единиц, а наибольшая 16+4=20.
При этом в первом случае маска будет 91.62.192.0: а во втором 91.62.240.0
И ещё один тип для ручных заданий по этой теме, связанный с определением номера узла для адресов сети и узла.
IV. Например, Для IP – узла 112.154.133.208 и маски сети 255.255.248.0 найти номер хоста (устройства) в сети.
Поскольку номер определяется в позициях нулей масок, то сначала анализируем маску, т.е рассматриваем байты, не равные 255. В данном случае 248. Представляем в двоичном коде 248. Это 255-7, поэтому 11111000. В маске первые 5 единиц, значит первые пять бит узла в третьем байте 133 будут относиться к адресу сети, а 3 к адресу узла. Представим 133 в двоичном коде: это 128+5 10000101 , где под номер узла пойдут лишь три последние бита, так как пять заняты маской под сеть -100000101 . Теперь рассмотрим четвертый байт ip-узла - 208. Все число пойдет под номер узла, так как в маске после нулей единицы не пишутся. Представим 208 в двоичном коде – 128+64+16 = 11010000. В результате получаем два числа 101 и 11010000. Объединяем их 10111010000. Переводим в десятичное представление 16+64+128+256+1024=1280+208=1488. № узла в сети 1488
И это в принципе всё, что надо понимать по данной теме.
Но в ЕГЭ с 2024 года добавлены задания по подсчёту разных данных в возможных адресах сети, например, сколько в сети адресов, у которых в первой половине больше единиц, чем во второй или ещё нечто подобное. Поэтому понятно, что здесь без проги никак. Поэтому подключаем в продолжениие урока Python c библиотекой ipaddress и функциями ip_network(), num_address и легко побеждаем ещё одно задание ЕГЭ.
Вот такой стартовый общий основной обзор по теме 13 задания ЕГЭ в I части 13 урока.
Не забываем об энергообмене. Благодарю всех за подписки, лайки, донаты:
До следующих встреч на нашем ликбез-канале в школе Дзен!