Udp组播方法、系统、发送装置及接收装置的制造方法

文档序号:9618638阅读:1120来源:国知局
Udp组播方法、系统、发送装置及接收装置的制造方法
【技术领域】
[0001]本发明属于通信技术领域,尤其涉及UDP组播方法、系统、发送装置及接收装置。
【背景技术】
[0002]现有技术中,大多数操作系统上的传输层都采用TCP(Transmiss1n ControlProtocol,传输控制协议),以实现可靠的点对点通信。当需要实现一组进程间的可靠通信时,多数应用层上的实现方式为为每个进程建立与之通信的各个进程之间的点对点连接,显然,这种进程组的通信方式消耗了大量的带宽,效率较低。现有技术中,UDP(UserDatagram Protocol,用户数据报协议)组播虽然能实现进程组之间的组播,但不能保证可靠的数据传输。此外,UDP封包受到数据长度的限制,现有的UDP组播并不属于流式传输。
[0003]进程组之间的通信在分布式系统中应用十分广泛,高效低延迟的组通信在金融软件系统等实时系统中是极为重要的。例如,在金融软件系统中,组通信常用于传输实时数据,如行情数据和交易数据等。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的UDP组播方式的可靠性较低。

【发明内容】

[0004]鉴于此,本发明实施例提供了一种UDP组播方法、系统、发送装置及接收装置,以解决现有的UDP组播方式的可靠性较低的问题。
[0005]第一方面,本发明实施例提供了一种UDP组播方法,包括:
[0006]发送装置获取待发送的消息,并为所述待发送的消息分配消息序列号;
[0007]所述发送装置将所述待发送的消息划分为多个消息分片,并为每个消息分片分配分片序列号;
[0008]所述发送装置将所述消息分片发送至接收装置,所述消息分片携带有所述发送装置的唯一标识符、所述消息序列号以及所述分片序列号;
[0009]所述接收装置建立二级缓存区,并通过所述二级缓存区对所述消息分片进行缓存;
[0010]所述接收装置在任意一个所述消息序列号对应的所有所述消息分片接收完成时,从所述二级缓存区中提取所述消息序列号对应的所有所述消息分片。
[0011]第二方面,本发明实施例提供了一种UDP组播系统,包括:
[0012]发送装置和接收装置;
[0013]所述发送装置,用于获取待发送的消息,为所述待发送的消息分配消息序列号,将所述待发送的消息划分为多个消息分片,为每个消息分片分配分片序列号,并将所述消息分片发送至所述接收装置,所述消息分片携带有所述发送装置的唯一标识符、所述消息序列号以及所述分片序列号;
[0014]所述接收装置,用于建立二级缓存区,通过所述二级缓存区对所述消息分片进行缓存,并在任意一个所述消息序列号对应的所有所述消息分片接收完成时,从所述二级缓存区中提取所述消息序列号对应的所有所述消息分片。
[0015]第三方面,本发明实施例提供了一种UDP组播的发送装置,包括:
[0016]消息序列号分配单元,用于获取待发送的消息,并为所述待发送的消息分配消息序列号;
[0017]分片序列号分配单元,用于将所述待发送的消息划分为多个消息分片,并为每个消息分片分配分片序列号;
[0018]发送单元,用于将所述消息分片发送至接收装置,以使所述接收装置通过二级缓存区对所述消息分片进行缓存,所述消息分片携带有所述发送装置的唯一标识符、所述消息序列号以及所述分片序列号。
[0019]第四方面,本发明实施例提供了一种UDP组播的接收装置,包括:
[0020]缓存单元,用于建立二级缓存区,并通过所述二级缓存区对发送装置发送的消息分片进行缓存,所述消息分片携带有所述发送装置的唯一标识符、所述消息分片对应的消息序列号以及分片序列号;
[0021]提取单元,用于在任意一个所述消息序列号对应的所有所述消息分片接收完成时,从所述二级缓存区中提取所述消息序列号对应的所有所述消息分片。
[0022]本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过采用消息序列号和分片序列号的两级序列号,并在接收端采用二级缓存区,实现了高效的数据丢包侦测,并能处理数据包乱序的异常情况,保证消息的有序推送,从而实现了可靠的UDP组播;通过采用二级缓存区,在发生丢包乱序等异常情况时降低了接收端处理的时间复杂度;通过在消息分片中携带发送装置的唯一标识符,实现了多发送端同时发送同种数据,接收端可根据两级序列号对多个发送端的数据进行去重,从而在某个发送端的进程异常掉线时进行容错,提高了 UDP组播的稳定性。
【附图说明】
[0023]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本发明实施例提供的UDP组播系统的系统架构图;
[0025]图2是本发明实施例提供的UDP组播方法的实现流程图;
[0026]图3是本发明实施例提供的UDP组播方法中消息序列号与分片序列号的示意图;
[0027]图4是本发明实施例提供的UDP组播方法中消息插槽和分片插槽的示意图;
[0028]图5是本发明实施例提供的UDP组播的发送装置的结构框图;
[0029]图6是本发明实施例提供的UDP组播的接收装置的结构框图。
【具体实施方式】
[0030]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0031 ]图1示出了本发明实施例提供的UDP组播系统的系统架构图,为了便于说明,仅示出了与本发明实施例相关的部分。
[0032]参照图1,该UDP组播系统包括:
[0033]发送装置11和接收装置12。
[0034]需要说明的是,该UDP组播系统可以包括多个发送装置11和多个接收装置12。
[0035]所述发送装置11,用于获取待发送的消息,为所述待发送的消息分配消息序列号,将所述待发送的消息划分为多个消息分片,为每个消息分片分配分片序列号,并将所述消息分片发送至所述接收装置12,所述消息分片携带有所述发送装置11的唯一标识符、所述消息序列号以及所述分片序列号;
[0036]所述接收装置12,用于建立二级缓存区,通过所述二级缓存区对所述消息分片进行缓存,并在任意一个所述消息序列号对应的所有所述消息分片接收完成时,从所述二级缓存区中提取所述消息序列号对应的所有所述消息分片。
[0037]优选地,所述二级缓存区包括第一级缓存区和第二级缓存区,所述第一级缓存区的任意一个数组用于存储任意一个所述消息序列号对应的所有所述分片序列号,所述第二级缓存区的任意一个数组用于存储任意一个所述分片序列号对应的所述消息分片。
[0038]优选地,所述发送装置11具体用于:
[0039]获取待发送的消息,并根据调用者信息为所述待发送的消息分配消息序列号。
[0040]优选地,所述接收装置12还用于:
[0041]在任意一个所述消息序列号对应的所述消息分片接收超时时,发送所述消息序列号对应的重传请求至所述发送装置11。
[0042]本发明实施例通过采用消息序列号和分片序列号的两级序列号,并在接收端采用二级缓存区,实现了高效的数据丢包侦测,并能处理数据包乱序的异常情况,保证消息的有序推送,从而实现了可靠的UDP组播;通过采用二级缓存区,在发生丢包乱序等异常情况时降低了接收端处理的时间复杂度;通过在消息分片中携带发送装置的唯一标识符,实现了多发送端同时发送同种数据,接收端可根据两级序列号对多个发送端的数据进行去重,从而在某个发送端的进程异常掉线时进行容错,提高了 UDP组播的稳定性。
[0043]图2示出了本发明实施例提供的UDP组播方法的实现流程图,详述如下:
[0044]在步骤S201中,发送装置获取待发送的消息,并为待发送的消
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1