CN105634692A - 基于udp协议的数据包发送方法和接收方法 - Google Patents
基于udp协议的数据包发送方法和接收方法 Download PDFInfo
- Publication number
- CN105634692A CN105634692A CN201510993507.6A CN201510993507A CN105634692A CN 105634692 A CN105634692 A CN 105634692A CN 201510993507 A CN201510993507 A CN 201510993507A CN 105634692 A CN105634692 A CN 105634692A
- Authority
- CN
- China
- Prior art keywords
- data packet
- send
- transmission
- response message
- identification code
- 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/1803—Stop-and-wait 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/1607—Details of the supervisory signal
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于UDP协议的数据包发送方法和接收方法,该发送方法包括:以预设时间间隔重复发送同一数据包,每发送一次数据包,则执行一次以下步骤:监控该数据包的已发送时间和发送次数;在该数据包的已发送时间达到预设时间间隔时,判断是否接收到接收方针对该数据包的应答消息,若是,则停止继续重复发送该数据包;否则,判断该数据包的发送次数是否达到发送次数上限,若是,则停止继续重复发送该数据包;否则,允许继续重复发送该数据包。本发明数据包发送方法,通过应答消息的方式获知数据包是否完整到达,在完整到达后,不再发送该数据包,减少了资源的浪费,保证接收方只接收一次相同数据包。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于UDP协议的数据包发送方法和接收方法。
背景技术
UserDatagramProtocol协议,简称UDP协议,用于提供面向事务的简单、不可靠信息传送服务。由于UDP协议不属于连接型协议,因而具有控制选项较少、资源消耗小、处理速度快、在数据传输过程中延迟小、数据传输效率高的优点,适合对可靠性要求不高的应用程序,或者可以保证可靠性的应用程序。当然UDP协议也具有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当数据包发送后,无法得知其是否完整的被接收。
对此,目前多采用重发的方式尽量保证数据包能够被完整的被接收。其具体实现方法为:如图1所示,以一定的时间间隔,连续n次发送同一数据包。在网络连接正常的情况下,认为此数据包一定能被接收。这种方法既发挥了UDP协议在数据传输过程中延迟小、数据传输效率高的优点,同时又最大限度的避免丢包的可能性。但是该做法具有以下缺点:
(1)仍然无法确定数据包是否完整到达;
(2)数据包被接收方完整接收后,由于发送方无法得知,仍会继续发送,这样会造成资源损耗;
(3)在某些时候,发送方发送n次,而接收方只需要完整接收一次即可,此方法不能保证接收方只接收一次。例如,命令帧是一种特殊用途的数据包,通常应用程序接收到这种数据包后,会执行一个或者一系列特定的程序或动作,过多的执行可能造成负载压力的增加,或者得出错误的结果。如果接收到的命令为执行一个复杂的算法时,重复执行就会造成程序内存占用、CPU占用过高,从而程序的稳定性、可用性就会下降。如果接收到的命令为执行某个特定运算的输入,比如是加法操作的加数,那么重复的执行将会得出错误的结果。所以对于命令帧,应该只进行一次有效接收。
发明内容
本发明所要解决的技术问题是:现有技术中发送方无法得知数据包是否被接收、由于无法得知数据包是否被接收而重复发送造成资源浪费及不能保证接收方只接收一次数据包。
为解决上述技术问题,本发明提出了一种基于UDP协议的数据包发送方法和接收方法。
第一方面,该数据包发送方法包括:
以预设时间间隔重复发送同一数据包,每发送一次数据包,则执行一次以下步骤:
监控该数据包的已发送时间和发送次数;
在该数据包的已发送时间达到预设时间间隔时,判断是否接收到接收方针对该数据包的应答消息,
若是,则停止继续重复发送该数据包;
否则,判断该数据包的发送次数是否达到发送次数上限,
若是,则停止继续重复发送该数据包;
否则,允许继续重复发送该数据包。
可选的,在每发送一次数据包之前还包括:对待发送的数据包进行标识,且相同的数据包的标识码相同;
发送方根据应答消息中的数据包标识码确认被接收方接收的数据包。
本发明提供的数据包发送方法中,通过判断是否接收到数据包的应答消息,获知数据包是否被成功接收。当成功接收后,就不再发送这一数据包。通过应答消息的方式确定数据包是否完整到达,在完整到达后,不再发送该数据包,减少了资源的浪费。同时,可以在一定程度上保证接收方只接收一次相同数据包,避免过多的执行可能造成负载压力的增加,或者得出错误的结果。
第二方面,该数据包接收方法包括:
当接收到一数据包时,判断已接收队列中是否有与该数据包相同的数据包,
若是,则丢弃该数据包,并向发送方发送已经接收该数据包的应答消息;
否则,向发送方发送已经接收该数据包的应答消息,并将该数据包存入已接收队列中。
可选的,所述判断已接收队列中是否有与该数据包相同的数据包,包括:
判断已接收队列中的数据包的标识码中是否具有与该数据包的标识码相同的标识码,
若是,则已接收队列中有与该数据包相同的数据包;
否则,已接收队列中没有与该数据包相同的数据包。
可选的,所述数据包的应答消息中包含该数据包的标识码,该标识码用于发送方确认被接收的数据包。
本发明提供的数据包接收方法中,通过发送应答消息的方式告知发送方数据包已经被接收,从而终止发送方的重复发送。在接收到一数据包时,接收方判断是否已经接收过相同的数据包,若接收过,则丢弃,从而避免过多的执行可能造成负载压力的增加,或者得出错误的结果。在实际中,接收方在第一次接收到该数据包时就应当发送了应答消息,但是由于网络环境不良等原因,发送方没有接收到应答消息,所以仍然会继续发送相同数据包。这种情况下,接收方丢弃相同数据包时还要向发送方再次发送应答消息,以尽量保证发送方不再发送相同的数据包,减少资源的浪费。
附图说明
通过参考附图会更加清楚的理解本发明的特征信息和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了现有技术中一种基于UDP协议的数据包发送方法的流程示意图;
图2示出了根据本发明基于UDP协议的数据包发送方法一实施例的流程示意图;
图3示出了根据本发明基于UDP协议的数据包接收方法一实施例的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本发明提供一种基于UDP协议的数据包发送方法,该方法包括:
以预设时间间隔重复发送同一数据包,每发送一次数据包,则执行一次以下步骤:
监控该数据包的已发送时间和发送次数;
在该数据包的已发送时间达到预设时间间隔时,判断是否接收到接收方针对该数据包的应答消息,
若是,则停止继续重复发送该数据包;
否则,判断该数据包的发送次数是否达到发送次数上限,
若是,则停止继续重复发送该数据包;
否则,允许继续重复发送该数据包。
本发明提供的数据包发送方法中,通过判断是否接收到数据包的应答消息,获知数据包是否被成功接收。当成功接收后,就不再发送这一数据包。通过应答消息的方式确定数据包是否完整到达,在完整到达后,不再发送该数据包,减少了资源的浪费。同时,可以在一定程度上保证接收方只接收一次相同数据包,避免过多的执行可能造成负载压力的增加,或者得出错误的结果。
在具体实施中,在每发送一次数据包之前还可包括:对待发送的数据包进行标识,且相同的数据包的标识码相同。即对于同一数据包进行相同的标识。当接收方接收数据包后,返回应答消息,应答消息中包含被标识的标识码,这样发送方根据应答消息中的数据包标识码就可确认被接收方接收的数据包,判断出哪一数据包被接收,从而终止被接收的数据包的后续发送工作。
下面以图2示出的数据包发送方法为例对本发明数据包的发送方法进行说明:
对数据包进行标识,将标识后的数据包发送至接收方;
将数据包的发送次数加1;
监控数据包的已发送时间;
判断已发送时间是否达到预设时间间隔;
当判定达到预设时间间隔时,判断该数据包的发送次数是否达到上限n,在判定达到上限n时,结束该数据包的发送工作,在没有达到上限n时,再次发送该数据包,重新开始上述的各种判断、监控和记录等操作。上述重复工作在两种情况下结束,一种是接收到接收方的应答消息,一种是发送次数达到上限n。
针对上述数据发送方法,如图3所示,本发明还提供一种基于UDP协议的数据包接收方法,该方法包括:
当接收到一数据包时,判断已接收队列中是否有与该数据包相同的数据包,
若是,则丢弃该数据包,并向发送方发送已经接收该数据包的应答消息;
否则,向发送方发送已经接收该数据包的应答消息,并将该数据包存入已接收队列中。
本发明提供的数据包接收方法中,通过发送应答消息的方式告知发送方数据包已经被接收,从而终止发送方的重复发送。在接收到一数据包时,接收方判断是否已经接收过相同的数据包,若接收过,则丢弃,从而避免过多的执行可能造成负载压力的增加,或者得出错误的结果。在实际中,接收方在第一次接收到该数据包时就应当发送了应答消息,但是由于网络环境不良等原因,发送方没有接收到应答消息,所以仍然会继续发送相同数据包。这种情况下,接收方丢弃相同数据包时还要向发送方再次发送应答消息,以尽量保证发送方不再发送相同的数据包,减少资源的浪费。
相应于本发明提供的发送方法中通过对数据包进行标识的方式,本发明提供的接收方法可以通过数据包标识码的方式判断已接收队列中是否有与该数据包相同的数据包。具体为:判断已接收队列中的数据包的标识码中是否具有与该数据包的标识码相同的标识码,
若是,则已接收队列中有与该数据包相同的数据包;
否则,已接收队列中没有与该数据包相同的数据包。
进一步地,数据包的应答消息中包含该数据包的标识码,该标识码用于发送方确认被接收的数据包,即发送方根据标识码确认被接收的数据包。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (5)
1.一种基于UDP协议的数据包发送方法,其特征在于,包括:
以预设时间间隔重复发送同一数据包,每发送一次数据包,则执行一次以下步骤:
监控该数据包的已发送时间和发送次数;
在该数据包的已发送时间达到预设时间间隔时,判断是否接收到接收方针对该数据包的应答消息,
若是,则停止继续重复发送该数据包;
否则,判断该数据包的发送次数是否达到发送次数上限,
若是,则停止继续重复发送该数据包;
否则,允许继续重复发送该数据包。
2.根据权利要求1所述的方法,其特征在于,
在每发送一次数据包之前还包括:对待发送的数据包进行标识,且相同的数据包的标识码相同;
发送方根据应答消息中的数据包标识码确认被接收方接收的数据包。
3.一种基于UDP协议的数据包接收方法,其特征在于,包括:
当接收到一数据包时,判断已接收队列中是否有与该数据包相同的数据包,
若是,则丢弃该数据包,并向发送方发送已经接收该数据包的应答消息;
否则,向发送方发送已经接收该数据包的应答消息,并将该数据包存入已接收队列中。
4.根据权利要求3所述的方法,其特征在于,所述判断已接收队列中是否有与该数据包相同的数据包,包括:
判断已接收队列中的数据包的标识码中是否具有与该数据包的标识码相同的标识码,
若是,则已接收队列中有与该数据包相同的数据包;
否则,已接收队列中没有与该数据包相同的数据包。
5.根据权利要求2所述的方法,其特征在于,所述数据包的应答消息中包含该数据包的标识码,该标识码用于发送方确认被接收的数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993507.6A CN105634692A (zh) | 2015-12-24 | 2015-12-24 | 基于udp协议的数据包发送方法和接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510993507.6A CN105634692A (zh) | 2015-12-24 | 2015-12-24 | 基于udp协议的数据包发送方法和接收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105634692A true CN105634692A (zh) | 2016-06-01 |
Family
ID=56049263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510993507.6A Pending CN105634692A (zh) | 2015-12-24 | 2015-12-24 | 基于udp协议的数据包发送方法和接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634692A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019114378A1 (zh) * | 2017-12-15 | 2019-06-20 | 华为技术有限公司 | 一种物联网数据传输方法、设备及*** |
CN112865927A (zh) * | 2019-11-27 | 2021-05-28 | 浙江大搜车软件技术有限公司 | 消息送达验证方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101951370A (zh) * | 2010-09-17 | 2011-01-19 | 北京神州泰岳软件股份有限公司 | 基于udp的文件可靠传输方法 |
CN102957730A (zh) * | 2011-08-29 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 基于udp协议的数据传输方法和*** |
CN103051436A (zh) * | 2012-12-27 | 2013-04-17 | 青岛飞鸽软件有限公司 | 提高udp连接可靠性的***及方法 |
-
2015
- 2015-12-24 CN CN201510993507.6A patent/CN105634692A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101951370A (zh) * | 2010-09-17 | 2011-01-19 | 北京神州泰岳软件股份有限公司 | 基于udp的文件可靠传输方法 |
CN102957730A (zh) * | 2011-08-29 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 基于udp协议的数据传输方法和*** |
CN103051436A (zh) * | 2012-12-27 | 2013-04-17 | 青岛飞鸽软件有限公司 | 提高udp连接可靠性的***及方法 |
Non-Patent Citations (1)
Title |
---|
周锦才: "可靠UDP协议的设计思路与实现方法", 《周口师范学院学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019114378A1 (zh) * | 2017-12-15 | 2019-06-20 | 华为技术有限公司 | 一种物联网数据传输方法、设备及*** |
US11146362B2 (en) | 2017-12-15 | 2021-10-12 | Huawei Technologies Co., Ltd. | Internet of things data transmission method, device and system |
CN112865927A (zh) * | 2019-11-27 | 2021-05-28 | 浙江大搜车软件技术有限公司 | 消息送达验证方法、装置、计算机设备和存储介质 |
CN112865927B (zh) * | 2019-11-27 | 2023-09-12 | 浙江大搜车软件技术有限公司 | 消息送达验证方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107371264A (zh) | 一种上行数据传输的方法及设备 | |
RU2010101419A (ru) | Способы и системы для планирования ресурсов в телекоммуникационной системе | |
CN104412640A (zh) | 使用低层信令进行高层压缩 | |
CN101940027A (zh) | 用于移动通信网络的方法和设备 | |
RU2019130588A (ru) | Способ обработки данных и относящееся к нему устройство | |
CN102611630B (zh) | 一种报文接收控制方法及*** | |
CN103973414A (zh) | 一种数据传输方法及装置 | |
EP3490293B1 (en) | Data receiving method, data sending method, receiving device and system | |
CN112152880A (zh) | 一种链路健康检测方法及装置 | |
BR112022014523A2 (pt) | Método de processamento de comunicação e dispositivo de comunicação | |
CN105634692A (zh) | 基于udp协议的数据包发送方法和接收方法 | |
CN104283716A (zh) | 数据传输方法、设备及*** | |
CN102804664A (zh) | 通信***、通信设备、通信方法和程序 | |
CN102123452B (zh) | 一种资源的管理方法和设备 | |
CN107666430B (zh) | 一种电子邮件发送方法、装置及终端 | |
CN112969244B (zh) | 一种会话恢复方法及其装置 | |
CN105634894B (zh) | 一种增强型can总线数据重发方法和装置 | |
CN102415133B (zh) | 接收设备、接收方法及其程序 | |
JP5142413B2 (ja) | 適応型メッセージ再送信のためのシステムおよび方法 | |
US10009409B2 (en) | Retransmission control network node and related method | |
CN110808917A (zh) | 多链路聚合数据重传方法及发送设备 | |
CN103957079A (zh) | 一种hdlc网络中的协商方法和设备 | |
CN111447046B (zh) | 业务数据传输方法、装置、设备和存储介质 | |
CN106657078A (zh) | Tcp传输方法及装置 | |
CN103795507B (zh) | Epon***的指令超时重传方法及指令超时重传*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160601 |