[发明专利]Linux系统中多网卡接收组播数据的方法无效
申请号: | 200610138661.6 | 申请日: | 2006-11-10 |
公开(公告)号: | CN101179411A | 公开(公告)日: | 2008-05-14 |
发明(设计)人: | 卢王飞 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/18 | 分类号: | H04L12/18;H04L29/06 |
代理公司: | 北京中博世达专利商标代理有限公司 | 代理人: | 申健 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | linux 系统 网卡 接收 数据 方法 | ||
技术领域
本发明涉及UDP(用户数据协议)组播数据传输技术,尤其涉及Linux系统中多网卡准确接收组播数据的方法。
背景技术
目前在Linux系统的UDP组播数据接收过程中,存在有一台机器安装有多块网卡接收到相同或者不同网段的组播数据的情况。在这种网络情况下进行组播数据接收时,如果只在一个网卡中进行数据接收,可能出现接收不到组播的问题,而如果同时在所有的网卡中进行组播数据的接收,又可能出现接收重复数据的问题。
发明内容
为了克服上述缺陷,本发明的目的在于提供一种Linux系统多网卡准确接收组播数据的方法,
为达到上述目的,本发明一种Linux系统中多网卡接收组播数据的方法,包括如下步骤:
(1)列举本机中所有网卡的IP地址;
(2)绑定目标组播地址;
(3)将本机中所有网卡的IP地址加入目标组播地址组;
(4)加入目标组播地址组的网卡接收目标组播数据,在收到目标组播数据后,解析出本机中接收到目标组播数据的网卡的IP地址;
(5)保留该目标组播地址组中收到来自正确IP地址的目标组播数据的网卡的IP地址,该目标组播地址组中其余的网卡则离开该目标组播地址组。
进一步地,所述步骤(5)具体为:
目标组播地址组中若只有一个网卡接收到来自正确的IP地址的目标组播数据,则直接将该网卡标记为接收到组播数据的网卡,并将该网卡的IP地址保留在目标组播地址组中;
目标组播地址组中若有多个网卡同时接收到来自相同且正确的IP地址的目标组播数据,则标记其中一个网卡为接收到组播数据的网卡,并将该网卡的IP地址保留在目标组播地址组中,该目标组播地址组中其余网卡全部离开该目标组播地址组。
进一步地,所述目标组播数据为用户数据协议组播数据。
本发明的UDP组播数据接收方法,通过检测、解析接收目标组播数据包的网卡IP地址,选择不同的网卡中接收组播数据包,不仅可以很好地完成在多网卡情况下,保证接收到目标组播数据;同时还可以避免在接收过程出现多余或者重复的数据包。
附图说明
图1为Linux系统中多网卡准确接收组播数据的流程图。
具体实施方式
下面结合附图对本发明技术方案做进一步详细的说明。如图1所示,本发明的方法主要包括如下步骤:
S1、列举本机中的所有网卡的IP地址。列举出网卡地址个数以及每一个IP地址。例如本机中安装有两块网卡:192.168.1.10和10.1.1.10。
S2、采用Linux系统特性,绑定目标组播地址。目标组播地址是组播数据的目的地址。在Linux系统中,绑定组播地址是一种系统特性,通过采用绑定组播地址这种系统特性,能够在后面的步骤中,选择不同的网卡加入组播地址组。关于组播地址段的定义,InternetAssigned Numbers Authority(IANA,互联网网络号分配机构)已经将D类地址空间分配为IP组播地址,范围:224.0.0.0~239.255.255.255。例如:现有目标组播IP地址为224.1.1.1,目标端口8000,则绑定组播地址224.1.1.1与8000。
S3、将所有的网卡IP地址加入目标组播地址组,接收组播数据。在收到组播数据包后,解析出接收到组播数据的本地网卡的IP地址。
在实际情况中,大致可以分为以下三种情况:
情况1:只有一个网卡接收到目标组播数据。例如:只有192.168.1.10收到组播数据,则直接标记接收网卡为192.168.1.10。
情况2:两个网卡分别接收到不同来源的目标组播数据。
例如:192.168.1.10中接收到的组播数据发自:192.168.1.1;10.1.1.10中接收到的发自10.1.1.1。假设目标组播数据来源应该为192.168.1.1,则标记接收网卡为192.168.1.10。
情况3:两个网卡同时接收到来源相同的目标组播数据。例如:192.168.1.10与10.1.1.10中接收到的是完全相同的数据。这种情况,只需要在两块网卡中任意选择一个作为接收网卡。
S4、保留收到组播数据的网卡加入目标组播地址组,其他所有的网卡都离开组播地址组。例如:保留网卡192.168.1.10加入到组播组224.1.1.1中,选择另一块网卡10.1.1.10离开组播地址组:224.1.1.1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610138661.6/2.html,转载请声明来源钻瓜专利网。