CN107360177A - 一种基于udp的报文传输方法及装置 - Google Patents
一种基于udp的报文传输方法及装置 Download PDFInfo
- Publication number
- CN107360177A CN107360177A CN201710639307.XA CN201710639307A CN107360177A CN 107360177 A CN107360177 A CN 107360177A CN 201710639307 A CN201710639307 A CN 201710639307A CN 107360177 A CN107360177 A CN 107360177A
- Authority
- CN
- China
- Prior art keywords
- message
- data message
- sequence number
- array
- target device
- 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
Classifications
-
- 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/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/1809—Selective-repeat protocols
-
- 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/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—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)
- Communication Control (AREA)
Abstract
本申请提供一种基于UDP的报文传输方法及装置,所述方法包括:将UDP封装后的数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号;在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除;基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。本申请有效地提高了基于UDP传输报文的可靠性。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种基于UDP的报文传输方法及装置。
背景技术
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)模型是互联网通信的基础,分为四层,分别是链路层、网络层、传输层和应用层。其中,传输层有TCP和UDP(User Datagram Protocol,用户数据报协议)两大协议,用以实现端到端的传输。TCP是面向连接的协议,一次TCP连接需三次握手(three-wayhandshake)才能建立;此外,TCP传输的确认机制使得TCP传输具有可靠性。UDP是面向非连接的协议,无法提供可靠传输。
相比而言,UDP报文的头部结构比TCP报文的头部结构简单,因此,UDP传输的开销小于TCP传输的开销。由于UDP传输简单灵活的优点,被广泛应用。
然而,在网络拥塞等环境下,通过UDP协议传输重要信息,可能因UDP传输不具有可靠性,导致出现丢包,造成重大的问题。
发明内容
有鉴于此,本申请提供一种基于UDP的报文传输方法及装置,用以实现基于UDP的可靠传输。
具体地,本申请是通过如下技术方案实现的:
一种基于UDP的报文传输方法,应用于电子设备,包括:
将UDP封装后的数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号;
在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除;
基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
在所述基于UDP的报文传输方法中,所述电子设备预配置用于存放UDP报文的序列号的数组,其中,所述数组中包含预设数量的数组项,各数组项可存放唯一的序列号;
所述在本地存储所述数据报文的序列号,包括:
将所述数据报文的序列号存储至所述数组项中。
在所述基于UDP的报文传输方法中,所述数组项分别携带表征其在数组中次序的下标,所述数组包括终点游标;其中,所述终点游标指向存放最大序列号的数组项;所述方法还包括:
获得所述数据报文;
将所述数据报文的特定信息存放至当前所述终点游标指向的数组项后一项的数组项中,并将所述终点游标移至该数组项;其中,所述特定信息包括数据报文的报文内容或与所述数据报文对应的指针,该指针指向存储所述报文内容的内存;
基于该数组项的下标和所述终点游标在所述数组中的循环次数计算得到所述数据报文的序列号;
将所述序列号写入所述数据报文的所述序列号字段。
在所述基于UDP的报文传输方法中,所述方法还包括:
接收到所述目标设备发送的所述数据报文;
获取所述数据报文携带的序列号;
组装携带所述序列号的确认报文,并向所述目标设备发送所述确认报文。
在所述基于UDP的报文传输方法中,所述数组项包括时间标识,该时间标识记录与所述数组项存放的序列号对应的数据报文的发送时间;
所述基于本地存储的序列号确定所述数据报文是否成功发送,包括:
根据数组项的下标递增的方向,周期性遍历各数组项的时间标识;
确定是否存在与任一数组项存放的序列号对应的数据报文发包超时;
如果存在发包超时,确定所述数据报文未成功发送。
在所述基于UDP的报文传输方法中,所述报文类型包括连接请求报文和连接确认报文,所述方法还包括:
向所述目标设备发送数据报文之前,发送所述连接请求报文至所述目标设备;
在预设的等待时间内,确定是否接收到所述目标设备返回的所述连接确认报文;
如果是,确定与所述目标设备建立连接关系;
如果否,继续向所述目标设备发送所述连接请求报文;
如果发送所述连接请求报文的次数达到预设的探测阈值,仍未接收到所述目标设备返回的所述连接确认报文,停止发送所述连接请求报文。
在所述基于UDP的报文传输方法中,所述报文类型包括连接保活报文,所述方法还包括:
基于预设的保活周期向所述目标设备发送所述连接保活报文;以及,
如果在预设的保活超时时间内未接收到所述目标设备发送的所述连接保活报文,确定与所述目标设备之间的连接关系断开。
一种基于UDP的报文传输装置,应用于电子设备,包括:
发送单元,用于将UDP封装后数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号;
存储单元,用于在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除;
确定单元,用于基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
在所述基于UDP的报文传输装置中,所述电子设备预配置用于存放UDP报文的序列号的数组,其中,所述数组中包含预设数量的数组项,各数组项可存放唯一的序列号;
所述存储单元,进一步用于:
将所述数据报文的序列号存储至所述数组项中。
在所述基于UDP的报文传输装置中,所述数组项分别携带表征其在数组中次序的下标,所述数组包括终点游标;其中,所述终点游标指向存放最大序列号的数组项;所述装置还包括:
获取单元,用于获得所述数据报文;
移动单元,用于将所述数据报文的特定信息存放至当前所述终点游标指向的数组项后一项的数组项中,并将所述终点游标移至该数组项;其中,所述特定信息包括数据报文的报文内容或与所述数据报文对应的指针,该指针指向存储所述报文内容的内存;
计算单元,用于基于该数组项的下标和所述终点游标在所述数组中的循环次数计算得到所述数据报文的序列号;
填写单元,用于将所述序列号写入所述数据报文的所述序列号字段。
在所述基于UDP的报文传输装置中,所述装置还包括:
接收单元,用于接收到所述目标设备发送的所述数据报文;
所述获取单元,进一步用于获取所述数据报文携带的序列号;
所述发送单元,进一步用于组装携带所述序列号的确认报文,并向所述目标设备发送所述确认报文。
在所述基于UDP的报文传输装置中,所述数组项包括时间标识,该时间标识记录与所述数组项存放的序列号对应的数据报文的发送时间;
所述确定单元,进一步用于:
根据数组项的下标递增的方向,周期性遍历各数组项的时间标识;
确定是否存在与任一数组项存放的序列号对应的数据报文发包超时;
如果存在发包超时,确定所述数据报文未成功发送。
在所述基于UDP的报文传输装置中,所述报文类型包括连接请求报文和连接确认报文,所述装置还包括:
所述发送单元,进一步用于向所述目标设备发送数据报文之前,发送所述连接请求报文至所述目标设备;
所述确定单元,进一步用于在预设的等待时间内,确定是否接收到所述目标设备返回的所述连接确认报文;
如果是,确定与所述目标设备建立连接关系;
如果否,继续向所述目标设备发送所述连接请求报文;
如果发送所述连接请求报文的次数达到预设的探测阈值,仍未接收到所述目标设备返回的所述连接确认报文,停止发送所述连接请求报文。
在所述基于UDP的报文传输装置中,所述报文类型包括连接保活报文,所述装置还包括:
所述发送单元,进一步用于基于预设的保活周期向所述目标设备发送所述连接保活报文;
所述确定单元,进一步用于如果在预设的保活超时时间内未接收到所述目标设备发送的所述连接保活报文,确定与所述目标设备之间的连接关系断开。
在本申请实施例中,电子设备将UDP封装后数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,上述报文类型字段指示的报文类型包括数据报文和确认报文,上述序列号字段携带唯一的序列号;上述电子设备可以在本地存储上述数据报文的序列号;其中,本地存储的上述序列号在上述电子设备接收到与上述数据报文对应的确认报文后需删除;上述电子设备可以基于本地存储的序列号确定上述数据报文是否成功发送,并在未成功发送时重新发送上述数据报文;
由于本申请为UDP报文的传输增加了确认机制,如果电子设备发送的任一数据报文未被目标设备接收,电子设备可以基于未删除的序列号确认该数据报文,并进行重传,有效地提高了传输UDP报文的可靠性。
附图说明
图1是本申请示出的一种UDP报文的格式示意图;
图2是本申请示出的一种基于UDP的报文传输方法的流程图;
图3是本申请示出的一种基于UDP的报文传输装置的实施例框图;
图4是本申请示出的一种基于UDP的报文传输装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
为实现基于UDP的可靠传输,本申请技术方案为UDP传输引入建立连接机制、保活机制和报文确认机制。参见图1,为本申请示出的一种UDP报文的格式示意图,如图1所示,本申请中经扩展的UDP报文头相比一般的UDP报文头而言,新增协议版本号字段、消息类型字段、板卡类型字段和序列号字段。
其中,消息类型字段填写报文的消息类型,在本申请中,UDP报文的消息类型包括数据报文、确认报文、连接请求报文、连接确认报文和连接保活报文;序列号字段携带标识数据报文的唯一的序列号。
参见图2,为本申请示出的一种基于UDP的报文传输方法的流程图,该方法应用于电子设备,包括以下步骤:
步骤201:将UDP封装后的数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号。
步骤202:在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除。
步骤203:基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
其中,上述电子设备,包括可以基于UDP协议传输报文的网络设备,比如:路由器、计算机等。
在本申请实施例中,上述电子设备和上述目标设备在基于UDP协议传输报文前,可以基于连接建立机制建立连接。
具体地,上述电子设备在向目标设备发送数据报文前,可以发送连接请求报文至上述目标设备。上述目标设备接收到连接请求报文,可以回复连接确认报文,以建立与上述电子设备之间的连接关系。
上述电子设备可以在预设的等待时间内,确定是否接收到上述目标设备返回的连接确认报文。
一方面,如果上述电子设备在预设的等待时间内接收到上述连接确认报文,则可以确定与上述目标设备建立了连接关系;
另一方面,如果上述电子设备在预设的等待时间内未接收到上述连接确认报文,则可以继续向上述目标设备发送连接请求报文。如果发送上述连接请求报文的次数达到预设的探测阈值(比如:10次),仍未接收到上述目标设备返回的连接确认报文,则停止发送连接请求报文。该措施避免了在上述目标设备处于异常情况(比如:目标设备断网)时,上述电子设备持续发送连接请求报文造成资源浪费。
在本申请实施例中,上述电子设备与上述目标设备建立连接关系后,可以向上述目标设备发送UDP封装后的数据报文;其中,上述数据报文的序列号字段携带唯一的序列号。
在示出的一种实施方式中,上述电子设备预配置用于存放UDP报文的序列号的数组,其中,该数组中包含预设数量的数组项,各数组项可存放唯一的序列号;其中,上述数组项分别携带表征其在数组中次序的下标;上述数组还包括终点游标,该终点游标指向存放最大序列号的数组项。
上述电子设备获得待发送的数据报文后,可以将该数据报文的特定信息存放至当前终点游标指向的数组项后一项的数组项中,并将上述终点游标移至该数组项。其中,上述特定信息包括数据报文的报文内容或与该数据报文对应的指针,该指针指向存储报文内容的内存。后续如果需要重发该数据报文,上述电子设备可以基于该数组项获得该数据报文的报文内容。
上述电子设备可以基于该数组项的下标和上述终点游标在上述数组中的循环次数计数得到上述数据报文的序列号。
例如:上述数组中包含1000个数组项,各数组项的下标分别为1至1000,终点游标依照下标递增的方向移动,当发送1000个数据报文后,终点游标指向数组中最后一个数组项。此时,如果又获得待发送的数据报文,终点游标需重新移至第一个数组项(前提是第一个数组项为空),完成一次循环。上述电子设备可以预设一个变量n记录终点游标的循环次数,当获得待发送的数据报文,并将该报文的特定信息存放至下标为m的数组项时,可以计算该数据报文的序列号为1000*n+m。
上述电子设备可以将计算得到的序列号写入上述数据报文的序列号字段,然后向上述目标设备发送该数据报文。
此外,上述电子设备还可以预设等待队列。当上述数组中任一数组项不为空时,上述电子设备获得新的待发送的数据报文后,可以将待发送的数据报文存放在上述等待队列中;等到数组项出现空闲时,再从上述等待队列中取出数据报文进行处理。
在本申请实施例中,上述目标设备接收到上述数据报文后,可以获取该数据报文携带的序列号,然后组装携带该序列号的确认报文,并向上述电子设备发送该确认报文。上述电子设备在接收到该确认报文后,可以根据该确认报文携带的该序列号,确定上述电子设备接收到上述数据报文。
在本申请实施例中,上述电子设备可以在本地存储上述数据报文的序列号;其中,本地存储的上述序列号在上述电子设备接收到与上述数据报文对应的确认报文后需删除。
在示出的一种实施方式中,上述电子设备预配置的上述数组还包括起始游标,该起始游标指向存放最小序列号的数组项。上述电子设备接收到确认报文后,可以基于该确认报文携带的序列号查找上述数组,并删除查找到的数组项中的该序列号以及该序列号对应的数据报文的特定信息。
进一步地,上述电子设备可以确定此时上述起始游标指向的数组项是否为空。
一方面,上述电子设备接收到的确认报文携带的序列号不是当前存储的最小序列号,则上述起始游标指向的数组项不为空。在这种情况下,上述电子设备可以继续等待携带最小序列号的确认报文。
另一方面,上述电子设备接收到的确认报文携带的序列号就是当前存储的最小序列号,则上述起始游标指向的数组项为空。在这种情况下,上述电子设备可以基于数组项的下标递增的方向移动上述起始游标,直到上述起始游标指向的数组项不为空。
在本申请实施例中,上述电子设备可以基于本地存储的序列号确定上述数据报文是否成功发送,并在未成功发送时重新发送上述数据报文。
在示出的一种实施方式中,上述电子设备预配置的上述数组的各数组项包括时间标识,该时间标识记录与该数组项存放的序列号对应的数据报文的发送时间。
上述电子设备可以根据数组项的下标递增的方向,周期性遍历各数组项的时间标识,然后根据各时间标识中记录的时间与当前时间的差值,确定是否超过设定的超时时间,进而确定是否存在与任一数组项存放的序列号对应的数据报文发包超时。其中,上述电子设备可以基于定时器预设周期时间,并在定时器达到周期时间时执行周期性遍历的工作。
如果存在发包超时,上述电子设备可以确定发包超时的数据报文未成功发送,此时,可以重新发送上述数据报文。
通过上述报文确认机制,上述电子设备可以对发送成功的报文进行确认,并在报文发送失败后,进行重新发送,有效地提高了报文传输的可靠性。
在本申请实施例中,上述电子设备还可以通过保活机制维护与上述目标设备之间的连接关系。
具体地,上述电子设备可以基于预设的保活周期(比如:3分钟)向上述目标设备发送连接保活报文。上述目标设备接收到上述连接保活报文,可以确定与上述电子设备之间的连接关系未断开。上述目标设备也可以向上述电子设备发送连接保活报文。
如果在预设的保活超时时间(比如:15分钟)内,上述电子设备未接收到上述目标设备发送的连接保活报文,则可以确定与上述目标设备之间的连接关系断开。在这种情况下,上述电子设备可以停止向上述目标设备发送数据报文,重新与上述目标设备建立连接关系。
通过该保活机制,上述电子设备可以在上述目标设备出现异常时,及时停止发送数据报文,减少了无效传输。
除本申请示出的实施方式以外,还可以有其它实施方式,比如,以链表替换数组。具体不再赘述。
综上所述,在本申请实施例中,上述电子设备将携带唯一的序列号的数据报文发送至目标设备,然后在本地存储上述数据报文的序列号;其中,本地存储的上述序列号在上述电子设备接收到与上述数据报文对应的确认报文后需删除;上述电子设备可以基于本地存储的序列号确定上述数据报文是否成功发送,并在未成功发送时重新发送上述数据报文;
由于上述电子设备可以基于本地存储的序列号确定数据报文是否成功发送,并在发送失败时,重新发送上述数据报文,有效地提高了报文传输的可靠性;
此外,上述电子设备可以通过建立连接机制和保活机制,在传输数据报文前,与目标设备建立连接关系,从而确定上述目标设备处于正常工作状态;并在上述目标设备发生异常时,可以通过连接关系断开感知到,减少了无效的传输。
与前述基于UDP的报文传输方法的实施例相对应,本申请还提供了基于UDP的报文传输装置的实施例。
参见图3,为本申请示出的一种基于UDP的报文传输装置的实施例框图。
如图3所示,该基于UDP的报文传输装置30包括:
发送单元310,用于将UDP封装后数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号。
存储单元320,用于在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除。
确定单元330,用于基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
在本例中,所述电子设备预配置用于存放UDP报文的序列号的数组,其中,所述数组中包含预设数量的数组项,各数组项可存放唯一的序列号;
所述存储单元320,进一步用于:
将所述数据报文的序列号存储至所述数组项中。
在本例中,所述数组项分别携带表征其在数组中次序的下标,所述数组包括终点游标;其中,所述终点游标指向存放最大序列号的数组项;所述装置还包括:
获取单元340,用于获得所述数据报文。
移动单元350,用于将所述数据报文的特定信息存放至当前所述终点游标指向的数组项后一项的数组项中,并将所述终点游标移至该数组项;其中,所述特定信息包括数据报文的报文内容或与所述数据报文对应的指针,该指针指向存储所述报文内容的内存。
计算单元360,用于基于该数组项的下标和所述终点游标在所述数组中的循环次数计算得到所述数据报文的序列号。
填写单元370,用于将所述序列号写入所述数据报文的所述序列号字段。
在本例中,所述装置还包括:
接收单元380,用于接收到所述目标设备发送的所述数据报文。
所述获取单元340,进一步用于获取所述数据报文携带的序列号。
所述发送单元310,进一步用于组装携带所述序列号的确认报文,并向所述目标设备发送所述确认报文。
在本例中,所述数组项包括时间标识,该时间标识记录与所述数组项存放的序列号对应的数据报文的发送时间;
所述确定单元330,进一步用于:
根据数组项的下标递增的方向,周期性遍历各数组项的时间标识;
确定是否存在与任一数组项存放的序列号对应的数据报文发包超时;
如果存在发包超时,确定所述数据报文未成功发送。
在本例中,所述报文类型包括连接请求报文和连接确认报文,所述装置还包括:
所述发送单元310,进一步用于向所述目标设备发送数据报文之前,发送所述连接请求报文至所述目标设备;
所述确定单元330,进一步用于在预设的等待时间内,确定是否接收到所述目标设备返回的所述连接确认报文;
如果是,确定与所述目标设备建立连接关系;
如果否,继续向所述目标设备发送所述连接请求报文;
如果发送所述连接请求报文的次数达到预设的探测阈值,仍未接收到所述目标设备返回的所述连接确认报文,停止发送所述连接请求报文。
在本例中,所述报文类型包括连接保活报文,所述装置还包括:
所述发送单元310,进一步用于基于预设的保活周期向所述目标设备发送所述连接保活报文。
所述确定单元330,进一步用于如果在预设的保活超时时间内未接收到所述目标设备发送的所述连接保活报文,确定与所述目标设备之间的连接关系断开。
本申请基于UDP的报文传输装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请基于UDP的报文传输装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于UDP的报文传输装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种基于UDP的报文传输方法,应用于电子设备,其特征在于,包括:
将UDP封装后的数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号;
在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除;
基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
2.根据权利要求1所述的方法,其特征在于,所述电子设备预配置用于存放UDP报文的序列号的数组,其中,所述数组中包含预设数量的数组项,各数组项可存放唯一的序列号;
所述在本地存储所述数据报文的序列号,包括:
将所述数据报文的序列号存储至所述数组项中。
3.根据权利要求2所述的方法,其特征在于,所述数组项分别携带表征其在数组中次序的下标,所述数组包括终点游标;其中,所述终点游标指向存放最大序列号的数组项;所述方法还包括:
获得所述数据报文;
将所述数据报文的特定信息存放至当前所述终点游标指向的数组项后一项的数组项中,并将所述终点游标移至该数组项;其中,所述特定信息包括数据报文的报文内容或与所述数据报文对应的指针,该指针指向存储所述报文内容的内存;
基于该数组项的下标和所述终点游标在所述数组中的循环次数计算得到所述数据报文的序列号;
将所述序列号写入所述数据报文的所述序列号字段。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收到所述目标设备发送的所述数据报文;
获取所述数据报文携带的序列号;
组装携带所述序列号的确认报文,并向所述目标设备发送所述确认报文。
5.根据权利要求3所述的方法,其特征在于,所述数组项包括时间标识,该时间标识记录与所述数组项存放的序列号对应的数据报文的发送时间;
所述基于本地存储的序列号确定所述数据报文是否成功发送,包括:
根据数组项的下标递增的方向,周期性遍历各数组项的时间标识;
确定是否存在与任一数组项存放的序列号对应的数据报文发包超时;
如果存在发包超时,确定所述数据报文未成功发送。
6.根据权利要求1所述的方法,其特征在于,所述报文类型包括连接请求报文和连接确认报文,所述方法还包括:
向所述目标设备发送数据报文之前,发送所述连接请求报文至所述目标设备;
在预设的等待时间内,确定是否接收到所述目标设备返回的所述连接确认报文;
如果是,确定与所述目标设备建立连接关系;
如果否,继续向所述目标设备发送所述连接请求报文;
如果发送所述连接请求报文的次数达到预设的探测阈值,仍未接收到所述目标设备返回的所述连接确认报文,停止发送所述连接请求报文。
7.根据权利要求6所述的方法,其特征在于,所述报文类型包括连接保活报文,所述方法还包括:
基于预设的保活周期向所述目标设备发送所述连接保活报文;以及,
如果在预设的保活超时时间内未接收到所述目标设备发送的所述连接保活报文,确定与所述目标设备之间的连接关系断开。
8.一种基于UDP的报文传输装置,应用于电子设备,其特征在于,包括:
发送单元,用于将UDP封装后数据报文发送至目标设备;其中,UDP报文头包括序列号字段和报文类型字段,所述报文类型字段指示的报文类型包括数据报文和确认报文,所述序列号字段携带唯一的序列号;
存储单元,用于在本地存储所述数据报文的序列号;其中,本地存储的所述序列号在所述电子设备接收到与所述数据报文对应的确认报文后删除;
确定单元,用于基于本地存储的序列号确定所述数据报文是否成功发送,并在未成功发送时重新发送所述数据报文。
9.根据权利要求8所述的装置,其特征在于,所述电子设备预配置用于存放UDP报文的序列号的数组,其中,所述数组中包含预设数量的数组项,各数组项可存放唯一的序列号;
所述存储单元,进一步用于:
将所述数据报文的序列号存储至所述数组项中。
10.根据权利要求9所述的装置,其特征在于,所述数组项分别携带表征其在数组中次序的下标,所述数组包括终点游标;其中,所述终点游标指向存放最大序列号的数组项;所述装置还包括:
获取单元,用于获得所述数据报文;
移动单元,用于将所述数据报文的特定信息存放至当前所述终点游标指向的数组项后一项的数组项中,并将所述终点游标移至该数组项;其中,所述特定信息包括数据报文的报文内容或与所述数据报文对应的指针,该指针指向存储所述报文内容的内存;
计算单元,用于基于该数组项的下标和所述终点游标在所述数组中的循环次数计算得到所述数据报文的序列号;
填写单元,用于将所述序列号写入所述数据报文的所述序列号字段。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收到所述目标设备发送的所述数据报文;
所述获取单元,进一步用于获取所述数据报文携带的序列号;
所述发送单元,进一步用于组装携带所述序列号的确认报文,并向所述目标设备发送所述确认报文。
12.根据权利要求9所述的装置,其特征在于,所述数组项包括时间标识,该时间标识记录与所述数组项存放的序列号对应的数据报文的发送时间;
所述确定单元,进一步用于:
根据数组项的下标递增的方向,周期性遍历各数组项的时间标识;
确定是否存在与任一数组项存放的序列号对应的数据报文发包超时;
如果存在发包超时,确定所述数据报文未成功发送。
13.根据权利要求8所述的装置,其特征在于,所述报文类型包括连接请求报文和连接确认报文,所述装置还包括:
所述发送单元,进一步用于向所述目标设备发送数据报文之前,发送所述连接请求报文至所述目标设备;
所述确定单元,进一步用于在预设的等待时间内,确定是否接收到所述目标设备返回的所述连接确认报文;
如果是,确定与所述目标设备建立连接关系;
如果否,继续向所述目标设备发送所述连接请求报文;
如果发送所述连接请求报文的次数达到预设的探测阈值,仍未接收到所述目标设备返回的所述连接确认报文,停止发送所述连接请求报文。
14.根据权利要求13所述的装置,其特征在于,所述报文类型包括连接保活报文,所述装置还包括:
所述发送单元,进一步用于基于预设的保活周期向所述目标设备发送所述连接保活报文;
所述确定单元,进一步用于如果在预设的保活超时时间内未接收到所述目标设备发送的所述连接保活报文,确定与所述目标设备之间的连接关系断开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710639307.XA CN107360177B (zh) | 2017-07-31 | 2017-07-31 | 一种基于udp的报文传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710639307.XA CN107360177B (zh) | 2017-07-31 | 2017-07-31 | 一种基于udp的报文传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360177A true CN107360177A (zh) | 2017-11-17 |
CN107360177B CN107360177B (zh) | 2019-09-17 |
Family
ID=60285604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710639307.XA Active CN107360177B (zh) | 2017-07-31 | 2017-07-31 | 一种基于udp的报文传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360177B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274748A (zh) * | 2018-09-30 | 2019-01-25 | 西安科技大学 | 数据可靠传输方法及应用其的电力设备监测数据传输方法 |
CN109701268A (zh) * | 2018-12-29 | 2019-05-03 | 北京金山安全软件有限公司 | 设备间的信息传输方法、装置、电子设备及存储介质 |
CN111935243A (zh) * | 2020-07-17 | 2020-11-13 | 杭州海康机器人技术有限公司 | 一种数据信息的传输方法、装置、系统及设备 |
CN111970278A (zh) * | 2020-08-18 | 2020-11-20 | 金华八达集团有限公司科技信息分公司 | 基于改进udp传输方式的智能分布式fa通信方法 |
CN113490154A (zh) * | 2021-07-01 | 2021-10-08 | 深圳市恒扬数据股份有限公司 | 广播数据传输方法、装置、终端设备及存储介质 |
CN114553969A (zh) * | 2020-11-20 | 2022-05-27 | 比亚迪股份有限公司 | 数据传输方法、电子设备及存储介质 |
CN117176809A (zh) * | 2023-09-01 | 2023-12-05 | 中科驭数(北京)科技有限公司 | 一种数据交互方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505306A (zh) * | 2009-03-23 | 2009-08-12 | 烽火通信科技股份有限公司 | 一种分布式系统中的节点间可靠通信方法 |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
CN103986647A (zh) * | 2014-05-21 | 2014-08-13 | 大唐移动通信设备有限公司 | 报文传输方法及设备 |
CN106131043A (zh) * | 2016-08-03 | 2016-11-16 | 大连环宇移动科技有限公司 | 一种基于udp协议以提高数据传输可靠性的方法 |
CN106209764A (zh) * | 2016-05-27 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于udp协议的数据传输方法及系统 |
CN106789916A (zh) * | 2016-11-21 | 2017-05-31 | 广州视源电子科技股份有限公司 | 基于udp的网络传输方法及装置、网络传输方法及装置 |
-
2017
- 2017-07-31 CN CN201710639307.XA patent/CN107360177B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505306A (zh) * | 2009-03-23 | 2009-08-12 | 烽火通信科技股份有限公司 | 一种分布式系统中的节点间可靠通信方法 |
CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
CN103036904A (zh) * | 2012-12-27 | 2013-04-10 | 东方通信股份有限公司 | 一种在通信网络中使用udp协议进行数据可靠传输的方法 |
CN103986647A (zh) * | 2014-05-21 | 2014-08-13 | 大唐移动通信设备有限公司 | 报文传输方法及设备 |
CN106209764A (zh) * | 2016-05-27 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于udp协议的数据传输方法及系统 |
CN106131043A (zh) * | 2016-08-03 | 2016-11-16 | 大连环宇移动科技有限公司 | 一种基于udp协议以提高数据传输可靠性的方法 |
CN106789916A (zh) * | 2016-11-21 | 2017-05-31 | 广州视源电子科技股份有限公司 | 基于udp的网络传输方法及装置、网络传输方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274748A (zh) * | 2018-09-30 | 2019-01-25 | 西安科技大学 | 数据可靠传输方法及应用其的电力设备监测数据传输方法 |
CN109701268A (zh) * | 2018-12-29 | 2019-05-03 | 北京金山安全软件有限公司 | 设备间的信息传输方法、装置、电子设备及存储介质 |
CN111935243A (zh) * | 2020-07-17 | 2020-11-13 | 杭州海康机器人技术有限公司 | 一种数据信息的传输方法、装置、系统及设备 |
CN111970278A (zh) * | 2020-08-18 | 2020-11-20 | 金华八达集团有限公司科技信息分公司 | 基于改进udp传输方式的智能分布式fa通信方法 |
CN114553969A (zh) * | 2020-11-20 | 2022-05-27 | 比亚迪股份有限公司 | 数据传输方法、电子设备及存储介质 |
CN114553969B (zh) * | 2020-11-20 | 2024-01-30 | 比亚迪股份有限公司 | 数据传输方法、电子设备及存储介质 |
CN113490154A (zh) * | 2021-07-01 | 2021-10-08 | 深圳市恒扬数据股份有限公司 | 广播数据传输方法、装置、终端设备及存储介质 |
CN117176809A (zh) * | 2023-09-01 | 2023-12-05 | 中科驭数(北京)科技有限公司 | 一种数据交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107360177B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
CN105075216B (zh) | 识别原始ip地址以及客户端端口连接 | |
CN105991462B (zh) | 传输控制协议tcp数据包的发送方法、发送装置和系统 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
EP1564959B1 (en) | System and method for trivial file transfer protocol including broadcasting function | |
EP3396883A1 (en) | Data transmission method and related device | |
CN101217429B (zh) | 基于tcp时间戳选项确定tcp报文之间的引发关系的方法 | |
CN104753980B (zh) | 数据传输方法及相关装置和通信系统 | |
CN109660639B (zh) | 一种数据上传方法、设备、系统及介质 | |
KR102046792B1 (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
WO2012047503A2 (en) | High speed parallel data exchange | |
CN109217983B (zh) | 一种工业物联网的作业终端通信协议设计方法 | |
GB2519491A (en) | Method and system for increasing data flow transmission | |
WO2012047518A2 (en) | High speed parallel data exchange with receiver side data handling | |
CN102111419A (zh) | 一种基于消息中间件的客户端自动重连方法 | |
CN102664958A (zh) | 一种透明计算系统 | |
CN101651676A (zh) | 一种大数据量文件的网络下载方法 | |
CN114500528A (zh) | 一种基于云平台的数据传输方法及装置 | |
CN108462590A (zh) | 网络流量的监控方法及装置、计算机终端 | |
CN110247926A (zh) | 一种交互方法和系统 | |
US20100306311A1 (en) | Method of Downloading Large Size Data to a Large Number of Networked Client Machines from a Single Server | |
CN105721491B (zh) | 一种用于面向高速磁浮交通仿真的通信方法 | |
CN112055035B (zh) | 一种ng接口的建立方法及装置 | |
CN111865884B (zh) | 一种报文处理方法、装置及设备 | |
US20230042583A1 (en) | Message exchange between computing devices operable to implement coap |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |