русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Деление сетей с помощью масок.


Дата добавления: 2013-12-23; просмотров: 5287; Нарушение авторских прав


Маски для сети класса С.

Маска для сети класса В.

Маска для сети класса А.

Для сетей класса А номер сети указывается в первой байте, остальные три байта отводятся под адресацию хостов.

Соблюдая правило об устройстве маски (сначала единицы потом нули) и учитывая что первые восемь бит для сети класса А описывают номер сети составляем маску в двоичном виде:

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

Для сетей класса В номер сети указывается в первой и втором байтах, остальные два байта отводятся под адресацию хостов.

Соблюдая правило об устройстве маски (сначала единицы потом нули) и учитывая что первые шестнадцать бит для сети класса В описывают номер сети составляем маску в двоичном виде:

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

 

 

Для сетей класса С номер сети указывается в первой, втором и третьем байтах, четвертый байт отводится под адресацию хостов.

Соблюдая правило об устройстве маски (сначала единицы потом нули) и учитывая что первые двадцать четыре бита для сети класса С описывают номер сети составляем маску в двоичном виде:

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

Рассмотрим пример применения маски для выделения номера сети и узла из некоторого IP адреса и маски:



Пусть задан IP адрес: 210.56.78.212. Если техника масок не применяется, то номер сети 210.56.78.0, узел номер 212 (или 0.0.0.212 если использовать для записи все 32 бита). Теперь сопоставим с этим адресом маску 255.255.255.224. Что теперь номер сети, а что номер узла? На этот вопрос можно ответить, лишь записав и адрес, и маску в двоичной форме:

Обратите внимание - количество единиц 27, что на 3 больше количества единиц маски класса С (в данном случае говорят «длиннее на три бита»)

Дальше мы можем записать номер узла и номер сети. Первые 27 бит записанного IP адреса - номер сети, в которой находится узел, остальные 5 бит - номер самого узла. Запишем номер сети, для этого все биты, отвечающие за номер узла, положим равными нулю:

Теперь осталось лишь перевести номер сети в привычную точечно-десятичную форму: 210.56.78.192.

Проанализируем полученную сеть: Номер сети:

210.56.78.192.

Количество узлов в этой сети:

Судя по количеству нулей в маске, для нумерации узлов остается 5 бит, следовательно, в этой сети

25 узлов, т.е. 32.

Но, адрес, в котором все биты, отвечающие за номер узла равны «0» является номером сети и не может быть назначен узлу, а адрес, в котором все биты, отвечающие за номер узла равны «1» является широковещательным адресом в данную сеть и так же не может быть назначен узлу. Таким образом, в данной сети 25-2 узлов, т.е. 30 узлов.

Найдем адрес первого узла в этой сети. В этом случае, биты, отвечающие за номер узла должны принять минимальное значение, но не все быть равны нулям. Т.е. последние пять бит адреса должны принять значение 00001, и тогда адрес первого узла в этой сети выглядит следующим образом:

Переводим его в точечно-десятичную запись: 210.56.78.193

Найдем теперь самый большой номер узла. В этом случае, биты адреса, отвечающие за номер узла, должны быть все равны «1» кроме последнего. Иначе получится широковещательный адрес сети.

Переводим его в точечно-десятичную запись: 210.56.78.222

Наконец найдем широковещательный (broadcast) адрес сети, установив все биты IP адреса, отвечающие за номер равными «1»:

Переводим его в точечно-десятичную запись: 210.56.78.224

Итого, имеем узел с IP адресом 210.56.78.212 и маской 255.255.255.224. Этот узел находится в сети 210.56.78.192, всего в сети 30 узлов, первый узел 210.56.78.193, последний узел 210.56.78.222 (наш узел в серединке 210.56.78.212), широковещательный адрес сети 210.56.78.223.

Следующий пример.

Еще один пример - для закрепления.

 

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

Начнем с деления на части сети класса С. Изначально сеть класса C может содержать до 254 узлов, и узлы будут использовать маску 255.255.255.0. Это значит, что первые 24 бита адреса - номер сети, а последние 8 бит - номер узла.

Пусть мы хотим разбить сеть на несколько частей, которые будут меньше, чем 254 узла, но этих частей (подсетей или сетей) будет более одной. Как это сделать?

Получив номер сети класса С, мы исходим из того, что последние 8 бит адреса находятся целиком в нашем распоряжении, и мы может поступать с ними по своему усмотрению. Мы можем использовать все 8 бит для нумерации узлов, а можем некоторое количество из этих 8 бит использовать как номер сети, или как еще говорят «подсети», так как полученные таким образом сети будут частями исходной сети класса С.

Пусть мы позаимствует в пользу номера подсети из 8 имеющихся в нашем распоряжении бит только 1. Как показать это маской? Очевидно, нужно выбрать маску таковой, чтобы первые 24+1 бита были в адресах номером сети, т.е. соответствующие биты в маске должны быть равны «1», а остальные биты в маске должны равны «0».

Сколько бит у нас есть в распоряжении для нумерации подсетей, являющихся частями нашего диапазона класса С? Очевидно лишь один бит. Сколько подсетей можно пронумеровать, используя один бит? Очевидно, лишь 2 подсети (21 = 2). Сколько узлов будет в каждой подсети? Узлы в подсетях нумеруют 7 бит, следовательно, узлов будет 27-2=126. Запишем номера этих подсетей. (Номер сети принимаем равным 212.1.2.0).

Так как первые три байта не меняются, будем записывать их в десятичной записи, а последний байт - в двоичной форме. Запишем номер сети и маску, выделяющую один дополнительный бит для нумерации подсетей.

 

Из этой записи следует, что 1-ый бит четвертого байта адреса является частью номера сети (или номером подсети), а семь остальных нумеруют узел. Можем переписать тогда номер сети и маску в следующем виде:

Рассматриваем первую подсеть.

Номер первой подсети

Последовательность «х» (в нашем случае, пока один «х») принимает первое возможное значение - «0», а последовательность «у» должна быть положена равной «0» в том случае, если мы хотим получить номер первой подсети:

Маска:

В точечно-десятичной форме первая подсеть будет записана как 212.1.2.0, маска 255.255.255.128. Сколько улов в этой подсети? Очевидно, 126: (27- 2)=126, где

7 - количество бит, отводимое на адресацию хостов.

Определим номер первого узла этой подсети. Для этого необходимо приписать последовательности «у» минимальное возможное значение (но не все нули, иначе получится не номер первого узла, а номер сети)

В точечно-десятичной форме первый узел будет иметь адрес 212.1.2.1, маска 255.255.255.128.

Определим номер последнего узла этой подсети. Необходимо приписать последовательности «у» максимально возможное значение (но не все единицы, иначе получится не номер последнего узла, а широковещательный адрес)

В точечно-десятичной форме последний узел будет иметь адрес 212.1.2.126, маска 255.255.255.128.

Найдем широковещательный адрес этой сети: для этого последовательность «у» должна принять значение из всех «1»:

 

В точечно-десятичной форме широковещательный адрес будет 212.1.2.127

Рассмотрим вторую подсеть, для этого первому биту четвертого байта приписываем значение «1», остальную процедуру проделываем аналогично:

В точечно-десятичной форме первая подсеть будет записана как 212.1.2.128, маска 255.255.255.128.

Определим номер первого узла подсети. Для этого необходимо приписать последовательности «у» минимальное возможное значение (но не все нули, иначе получится не номер первого узла, а номер сети)

В точечно-десятичной форме первый узел будет иметь адрес 212.1.2.129, маска 255.255.255.128.

Определим номер последнего узла подсети. Необходимо приписать последовательности «у» максимально возможное значение (но не все единицы, иначе получится не номер последнего узла, а широковещательный адрес)

В точечно-десятичной форме последний узел будет иметь адрес 212.1.2.254, маска 255.255.255.128.

Определим широковещательный адрес этой сети: для этого последовательность «у» должна принять значение из всех «1»:

В точечно-десятичной форме широковещательный адрес будет 212.1.2.255.

 

Таким образом, мы разделили сеть 212.1.2.0 на две равные части, каждая из которых теперь может называться самостоятельной сетью.

Можно ли разделить исходную сеть не на 2, а на 4 части? Да, для этого необходимо позаимствовать из последнего байта не 1 а 2 бита в пользу номера подсети. Получим:

 

Разделим исходную сеть на большее число частей, позаимствуем из последнего байта 3 бита в пользу номера подсети. Получим 8 подсетей по 30 узлов в каждой.

 

 

Для деления на 16 подсетей позаимствуем 4 бита на номер подсети, получим 16 подсетей по 14 узлов в каждой.

Выпишем только номера подсетей сетей

Позаимствовав 5 бит на номер подсети, получим 32 подсети по 6 узлов в каждой

Позаимствовав 6 бит на номер подсети, получим 64 подсети по 2 узла в каждой

Позаимствовав 7 бит на номер подсети, получим 128 подсетей, но в этих подсетях не сможет расположится ни одного узла: так как для нумерации узла в этом случае применяется 1 бит, то он принимает всего 2 значения «0» и «1», при последнем бите, равном нулю результат будет номером сети, а при последнем бите, равном единице результат будет широковещанием в данную сеть, видно, что корректных номеров узлов не остается.

Таким образом маска 255.255.255.254 не используется и разбивать сеть класса С на 128 подсетей не имеет смысла.

Как следует из описанных выше примеров, количество подсетей на которые делится сеть всегда равно натуральной степени 2, а число узлов - натуральная степень двойки минус 2.

Далее рассмотрим по одному примеру деления сетей классов B и А.

Разделим сеть класса B 150.150.0.0, таким образом, чтобы получилось не менее 40 подсетей. Главным вопросом, на который необходимо ответить перед описанием подсетей является вопрос:

- сколько бит необходимо, чтобы они обеспечивали по меньшей мере 40 разных значений ?

Или, 2 в какой степени больше либо равно 40 ?

Ответ: минимальное значение показателя степени равно 6. Т.е. минимум 6 бит необходимо для нумерации 40 подсетей. В сетях класса B изначально на номер сети остается 16 бит, на номер узла - 16 бит. Из этих 16-и бит, предназначенных для нумерации узлов, позаимствуем в пользу номера подсети 6 бит, тогда на номер узла останется еще 10 бит. Таким образом, получится 64 подсети, в каждой из них окажется по 1022 узла. И хотя по условию требуется 40 подсетей, выделение 6-ти бит на нумерацию - автоматически «вырезает» 26 = 64 адреса.

Проводим границу между номером сети и номером узла следующим образом:

Для примера рассмотрим некоторую подсеть с хххххх=100110

Обратите внимание, номер узла, в данном случае, состоит из двух последних бит третьего байта и всех бит четвертого байта. Точка между байтами не влияет на возможность подобного явления. Не нужно забывать, что точка между байтами применяется лишь для удобства записи - не более.

Теперь рассмотрим пример с сетью класса А: разделим сеть 17.0.0.0 таким образом, чтобы получились сети размером не менее 400 000 узлов.

Так как известно, сколько необходимо иметь узлов в одной сети, оценим, сколько бит необходимо оставить на номер узла, а остальные позаимствовать в пользу номера сети. Учитывая, что 19 бит позволяют пронумеровать около 500 тыс. узлов (219 = 524 288) , принимаем, что на номер узла достаточно оставить 19 бит, тогда остальные 13 бит IP адреса будут являться номером сети. Первый из этих бит фиксирован (сеть класса А), семь следующих нумеруют саму сеть класса А, следовательно оставшиеся 5 бит позволят нам нумеровать подсети.

Проводим границу между номером сети и номером узла следующим образом

Для примера рассмотрим некоторую подсеть с ххххх=01010

 

Практическое задание:

Пусть компания имеет сеть, изображенную на рисунке ниже. В сети на коммутаторе Switch1 - 20 компьютеров, в сети на коммутаторе Switch2 - 28 компьютеров, в сети на коммутаторе Switch3 - 10 компьютеров, в сети на коммутаторе Switch4 - 26 компьютеров, в сети на коммутаторе Switch5 - 15 компьютеров. Компания получила идентификатор класса С 221.9.8.0. Требуется разделить эту сеть на необходимое количество подсетей, рассчитать маску подсети, номера всех сетей, присвоить адреса всем узлам сети и портам маршрутизаторов, рассчитать для каждой сети широковещательный адрес.



<== предыдущая лекция | следующая лекция ==>
Маски подсети | Настройка IP адреса и маски в MS Windows


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.