By max3 , 31 January 2008
 вопрос общий, без каких либо конкретных адресов.
The content of this field is kept private and will not be shown publicly.

BBCode

  • No HTML tags allowed.
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Web page addresses and email addresses turn into links automatically.
Надо знать маску. И наложить маску ANDом на каждый адрес. Если после AND в обоих случаях получилось одинаковое число - они в одной сети. Если нет - в разных.
Т.е. комп имеет IP и маску. Ты говоришь - хочу послать на такой-то адрес. Комп накладывает маску на свой адрес и на адрес удаленного компа. Если получилось одинаковое число - комп шлет напрямую, если разные - через шлюз.

max3

18 years 1 month ago

а можно на примере каком нибудь с потолка? 

желательно 2х2(один когда они в одной подсети и один когдa в разных)

понять тобой написанное я понял, но хотелось бы закрепить примером.

заранее спасибо.

maco

18 years 1 month ago

Про маску подсети.

Пример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-ом разные.

max3

18 years 1 month ago

 На примере 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 ?

maco

18 years 1 month ago

Для простых масок типа 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

Т.е. это адреса одной подсети.
53 (dec) = 00110101 (bin) 61 (dec) = 00111101 (bin) 240 (dec) = 11110000 (bin) 48 (dec) = 00110000 (bin)
Поправил, это у меня был сдвиг по фазе вправо :).
еше вопрос по определению максимального количества хостов в подсети

Верно. Только непонятно, зачем отнимать шлюз. Он тоже считается за хост. И никто ему не мешает быть обычным компом.

Назначение маски подсети

Какая-то шаманская формула... 28 - не знаю откуда. И в общем-то логичнее из 256 вычитать 32... Тоже 224.
Вообще достаточно взять количество нулевых битов в ближайшей большей степени двойки. Т.е. 32 - 5 нулевых битов. Пишем байт маски с 5-ю нулевыми битами - 1110 0000 (bin) = 224 (dec)

Цифра 2 - да.

DanZer

17 years 6 months ago

Какая-то шаманская формула... 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 - имхо, наглядней уже некуда:
http://lantricks.ru/lancalculator/img/main.gif

savely

17 years 6 months ago

Маска назначается по следующей схеме 28 − n (для сетей класса C), где n - количество компьютеров в подсети + 2, округленное до ближайшей большей степени двойки.


28 - отсюда: 192.168.11.0/28. Это альтернативный способ обозначения маски подсети, обозначает кол-во ненулевых битов

Ну, про альтернативный способ я, как ни странно, знаю. Мне формула непонятна, она может и правильная, но какая-то шаманская, т.е. замороченная. Мне проще по битам посчитать.

P.S. Объяснять мне формулу не надо.

Unknown BIOS (not verified)

15 years 10 months ago

Это не 28!!! Это 2 в степени 8! итого 256. Вот и получается, 256-32=224 =)