Надо знать маску. И наложить маску ANDом на каждый адрес. Если после AND в обоих случаях получилось одинаковое число - они в одной сети. Если нет - в разных.
Т.е. комп имеет IP и маску. Ты говоришь - хочу послать на такой-то адрес. Комп накладывает маску на свой адрес и на адрес удаленного компа. Если получилось одинаковое число - комп шлет напрямую, если разные - через шлюз.
На примере Maco:
(Для собственного успокоения, просто были проблемы с подсетями до етого)
Пример1:
IP 192.168.0.35
IP 192.168.0.58
Маска 255.255.255.0
11000000.10101000.00000000.00100011
11111111.11111111.11111111.00000000
и
11000000.10101000.00000000.00111010
11111111.11111111.11111111.00000000
result
11000000.10101000.00000000.00000000
11000000.10101000.00000000.00000000
t.e.
Подсеть 192.168.0.0 \
Подсеть 192.168.0.0 / same subnet
Пример2:
IP 192.168.1.35
IP 192.168.0.58
Маска 255.255.255.0
11000000.10101000.00000001.00100011
11111111.11111111.11111111.00000000
и
11000000.10101000.00000000.00111010
11111111.11111111.11111111.00000000
result
11000000.10101000.00000001.00000000
11000000.10101000.00000000.00000000
t.e.
Подсеть 192.168.1.0 \
Подсеть 192.168.0.0 / different subnets
еше вопрос по определению максимал;ного количества хостов в подсети,
например:
192.168.11.0/28 (C class)
32-28=4
2^4=16
16-2=14 Max # of Hosts (ну и шлюз, в реальной жизни можно отнять) -Верно?
14.49.23.128/25 (A class)
32-25=7
2^7=128
128-2=126 Max # of Hosts ( -gateway) - Верно?
Назначение маски подсети
Маска назначается по следующей схеме 28 − n (для сетей класса C), где n - количество компьютеров в подсети + 2, округленное до ближайшей большей степени двойки.
Пример: В некой сети класса C есть 30 компьютеров, маска для такой сети вычисляется следующим образом:
28 - 32 = 224 (0E0h) < = > 255.255.255.224 (0xFFFFFFE0)
-откуда 28 появилось? и цифра 2 - ето и есть Broadcast+Base address ?
еше вопрос по определению максимального количества хостов в подсети
Верно. Только непонятно, зачем отнимать шлюз. Он тоже считается за хост. И никто ему не мешает быть обычным компом.
Цитата:
Назначение маски подсети
Какая-то шаманская формула... 28 - не знаю откуда. И в общем-то логичнее из 256 вычитать 32... Тоже 224.
Вообще достаточно взять количество нулевых битов в ближайшей большей степени двойки. Т.е. 32 - 5 нулевых битов. Пишем байт маски с 5-ю нулевыми битами - 1110 0000 (bin) = 224 (dec)
Какая-то шаманская формула... 28 - не знаю откуда.
28 - отсюда: 192.168.11.0/28. Это альтернативный способ обозначения маски подсети, обозначает кол-во ненулевых битов. Т.е. адрес x.x.x.x/8 = x.x.x.x с маской 11111111.00000000.00000000.00000000bin/255.0.0.0hex.
x.x.x.x/28 = x.x.x.x с маской 11111111.11111111.11111111.11110000bin/255.255.255.240hex
Кстати, рекомендую программку LANCalculator - имхо, наглядней уже некуда:
Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте. Что-то ищем? Google в помощь
Маска назначается по следующей схеме 28 − n (для сетей класса C), где n - количество компьютеров в подсети + 2, округленное до ближайшей большей степени двойки.
Цитата:
28 - отсюда: 192.168.11.0/28. Это альтернативный способ обозначения маски подсети, обозначает кол-во ненулевых битов
Ну, про альтернативный способ я, как ни странно, знаю. Мне формула непонятна, она может и правильная, но какая-то шаманская, т.е. замороченная. Мне проще по битам посчитать.
P.S. Объяснять мне формулу не надо.
А кому счас легко...
29 Апр 2010 - 10:09 Unknown BIOS
Это не 28!!! Это 2 в степени 8! итого 256. Вот и получается, 256-32=224 =)
Надо знать маску. И наложить маску ANDом на каждый адрес. Если после AND в обоих случаях получилось одинаковое число - они в одной сети. Если нет - в разных.
Т.е. комп имеет IP и маску. Ты говоришь - хочу послать на такой-то адрес. Комп накладывает маску на свой адрес и на адрес удаленного компа. Если получилось одинаковое число - комп шлет напрямую, если разные - через шлюз.
А кому счас легко...
а можно на примере каком нибудь с потолка?
желательно 2х2(один когда они в одной подсети и один когдa в разных)
понять тобой написанное я понял, но хотелось бы закрепить примером.
заранее спасибо.
Про маску подсети.
Пример1:
IP 192.168.0.35
Маска 255.255.255.0
Подсеть 192.168.0.0
и
IP 192.168.0.58
Маска 255.255.255.0
Подсеть 192.168.0.0
Пример2:
IP 192.168.1.35
Маска 255.255.255.0
Подсеть 192.168.1.0
и
IP 192.168.0.58
Маска 255.255.255.0
Подсеть 192.168.0.0
В 1-ом примере подсети одинаковые, а во 2-ом разные.
На примере Maco:
(Для собственного успокоения, просто были проблемы с подсетями до етого)
Пример1:
IP 192.168.0.35
IP 192.168.0.58
Маска 255.255.255.0
11000000.10101000.00000000.00100011
11111111.11111111.11111111.00000000
и
11000000.10101000.00000000.00111010
11111111.11111111.11111111.00000000
result
11000000.10101000.00000000.00000000
11000000.10101000.00000000.00000000
t.e.
Подсеть 192.168.0.0 \
Подсеть 192.168.0.0 / same subnet
Пример2:
IP 192.168.1.35
IP 192.168.0.58
Маска 255.255.255.0
11000000.10101000.00000001.00100011
11111111.11111111.11111111.00000000
и
11000000.10101000.00000000.00111010
11111111.11111111.11111111.00000000
result
11000000.10101000.00000001.00000000
11000000.10101000.00000000.00000000
t.e.
Подсеть 192.168.1.0 \
Подсеть 192.168.0.0 / different subnets
еше вопрос по определению максимал;ного количества хостов в подсети,
например:
192.168.11.0/28 (C class)
32-28=4
2^4=16
16-2=14 Max # of Hosts (ну и шлюз, в реальной жизни можно отнять) -Верно?
14.49.23.128/25 (A class)
32-25=7
2^7=128
128-2=126 Max # of Hosts ( -gateway) - Верно?
Назначение маски подсети
Маска назначается по следующей схеме 28 − n (для сетей класса C), где n - количество компьютеров в подсети + 2, округленное до ближайшей большей степени двойки.
Пример: В некой сети класса C есть 30 компьютеров, маска для такой сети вычисляется следующим образом:
28 - 32 = 224 (0E0h) < = > 255.255.255.224 (0xFFFFFFE0)
-откуда 28 появилось? и цифра 2 - ето и есть Broadcast+Base address ?
Для простых масок типа 255 (0xFF) переводить в двоичную систему необязательно. А вот для более сложных масок - надо переводить:
IP 82.144.53.12
Маска 255.255.240.0
Подсеть 82.144.48.0
IP 82.144.61.39
Маска 255.255.240.0
Подсеть 82.144.48.0
Т.е. это адреса одной подсети.
Поправил, это у меня был сдвиг по фазе вправо.
Верно. Только непонятно, зачем отнимать шлюз. Он тоже считается за хост. И никто ему не мешает быть обычным компом.
Какая-то шаманская формула... 28 - не знаю откуда. И в общем-то логичнее из 256 вычитать 32... Тоже 224.
Вообще достаточно взять количество нулевых битов в ближайшей большей степени двойки. Т.е. 32 - 5 нулевых битов. Пишем байт маски с 5-ю нулевыми битами - 1110 0000 (bin) = 224 (dec)
Цифра 2 - да.
А кому счас легко...
28 - отсюда: 192.168.11.0/28. Это альтернативный способ обозначения маски подсети, обозначает кол-во ненулевых битов. Т.е. адрес x.x.x.x/8 = x.x.x.x с маской 11111111.00000000.00000000.00000000bin/255.0.0.0hex.
x.x.x.x/28 = x.x.x.x с маской 11111111.11111111.11111111.11110000bin/255.255.255.240hex
Кстати, рекомендую программку LANCalculator - имхо, наглядней уже некуда:
Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте.
Что-то ищем? Google в помощь
Ну, про альтернативный способ я, как ни странно, знаю. Мне формула непонятна, она может и правильная, но какая-то шаманская, т.е. замороченная. Мне проще по битам посчитать.
P.S. Объяснять мне формулу не надо.
А кому счас легко...
Это не 28!!! Это 2 в степени 8! итого 256. Вот и получается, 256-32=224 =)
Отправить комментарий