CN101179411A - Linux系统中多网卡接收组播数据的方法 - Google Patents
Linux系统中多网卡接收组播数据的方法 Download PDFInfo
- Publication number
- CN101179411A CN101179411A CNA2006101386616A CN200610138661A CN101179411A CN 101179411 A CN101179411 A CN 101179411A CN A2006101386616 A CNA2006101386616 A CN A2006101386616A CN 200610138661 A CN200610138661 A CN 200610138661A CN 101179411 A CN101179411 A CN 101179411A
- Authority
- CN
- China
- Prior art keywords
- target
- multicast
- network interface
- address
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种多网卡接收组播数据的方法,涉及组播数据传输技术,为解决现有Linux系统中多网卡接收组播数据时出现重复接收数据的问题而发明。本发明列举本机中所有网卡的IP地址;绑定目标组播地址;将本机中所有网卡的IP地址加入目标组播地址组;加入目标组播地址组的网卡接收目标组播数据,在收到目标组播数据后,解析出本机中接收到目标组播数据的网卡的IP地址;保留该目标组播地址组中收到来自正确IP地址的目标组播数据的网卡的IP地址,该目标组播地址组中其余的网卡则离开该目标组播地址组。本发明保证网卡接收到目标组播数据的同时还避免了接收过程出现多余或者重复的数据包的现象。
Description
技术领域
本发明涉及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。
S5、输出接收到的组播数据。例如:在S4中已经选择10.1.1.10离开组播地址组,此时的组播数据都完全来自192.168.1.10。到此,即实现了多网卡情况下准确接收UDP组播数据。
综上所述,本发明的UDP组播数据接收方法,通过检测、解析接收目标组播数据包的网卡IP地址,选择不同的网卡中接收组播数据包,不仅可以很好地完成在多网卡情况下,保证接收到目标组播数据;同时还可以避免在接收过程出现多余或者重复的数据包。
Claims (3)
1.一种Linux系统中多网卡接收组播数据的方法,其特征在于,包括如下步骤:
(1)列举本机中所有网卡的IP地址;
(2)绑定目标组播地址;
(3)将本机中所有网卡的IP地址加入目标组播地址组;
(4)加入目标组播地址组的网卡接收目标组播数据,在收到目标组播数据后,解析出本机中接收到目标组播数据的网卡的IP地址;
(5)保留该目标组播地址组中收到来自正确IP地址的目标组播数据的网卡的IP地址,该目标组播地址组中其余的网卡则离开该目标组播地址组。
2.根据权利要求1所述的Linux系统中多网卡接收组播数据的方法,其特征在于,所述步骤(5)具体为:
目标组播地址组中若只有一个网卡接收到来自正确的IP地址的目标组播数据,则直接将该网卡标记为接收到组播数据的网卡,并将该网卡的IP地址保留在目标组播地址组中;
目标组播地址组中若有多个网卡同时接收到来自相同且正确的IP地址的目标组播数据,则标记其中一个网卡为接收到组播数据的网卡,并将该网卡的IP地址保留在目标组播地址组中,该目标组播地址组中其余网卡全部离开该目标组播地址组。
3.根据权利要求1或2所述的Linux系统中多网卡接收组播数据的方法,其特征在于,所述目标组播数据为用户数据协议目标组播数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101386616A CN101179411B (zh) | 2006-11-10 | 2006-11-10 | Linux系统中多网卡接收组播数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101386616A CN101179411B (zh) | 2006-11-10 | 2006-11-10 | Linux系统中多网卡接收组播数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101179411A true CN101179411A (zh) | 2008-05-14 |
CN101179411B CN101179411B (zh) | 2011-03-02 |
Family
ID=39405511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101386616A Expired - Fee Related CN101179411B (zh) | 2006-11-10 | 2006-11-10 | Linux系统中多网卡接收组播数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101179411B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357542A (zh) * | 2016-10-12 | 2017-01-25 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN109510766A (zh) * | 2018-12-13 | 2019-03-22 | 深圳市鼎泰富科技有限公司 | 一种智能终端多网络连接环境下的动态路由方法及系统 |
CN115086208A (zh) * | 2022-06-14 | 2022-09-20 | 深信服科技股份有限公司 | 一种网卡检测方法、装置及电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587456B1 (en) * | 1999-06-17 | 2003-07-01 | Nortel Networks Limited | Method and apparatus for reducing load distribution delay in an internet protocol switch |
JP2004172888A (ja) * | 2002-11-19 | 2004-06-17 | Mitsubishi Electric Corp | ブロードキャストパケット送信システム |
CN1261890C (zh) * | 2003-01-23 | 2006-06-28 | 英业达股份有限公司 | 可均衡负载的网卡测试方法 |
CN1279720C (zh) * | 2003-05-29 | 2006-10-11 | 华为技术有限公司 | 以太网承载点对点协议的方法和系统 |
-
2006
- 2006-11-10 CN CN2006101386616A patent/CN101179411B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357542A (zh) * | 2016-10-12 | 2017-01-25 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN106357542B (zh) * | 2016-10-12 | 2019-10-18 | 华为技术有限公司 | 提供组播业务的方法和软件定义网络控制器 |
CN109510766A (zh) * | 2018-12-13 | 2019-03-22 | 深圳市鼎泰富科技有限公司 | 一种智能终端多网络连接环境下的动态路由方法及系统 |
CN115086208A (zh) * | 2022-06-14 | 2022-09-20 | 深信服科技股份有限公司 | 一种网卡检测方法、装置及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101179411B (zh) | 2011-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8614955B2 (en) | Misdirected packet detection apparatus and method | |
CN101272291B (zh) | 网络设备测试方法及系统 | |
CN200990619Y (zh) | 路由装置 | |
US9973599B2 (en) | Parser for parsing header in packet and related packet processing apparatus | |
CN101335770B (zh) | 一种网络地址端口转换方法和装置 | |
US20190288923A1 (en) | Multi-path aware tracing and probing functionality at service topology layer | |
US20050129047A1 (en) | Switch capable of controlling data packet transmission and related method | |
CN101227373B (zh) | 基于无状态映射的IPv4和IPv6网互通的方法 | |
CN101909054B (zh) | 虚拟化环境中多网络接口卡聚合的方法 | |
US8660118B2 (en) | Methods, systems, and computer readable media for next hop scaling | |
CN101080903A (zh) | 用于传递数据分组的网络节点单元和方法 | |
EP2490380B1 (en) | Cell processing method, source line card, and network card in switching network | |
CN103828309B (zh) | 用于路由同步消息的方法 | |
CN101179411B (zh) | Linux系统中多网卡接收组播数据的方法 | |
CN103001846A (zh) | 用于数据网的嵌入式端到端延迟信息 | |
CN102792651A (zh) | 在mac层应用服务路径路由选择的分组节点 | |
CN103685032B (zh) | 报文转发方法及网络地址转换服务器 | |
CN105554176A (zh) | 发送报文的方法、装置和通信系统 | |
CN101222370B (zh) | 使用故障定位报文进行故障定位的方法及装置 | |
CN104702709A (zh) | 标识、识别终端类型的方法和装置 | |
CN102098347A (zh) | 基于终端的互联网地址管理方法及系统 | |
CN105743739A (zh) | 对称式nat的端口预测方法、探测服务器及受测端设备 | |
CN101115001B (zh) | Adsl路由器的主机和pvc动态绑定的方法 | |
CN101184045B (zh) | 一种实现终端接入零售业务提供商的方法和装置 | |
CN101488910B (zh) | 用于在多个套接字之间通信的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110302 Termination date: 20151110 |
|
CF01 | Termination of patent right due to non-payment of annual fee |