Часть первая: все дело в маске
С чего же начинается родина? В нашем случае - с IP-адреса и маски подсети. Эти две составляющие однозначно идентифицируют компьютер (при условии, что администратор ничего не перепутал).
Маски-шоу
Итак, в оригинале IP-адрес и маска представлены в двоичном виде. Многие пугаются, когда вместо привычного числа 192 видят 11000000. А зря, хоть это и слегка непривычно, зато разбираться с адресацией гораздо проще именно в таком виде. Кстати, каждое число в адресе, разделенное точкой, называется октетом. Таким образом, адрес 192.168.2.1 состоит из 4 октетов. В двоичном виде каждый октет содержит 8 бит.
Наверняка многие видели в настройках протокола TCP/IP следующее:
IP-адрес: 192.168.2.1
Маска подсети: 255.255.255.0
Что это значит? Данная запись говорит о том, что адрес вашей подсети (да, у нее тоже есть адрес) 192.168.2.0, а адрес компьютера в ней фактически 0.0.0.1. Как видите, мы просто разложили IP-адрес на составляющие. Почему разложили именно так? Потому что основывались на значении маски подсети. Три первых октета маски равны 255, это говорит о том, что в IP-адресе первые три октета указывают на адрес подсети. Если бы маска была 255.255.0.0, то адрес подсети был бы 192.168.0.0, а адрес компьютера в этой подсети - 0.0.2.1.
Возвратимся теперь к нашей прежней маске 255.255.255.0. Всегда следует иметь в виду, что в каждой подсети имеются два зарезервированных адреса, то есть их нельзя назначать компьютерам. С одним - 192.168.2.0 - вы уже знакомы (это не может быть адресом компьютера, поскольку является адресом подсети). И второй - 192.168.2.255, который является широковещательным запросом на всю подсеть с адресом 192.168.2.0.
К слову, можете поэкспериментировать с этим в своей домашней сети. У меня дома адрес подсети 192.168.0.0, и если я посылаю сообщение по адресу 192.168.0.255, то оно приходит на все компьютеры (в том числе и на мой собственный). Выглядит это так: "net send 192.168.0.255 привет всем".
А теперь я попробую вам доказать, что двоичное представление адресов и масок только упрощает жизнь. Допустим, в маленьком университете имеется сеть из нескольких десятков компьютеров. Логично было бы разделить ее на две подсети - студенческую и сотрудников. Поскольку из-за плохого финансирования роста количества компьютеров не предвидится, то нет смысла резервировать большой диапазон IP-адресов (хочется сделать все красиво и элегантно). Посему сеть класса C (подробнее об этом во врезке) будет великовата, и мы ее разделим на две части. Чтобы этого добиться, будем использовать маску подсети 255.255.255.128. Вот ее двоичный эквивалент: 11111111.11111111.11111111.10000000
Как видите, в четвертом октете старший бит равен 1, а не 0 (именно из-за этого и появилось число 128). Итак, в данном случае для адреса подсети будет выделено 3 октета и один бит. Чтобы пояснить, представим показательный IP-адрес 192.168.0.1 в двоичном виде. Получится: 11000000.10101000.00000000.00000001.
Часть, выделенная жирным шрифтом, является адресом подсети. А если бы маска была 255.255.255.0, то выглядело бы все так: 11000000.10101000.00000000.00000001. Как видите, разница всего в одном бите.
Что же меняется от одного бита? Мы получаем две подсети с диапазоном адресов: 192.168.0.1-126 и 192.168.0.129-254.
Для полной ясности осталось только разобраться, почему у первой подсети адрес 192.168.0.126 является последним, почему не 192.168.0.127... Потому что для данной подсети этот адрес является широковещательным (помните, как 192.168.0.255?). "Помнить-то помню, но что общего у адресов 192.168.0.127 (маска 255.255.255.128) и 192.168.0.255 (маска 255.255.255.0)?" - возмутится пытливый читатель. А то, что в обоих случаях в двоичном обозначении адрес компьютера, отделенный от адреса подсети, состоит из единиц (это и является признаком широковещательного запроса). Смотрите сами.
В первом случае: 11000000.10101000.00000000.01111111 (маска 255.255.255.128).
Во втором: 11000000.10101000.00000000.11111111 (маска 255.255.255.0).
Как оказалось, все дело в маске, а не в шляпе, как многие подумали.
Шлюзы - сливать сюда
Маршрутизаторы - именно они связывают разрозненные подсети воедино. С точки зрения TCP/IP маршрутизатор, указанный на компьютере, связывающем его подсеть с другими сетями, называется "основным шлюзом". Основная роль шлюза - "сливать" пакеты из одной подсети в другую. Происходит это следующим образом.
При попытке установления связи между узлом и другим устройством с помощью протокола TCP/IP машина сопоставляет IP-адрес назначения пакета с адресом своей сети (адрес извлекается с использованием маски). Если IP-адрес находится в текущей подсети - никаких проблем, пакет данных отправляется по назначению. Если же выясняется, что IP-адрес "чужой", то пакет направляется на основной шлюз, определенный в свойствах TCP/IP. Далее задача транспортировки пакета ложится на плечи маршрутизатора. Но это уже совсем другая история.
Дмитрий БАРДИЯН,
[email protected]
Классы сетей
Наиболее распространены классы сетей: A, B и C. Каждый из классов адресов имеет свою маску подсети по умолчанию. Определить класс IP-адреса можно по его первому октету. Ниже описаны интернет-адреса классов A, B и C с примером адреса для каждого класса.
Сети класса A по умолчанию используют маску подсети 255.0.0.0 и имеют значения от 0 до 127 в первом октете. Адрес 10.52.36.12 является адресом класса A.
Сети класса B по умолчанию используют маску подсети 255.255.0.0 и имеют в первом октете значение от 128 до 191. Адрес 172.17.52.63 является адресом класса B.
Сети класса C по умолчанию используют маску подсети 255.255.255.0 и имеют в первом октете значение от 192 до 223. Адрес 192.168.124.132 является адресом класса C.
Комментарии
192.168.0.100 и 192.168.0.200, то они друг друга не увидят?
супер конечно.
получается запрос уйдет на шлюз :))))
Т.е., если я у себя в офисе строю сетку класса Ц, то я могу назначить своему компу адрес 193.232.248.2?
Мне кажется, статья ни о чем. Просто вырванные пару абзатцев из любой книге по сетям.
А вообще - ты можешь назначить (реально) ЛЮБОЙ диапазон IP своей офисной сети, если эти адреса не попадут в глобальную сеть (т.е. ты используешь NAT, к примеру). Но это - моветон...
А статья - полезная. С расплодившимися самопальными сетями - их админам будет не вредно прочитать. А то до RFC у них руки не доходят иногда...
Нам с вами понятно, о чем в ней речь. И она будет полезной, если новоявленный админ кроме знания слов "плуг-энд-плей", "линукс форевер", "виндуз сакс", обладает необходимыми начальными знаниями в области сетевых протоколов. IMHO имеет смысл сделать цикл статей на эту тему?
Вам никогда не приходилось перестраивать сеть, сотворенную длинноволосым (признак крутого хакера?) юнцом за копейки? На вопрос: "зачем в офисной сетке рядом с TCP\IP установлен IPX\SPX?" Как правило с умным видом отвечают: "я не ламер, эти протоколы друг с другом не конфликтуют и надо их ставить вместе, потому как один другому не мешает."
Я не админ (уже), а все выссказанное - скромное мнение программера.
Я сам длинноволосый, правда уже не юнец, к сожалению :-))) Насчет "надо их ставить вместе, потому как один другому не мешает" - логика хромает у "юнца". Но ведь не мешает же :-)) Насчет нужности IPX - это по месту надо смотреть. Кстати, вон Doom I (и тогдашние игрушки) - только по нему и бегали.
Да и я не админ (уже почти) :-)))