当前位置: 技术问答>linux和unix
关于igmp的setsockopt
来源: 互联网 发布时间:2015-11-29
本文导语: 我在做的是一个igmp proxy的程序, 这份code是从别的地方repot过来的, 而且看上去这份code是没有问题的. 大家都知道, 我们如果要发一个igmp 的report, 可以通过先建立一个socket, 然后通过setsockopt(socket, IPPROTO_IP, IP_ADD_ME...
我在做的是一个igmp proxy的程序, 这份code是从别的地方repot过来的, 而且看上去这份code是没有问题的. 大家都知道, 我们如果要发一个igmp 的report, 可以通过先建立一个socket, 然后通过setsockopt(socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*)&mreq, sizeof(mreq))), 这样来发出一个igmp的report报文.
现在的问题是, 我做完这个setsockopt之后, 首先函数没有返回错误, 那应该说明我这个函数的执行过程中没有出错, 也就是产生了这个包, 然后这个包应该就要往外发出了, 但最终这个包并没有从接口发出去. 由于我不清楚, 在setsockopt之后, 这个包究竟经历了哪些流程, 所以很难查找问题的所在.
从iptales来看, 在OUTPUT还是能看到这个包被收到了, 但是只收到了一个, 如果你发了n个, 也是只收到一个, 看上去是之后同样的包在这之前就被丢掉了, 同时没有一个包到达了POSTROUTING,
不知道有没有人了解igmp的report报文在setsockopt产生之后, 经历了哪些地方, 或者提供一些线索, 非常感谢
现在的问题是, 我做完这个setsockopt之后, 首先函数没有返回错误, 那应该说明我这个函数的执行过程中没有出错, 也就是产生了这个包, 然后这个包应该就要往外发出了, 但最终这个包并没有从接口发出去. 由于我不清楚, 在setsockopt之后, 这个包究竟经历了哪些流程, 所以很难查找问题的所在.
从iptales来看, 在OUTPUT还是能看到这个包被收到了, 但是只收到了一个, 如果你发了n个, 也是只收到一个, 看上去是之后同样的包在这之前就被丢掉了, 同时没有一个包到达了POSTROUTING,
不知道有没有人了解igmp的report报文在setsockopt产生之后, 经历了哪些地方, 或者提供一些线索, 非常感谢
|
用ethereal抓包看看先
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。