如何在Windows上更改全局广播地址(255.255.255.255)的行为?
| 期望的行为 当应用程序将数据包发送到全局广播IP地址255.255.255.255时,我希望在所有接口上将数据包发送到以太网全局广播地址(ff:ff:ff:ff:ff:ff). 在Linux和其他操作系统上,这似乎也有效. Windows XP和Windows 7在此方面表现出不同的行为,这种行为都不适合我的情况. Windows XP的行为 数据包将正确发送到第一个网络接口(接口顺序在“网络连接/高级/高级设置”中指定).它也将被发送到其他接口. 到目前为止,一切都是正确的.问题是,当发送到其他接口时,广播包的源地址是第一个接口的IP地址.例如,想象一下这个网络配置(顺序很重要): >适配器1:IP地址192.168.0.1 现在,如果我发送广播数据包,将发送以下数据包(包含源和目标IP地址): >在适配器1上:192.168.0.1 => 255.255.255.255 实际上,使用广播数据包的应用程序将无法在适配器1以外的任何接口上运行.在我看来,这是Windows XP的TCP / IP堆栈中的一个明显的错误. Windows 7的行为 修改网络接口顺序似乎对Windows 7没有任何影响.相反,广播似乎由IP路由表控制. IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0   10.202.254.254       10.202.1.2    286
          0.0.0.0          0.0.0.0      192.168.0.1      192.168.0.3     10
       10.202.0.0      255.255.0.0         On-link        10.202.1.2    286
       10.202.1.2  255.255.255.255         On-link        10.202.1.2    286
   10.202.255.255  255.255.255.255         On-link        10.202.1.2    286
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link       192.168.0.3    266
      192.168.0.3  255.255.255.255         On-link       192.168.0.3    266
    192.168.0.255  255.255.255.255         On-link       192.168.0.3    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link       192.168.0.3    266
        224.0.0.0        240.0.0.0         On-link        10.202.1.2    286
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link       192.168.0.3    266
  255.255.255.255  255.255.255.255         On-link        10.202.1.2    286
===========================================================================查看255.255.255.255路线?是的,他们控制广播包.在这种情况下,广播数据包将通过192.168.0.3发送,因为它具有较低的度量…但不是其他接口. 您可以更改非常容易发送全局广播数据包的接口(只需添加具有低度量标准的持久性255.255.255.255路由).但无论你怎么努力,广播数据包只会在一个接口上发送,而不是像我希望的那样全部发送. 结论 > Windows 7仅将广播数据包发送到一个接口.你可以选择哪一个,但这不是重点. 目标 我想一劳永逸地在Windows(最好是Windows 7)中更改此全局IP广播支持.当然更好的方法是获得某种支持的配置更改(注册表黑客或类似),但我对所有建议持开放态度. 有任何想法吗?并不是说我是在为微软辩护,但在阅读了下面那些试图定义广播如何工作的RFC之后,我认为微软不一定会违反任何RFC. IMO问题应该在应用级别(即定向广播,而不是全局)上修复,这将触及路由表中的适当路由,并且仅从该IP网络的正确接口发送. > RFC922 他们都声明没有为广播定义标准.它还在919中提到应该为广播选择特定的物理接口.对于生成广播的多宿主,多NIC机器,我认为没有明确说明应该发生什么.路由器从一个接口到另一个接口永远不会传递广播,在这种情况下,Windows机器是路由器还是路由器? 最后,RFC 919具体说明了 
 阅读表明源IP地址与广播无关. 由于每个应用程序似乎都以不同的方式处理广播,我认为这是责任所在.例如. nbtstat在多NIC机器上发送定向广播,而游戏可能使用全局广播. 编辑:这是一个link相同的情况,但在Linux上. linux内核只通过默认接口(本例中为NIC A)发送一个数据包来处理它.他们建议应用程序枚举NIC并从每个NIC发送定向广播. Link (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 


