Как изменить глобальное поведение широковещательного адреса (255.255.255.255) в Windows?

Это зависит от файловой системы, которую Вы используете, не 64-bit'ness из операционной системы. С каждой файловой системой, там будет некоторой точкой, в которой большие-O затраты на алгоритм, используемый для поиска каталога, собираются взять верх над компьютером.

Если можно разбить файловую иерархию в даже просто две (2) иерархии уровня, Вы будете видеть лучшую долгосрочную масштабируемость.

10
задан 22 April 2011 в 23:24
2 ответа

Наконец, я решил его программно. Я записал очень маленькое программное обеспечение под названием WinIPBroadcast, который заботится о передаче широковещательных кадров ко всем интерфейсам.

Это работает с помощью интересного факта: возможно получить локально сгенерированные глобальные широковещательные пакеты при слушании на петлевом адресе (127.0.0.1). WinIPBroadcast слушает на локальном адресе для всей широковещательной передачи с помощью Неструктурированных сокетов, затем для каждого широковещательного пакета, он передает его ко всем интерфейсам кроме предпочтенного.

4
ответ дан 2 December 2019 в 22:11

Не то, чтобы я нахожусь в бизнесе защиты Microsoft, но после прочтения следующих RFCs, которые пытаются определить, как широковещательные сообщения работают, я не думаю, что Microsoft обязательно нарушает любой RFCs. IMO проблема должна быть решена на прикладном уровне (т.е. направленные широковещательные сообщения, не глобальные), который поразит соответствующие маршруты в таблице маршрутизации и только будет отправлен от корректного интерфейса для той сети IP.

Они оба заявляют, что нет никакого стандарта, определенного для широковещательных сообщений. Это также упоминает в 919, что определенный физический интерфейс должен быть выбран для широковещательной передачи. В случае многосетевой, машины мульти-NIC, генерирующей широковещательную передачу, я не думаю, что ясно указано, что должно произойти. Широковещательные сообщения, как никогда предполагается, не передаются маршрутизаторами от одного интерфейса до другого, также - действительно ли машина Windows является маршрутизатором или не в этом случае?
Если это действует как маршрутизатор, то любой хост, отвечающий на широковещательную передачу с неправильным IP-адресом для той сети (Адаптеры 2 и 3 в Вашем примере), должен передать пакет обратно Ethernet-адресу Адаптеров 2 и 3 в ответ на Адаптер 1, IP-адрес и хост Windows должны направить его к надлежащему интерфейсу.
Это звучит сбивающим с толку..., но не может думать о лучшем способе формулировать это

И наконец, говорит RFC 919 конкретно От RFC 919

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

Чтение, которое предположило бы, что исходный IP-адрес не важен для широковещательной передачи.


Так как каждое приложение, кажется, обрабатывает широковещательные сообщения по-другому, я думаю, что это - то, где ответственность находится. Например. nbtstat отсылает направленные широковещательные сообщения на multi-NICed машинах, тогда как игры могли бы использовать глобальные широковещательные сообщения.
Короче говоря, приложение должно быть исправлено, не ОС в этом случае...

Править: Вот ссылка для тех же обстоятельств, но на Linux. Ядро Linux обрабатывает его, только отправляя одному пакету интерфейс по умолчанию (NIC в этом примере). Они рекомендуют, чтобы приложение перечислило NICs и отправило направленной широковещательной передаче каждый NIC. Ссылка

6
ответ дан 2 December 2019 в 22:11
  • 1
    В don' t понимают отношение между абзацем you' заключение в кавычки ре от RFC 919 и исходного адреса. Для меня кажется очевидным, что это всегда неправильно для отправки пакета IP в интерфейсе с исходным адресом другого интерфейса, независимо от природы широковещательной передачи/одноадресной передачи пакета. Я имею в виду, Вы can' t обоснованно говорят " исходный IP-адрес не важен для broadcast" конечно, это! Как еще приложения, как предполагается, знают, кто отправил широковещательную передачу? –  Etienne Dechamps 7 October 2009 в 18:24
  • 2
    " Это также упоминает в 919, что определенный физический интерфейс должен быть выбран для широковещательной передачи " Где? " адрес 255.255.255.255 обозначает широковещательную передачу на локальном оборудовании network" (RFC919 7.)? В этом случае я почтительно не соглашаюсь. We' обсуждение ре, что сделать с широковещательными сообщениями на уровне хоста, не на сетевом уровне. Кроме того, это сказано чуть, ниже которого хост может " широковещательная передача ко всем ее ближайшим соседям при помощи 255.255.255.255". Весь его ближайшие соседи. Не " все соседи в определенной сети interface". –  Etienne Dechamps 7 October 2009 в 18:32
  • 3
    " Приложения don' t уход, которые взаимодействуют через интерфейс, отправил широковещательную передачу. Они просто должны ответить на него; Ха... они должны отправить широковещательные сообщения также, не только ответить на них. Считайте случай LAN gameserver браузером. Это отправляет широковещательные пакеты для обнаружения игровых серверов в сети. Если широковещательные пакеты не будут отправлены во все интерфейсы, то gameserver браузер не покажет игровые серверы, достижимые через эти интерфейсы. Другими словами, сокрушительный провал. –  Etienne Dechamps 7 October 2009 в 19:52
  • 4
    " я не уверен, но я думаю, что ОС видит 255 255 255 255 запросов и говорит, что это должно отослать это во всех интерфейсах (для нахождения всех ближайших соседей), но это требовали от определенного приложения, связанный с определенным IP (могло бы быть значение по умолчанию на основе метрики)." я соглашаюсь. Это doesn' t означают it' s Правильный поступок. По-моему, это полностью нарушает принцип наименьшего количества удивления с точки зрения разработчика приложений, который просто ожидает отправлять пакет всем во всех интерфейсах. –  Etienne Dechamps 7 October 2009 в 19:55
  • 5
    Не уверенный, под чем Вы подразумеваете дублированный. RFCs конкретно запрещают передачу широковещательных пакетов. Должен только быть один отправленный пакет, который я думаю, целое затруднение нашего обсуждения. Если бы ОС должна была сделать, как Вы говорите, она должна была бы на самом деле генерировать 9 общих пакетов (3 для каждого интерфейса), потому что уровень IP должен будет генерировать три пакета с отдельным исходным дюйм/с (один для каждого NIC на Уровне 3), и затем каждый NIC должен был бы отослать тех, которые на Ethernet (Уровень 2). Если были маршруты между сетями, то Вы возвращаете 3 ответа! Какой является правильным? –  Scott Lundberg 7 October 2009 в 21:41

Теги

Похожие вопросы