Форум программистов, компьютерный форум, киберфорум
Сети и средства коммуникаций
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
быдлокодер
1720 / 907 / 106
Регистрация: 04.06.2008
Сообщений: 5,631
1

Как определить, какой из подсетей принадлежит пакет IP-пакет?

23.11.2014, 21:42. Показов 873. Ответов 3
Метки нет (Все метки)

То есть у Олиферов это всё подробно расписано. Если маршрутизация сделана на основе масок, то надо пробежаться по таблице маршрутизации и накладывать маску на IP адрес операцией AND, получившееся число сравнивать с номером сети в этой же строке.

Теперь что делать, если таких совпадений будет несколько:

если произошло несколько совпадений, то все помеченные строки сравниваются и выбирается маршрут из той строки, в которой количество совпавших двоичных разрядов наибольшее (другими словами, в ситуации, когда адрес назначения пакета принадлежит сразу нескольким подсетям, маршрутизатор использует наиболее специфический маршрут).
И вот тут мне и непонятно. Во-первых, в одной олиферовской книге написан этот пункт, если длины масок ОДИНАКОВЫЕ. Тут вообще непонятно, какая может быть разница между количеством совпавших двоичних разрядов при нескольких сравнениях. Будет 10 операций сравнения, 10 раз сравниваться будут с одной стороны один и тот же IP-адрес, с другой стороны одна и та же маска. И всё будет одинаковое.

В другой олиферовской книге этот же пункт написан разобран для масок с разными длинами. И, наверное, именно для масок с разными длинами процитированное правило и предназначено. А тогда я его переформулирую:

Если будет несколько совпадений номеров сетей, то выбирать надо ту строку, где длина маски наибольшая, прав ли я? Спасибо, кто отликнется.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2014, 21:42
Ответы с готовыми решениями:

Определить какой пакет тяжелее
Рис расфасован в два пакета. Масса первого - m кг, второго – n кг. Составить программу,...

Определить какой пакет тяжелее
Составить программу с комментариями: Рис расфасован в два пакета.Вес первого m кг, второго-n...

Определить, какой пакет риса тяжелее — первый или второй
Помогите! на Delphi 7 1.Рис расфасован в два пакета. Вес первого - "m" кг, второго "n" кг....

Почему если отправить пакет UDP и конечного адресата в сети не существует, то пакет не отправляется?
Добрый день! Вопрос для расширения кругозора. Мониторю свой трафик с помощью WireShark и...

__________________
3
Эксперт по компьютерным сетям
4816 / 2714 / 833
Регистрация: 03.11.2009
Сообщений: 8,390
Записей в блоге: 3
23.11.2014, 23:39 2
Чтобы привести максимально близкий пример - есть в таблице маршрутизации такие записи:

Код
Router#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C       10.0.0.0/24 is directly connected, GigabitEthernet0/1
S       10.0.0.254/32 [1/0] via 192.168.1.2
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, GigabitEthernet0/0
если придет пакет в 10.0.0.253, то пойдет он через g0/1, если в 10.0.0.254 - через g0/0, потому что во втором случае маска ядренее - /32, c ней вообще трудно поспорить
0
быдлокодер
1720 / 907 / 106
Регистрация: 04.06.2008
Сообщений: 5,631
24.11.2014, 00:29  [ТС] 3
Ну это пока слишком сложно для меня, хотелось бы всё же сперва получить ответ на теоретический вопрос. Да, и у вас в таблице маршрутизации отсутствует 10.0.0.253, а должно, наверное, быть, судя по
Цитата Сообщение от Jabbson Посмотреть сообщение
если придет пакет в 10.0.0.253
0
Эксперт по компьютерным сетям
4816 / 2714 / 833
Регистрация: 03.11.2009
Сообщений: 8,390
Записей в блоге: 3
24.11.2014, 01:59 4
Цитата Сообщение от kravam Посмотреть сообщение
Ну это пока слишком сложно для меня, хотелось бы всё же сперва получить ответ на теоретический вопрос.
теория простая - роутер получает пакет, он (в общем случае) удаляет l2 заголовок, проверяет в l3 заголовке куда пакет направляется и ищет в своей таблице маршрутизации наиболее подходящее направление в виде исходящего интерфейса на основе "longest-prefix match" по маске, т.о. если у нас присутствуют три маршрута через три разных интерфейса, например:
7.7.7.0/24 через g0/0
7.7.0.0/16 через g0/1
7.0.0.0/8 через g0/2
и придет пакет на 7.7.7.7, то он пойдет через g0/0.

Цитата Сообщение от kravam Посмотреть сообщение
Да, и у вас в таблице маршрутизации отсутствует 10.0.0.253, а должно, наверное, быть, судя по
нет, не должен, потому что он пойдет по маршруту
Код
C       10.0.0.0/24 is directly connected, GigabitEthernet0/1
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2014, 01:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как маршрутизатор узнаёт кому какой пакет отправить
Здравствуйте! Недавно я начал играться с сетью, кидать туда-сюда сообщения через TCP. В общем всё...

Определить какой пакет тяжелее- первый или второй и перевести вес этого пакета в граммы,если он окажется меньше 15 кг.
Рис расфасован в два пакета.Вес первого-m кг,второго- n кг.Определить какой пакет тяжелее- первый...

Как узнать какой репозиторий подключить, чтобы можно было устанавливать определенный пакет через sudo apt-get install
Это может показаться смешным... но все же... часто возникает проблема, что sudo apt-get install ...

Через какой порт пойдёт пакет?
С компьютера на сервер через маршрутизатор идёт пакет, допустим с порта компьютера:1000 на порт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.