CN105100100A - 适用于分布式网络的udp传输方法和系统 - Google Patents
适用于分布式网络的udp传输方法和系统 Download PDFInfo
- Publication number
- CN105100100A CN105100100A CN201510461377.1A CN201510461377A CN105100100A CN 105100100 A CN105100100 A CN 105100100A CN 201510461377 A CN201510461377 A CN 201510461377A CN 105100100 A CN105100100 A CN 105100100A
- Authority
- CN
- China
- Prior art keywords
- transmission
- subelement
- data
- packet
- buffer
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种适用于分布式网络的UDP传输方法和系统,所述系统包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,传输模块包括至少一个链接单元,链接单元包括一对发送子单元和接收子单元;发送子单元内设有发送缓冲器和发送定时器,用于发送数据包,将待发送的数据或数据分片存入发送缓冲器,利用发送定时器定时检测是否收到对应数据包的确认字符,如未收到则定时重发数据包;接收子单元内设有接收缓冲器和接收定时器,用于接收数据包,回发对应的确认字符,将数据分片存入接收缓冲器,利用接收定时器定时检测同组数据分片是否已完整接收。本发明针对对等网络设计、支持穿越NAT,提供面向对象的安全高效的传输模块。
Description
技术领域
本发明涉及分布式网络通讯技术领域,尤其涉及一种适用于分布式网络的UDP传输方法和系统。
背景技术
在对等分布式网络通讯中,有一个技术难题是关于NAT穿越的问题,NAT穿越(NATtraversal)涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据——这就引入了带宽开销的问题。
解决穿透NAT问题的一个思路是,私网中终端通过某种机制预先得到出口NAT上的对外地址,然后在负载中所填写的地址信息直接填写出口NAT上的对外地址,而不是私网内终端的私有IP地址,这样负载中的内容在经过NAT时就无需被修改了,只需按普通NAT流程转换报文头的IP地址即可,负载中的IP地址信息和报文头地址信息是一致的。STUN协议就是基于此思路来解决应用层地址的转换问题。STUN的全称是SimpleTraversalofUDPThroughNetworkAddressTranslators,即UDP对NAT的简单穿越方式。
STUN协议的一个重要点是基于UDP协议进行数据传输,UDP协议面向无连接通信,没有三次握手的需求,网络设备在通信时,UDP数据拥有比TCP数据更高的优先通信权利,这点使得UDP数据在通信上更加的快速,但是当网络拥堵时,通信设备同样会优先丢弃UDP数据,这种设计方式会导致UDP数据出现丢失的问题,同时协议没有规定相应的流控制方式,自然也不会保证数据的顺序到达。在没有流控制的情况下,UDP数据可能出现丢失、乱序到达的问题,同样由于没有流控制,如果开发控制不当,可能导致数据风暴问题。在系统驱动实现上,由于所有的UDP数据接收时,使用共享的数据缓冲区,设置不当大小的缓冲区,可能会增加数据包的丢失问题,这个就是为什么UDP协议无法实现高并发的服务器原因所在。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明提供一种针对对等分布式网络设计的、支持穿越NAT、支持数据重发的适用于分布式网络的UDP传输方法和系统,并进一步将重发机制、数据校验、数据压缩、RTT计算、应用层数据拆分与重组集中于一个模块中,打造一个支持面向对象编程的安全高效的传输模块,为对等网络传输提供更好的通讯支持。
本发明的一个方面提供一种适用于分布式网络的UDP传输方法,所述分布式网络中包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,所述方法包括:
S13:第一发送子单元将待发送的第一数据存入第一发送缓冲器,并向第二接收子单元发送包含所述第一数据的数据包;
S15:第一发送定时器定时检测第一接收子单元是否收到对应所述数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发所述数据包;
S17:所述第一接收子单元接收所述确认字符,或在预设的最大发送超时时间内未收到所述确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据。
本发明的一个方面还提供另一种适用于分布式网络的UDP传输方法,所述方法包括:
S23:第一发送子单元将待发送的第一数据拆分为第一组数据分片,将所述第一组数据分片存入第一发送缓冲器;
S25:所述第一发送子单元分批次向第二接收子单元发送分别包含所述第一组数据分片中各数据分片的数据包,第一发送定时器分别定时检测第一接收子单元是否收到对应各批次发送数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符所对应的数据包;
S27:所述第一接收子单元接收对应所述第一组数据分片中所有数据分片的各确认字符,接收对应所述第一组数据分片的总确认字符,或,在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符和所述总确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片。
本发明的另一个方面提供一种适用于分布式网络的UDP传输方法,所述方法包括:
S31:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为未拆分的完整数据;
S33:所述第二接收子单元将所述数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述数据包的确认字符。
本发明的另一个方面还提供另一种适用于分布式网络的UDP传输方法,所述方法包括:
S41:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为已拆分的数据分片;
S43:所述第二接收子单元将所述数据分片存入第二接收缓冲器,所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据;
S45:第二接收定时器循环定时检测所述第二接收缓冲器是否已接收所述数据分片同组的所有数据分片:
如已接收所有数据分片,则所述第二接收子单元将完整数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述完整数据的总确认字符,所述第二接收定时器停止定时检测;
如未接收所有数据分片,则向第一接收子单元发送对应所述数据分片的确认字符,跳转至步骤S41。
本发明还提供一种适用于分布式网络的UDP传输系统,包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,其特征在于,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元;
所述发送子单元内设有发送缓冲器和发送定时器,用于对所述分布式系统中其它网络节点的接收子单元发送包含待发送的数据或数据分片的数据包,将所述待发送的数据或数据分片存入所述发送缓冲器,利用所述发送定时器定时检测是否收到对应所述数据包的确认字符,如未收到则定时重发所述数据包;
所述接收子单元内设有接收缓冲器和接收定时器,用于接收所述分布式系统中其它网络节点的发送子单元发送的数据包,判断所述数据包中的数据是否已拆分为数据分片,回发与所述数据包对应的确认字符,将所述数据分片存入所述接收缓冲器,利用所述接收定时器定时检测同组数据分片是否已完整接收,将数据包中的数据或数据分片重组的数据返回给对应的上层应用模块。
本发明诸多实施例提供的适用于分布式网络的UDP传输方法和系统通过确认字符对数据发送进行验证,提高了数据传输的安全性、准确性和完整性;通过发送定时器定时检测确认字符,实现支持数据重发,降低了数据传输的失败率;基于UDP协议设计,支持穿越NAT,保证了数据传输的准确性和安全性;
本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统通过计算RTT实时调整发包数量,提升了数据传输的效率;
本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统通过压缩数据降低了网络传输的压力,节省了带宽,在一定程度上提高了系统的传输能力;
本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统支持随机数据填充和数据包长随机,降低了被深度包检测系统识别的可能;
本发明一些实施例提供的适用于分布式网络的UDP传输方法和系统将重发机制、数据校验、数据压缩、RTT计算、应用层数据拆分与重组集中于一个模块中,提供了支持面向对象编程的安全高效的传输模块和面对对象的实现方法,采用双缓存设计,无需上层应用监测每一个数据包,实现了一个完全应用层网络缓存模型。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1为根据本发明实施例中网络节点作为请求端发送数据的一种适用于分布式网络的UDP传输方法的流程图。
图2为图1所示UDP传输方法的优选实施例的流程图。
图3为图1或图2所示UDP传输方法中步骤S17的一种情况的流程图。
图4为图1或图2所示UDP传输方法中步骤S17的另一种情况的流程图。
图5为图1所示UDP传输方法的时序示意图。
图6为根据本发明实施例中网络节点作为请求端发送数据的另一种适用于分布式网络的UDP传输方法的流程图。
图7为图6所示UDP传输方法的优选实施例的流程图。
图8为图7所示UDP传输方法的优选实施例的流程图。
图9为图6-图8任一所示UDP传输方法中步骤S23的流程图。
图10为图6-图8任一所示UDP传输方法中步骤S25的流程图。
图11为图6-图8任一所示UDP传输方法中步骤S27的一种情况的流程图。
图12为图6-图8任一所示UDP传输方法中步骤S27的另一种情况的流程图。
图13为图6所示UDP传输方法的时序示意图。
图14为根据本发明实施例中网络节点作为服务端接收数据的一种适用于分布式网络的UDP传输方法的流程图。
图15为根据本发明实施例中网络节点作为服务端接收数据的另一种适用于分布式网络的UDP传输方法的流程图。
图16为图15所示UDP传输方法中步骤S43的流程图。
图17为图16所示UDP传输方法的优选实施例的流程图。
图18为图14和图15所示UDP传输方法的时序示意图。
图19为根据本发明实施例中的一种适用于分布式网络的UDP传输系统的结构示意图。
图20为图19所示UDP传输系统中的链接单元的结构示意图。
附图标记说明:
10网络节点
11链接单元
111发送子单元
112接收子单元
1111发送缓冲器
1112发送定时器
1121接收缓冲器
1122接收定时器
具体实施方式
下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
图1为根据本发明实施例中网络节点作为请求端发送数据的一种适用于分布式网络的UDP传输方法的流程图。
图5为图1所示UDP传输方法的时序示意图。
在本实施例中,所述分布式网络中包括若干网络节点,所述网络节点中包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元Connection,所述链接单元Connection包括一对发送子单元Sender和接收子单元Receiver,所述发送子单元Sender内设有发送缓冲器和发送定时器,所述接收子单元Receiver内设有接收缓冲器和接收定时器,如图1和图5所示,当所述网络节点作为请求端发送数据时,且待发送数据能通过一个数据包发送时,所述方法包括:
S13:第一发送子单元将待发送的第一数据存入第一发送缓冲器,并向第二接收子单元发送包含所述第一数据的数据包;
S15:第一发送定时器定时检测第一接收子单元是否收到对应所述数据包的确认字符ack,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发所述数据包;
S17:所述第一接收子单元接收所述确认字符ack,或在预设的最大发送超时时间内未收到所述确认字符ack,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据。
本实施例所提供的方法通过确认字符对数据发送进行验证,提高了数据传输的安全性、准确性和完整性;通过发送定时器定时检测确认字符,实现支持数据重发,降低了数据传输的失败率;基于UDP协议设计,支持穿越NAT,保证了数据传输的准确性和安全性。
图2为图1所示UDP传输方法的优选实施例的流程图。
如图2所示,在步骤S13之前还包括:
S11:所述第一发送子单元判断待发送的第一数据的大小未超过预设值。
具体地,在本实施例中,所述预设值为以太网包的最大长度,当所述第一数据的大小未超过以太网包的最大长度时,所述第一发送子单元可以通过单个数据包发送所述第一数据。
在一优选实施例中,所述第一发送子单元通过注册在传输层的发送接口发送所述数据包。具体地,所述发送接口为发送回调函数send_callback;
所述第一接收子单元通过注册在传输层的接收接口接收所述确认字符ack。具体地,所述接收接口为接收回调函数receive_callback。
在一优选实施例中,所述定时重发的间隔时间逐次延长。
当所述间隔时间累计超过所述最大发送超时时间时,所述第一发送子单元停止重发所述数据包。
具体地,在本实施例中,所述间隔时间依次为1秒、2秒、4秒、8秒,所述最大发送超时时间为15秒,所述第一发送子单元重发4次包含所述第一数据的数据包后,第一发送定时器仍未检测到对应所述数据包的确认字符ack,则第一发送定时器停止定时检测,第一发送子单元停止重发所述数据包,删除所述第一发送缓冲器中缓存的所述第一数据。
图3为图1或图2所示UDP传输方法中步骤S17的一种情况的流程图。
如图3所示,在图1或图2所示实施例中的一种情况下,步骤S17包括:
S1711:所述第一接收子单元接收所述确认字符ack后,修改所述第一发送缓冲器中的确认标记;
S1713:所述第一发送定时器检测到所述确认标记已被修改,停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据;
S1715:所述第一发送子单元告知所对应的上层应用模块数据发送成功。
图4为图1或图2所示UDP传输方法中步骤S17的另一种情况的流程图。
如图4所示,在图1或图2所示实施例中的另一种情况下,步骤S17包括:
S1721:所述第一接收子单元在预设的最大发送超时时间内未收到所述确认字符ack,所述第一发送定时器停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据;
S1723:所述第一发送子单元告知所对应的上层应用模块数据发送失败。
如图3和图5所示,图3所示实施例中,一次典型的单数据包发送数据流程可能包括:
S11:第一发送子单元判断待发送的第一数据的大小未超过以太网包的最大长度。
S13:第一发送子单元将第一数据存入第一发送缓冲器,并调用发送回调函数send_callback向第二接收子单元发送包含所述第一数据的数据包。
S15:第一发送定时器在第一发送子单元发送数据包的同时创建发送定时器对象定时检测第一发送缓冲器中的确认标记,如第一接收子单元收到对应所述数据包的确认字符ack会修改所述确认标记。
所述发送定时器对象在首次定时1秒后未检测到确认标记已修改,则第一发送子单元调用发送回调函数send_callback向第二接收子单元重发所述数据包;第二次定时2秒后仍未检测到确认标记已修改,再次调用发送回调函数send_callback重发数据包;
S17:第一接收子单元在第5秒时接收对应所述数据包的确认字符ack,修改第一发送缓冲器中的确认标记;
所述发送定时器对象在第三次定时4秒后检测到确认标记已修改,停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据,告知所对应的上层应用模块数据发送成功。
如图4所示,图4所示实施例中,一次典型的单数据包发送数据流程可能包括:
S11:第一发送子单元判断待发送的第一数据的大小未超过以太网包的最大长度。
S13:第一发送子单元将第一数据存入第一发送缓冲器,并调用发送回调函数send_callback向第二接收子单元发送包含所述第一数据的数据包。
S15:第一发送定时器在第一发送子单元发送数据包的同时创建发送定时器对象定时检测第一发送缓冲器中的确认标记,如第一接收子单元收到对应所述数据包的确认字符ack会修改所述确认标记。
所述发送定时器对象在首次定时1秒后未检测到确认标记已修改,则第一发送子单元调用发送回调函数send_callback向第二接收子单元重发所述数据包;第二次定时2秒后仍未检测到确认标记已修改,再次调用发送回调函数send_callback重发数据包;第三次定时4秒后仍未检测到确认标记已修改,再次调用发送回调函数send_callback重发数据包;第四次定时8秒后仍未检测到确认标记已修改,再次调用发送回调函数send_callback重发数据包;
S17:第一接收子单元在预设的最大发送超时时间15秒内未收到所述确认字符ack,所述发送定时器对象在第四次未检测到确认标记修改后,定时超过最大发送超时时间15秒,停止定时检测;
所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据,告知所对应的上层应用模块数据发送失败。
图6为根据本发明实施例中网络节点作为请求端发送数据的另一种适用于分布式网络的UDP传输方法的流程图。
图13为图6所示UDP传输方法的时序示意图。
如图6和图13所示,在本实施例中,当网络节点作为请求端发送数据,且待发送数据无法通过单个数据包发送时,所述另一种方法包括:
S23:第一发送子单元将待发送的第一数据拆分为第一组数据分片,将所述第一组数据分片存入第一发送缓冲器;
S25:所述第一发送子单元分批次向第二接收子单元发送分别包含所述第一组数据分片中各数据分片的数据包,第一发送定时器分别定时检测第一接收子单元是否收到对应各批次发送数据包的确认字符ack,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符ack所对应的数据包;
S27:所述第一发送定时器检测到已接收对应所述第一组数据分片中所有数据分片的各确认字符ack,已接收对应所述第一组数据分片的总确认字符totalack,或,在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符ack和所述总确认字符totalack,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片。
图7为图6所示UDP传输方法的优选实施例的流程图。
如图7所示,在一优选实施例中,步骤S23之前还包括:
S21:第一发送子单元判断待发送的第一数据的大小已超过预设值。
图8为图7所示UDP传输方法的优选实施例的流程图。
如图8所示,在一优选实施例中,步骤S23之前还包括:
S22:所述第一发送子单元对所述第一数据进行压缩。
本实施例通过压缩数据降低了网络传输的压力,节省了带宽,在一定程度上提高了系统的传输能力。
图9为图6-图8任一所示UDP传输方法中步骤S23的流程图。
如图9所示,在一优选实施例中,步骤S23包括:
S231:所述第一发送子单元根据数据分片的大小计算出所述第一组数据分片中各数据分片在所述压缩后的第一数据中的偏移位置;
S233:所述第一发送子单元将所述压缩后的第一数据和所述各数据分片的偏移位置存入第一发送缓冲器。
具体地,存储完整数据和各数据分配的偏移位置的优点在于节省了缓存空间,而无需另行存储各分片数据。
在一些优选实施例中,所述数据分片的大小为固定值;
在另一些优选实施例中,所述数据分片的大小为设定范围内的随机值。
具体地,当数据分片大小为固定值时,对于下文所述的发包确认间隔时间RTT和下一批次发送数据包数量的计算更为精确,但容易被深度包检测系统识别;当数据分片的大小为设定的小范围内的随机值时,对于对于下文所述的发包确认间隔时间RTT和下一批次发送数据包数量的计算精确度影响不大,同时可避免被深度包检测系统识别,提升了数据传输的可靠性。
图10为图6-图8任一所示UDP传输方法中步骤S25的流程图。
如图10所示,在一优选实施例中,步骤S25包括:
S251:所述第一发送子单元向第二接收子单元发送包含所述第一组数据分片中第一数据分片的第一数据包;
S253:第一发送定时器定时检测第一接收子单元是否收到对应本批次所发送数据包的确认字符ack:
如未收到,则所述第一发送定时器判断发送时间是否已超过预设的最大发送超时时间:
如已超时,则所述第一发送定时器停止定时检测,跳转步骤S27;
如未超时,则所述第一发送定时器计算出定时重发未收到的确认字符ack所对应的数据包的间隔时间;
如收到,则所述第一发送定时器判断是否已接收对应所述第一组数据分片中所有数据分片的各确认字符ack或对应所述第一组数据分片的总确认字符totalack:
如已收到,则所述第一发送定时器停止定时检测,跳转步骤S27;
如未收到,则所述第一发送定时器计算出本批次的发包确认间隔时间RTT并存入所述第一发送缓冲器,所述第一发送子单元根据所述本批次的发包确认间隔时间RTT和发包间隔时间计算出下一批次发送数据包的数量;
S255:所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符ack所对应的数据包或定时发送下一批次分别包含各数据分片的数据包,跳转步骤S253循环。
本实施例通过计算RTT实时调整发包数量,提升了数据传输的效率;本实施例支持随机数据填充和数据包长随机,降低了被深度包检测系统识别的可能。
在一优选实施例中,对于同一数据包,所述定时重发的间隔时间逐次延长;当所述间隔时间累计超过所述最大发送超时时间时,所述第一发送子单元停止重发所述数据包。
具体地,在本实施例中,所述间隔时间首次为1秒,逐次翻倍。
图11为图6-图8任一所示UDP传输方法中步骤S27的一种情况的流程图。
如图11所示,在图6、图7或图8所示实施例中的一种情况下,步骤S27包括:
S2711:所述第一接收子单元接收对应所述第一组数据分片中所有数据分片的各确认字符ack或对应所述第一组数据分片的总确认字符totalack后,修改所述第一发送缓冲器中的确认标记;
S2713:所述第一发送定时器检测到所述确认标记已修改后,停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片;
S2715:所述第一发送子单元告知所对应的上层应用模块数据发送成功。
图12为图6-图8任一所示UDP传输方法中步骤S27的另一种情况的流程图。
如图12所示,在图6、图7或图8所示实施例中的另一种情况下,步骤S27包括:
S2721:所述第一接收子单元在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符ack和所述总确认字符totalack,所述第一发送定时器停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片;
S2723:所述第一发送子单元告知所对应的上层应用模块数据发送失败。
如图11和图13所示,在图11所示实施例中,一次典型的多数据包发送数据流程可能包括:
S21:第一发送子单元判断待发送的第一数据的大小已超过以太网包的最大长度,需要分片通过多数据包发送。
S22:所述第一发送子单元对所述第一数据进行压缩。
S23:所述第一发送子单元根据小范围内随机生成的数据分片大小计算出所述压缩后的第一数据中各数据分片的偏移位置;将所述压缩后的第一数据和所述各数据分片的偏移位置存入第一发送缓冲器;
S25:所述第一发送子单元调用发送回调函数send_callback向第二接收子单元发送包含所述第一组数据分片中第一数据分片的第一数据包;
第一发送定时器建立第一发送定时器对象定时检测第一接收子单元是否收到对应第一数据包的确认字符ack1;
第一接收子单元接收ack1并在第一发送缓冲器中设置第一确认标记,第一发送定时器检测到第一确认标记,并且没有检测到所有确认标记或总确认标记,计算出本次发包的RTT1为200毫秒并存入第一发送缓冲器,第一发送子单元根据RTT1和发包间隔时间计算出第二批发包数量:
RTT1为200毫秒,则单程发送时间为100毫秒,发包间隔时间为10毫秒,则第二批发包数量为100毫秒/10毫秒=10(个);
第一发送子单元调用发送回调函数send_callback向第二接收子单元发送第二批次10个数据包;
第一发送定时器建立第二发送定时器对象定时检测第一接收子单元是否收到对应第二批次数据包的确认字符ack2-ack11;
循环发送第三批数据包、检测第三批确认字符、……发送第N批数据包、检测第N批确认字符;
S27:第一发送定时器建立的第N发送定时器对象检测到第一接收子单元接收总确认字符后在第一发送缓冲器中修改的总确认标记;
第一发送定时器停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片,告知所对应的上层应用模块数据发送成功。
图14为根据本发明实施例中网络节点作为服务端接收数据的一种适用于分布式网络的UDP传输方法的流程图。
图18为图14和图15所示UDP传输方法的时序示意图。
如图14和图18所示,在本实施例中,当所述网络节点作为服务端接收数据,且接收的数据包中的数据为未拆分的完整数据时,所述方法包括:
S31:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为未拆分的完整数据;
S33:所述第二接收子单元将所述数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述数据包的确认字符ack。
图15为根据本发明实施例中网络节点作为服务端接收数据的另一种适用于分布式网络的UDP传输方法的流程图。
如图15和图18所示,在本实施例中,当所述网络节点作为服务端接收数据,且接收的数据包中的数据为拆分的数据分片时,所述另一种方法包括:
S41:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为已拆分的数据分片;
S43:所述第二接收子单元将所述数据分片存入第二接收缓冲器,所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据;
S45:第二接收定时器循环定时检测所述第二接收缓冲器是否已接收所述数据分片同组的所有数据分片:
如已接收所有数据分片,则所述第二接收子单元将完整数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述完整数据的总确认字符totalack,所述第二接收定时器停止定时检测;
如未接收所有数据分片,则向第一接收子单元发送对应所述数据分片的确认字符ack,跳转至步骤S41。
图16为图15所示UDP传输方法中步骤S43的流程图。
如图16所示,在一优选实施例中,步骤S43包括:
S431:所述第二接收子单元将所述数据分片存入第二接收缓冲器;
S433:所述第二接收缓冲器判断所述数据分片是否同组数据分片中第一个接收的,如是第一个接收的,则第二接收定时器启动所述对第二接收缓冲器的循环定时检测;
S435:所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据。
图17为图16所示UDP传输方法的优选实施例的流程图。
如图17所示,在一优选实施例中,步骤435之后还包括:
S437:所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片已组成完整数据后,对所组成的完整数据进行解压。
在一优选实施例中,当所述循环定时检测的累计时间超过预设的最大接收超时时间时,所述第二接收定时器停止定时检测,所述第二接收子单元告知所对应的上层应用模块数据接收失败,删除所述第二接收缓冲器中缓存的同组数据分片。
如图17和图18所示,在图17所示的实施例中,一次典型的多数据包接收数据流程可能包括:
S41:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为已拆分的数据分片;
S43:所述第二接收子单元将所述数据分片存入第二接收缓冲器;
所述第二接收缓冲器判断所述数据分片是同组数据分片中第一个接收的,第二接收定时器创建接收定时器对象,启动对第二接收缓冲器的循环定时检测;
第二接收缓冲器判断所述数据分片与之前缓存的数据分片还不能组成完整数据;
S45:第二接收定时器循环检测到所述第二接收缓冲器未接收所述数据分片同组的所有数据分片,向第一接收子单元发送对应所述数据分片的确认字符ack1,跳转至步骤S41;
直至第二接收定时器循环检测到所述第二接收缓冲器已接收同组的所有数据分片,将所有数据分片重组并解压,得到发送的原始数据并返回给对应的上层应用模块,所述第二接收子单元向第一接收子单元发送对应所述完整数据的总确认字符totalack,所述第二接收定时器停止定时检测。
图19为根据本发明实施例中的一种适用于分布式网络的UDP传输系统的结构示意图。
图20为图19所示UDP传输系统中的链接单元的结构示意图。
如图19和图20所示,在本实施例中,所述适用于分布式网络的UDP传输系统,包括若干网络节点10,所述网络节点中包括传输模块和上层应用模块(未在图中示出),所述传输模块包括至少一个链接单元11,链接单元11包括一对发送子单元111和接收子单元112。
发送子单元111内设有发送缓冲器1111和发送定时器1112,用于对所述分布式系统中其它网络节点10的接收子单元111发送包含待发送的数据或数据分片的数据包,将所述待发送的数据或数据分片存入发送缓冲器1111,利用发送定时器1112定时检测是否收到对应所述数据包的确认字符ack,如未收到则定时重发所述数据包。
接收子单元112内设有接收缓冲器1121和接收定时器1122,用于接收所述分布式系统中其它网络节点10的发送子单元111发送的数据包,判断所述数据包中的数据是否已拆分为数据分片,回发与所述数据包对应的确认字符ack,将所述数据分片存入接收缓冲器1121,利用接收定时器1122定时检测同组数据分片是否已完整接收,将数据包中的数据或数据分片重组的数据返回给对应的上层应用模块。
在一优选实施例中,发送子单元111还用于判断所述待发送的数据的大小是否超过预设值:
如未超过预设值,则发送子单元111通过单个数据包发送所述待发送的数据;
如超过预设值,则发送子单元111将所述待发送的数据拆分为一组数据分片,将所述一组数据分片存入发送缓冲器1111,并通过多个数据包分批次进行发送。
在一优选实施例中,所述待发送的数据的大小超过预设值时,发送子单元111对所述待发送的数据进行压缩,再将压缩后的数据拆分为一组数据分片并存入发送缓冲器1111,通过多个数据包分批次进行发送。
在一优选实施例中,所述将压缩后的数据拆分为一组数据分片包括:发送子单元111根据数据分片的大小计算出所述一组数据分片中各数据分片在所述压缩后的数据中的偏移位置;
所述存入发送缓冲器1111包括:发送子单元111将所述压缩后的数据和所述各数据分片的偏移位置存入发送缓冲器1111。
在一优选实施例中,所述数据分片的大小为固定值或设定范围内的随机值。
在一优选实施例中,所述利用发送定时器1112定时检测是否收到对应所述数据包的确认字符ack包括:
发送定时器1111定时检测所述接收子单元是否收到对应本批次所发送数据包的确认字符ack:
如未收到,则发送定时器1111计算出定时重发未收到的确认字符ack所对应的数据包的间隔时间;
如收到,则发送定时器1111计算出本批次的发包确认间隔时间RTT并存入发送缓冲器,所述发送子单元根据所述本批次的发包确认间隔时间RTT和发包间隔时间计算出下一批次发送数据包的数量。
在一优选实施例中,接收子单元112还用于在接收对应所述一组数据分片中所有数据分片的各确认字符ack或对应所述一组数据分片的总确认字符totalack后,修改发送缓冲器1111中的确认标记;
发送定时器1112还用于:在检测到所述确认标记已修改后,或,检测到接收子单元112在预设的最大发送超时时间内未收到对应所述一组数据分片的所有确认字符ack和所述总确认字符totalack后,停止定时检测,发送子单元111删除发送缓冲器1111中缓存的所述一组数据分片;
发送子单元111还用于告知所对应的上层应用模块数据发送成功或数据发送失败。
在一优选实施例中,发送子单元111通过注册在传输层的发送接口发送所述数据包;
接收子单元112通过注册在传输层的接收接口接收所述确认字符。
具体地,所述发送接口为发送回调函数send_callback,所述接收接口为接收回调函数receive_callback。
在一优选实施例中,对于同一数据包,所述定时重发的间隔时间逐次延长。具体地,在本实施例中,所述间隔时间首次为1秒,逐次翻倍。
当所述间隔时间累计超过预设的最大发送超时时间时,发送子单元111停止重发所述数据包。
在一优选实施例中,接收缓冲器1121还用于判断所述数据分片与之前缓存的数据分片能否组成完整数据。
在一优选实施例中,接收缓冲器1121还用于对缓存的数据分片所组成的完整数据进行解压。
在一优选实施例中,接收定时器1122还用于在所述定时检测的累计时间超过预设的最大接收超时时间时停止定时检测;接收子单元112还用于告知所对应的上层应用模块数据接收失败,删除接收缓冲器1121中缓存的同组数据分片。
上述实施例将重发机制、数据校验、数据压缩、RTT计算、应用层数据拆分与重组集中于一个模块中,提供了支持面向对象编程的安全高效的传输模块和面对对象的实现方法,采用双缓存设计,无需上层应用监测每一个数据包,实现了一个完全应用层网络缓存模型。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (33)
1.一种适用于分布式网络的UDP传输方法,所述分布式网络包括若干网络节点,所述网络节点包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,其特征在于,所述方法包括:
S13:第一发送子单元将待发送的第一数据存入第一发送缓冲器,并向第二接收子单元发送包含所述第一数据的数据包;
S15:第一发送定时器定时检测第一接收子单元是否收到对应所述数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发所述数据包;
S17:所述第一接收子单元接收所述确认字符,或在预设的最大发送超时时间内未收到所述确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据。
2.根据权利要求1所述的UDP传输方法,其特征在于,所述步骤S13之前还包括:
S11:所述第一发送子单元判断待发送的第一数据的大小未超过预设值。
3.根据权利要求1所述的UDP传输方法,其特征在于,所述第一发送子单元通过注册在传输层的发送接口发送所述数据包;
所述第一接收子单元通过注册在传输层的接收接口接收所述确认字符。
4.根据权利要求1所述的UDP传输方法,其特征在于,所述定时重发的间隔时间逐次延长;
当所述间隔时间累计超过所述最大发送超时时间时,所述第一发送子单元停止重发所述数据包。
5.根据权利要求4所述的UDP传输方法,其特征在于,所述间隔时间首次为1秒,逐次翻倍;
所述最大发送超时时间为15秒。
6.根据权利要求1所述的UDP传输方法,其特征在于,所述步骤S17包括:
S1711:所述第一接收子单元接收所述确认字符后,修改所述第一发送缓冲器中的确认标记;
S1713:所述第一发送定时器检测到所述确认标记已被修改,停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据;
S1715:所述第一发送子单元告知所对应的上层应用模块数据发送成功;或
所述步骤S17包括:
S1721:所述第一接收子单元在预设的最大发送超时时间内未收到所述确认字符,所述第一发送定时器停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一数据;
S1723:所述第一发送子单元告知所对应的上层应用模块数据发送失败。
7.一种适用于分布式网络的UDP传输方法,所述分布式网络中包括若干网络节点,所述网络节点包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,其特征在于,所述方法包括:
S23:第一发送子单元将待发送的第一数据拆分为第一组数据分片,将所述第一组数据分片存入第一发送缓冲器;
S25:所述第一发送子单元分批次向第二接收子单元发送分别包含所述第一组数据分片中各数据分片的数据包,第一发送定时器分别定时检测第一接收子单元是否收到对应各批次发送数据包的确认字符,如未收到,则所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符所对应的数据包;
S27:所述第一发送定时器检测到已接收对应所述第一组数据分片中所有数据分片的各确认字符,已接收对应所述第一组数据分片的总确认字符,或,在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符和所述总确认字符,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片。
8.根据权利要求7所述的UDP传输方法,其特征在于,所述步骤S23之前还包括:
S21:第一发送子单元判断待发送的第一数据的大小已超过预设值。
9.根据权利要求7或8所述的UDP传输方法,其特征在于,所述步骤S23之前还包括:
S22:所述第一发送子单元对所述第一数据进行压缩。
10.根据权利要求9所述的UDP传输方法,其特征在于,所述步骤S23包括:
S231:所述第一发送子单元根据数据分片的大小计算出所述第一组数据分片中各数据分片在所述压缩后的第一数据中的偏移位置;
S233:所述第一发送子单元将所述压缩后的第一数据和所述各数据分片的偏移位置存入第一发送缓冲器。
11.根据权利要求10所述的UDP传输方法,其特征在于,所述数据分片的大小为固定值或设定范围内的随机值。
12.根据权利要求11所述的UDP传输方法,其特征在于,所述步骤S25包括:
S251:所述第一发送子单元向第二接收子单元发送包含所述第一组数据分片中第一数据分片的第一数据包;
S253:第一发送定时器定时检测第一接收子单元是否收到对应本批次所发送数据包的确认字符:
如未收到,则所述第一发送定时器判断发送时间是否已超过预设的最大发送超时时间:
如已超时,则所述第一发送定时器停止定时检测,跳转步骤S27;
如未超时,则所述第一发送定时器计算出定时重发未收到的确认字符所对应的数据包的间隔时间;
如收到,则所述第一发送定时器判断是否已接收对应所述第一组数据分片中所有数据分片的各确认字符或对应所述第一组数据分片的总确认字符:
如已收到,则所述第一发送定时器停止定时检测,跳转步骤S27;
如未收到,则所述第一发送定时器计算出本批次的发包确认间隔时间并存入所述第一发送缓冲器,所述第一发送子单元根据所述本批次的发包确认间隔时间和发包间隔时间计算出下一批次发送数据包的数量;
S255:所述第一发送子单元向所述第二接收子单元定时重发未收到的确认字符所对应的数据包或定时发送下一批次分别包含各数据分片的数据包,跳转步骤S253循环。
13.根据权利要求11所述的UDP传输方法,其特征在于,对于同一数据包,所述定时重发的间隔时间逐次延长;
当所述间隔时间累计超过所述最大发送超时时间时,所述第一发送子单元停止重发所述数据包。
14.根据权利要求13所述的UDP传输方法,其特征在于,对于同一数据包,所述间隔时间首次为1秒,逐次翻倍。
15.根据权利要求7所述的UDP传输方法,其特征在于,步骤S27包括:
S2711:所述第一接收子单元接收对应所述第一组数据分片中所有数据分片的各确认字符或对应所述第一组数据分片的总确认字符后,修改所述第一发送缓冲器中的确认标记;
S2713:所述第一发送定时器检测到所述确认标记已修改后,停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片;
S2715:所述第一发送子单元告知所对应的上层应用模块数据发送成功;或
所述步骤S27包括:
S2721:所述第一接收子单元在预设的最大发送超时时间内未收到对应所述第一组数据分片的所有确认字符和所述总确认字符,所述第一发送定时器停止定时检测,所述第一发送子单元删除所述第一发送缓冲器中缓存的所述第一组数据分片;
S2723:所述第一发送子单元告知所对应的上层应用模块数据发送失败。
16.一种适用于分布式网络的UDP传输方法,所述分布式网络中包括若干网络节点,所述网络节点包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,其特征在于,所述方法包括:
S31:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为未拆分的完整数据;
S33:所述第二接收子单元将所述数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述数据包的确认字符。
17.一种适用于分布式网络的UDP传输方法,所述分布式网络包括若干网络节点,所述网络节点包括传输模块和上层应用模块,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元,所述发送子单元内设有发送缓冲器和发送定时器,所述接收子单元内设有接收缓冲器和接收定时器,其特征在于,所述方法包括:
S41:第二接收子单元接收的第一发送子单元发送的数据包,判断所述数据包中的数据为已拆分的数据分片;
S43:所述第二接收子单元将所述数据分片存入第二接收缓冲器,所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据;
S45:第二接收定时器循环定时检测所述第二接收缓冲器是否已接收所述数据分片同组的所有数据分片:
如已接收所有数据分片,则所述第二接收子单元将完整数据返回给对应的上层应用模块,并向第一接收子单元发送对应所述完整数据的总确认字符,所述第二接收定时器停止定时检测;
如未接收所有数据分片,则向第一接收子单元发送对应所述数据分片的确认字符,跳转至步骤S41。
18.根据权利要求17所述的UDP传输方法,其特征在于,步骤S43包括:
S431:所述第二接收子单元将所述数据分片存入第二接收缓冲器;
S433:所述第二接收缓冲器判断所述数据分片是否同组数据分片中第一个接收的,如是第一个接收的,则第二接收定时器启动所述对第二接收缓冲器的循环定时检测;
S435:所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片能否组成完整数据。
19.根据权利要求18所述的UDP传输方法,其特征在于,步骤S435之后还包括:
S437:所述第二接收缓冲器判断所述数据分片与之前缓存的数据分片已组成完整数据后,对所组成的完整数据进行解压。
20.根据权利要求17-19任意一项所述的UDP传输方法,其特征在于,当所述循环定时检测的累计时间超过预设的最大接收超时时间时,所述第二接收定时器停止定时检测,所述第二接收子单元告知所对应的上层应用模块数据接收失败,删除所述第二接收缓冲器中缓存的同组数据分片。
21.一种适用于分布式网络的UDP传输系统,包括若干网络节点,所述网络节点包括传输模块和上层应用模块,其特征在于,所述传输模块包括至少一个链接单元,所述链接单元包括一对发送子单元和接收子单元;
所述发送子单元内设有发送缓冲器和发送定时器,用于对所述分布式系统中其它网络节点的接收子单元发送包含待发送的数据或数据分片的数据包,将所述待发送的数据或数据分片存入所述发送缓冲器,利用所述发送定时器定时检测是否收到对应所述数据包的确认字符,如未收到则定时重发所述数据包;
所述接收子单元内设有接收缓冲器和接收定时器,用于接收所述分布式系统中其它网络节点的发送子单元发送的数据包,判断所述数据包中的数据是否已拆分为数据分片,回发与所述数据包对应的确认字符,将所述数据分片存入所述接收缓冲器,利用所述接收定时器定时检测同组数据分片是否已完整接收,将数据包中的数据或数据分片重组的数据返回给对应的上层应用模块。
22.根据权利要求21所述的UDP传输系统,其特征在于,所述发送子单元还用于判断所述待发送的数据的大小是否超过预设值:
如未超过预设值,则所述发送子单元通过单个数据包发送所述待发送的数据;
如超过预设值,则所述发送子单元将所述待发送的数据拆分为一组数据分片,将所述一组数据分片存入所述发送缓冲器,并通过多个数据包分批次进行发送。
23.根据权利要求22所述的UDP传输系统,其特征在于,所述待发送的数据的大小超过预设值时,所述发送子单元对所述待发送的数据进行压缩,再将压缩后的数据拆分为一组数据分片并存入所述发送缓冲器,通过多个数据包分批次进行发送。
24.根据权利要求23所述的UDP传输系统,其特征在于,所述将压缩后的数据拆分为一组数据分片包括:所述发送子单元根据数据分片的大小计算出所述一组数据分片中各数据分片在所述压缩后的数据中的偏移位置;
所述存入所述发送缓冲器包括:所述发送子单元将所述压缩后的数据和所述各数据分片的偏移位置存入所述发送缓冲器。
25.根据权利要求24所述的UDP传输系统,其特征在于,所述数据分片的大小为固定值或设定范围内的随机值。
26.根据权利要求24所述的UDP传输系统,其特征在于,所述利用所述发送定时器定时检测是否收到对应所述数据包的确认字符包括:
所述发送定时器定时检测所述接收子单元是否收到对应本批次所发送数据包的确认字符:
如未收到,则所述发送定时器计算出定时重发未收到的确认字符所对应的数据包的间隔时间;
如收到,则所述发送定时器计算出本批次的发包确认间隔时间并存入所述发送缓冲器,所述发送子单元根据所述本批次的发包确认间隔时间和发包间隔时间计算出下一批次发送数据包的数量。
27.根据权利要求26所述的UDP传输系统,其特征在于,所述接收子单元还用于在接收对应所述一组数据分片中所有数据分片的各确认字符或对应所述一组数据分片的总确认字符后,修改所述发送缓冲器中的确认标记;
所述发送定时器还用于:在检测到所述确认标记已修改后,或,检测到所述接收子单元在预设的最大发送超时时间内未收到对应所述一组数据分片的所有确认字符和所述总确认字符后,停止定时检测,所述发送子单元删除所述发送缓冲器中缓存的所述一组数据分片;
所述发送子单元还用于告知所对应的上层应用模块数据发送成功或数据发送失败。
28.根据权利要求21-27任意一项所述的UDP传输系统,其特征在于,所述发送子单元通过注册在传输层的发送接口发送所述数据包;
所述接收子单元通过注册在传输层的接收接口接收所述确认字符。
29.根据权利要求21-27任意一项所述的UDP传输系统,其特征在于,对于同一数据包,所述定时重发的间隔时间逐次延长;
当所述间隔时间累计超过预设的最大发送超时时间时,所述发送子单元停止重发所述数据包。
30.根据权利要求29所述的UDP传输系统,其特征在于,对于同一数据包,所述间隔时间首次为1秒,逐次翻倍。
31.根据权利要求21所述的UDP传输系统,其特征在于,所述接收缓冲器还用于判断所述数据分片与之前缓存的数据分片能否组成完整数据。
32.根据权利要求31所述的UDP传输系统,其特征在于,所述接收缓冲器还用于对缓存的数据分片所组成的完整数据进行解压。
33.根据权利要求21所述的UDP传输系统,其特征在于,所述接收定时器还用于在所述定时检测的累计时间超过预设的最大接收超时时间时停止定时检测;所述接收子单元还用于告知所对应的上层应用模块数据接收失败,删除所述接收缓冲器中缓存的同组数据分片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510461377.1A CN105100100A (zh) | 2015-07-30 | 2015-07-30 | 适用于分布式网络的udp传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510461377.1A CN105100100A (zh) | 2015-07-30 | 2015-07-30 | 适用于分布式网络的udp传输方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105100100A true CN105100100A (zh) | 2015-11-25 |
Family
ID=54579645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510461377.1A Pending CN105100100A (zh) | 2015-07-30 | 2015-07-30 | 适用于分布式网络的udp传输方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105100100A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812385A (zh) * | 2016-05-06 | 2016-07-27 | 上海庆科信息技术有限公司 | 基于Wi-Fi设备的数据通信方法、设备及系统 |
WO2017162071A1 (zh) * | 2016-03-21 | 2017-09-28 | 中兴通讯股份有限公司 | 网络节点及实现网络节点间通信的方法、装置及存储介质 |
CN109511203A (zh) * | 2018-11-13 | 2019-03-22 | 广州鹏林照明灯具有限公司 | 一种舞台灯具双缓存校准dmx512数据的系统和方法 |
CN111367853A (zh) * | 2020-05-29 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN113268316A (zh) * | 2021-04-19 | 2021-08-17 | 广东荟萃网络科技有限公司 | 基于地址转换的多活动进程数据交换系统及其工作方法 |
CN115499108A (zh) * | 2022-09-27 | 2022-12-20 | 西安羚控电子科技有限公司 | 一种基于udp协议的闭环网络通信方法及系统 |
-
2015
- 2015-07-30 CN CN201510461377.1A patent/CN105100100A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017162071A1 (zh) * | 2016-03-21 | 2017-09-28 | 中兴通讯股份有限公司 | 网络节点及实现网络节点间通信的方法、装置及存储介质 |
CN105812385A (zh) * | 2016-05-06 | 2016-07-27 | 上海庆科信息技术有限公司 | 基于Wi-Fi设备的数据通信方法、设备及系统 |
CN109511203A (zh) * | 2018-11-13 | 2019-03-22 | 广州鹏林照明灯具有限公司 | 一种舞台灯具双缓存校准dmx512数据的系统和方法 |
CN111367853A (zh) * | 2020-05-29 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及计算机可读存储介质 |
CN113268316A (zh) * | 2021-04-19 | 2021-08-17 | 广东荟萃网络科技有限公司 | 基于地址转换的多活动进程数据交换系统及其工作方法 |
CN115499108A (zh) * | 2022-09-27 | 2022-12-20 | 西安羚控电子科技有限公司 | 一种基于udp协议的闭环网络通信方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100100A (zh) | 适用于分布式网络的udp传输方法和系统 | |
CN106330414B (zh) | 一种报文传输方法及装置 | |
CN102006283B (zh) | 数据传输的方法和装置 | |
CN102292940B (zh) | 一种采用arq机制的头压缩通信方法和装置 | |
CN102368700B (zh) | 一种分布式系统中消息的传递方法 | |
CN102217258B (zh) | 探测处理方法、数据发送端、数据接收端以及通信系统 | |
US10284340B2 (en) | Multicast sending apparatus, multicast receiving apparatus, and multicast transmission determining method | |
CN103078707B (zh) | 一种深空通信中的文件传输方法 | |
WO2008140222A1 (en) | Method and apparatus for layer 2 arq for packets | |
CN103248467A (zh) | 基于片内连接管理的rdma通信方法 | |
CN111601285B (zh) | 通信方法、装置、系统和计算机可读存储介质 | |
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
CN104093170A (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
CN108141320A (zh) | 随机线性网络编码数据传输 | |
CN105791154A (zh) | 一种基于udp的数据传输方法及装置 | |
CN111835471A (zh) | 基于北斗三代卫星短报文传输文件的方法及通信终端 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
CN105933319A (zh) | 视频数据包的发送、接收方法及装置 | |
CN105262746A (zh) | 一种基于udp协议保证数据可靠传输的方法 | |
CN106788894A (zh) | 分段独立传输校验方法 | |
CN103188716A (zh) | Rudp链路故障定位方法及装置 | |
CN111711680A (zh) | 基于udp协议的文件断点续传方法及装置 | |
CN103607264A (zh) | 基于3g网络的带内数据传输方法 | |
CN103825689B (zh) | 具有本地缓存的延迟确定性报文重传方法 | |
CN105871512B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Nan Ye Inventor after: Chen Shu Inventor before: Wu Zili |
|
COR | Change of bibliographic data | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151125 |