首页 文章

接收组播:TTL是否重要?

提问于
浏览
0

加入多播组时,IP_MULTICAST_TTL在 receiving datagrams时有什么影响?

Multicast in Python的答案之一是接收端的TTL为32(而IP_MULTICAST_LOOP为1),但我很难搞清楚原因 .

我正在阅读Multicast Programming,我不明白为什么 receiver 需要TTL和LOOP .

当您收到多播时,我认为您只是告诉内核加入多播组,然后它将绑定发送数据的端口 .

作为接收者,您是否也在接收多播时发送数据?这是接收时设置IP_MULTICAST_TTL和IP_MULTICAST_LOOP的原因吗?您是否可以通过加入多播组来影响网络?

谢谢

1 回答

  • 0

    它不会阻止您本身接收多播消息,但它可能会影响您加入mcast组时发送的IGMP消息的范围(由于使用IP_ADD_MEMBERSHIP标志调用setsockopt而发送) .

    因此,如果有一个参与多播网络的上游路由器,如果TTL太低,它可能不会收到您的加入请求 . 如果中间路由器不知道您已加入该组,则后续传入的组播消息可能无法路由到您的联接地址 .

    如果您不发送任何内容,则LOOP选项无关紧要 .

相关问题