多网卡收UDP组播的问题分析

最近遇到一个问题,某个程序默认使用第一个网卡绑定组播地址,如果网卡顺序不对,将导致无法从组播地址上接收和发送数据。因此,必须指定某个网口绑定一个组播地址。具体方法有两种:

  • 调整网络高级设置,通过调整网卡顺序,使组播地址绑定在正确的网卡上
  • 修改网卡跃点数,通过修改网卡跃点数,使组播地址绑定在正确的网卡上

下面重点介绍第二种方法,修改网卡跃点数来调整组播地址绑定的网卡。

所谓“跃点”,即路由。一个路由为一个跃点。数据传输过程中需要经过多个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的IP。

如果电脑中存在多个连接,哪个连接的跃点数小,哪个优先级就高。多播地址就会绑定在跃点数最小的网卡上。

参考链接

  1. Windows和Linux查看组播通信的方法,by huangwang.
  2. 多网卡的情况下收udp组播数据的坑,by 小鼬就是我.
  3. multiple multicast on multiple interfaces,by stackoverflow.
  4. Win10:如何修改双网卡的优先级?,by xosg.