CN102281146A - 一种udp组播方法及装置 - Google Patents
一种udp组播方法及装置 Download PDFInfo
- Publication number
- CN102281146A CN102281146A CN2010102050859A CN201010205085A CN102281146A CN 102281146 A CN102281146 A CN 102281146A CN 2010102050859 A CN2010102050859 A CN 2010102050859A CN 201010205085 A CN201010205085 A CN 201010205085A CN 102281146 A CN102281146 A CN 102281146A
- Authority
- CN
- China
- Prior art keywords
- data message
- message
- identification
- transmitting terminal
- received
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种UDP(User Datagram Protocol)组播方法及装置,可以提高数据传输的可靠性。其中,UDP组播方法为:发送端根据保存的数据报文标识算法,获取本次发送数据报文的报文标识,并发送含有该报文标识的数据报文;路由器收到发送端向组播组的数据报文后,根据自身保存的信息,确定订阅该组播组的接收端,并向该接收端发送该数据报文。获取UDP组播数据报文的方法为:接收端侦听到发送端发送的数据报文后,根据保存的该发送端对应的数据报文标识算法,确定该数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则从发送端获取漏收的数据报文并保存,如果不存在,则保存该数据报文。
Description
技术领域
本发明涉及UDP组播技术领域,特别是指一种UDP组播方法及装置。
背景技术
UDP(User Datagram Protocol)组播是一种可以在internet或intarnet中以数据报的形式在一定范围内进行数据传送的组播技术,是一种比较成熟的技术。
参见图1所示,现有技术中UDP组播的具体过程如下:
步骤101:接收端订阅组播组数据。即:接收端向路由器发送某个组播组信息的订阅请求,其中含有本地端口信息以及需要预定的组播组地址。该路由器收到该订阅请求后,保存该接收端的端口信息以及需要预定的组播组地址。
步骤102:数据报文发送端通过路由器向组播组发送数据。
步骤103:路由器收到发送端向组播组发送的数据报后,根据自身保存的信息,确定订阅该组播组的接收端,并向确定的接收端发送该数据包。
从上述过程中可以发现,数据报文发送端只是负责将数据报文发送出去,至于接收端是否能收到数据报,并无监控,这种特性可以保证该技术具有很高的发送速度。但是利用UDP组播是在网络上以数据报的形式进行数据的组播,要求路由器支持internet网关管理协议(IGMP),UDP组播是采用无连接、数据报的连接方式,发送端发送报文后就不再关注报文是否能被正确接收,也就是说,数据能不能到达接收端和数据到达的顺序都是不能保证的,因此数据传输并不可靠。
发明内容
本发明提供一种UDP组播方法及装置,提高数据传输的可靠性。
本发明提供的一种UDP组播方法,包括:
发送端根据保存的数据报文标识算法,生成本次发送数据报文的报文标识,并发送含有该报文标识的数据报文;
路由器收到发送端向组播组的数据报文后,根据自身保存的信息,确定订阅该组播组的接收端,并向该接收端发送该数据报文。
本申请提供的一种获取UDP组播数据报文的方法,包括:
接收端侦听到发送端发送的数据报文后,根据保存的与所述发送端对应的数据报文标识算法,确定本次已接收的数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则从发送端获取漏收的数据报文并保存,如果不存在,则保存该数据报文。
本申请提供的一种发送UDP组播数据报文的装置,该装置包括:
数据报文标识生成单元,用于根据保存的数据报文标识算法,生成本次发送数据报文的报文标识;
发送单元,用于发送含有该报文标识的数据报文。
本申请提供的一种获取UDP组播数据报文的装置,包括:
侦听单元,用于侦听发送端发送的数据报文;
判断单元,用于根据保存的该发送端对应的数据报文标识算法,确定本次已接收的数据报文与上次接收到的数据报文之间是否存在漏包;
漏包恢复单元,用于当存在漏包错误时,从发送端获取漏收的数据报文并保存;
存储单元,用于当不存在漏包错误时,保存该数据报文;当存在漏包错误时保存从发送端获取漏收的数据报文。
在本申请实施例中,数据报文发送端根据保存的数据报文标识算法,获取本次发送数据报文的报文标识,并发送含有该报文标识的数据报文;路由器收到发送端向组播组的数据报文后,根据自身保存的信息,确定订阅该组播组的接收端,并向该接收端发送该数据报文。接收端侦听到数据报文发送端发送的数据报文后,根据保存的该发送端对应的数据报文标识算法,确定该数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则从发送端获取漏收的数据报文并保存,如果不存在,则保存该数据报文,从而确保接收端可以收到每个数据报文,提高了数据传输的可靠性。
附图说明
图1为现有技术中UDP组播方法的流程示意图;
图2为本申请实施例中UDP组播方法的流程示意图;
图3为本申请实施例中接收端获取UDP组播数据报文的方法的流程示意图;
图4为本申请实施例中发送UDP组播数据报文的装置的结构示意图;
图5为本申请实施例的获取UDP组播数据报文的装置的结构示意图;
图6为本申请实施例中UDP组播方法的系统结构图。
具体实施方式
为了提高数据传输的可靠性,在本申请实施例中,数据报文发送端根据保存的数据报文标识算法,获取本次发送数据报文的报文标识,并发送含有该报文标识的数据报文;路由器收到发送端向组播组发送的数据报文后,根据自身保存的信息,如之前预订过该组播组的客户端地址列表,确定订阅该组播组的接收端,并向该接收端发送该数据报文。接收端侦听到发送端发送的数据报文后,根据接收端的数据报文标识算法,确定该数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则从发送端获取漏收的数据报文并保存,如果不存在,则保存该数据报文。该发送端的数据报文标识算法与接收端的数据报文标识算法可以相同,或类似。本申请实施例中UDP组播方法的系统结构图如图6所示,其中,图6中的路由器是支持组播功能的路由器,可以完成组播地址的登记、注册、转发管理等功能。接收端用于向路由器发送组播组信息的订阅请求,发送端用于通过路由器向组播组发送数据报文,路由器用于接收接收端的订阅请求,并保存接收端的端口信息和需要预定的组播组地址,并在收到发送端向组播组发送的数据报文后,根据自身保存的信息确定订阅该组播组的接收端,并向该接收端发送该数据报文。
参见图2所示,本申请实施例中的UDP组播方法具体包括以下步骤:
步骤201:发送端生成本次发送数据报文的报文标识。
根据保存的数据报文标识算法,生成本次发送数据报文的报文标识。
这里,数据报文标识算法可以是利用已知的数据报文标识获得本次数据报文标识的算法,已知的数据报文标识可以是上一次的数据报文标识,也可以是其他接收到的数据报文标识,只要该算法与接收端保存的算法一致即可。
比如:数据报文标识算法本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
步骤202:发送端向组播组发送含有该报文标识的数据报文。
步骤203:路由器收到发送端向组播组发送的数据报文后,根据自身保存的信息,该信息包括之前预订过该组播组的客户端地址列表,确定订阅该组播组的接收端。
步骤204:路由器向该接收端发送该数据报文。
该方法可以进一步包括:发送端将本次发送的数据报文保存在本地日志中。
而且,如果当发送端收到接收端的报文请求时,可以根据报文请求中的报文标识从保存的本地日志中获取对应的数据报文并发送。
接收端要获取组播组数据,需要在路由器中订阅组播组数据。即:接收端向路由器发送某个组播组信息的订阅请求,其中含有本地端口信息以及需要预订的组播组地址。该路由器收到该订阅请求后,保存该接收端的端口信息以及需要预订的组播组地址。
例如:接收端建立一个支持数据报的套接字(socket);将socket与本地一个端口绑定;通过setsockopt IP_ADD_MEMBERSHIP加入一个组播组,即通知路由器:需要订阅来自地址为239.255.255.255的组播组数据。
发送端向地址为239.255.255.255组播组发送数据报;路由器收到发送到组播地址(地址为239.255.255.255)的数据报后,查询订阅此组播组的接收端,并将该数据报文转发给所有“订阅”的接收端,如果没有“订阅”的接收端,则将该数据报文抛弃。
在订阅组播组数据后,参见图3所示,本申请实施例中接收端获取UDP组播数据报文的方法包括以下步骤:
步骤301:接收端侦听到发送端本次发送的数据报文。
步骤302:接收端根据保存的与该发送端对应的数据报文标识算法,确定本次接收到的数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则执行步骤303,如果不存在,则执行步骤304。
所述数据报文标识算法与发送端的算法相同,比如本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
确定本次接收到的数据报文与上次接收到的数据报文之间是否存在漏包可以这样实现:
根据保存的该发送端对应的数据报文标识算法,利用保存的上次接收到的数据报文的报文标识获得本次应该接收到的数据报文的报文标识,并与本次已接收到的数据报文中的报文标识进行比较,如果获得的本次应接收的数据报文的报文标识与本次已收到的数据报文中的报文标识不匹配,则确定存在漏包,否则,不存在漏包。举例来说,若接收端上次接收到的数据报文的报文标识为“11352”,根据数据报文标识算法“本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1”,可知本次应收到的数据报文的报文标识为11352+1,即11353。对比本次实际收到的数据报文标识,若本次实际收到的数据报文标识是11353,则说明不存在漏包问题,若本次收到的数据报文标识为11354,则说明存在漏包问题。
步骤303:接收端从发送端获取漏收的数据报文并保存,具体实现方式包括:接收端把最后的报文标识发送到发送端,发送端和自己的发送记录进行比对找出漏收的数据报文发送回接收端,接收端收到后保存。
步骤304:接收端保存该数据报文。接收端可以将获取的数据报文保存在接收端事物日志中。
参见图4所示,本申请实施例的发送UDP组播数据报文的装置,包括:数据报文标识生成单元41和发送单元42。
数据报文标识生成单元41,用于根据保存的数据报文标识算法,生成本次发送数据报文的报文标识;
发送单元42,用于发送含有该报文标识的数据报文。
所述数据报文标识算法可以是与接收端的算法相同,比如:本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
该装置可以进一步包括:存储单元,用于将本次发送的数据报文保存在本地日志中。
该装置还可以进一步包括:接收单元,用于收到接收端的报文请求时,根据报文请求中的报文标识从保存的本地日志中获取对应的数据报文;
则所述发送单元42,还用于将从本地日志中获取对应的数据报文发送给该接收端。
参见图5所示,本申请实施例的获取UDP组播数据报文的装置,包括:侦听单元51、判断单元52、漏包恢复单元53以及存储单元54。
侦听单元51,用于侦听发送端发送的数据报文;
判断单元52,用于根据保存的该发送端对应的数据报文标识算法,确定该数据报文与上次接收到的数据报文之间是否存在漏包;
漏包恢复单元53,用于当存在漏包错误时,从发送端获取漏收的数据报文并保存;
存储单元54,用于当不存在漏包错误时,保存该数据报文;当存在漏包错误时保存从发送端获取漏收的数据报文。
所述存储单元54,可以将获取的数据报文保存在接收端事物日志中。
所述判断单元52,用于根据保存的该发送端对应的数据报文标识算法,利用保存的上次接收到的数据报文的数据标识获得本次该数据报文标识,并与收到的该数据报文中的报文标识进行比较,如果获取的本次该数据报文标识与收到的该数据报文中的报文标识不匹配,则确定存在漏包,否则,不存在漏包。
所述数据报文标识算法与发送端的算法相同,比如本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。此时,相当于发送端和接收端采用一个有序的编号作为报文标识。
在本申请实施例中,发送端发送的每个数据报文都有一个有序的报文编号,而且,接收端可以根据报文编号确定是否存在漏包,则从发送端获取被漏的数据报文,因而接收端可以实现错误容错和修复的能力。
而发送端可以在发送报文时,进行冗余备份,即可为接收端的请求单独提供数据报文,从而达到既保留UDP组播的速度快、占用资源少等优点,也能提供一定程度的可靠性,来扩大该技术的应用范围,解决KODB中需要同其他应用进行可靠的数据同步的问题,可以解决在需要长时间运行的,可靠的分布式系统中,在不影响或打断正常运行系统前提下无缝的扩展系统功能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种UDP组播方法,其特征在于,该方法包括以下步骤:
发送端根据保存的数据报文标识算法,生成本次发送数据报文的报文标识,并发送含有该报文标识的数据报文;
路由器收到发送端向组播组发送的数据报文后,根据自身保存的信息,确定订阅该组播组的接收端,并向该接收端发送该数据报文。
2.根据权利要求1所述的方法,其特征在于,所述数据报文标识算法包括:
本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
发送端将本次发送的数据报文保存在本地日志中。
4.根据权利要求3所述的方法,其特征在于,当发送端收到接收端的报文请求时,根据报文请求中的报文标识从保存的本地日志中获取对应的数据报文并发送。
5.一种获取UDP组播数据报文的方法,其特征在于,该方法包括以下步骤:
接收端侦听到发送端发送的数据报文后,根据保存的与所述发送端对应的数据报文标识算法,确定本次已接收的数据报文与上次接收到的数据报文之间是否存在漏包,如果存在,则从发送端获取漏收的数据报文并保存,如果不存在,则保存该数据报文。
6.根据权利要求5所述的方法,其特征在于,接收端将获取的数据报文保存在接收端事物日志中。
7.根据权利要求5所述的方法,其特征在于,确定本次已接收的数据报文与上次接收到的数据报文之间是否存在漏包,包括:
根据保存的与该发送端对应的数据报文标识算法,利用保存的上次接收到的数据报文的报文标识获得本次应接收到的数据报文的报文标识,并与本次已接收到的数据报文中的报文标识进行比较,如果获得的本次应接收到的数据报文标识与本次已接收到的数据报文中的报文标识不匹配,则确定存在漏包,否则,不存在漏包。
8.根据权利要求7所述的方法,其特征在于,所述数据报文标识算法包括:
本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
9.一种发送UDP组播数据报文的装置,其特征在于,该装置包括:
数据报文标识生成单元,用于根据保存的数据报文标识算法,生成本次发送数据报文的报文标识;
发送单元,用于发送含有该报文标识的数据报文。
10.根据权利要求9所述的装置,其特征在于,所述数据报文标识算法包括:
本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
11.根据权利要求9所述的装置,其特征在于,该装置进一步包括:
存储单元,用于将本次发送的数据报文保存在本地日志中。
12.根据权利要求9所述的装置,其特征在于,该装置进一步包括:
接收单元,用于收到接收端的报文请求时,根据报文请求中的报文标识从保存的本地日志中获取对应的数据报文;
则所述发送单元,还用于将从本地日志中获取对应的数据报文发送给该接收端。
13.一种获取UDP组播数据报文的装置,其特征在于,该装置包括:
侦听单元,用于侦听发送端发送的数据报文;
判断单元,用于根据保存的该发送端对应的数据报文标识算法,确定本次已接收的数据报文与上次接收到的数据报文之间是否存在漏包;
漏包恢复单元,用于当存在漏包错误时,从发送端获取漏收的数据报文并保存;
存储单元,用于当不存在漏包错误时,保存该数据报文;当存在漏包错误时保存从发送端获取漏收的数据报文。
14.根据权利要求13所述的装置,其特征在于,所述存储单元,用于将获取的数据报文保存在接收端事物日志中。
15.根据权利要求13所述的装置,其特征在于,所述判断单元,用于根据保存的该发送端对应的数据报文标识算法,利用保存的上次接收到的数据报文的报文标识获得本次应接收的数据报文的报文标识,并与本次已接收到的该数据报文中的报文标识进行比较,如果获取的本次应接收到的数据报文标识与本次已接收到的数据报文中的报文标识不匹配,则确定存在漏包,否则,不存在漏包。
16.根据权利要求15所述的装置,其特征在于,所述数据报文标识算法包括:
本次发送数据报文的报文标识为将保存的上次发送数据报文的报文标识加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102050859A CN102281146A (zh) | 2010-06-11 | 2010-06-11 | 一种udp组播方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102050859A CN102281146A (zh) | 2010-06-11 | 2010-06-11 | 一种udp组播方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102281146A true CN102281146A (zh) | 2011-12-14 |
Family
ID=45106344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102050859A Pending CN102281146A (zh) | 2010-06-11 | 2010-06-11 | 一种udp组播方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102281146A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040185A (zh) * | 2018-06-29 | 2018-12-18 | 景致三维(江苏)股份有限公司 | 阵列人像重建控制方法及系统 |
CN111026324A (zh) * | 2018-10-09 | 2020-04-17 | 华为技术有限公司 | 转发表项的更新方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003094449A1 (en) * | 2002-05-03 | 2003-11-13 | Thomson Licensing S.A. | Method and apparatus for multicast delivery of information |
CN1815970A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种检测网络链路故障并定位故障的方法 |
CN101076962A (zh) * | 2004-07-23 | 2007-11-21 | 艾利森电话股份有限公司 | 数据单元发送机的控制方法 |
-
2010
- 2010-06-11 CN CN2010102050859A patent/CN102281146A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003094449A1 (en) * | 2002-05-03 | 2003-11-13 | Thomson Licensing S.A. | Method and apparatus for multicast delivery of information |
CN101076962A (zh) * | 2004-07-23 | 2007-11-21 | 艾利森电话股份有限公司 | 数据单元发送机的控制方法 |
CN1815970A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种检测网络链路故障并定位故障的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040185A (zh) * | 2018-06-29 | 2018-12-18 | 景致三维(江苏)股份有限公司 | 阵列人像重建控制方法及系统 |
CN111026324A (zh) * | 2018-10-09 | 2020-04-17 | 华为技术有限公司 | 转发表项的更新方法及装置 |
CN111026324B (zh) * | 2018-10-09 | 2021-11-19 | 华为技术有限公司 | 转发表项的更新方法及装置 |
US11316804B2 (en) | 2018-10-09 | 2022-04-26 | Huawei Technologies Co., Ltd. | Forwarding entry update method and apparatus in a memory |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103095732B (zh) | 信息推送系统和信息推送方法 | |
CN102664899B (zh) | 一种业务处理方法、装置及系统 | |
CN101997768B (zh) | 一种上送地址解析协议报文的方法和装置 | |
CN101127766B (zh) | 基于sip协议的消息处理方法、装置及ip通信系统 | |
EP2680507B1 (en) | Packet forwarding method and system, and relay agent device | |
EP4142219A1 (en) | Message processing method and apparatus, announcement method and apparatus, network bridge node, source device, storage medium, and message processing system | |
CN103873472A (zh) | 一种自动连接网络的方法 | |
CN106961426B (zh) | 智能设备的通讯方法及装置 | |
EP3160172A1 (en) | Method and device for short messaging service intercommunication | |
CN102387083B (zh) | 网络访问控制方法和系统 | |
CN101110772B (zh) | 一种处理报文的设备和方法 | |
CN103516599A (zh) | 发现主机的方法、网络设备及主机 | |
CN104040967B (zh) | 一种报文的流转发方法及报文转发设备 | |
CN103051738B (zh) | 一种dhcp地址分配方法和系统 | |
CN102281146A (zh) | 一种udp组播方法及装置 | |
CN104601463A (zh) | 一种vxlan网络中报文转发方法及装置 | |
US20160330166A1 (en) | Address Acquiring Method and Network Virtualization Edge Device | |
CN101309154B (zh) | 报文的发送方法、发送装置和传输系统 | |
CN102857352B (zh) | 基于叠加网的组播、广播方法及系统 | |
CN103222246B (zh) | 互联网协议版本IPv6组播地址生成的方法和装置 | |
CN102244582B (zh) | 一种bidir-pim网络中的组播传输方法及系统 | |
CN103067280A (zh) | 报文处理方法和装置 | |
WO2008074381A1 (en) | Method and system for ensuring data exchange between a server system and client system | |
CN103139085A (zh) | 网络中组播业务实现的方法、接入设备及系统 | |
WO2016095750A1 (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1163396 Country of ref document: HK |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111214 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1163396 Country of ref document: HK |