适用于分布式网络的udp传输方法和系统的制作方法

文档序号:9380278阅读:899来源:国知局
适用于分布式网络的udp传输方法和系统的制作方法
【技术领域】
[0001]本发明涉及分布式网络通讯技术领域,尤其涉及一种适用于分布式网络的UDP传输方法和系统。
【背景技术】
[0002]在对等分布式网络通讯中,有一个技术难题是关于NAT穿越的问题,NAT穿越(NATtraversal)涉及TCP/IP网络中的一个常见问题,即在处于使用了 NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据一一这就引入了带宽开销的问题。
[0003]解决穿透NAT问题的一个思路是,私网中终端通过某种机制预先得到出口 NAT上的对外地址,然后在负载中所填写的地址信息直接填写出口 NAT上的对外地址,而不是私网内终端的私有IP地址,这样负载中的内容在经过NAT时就无需被修改了,只需按普通NAT流程转换报文头的IP地址即可,负载中的IP地址信息和报文头地址信息是一致的。STUN协议就是基于此思路来解决应用层地址的转换问题。STUN的全称是Simple Traversal ofUDP Through Network Address Translators,即 UDP 对 NAT 的简单穿越方式。
[0004]STUN协议的一个重要点是基于UDP协议进行数据传输,UDP协议面向无连接通信,没有三次握手的需求,网络设备在通信时,UDP数据拥有比TCP数据更高的优先通信权利,这点使得UDP数据在通信上更加的快速,但是当网络拥堵时,通信设备同样会优先丢弃UDP数据,这种设计方式会导致UDP数据出现丢失的问题,同时协议没有规定相应的流控制方式,自然也不会保证数据的顺序到达。在没有流控制的情况下,UDP数据可能出现丢失、乱序到达的问题,同样由于没有流控制,如果开发控制不当,可能导致数据风暴问题。在系统驱动实现上,由于所有的UDP数据接收时,使用共享的数据缓冲区,设置不当大小的缓冲区,可能会增加数据包的丢失问题,这个就是为什么UDP协议无法实现高并发的服务器原因所在。

【发明内容】

[0005]在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
[0006]本发明提供一种针对对等分布式网络设计的、支持穿越MT、支持数据重发的适用于分布式网络的UDP传输方法和系统,并进一步将重发机制、数据校验、数据压缩、RTT计算、应用层数据拆分与重组集中于一个模块中,打造一个支持面向对象编程的安全高效的传输模块,为对等网络传输提供更好的通讯支持。
[0007]本发明的一个方面提供一种适用于分布式网络的UDP传输方法,所述分布式网络中包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,所述方法包括:
[0008]S13:第一发送子单元将待发送的第一数据存入第一发送缓冲器,并向第二接收子单元发送包含所述第一数据的数据包;
[0009]S15:第一发送定时器定时检测第一接收子单元是否收到对应所述数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发所述数据包;
[0010]S17:所述第一接收子单元接收所述确认字符,或在预设的最大发送超时时间内未收到所述确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据。
[0011]本发明的一个方面还提供另一种适用于分布式网络的UDP传输方法,所述方法包括:
[0012]S23:第一发送子单元将待发送的第一数据拆分为第一组数据分片,将所述第一组数据分片存入第一发送缓冲器;
[0013]S25:所述第一发送子单元分批次向第二接收子单元发送分别包含所述第一组数据分片中各数据分片的数据包,第一发送定时器分别定时检测第一接收子单元是否收到对应各批次发送数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符所对应的数据包;
[0014]S27:所述第一接收子单元接收对应所述第一组数据分片中所有数据分片的各确认字符,接收对应所述第一组数据分片的总确认字符,或,在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符和所述总确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片。
[0015]本发明的另一个方面提供一种适用于分布式网络的UDP传输方法,所述方法包括:
[0016]S31:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为未拆分的完整数据;
[0017]S33:所述第二接收子单元将所述数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述数据包的确认字符。
[0018]本发明的另一个方面还提供另一种适用于分布式网络的UDP传输方法,所述方法包括:
[0019]S41:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为已拆分的数据分片;
[0020]S43:所述第二接收子单元将所述数据分片存入第二接收缓冲器,所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据;
[0021]S45:第二接收定时器循环定时检测所述第二接收缓冲器是否已接收所述数据分片同组的所有数据分片:
[0022]如已接收所有数据分片,则所述第二接收子单元将完整数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述完整数据的总确认字符,所述第二接收定时器停止定时检测;
[0023]如未接收所有数据分片,则向第一接收子单元发送对应所述数据分片的确认字符,跳转至步骤S41。
[0024]本发明还提供一种适用于分布式网络的UDP传输系统,包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,其特征在于,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元;
[0025]所述发送子单元内设有发送缓冲器和发送定时器,用于对所述分布式系统中其它网络节点的接收子单元发送包含待发送的数据或数据分片的数据包,将所述待发送的数据或数据分片存入所述发送缓冲器,利用所述发送定时器定时检测是否收到对应所述数据包的确认字符,如未收到则定时重发所述数据包;
[0026]所述接收子单元内设有接收缓冲器和接收定时器,用于接收所述分布式系统中其它网络节点的发送子单元发送的数据包,判断所述数据包中的数据是否已拆分为数据分片,回发与所述数据包对应的确认字符,将所述数据分片存入所述接收缓冲器,利用所述接收定时器定时检测同组数据分片是否已完整接收,将数据包中的数据或数据分片重组的数据返回给对应的上层应用模块。
[0027]本发明诸多实施例提供的适用于分布式网络的UDP传输方法和系统通过确认字符对数据发送进行验证,提高了数据传输的安全性、准确性和完整性;通过发送定时器定时检测确认字符,实现支持数据重发,降低了数据传输的失败率;基于UDP协议设计,支持穿越NAT,保证了数据传输的准确性和安全性;
[0028]本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统通过计算RTT实时调整发包数量,提升了数据传输的效率;
[0029]本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统通过压缩数据降低了网络传输的压力,节省了带宽,在一定程度上提高了系统的传输能力;
[0030]本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统支持随机数据填充和数据包长随机,降低了被深度包检测系统识别的可能;
[0031]本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统将重发机制、数据校验、数据压缩、RTT计算、应用层数据拆分与重组集中于一个模块中,提供了支持面向对象编程的安全高效的传输模块和面对对象的实现方法,采用双缓存设计,无需上层应用监测每一个数据包,实现了一个完全应用层网络缓存模型。
【附图说明】
[0032]参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
[0033]图1为根据本发明实施例中网络节点作为请求端发送数据的一种适用于分布式网络的UDP传输方法的流程图。
[0034]图2为图1所示UDP传输方法的优选实施例的流程图。
[0035]图3为图1或图2所示UDP传输方法中步骤S17的一种情况的流程图。
[0036]图4为图1或图2所示UDP传输方法中步骤S17的另一种情况的流程图。
[0037]图5为图1所示UDP传输方法的时序示意图。
[0038]图6为根据本发明实施例中网络节点作为请求端发送数据的另一种适用于分布式网络的UDP传输方法的流程图。
[0039]图7为图6所示UDP传输方法的优选实施例的流程图。
[0040]图8为图7所示UDP传输方法的优选实施例的流程图。
[0041 ]图9为图6-图8任一所示UDP传输方法中步骤S23的流程图。
[0042]图10为图6-图8任一所示UDP传输方法中步骤S25的流程图。
[0043]图11为图6-图8任一所示UDP传输方法中步骤S27的一种情况的流程图。
[0044]图12为图6-图8任一所示UDP传输方法中步骤S27的另一种情况的流程图。
[0045]图13为图6所示UDP传输方法的时序示意图。
[0046]图14为根据本发明实施例中网络节点作为服务端接收数据的一种适用于分布式网络的UDP传输方法的流程图。
[0047]图15为根据本发明实施例中网络节点作为服务端接收数据的另一种适用于分布式网络的UDP传输方法的流程图。
[0048]图16为图15所示UDP传输方法中步骤S
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1