CN104618260A - 一种基于udp的可配策略数据传输方法 - Google Patents
一种基于udp的可配策略数据传输方法 Download PDFInfo
- Publication number
- CN104618260A CN104618260A CN201510006787.7A CN201510006787A CN104618260A CN 104618260 A CN104618260 A CN 104618260A CN 201510006787 A CN201510006787 A CN 201510006787A CN 104618260 A CN104618260 A CN 104618260A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- strategy
- transmission
- data transmission
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于UDP的可配策略数据传输方法。本方法中将传输需要的报文传输模式、报文压缩策略、报文重传次数、报文超时时间、单包发送长度、发送窗口个数、主动报文延时等策略抽象出来,形成策略配置文件,本方法在数据传输前从策略配置文件读取策略信息并进行策略配置。本发明的有益增益效果是当使用的网络传输信道环境发生变化时,用户不需要重新修改软件代码,只需要修改策略配置文件中的部分策略就可以满足实际使用需求,能够适应带宽、窄带信道,稳定、高时延信道下的数据传输,能够实现点对点、点对多点的数据传输,且只需要修改发送端的传输策略,接收端自动匹配策略,让软件使用变得更加灵活简洁。
Description
技术领域
本发明涉及一种网络数据传输技术,属于网络传输技术领域。
背景技术
目前,TCP/IP协议体系是普遍采用的网络通信标准。其中UDP是面向无连接的协议,效率虽然高,但不可靠;TCP 是面向连接的协议,可靠性高,但效率低。由于TCP和UDP传输层协议本身存在实时性和可靠性之间的矛盾,再加上实际网络环境的复杂性,无法直接使用现有的UDP或者TCP协议,就必须根据业务传输的需要重新设计符合业务传输特点的应用层传输协议。TCP协议在网络编程中得到了广泛的应用,可实现数据的无差错传输,但需以复杂的传输控制和较大的网络开销为代价。对于一些带宽有限的信道,例如无线信道,或者传输数据量较大的网络系统中,该协议会导致网络效率低下。UDP协议是一种无连接的协议,它有着数据传输的时延低、资源开销小、支持组播通信方式、支持对等的通信方式等特点,但由于协议本身的不可靠,导致传输的信息可能丢失。为了保证数据信息的实时可靠传输,需要在应用层进行适当的应用层传输格式设计,实现对报文的重发机制,保证基于UDP的协议能实现可靠传输。目前很难找到一种通用的基于UDP的可靠传输方法,不能够在各种项目中直接使用;在针对特定的网络应用环境下往往需要针对环境的特性进行传输方法的编码,不能够通过简单调整传输策略及可满足新的传输信道需求,且不能够实现只通过单端策略调整来达到收发双方的策略匹配,不利于软件的快速开发、快速调整和维护。
发明内容
本发明提出一种基于UDP的可配策略数据传输方法,本方法中将传输需要的部分策略抽象出来,形成策略配置文件,用户根据实际使用的网络传输信道需求,有针对性地修改满足该信道的传输策略。
本方法在数据传输之前,自动从策略配置文件中读取用户配置的策略信息,包括报文传输模式、报文压缩策略、报文重传次数、报文超时时间、单包发送长度、发送窗口个数、主动报文延时等策略。
若传输数据量大且具有可压缩性,用户可将压缩策略配置为压缩传输,则在数据传输前先将数据按照指定的压缩算法进行数据压缩,压缩完成后再根据实际配置进行分包发送;接收端在收到所有数据包后对数据进行重组,重组完成后根据指定压缩算法进行解压缩处理。
若应用方式为点对点通信且传输信道稳定则采用单包发送模式,对每一包数据进行应答,保证数据的可靠传输;若应用方式为点对多点的组播/广播通信模式,则采取单任务发送模式,发送端将本次要发送的数据全部发送,接收端再收到所有数据\或超时等情况下进行单任务应答,由此减少往返确认交互的报文。在进行单任务模式传输时,若接收端未正确完成接收,则向发送端发送丢失报文的序号集,请求重传。接收端汇总所有丢失包集,对丢失包进行重传,如此反复,直到到达最大重传次数则停止。当达到最大重传次数还没有完成接收时,则判定本次传输任务失败。
单包数据长度与信道特性密切相关,根据信道的通信质量和特性,设置一个信道最优单包长度,由此来提升数据传输效率。
利用多发送窗口技术,在发送数据时,采用多个窗口进行发送,节省了传输报文及确认报文在网络信道中的传输时间,在单包模式下能够成线性地提高发送效率。
在无线信道或者条件苛刻的信道下传输数据时,信道的时延非常大,且处理数据的能力有限,如果不对发送数据进行有限控制,则可能存在大量数据报文丢失,效率低下的问题。在此种信道下,适当地进行主动延时发送,反而能够大大提高数据传输效率。
本方法中将单包超时时间间隔策略存放在报文头中,当用户根据信道实际情况修改超时时间时,只需要修改发送端的配置,而不需要更改接收端的策略配置,接收端根据报文头中的超时间隔时间进行自动调整,使得策略的修改变得更加灵活简单。
本发明的有益技术效果是:当用户的网络传输信道环境发生变化时,用户不需要重新修改软件代码,只需要修改策略配置文件中的对应策略就可以满足实际使用需求,传输策略可灵活配置;数据传输可适应带宽、窄带信道,稳定、高时延信道;数据传输策略只需要修改发送端,数据接收端动态适应发送端的策略。
附图说明
图1、本发明在网络传输模型中的位置。
图2、本发明传输协议结构体。
图3、标识头及报文类型定义。
图4、单任务数据交互流程示意图。
图5、单窗口发送示意图。
图6、多窗口发送示意图。
具体实施方式
根据网络层次的划分,网络传输模型分为应用层、传输层、网际层和网络接口层4层,本发明主要是在UDP传输层之上添加一个自定义的可靠传输控制层(参见图1)。用来实现数据传输的灵活可配以及可靠传输,最终提供一个简单数据收/发接口供应用层使用,形成一个通用数据传输方法。
本方法提出一种基于UDP的数据传输方法,在UDP数据报文基础之上叠加一个传输控制头(参见图2)。为简化应用层的使用,本协议实现后,用户发送数据时只需要将传输的数据直接交付给本协议模块,指定其发送目的地址和端口即可,而不需要再做任何的数据传输控制。
本协议中的标识头和报文类型字段的取值(参见图3):标识头用来识别是否本协议报文的第一个判别键,目前暂时使用0xFC、0xFD这两个取值,0xFD表示当前的报文是经过压缩后的报文,0xFC表示当前的报文是非压缩的报文。如果接收端接收到的报文标识头不是0xFC、0xFD这两个取值,则认为不是当前协议内的正确报文,予以丢弃。
关于报文类型的设计,本协议中对于传输数据有两种模式可供选择,一种是单包发送模式,一种是单任务发送模式。对于单包发送模式,接收端需要对每一个报文都进行确认应答才认为是正确接收。对于单任务模式则不必要对每一个报文都进行应答,而是发送端按照一定的发送速率进行任务内的所有分包发送,接收端在收到数据后进行统一应答。当接收端正确接收到所有的数据报文时,发送0x21(单任务成功确认报文)。当接收端收到最后一个序号的报文或者已经超时无后续报文的情况下,通过查阅接收任务列表中的数据情况,向发送端发起0x22(单任务重传请求报文),报文有效数据载荷中填写的是需要重传的报文序号列表。发送端收到重传请求后,将需要重传的包进行重传(参见图4)。
协议中的报文号是一个由两个字节组成的整形数字,从0—65535循环使用,该字段针对应用层发送过程进行计数,如果应用层要发送一个大数据,数据交互协议部分需要进行分包发送,但是所有分包中的报文号是同一个序号,表示这些包同属于一个完整的报文,这样便于在同一个端口上同时发送处理多种数据时进行报文区分,接收端在接收到数据时根据发送端IP地址、发送端端口号、报文号共同决定本数据属于那一个报文,保证反向重组报文时的正确性。
当前报文序号和当前报文总包数都是一个4个字节的整形数字(若单包长度为1024字节的情况下,理论上本方法可一次实现4T数据的传输),当一个大数据报文进行分包发送时,当前报文总包数用来记录本次分包后的包个数,报文序号则是表示当前的报文是分包后的第几个子分包报文,接收端收到的分包报文总个数等于当前报文总包数时,则表示已经全部收到了所有报文,而当前报文序号的作用在于判别某些包是否是重复包,以及在最终反组包时对报文进行正确排序重组,纠正因网络问题导致的数据乱序情况的出现。
超时时间由一个字节表示,其取值范围为0--255,单位为秒。校验码完成对当前包中所有数据进行循环校验,判断数据包在网络传输过程中是否损坏。报文长度由两个字节组成,表示当前单包报文的数据总长度,因此单个数据包的长度不超过65535个字节。
在软件的使用过程中,网络环境会有不同的变化需求,在某些情况下,可能只需要调整几项参数就可以适应新环境的使用需求,但是由于没有很好的支撑这些参数的配置,导致需要重新编译程序,重新安装软件,使软件应用变得不够人性化、智能化。针对这些问题,本设计提出了策略的可配置,将自定义协议的一些参数外放到配置文件中,在初始化软件模块的时候,从策略配置文件中读取相应的策略参数。本方法将报文传输模式、报文压缩策略、报文重传次数、报文超时时间、单包发送长度、发送窗口个数、主动报文延时策略提取到配置文件中,在使用过程中,用户根据实际使用情况来调整配置策略,以达到快速满足用户需要。其策略文件内容如下:
<*****************************************************************************************>
;Socket通信配置
[UDPSocketConfig]
;UDP报文传输模式,是按照单包发送模式还是按照单任务发送模式进行数据发送,0单包应答发送模式,1单任务应答发送模式
UDPSendMode = 0
;UDP重发次数,对数据包的重发次数,该数据在需要验证的情况下有效
UDPRetryNum = 3
;超时时间间隔,单位为秒,该数据在需要验证的情况下有效
UDPTimeOut = 3
;单个数据包发送大小,如果发送的数据超过该大小则会分包发送,该数据值不能超过65535,该值必须大于等于1,否则不会发送数据
UDPSinglePeerSize = 512
;共同执行的发送窗口数,当发送的数据个数小于该窗口数就立即发送,当该窗口数被占满时,暂停发送后续数据,直到有1个以上的空闲窗口再发送
;该值必须要大于等于1
MAXFreeWindowsCount = 255
;是否对发送数据进行压缩 0:不压缩 1:压缩
DataCompress = 1
;发送间隔,单位微秒,可为0
UDPSendinterval =1;
<*****************************************************************************************>
UDPSendMode:用户根据自己的实际需要配置传输模式,如果每个应答包都需要进行确认应答,则可配置成单包应答模式;在某些信道条件差的情况下,例如无线信道,为了减少应答包的来回交互,可选择进行单任务应答模式,等待整个任务发送完成后再进行应答,减少网络上的报文,提高传输效率。
UDPRetryNum:用户根据自己的需要可以配置数据重传机制中的重传次数,当网络信道质量较差的时候,出现部分数据包发送失败,则可以根据配置的重传次数来对数据进行重传,直到达到最大重传次数后,仍然失败则放弃数据的传输。利用该协议解决了网络中因瞬时突发状态不稳定而导致的数据传输失败问题。
UDPTimeOut:数据包超时时间,网络应用环境复杂多变,在不同的应用条件下通过调整与之对应的超时参数,才能够保证数据的正确传输。例如卫星网的数据通信时延长:信号良好时,Ku波段的是500毫秒到1秒之间,C波段的是3秒到5秒之间;信号不好时,Ku波段是4到5秒,C波段是10到15秒。在卫星信道下应需要适当延长超时时间。本超时时间还会通过协议报文传输到接收端,当接收端获取到超时时间后,如果在超时等待结束时还没有收到后续包,则开始进行数据整理,并根据整理结果执行是失败还是请求重传。
UDPSinglePeerSize:数据包单包发送长度,如果应用层发送的数据超过该值则会分包发送,该数据值不能超过65535,该值必须大于等于1,否则不会发送数据。用户可根据实际使用的网络环境来修改该项取值,用户可以根据信道的情况来调整单包大小和速率以求达到最高的效率。
MAXSendWindowsCount:发送窗口个数。该项策略主要针对数据传输发送端,在与多点通信或者多线程通信的情况下,当发送端有多个发送任务,且分发的方向较多,在每一个方向上进行发送应答需要一定时间,如果等待一个数据包处理完成后再进行第二个报文的发送,则明显降低了发送效率。如果同时采用多个窗口进行发送,一个发送窗口对应一个发送方向,则大大提高了发送效率。如果应用层同时向三个方向发送三个数据包,采用单窗口的发送方式(参见图5),忽略程序处理的时间,第一个方向的数据包收到应答报文(ACK)时,在网络中的耗时为1秒,因是单窗口处理,因此必须等到该处理完成之后才能够发送第二个数据包,以此类推,当发送完所有的数据包时,总耗时为1+1.5+2=4.5秒。如果改为多窗口的方式进行发送(参见图6),在发送的时候,发送端先利用空闲的发送窗口将数据分别发送给三个方向,但是由于耗时主要为网络传输耗时,则最终总的耗时为2秒。由此可以看出多窗口发送可以大大提高发送数据的效率。发送方向越多,发送的数据量越大,则效率提升越明显。
DataCompress:是否对数据进行压缩。如果用户传输的数据比较简洁,则可以不需要压缩,由此减少压缩、解压缩的流程,提升单包速率。如果用户发送一个大的数据包,且数据包是可压缩的,则可配置成压缩模式,本协议在发送数据前采用标准的压缩协议对数据进行压缩,由此来减少发送的数据包总数,减少交互流程,提升数据传输效率。
UDPSendinterval:主动报文延时间隔,主要是用在两个数据包发送之间的间隔。该项参数在无线信道等特定的使用环境下显得非常重要。例如单任务发送模式时,在卫星信道下进行数据传输,应用软件的处理速率远远大于卫星信道的数据传输速率,实验显示在第二代卫星信道上传输1400个字节左右的单包数据,大概需要15毫秒的传输处理,如果应用软件在发送报文时不进行有效的延时发送,而是直接将数据包如数丢出,则可能导致数据包被丢弃,从而影响整个发送效率。因此在两个报文发送间,主动合理地进行延时,在所述卫星信道下进行数据传输时,发送一包数据后,主动延时15毫秒,再发送下一包数据,反而会提高发送效率。
在本方法中,当用户需要调整传输策略时,只需要调整发送端的传输策略即可满足要求。因本协议报文中会告知接收端当前报文是否为压缩数据、单报文超时时间,接收端根据该信息自动调整接收策略,实现数据传输策略的动态调整,方便用户的配置使用。
Claims (3)
1.一种基于UDP的可配策略的传输方法,其特征在于:提供一个通用的数据传输方法,数据传输前从策略配置文件中读取报文传输模式、报文压缩策略、报文重传次数、报文超时时间、单包发送长度、发送窗口个数、主动报文延时策略;在数据传输过程中,本方法根据读取的配置策略动态调整数据传输时的报文传输模式、报文压缩策略、报文重传次数、报文超时时间、单包发送长度、发送窗口个数、主动报文延时策略。
2.根据权利要求1所述的传输方法,通过在配置文件中调整策略配置,能够适应带宽、窄带信道,稳定、高时延信道下的数据传输,能够实现点对点、点对多点的数据传输,无需进行代码编译和重新部署软件。
3.根据权利要求1所述的传输方法的策略配置修改,只需要在数据发送端进行修改,数据接收端根据协议中发送端填写的数据进行动态调整,自动适应修改后的策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510006787.7A CN104618260A (zh) | 2015-01-08 | 2015-01-08 | 一种基于udp的可配策略数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510006787.7A CN104618260A (zh) | 2015-01-08 | 2015-01-08 | 一种基于udp的可配策略数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104618260A true CN104618260A (zh) | 2015-05-13 |
Family
ID=53152546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510006787.7A Pending CN104618260A (zh) | 2015-01-08 | 2015-01-08 | 一种基于udp的可配策略数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104618260A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262746A (zh) * | 2015-10-12 | 2016-01-20 | 国家电网公司 | 一种基于udp协议保证数据可靠传输的方法 |
CN106385322A (zh) * | 2016-09-07 | 2017-02-08 | 海能达通信股份有限公司 | 一种数据组呼方法、装置及系统 |
CN109379355A (zh) * | 2018-10-11 | 2019-02-22 | 无锡威孚力达催化净化器有限责任公司 | 基于udp协议的自适应可靠多窗口数据传输方法 |
CN111464569A (zh) * | 2020-06-22 | 2020-07-28 | 浙江大学 | 一种采用自定义协议的以太网数据传输方法 |
CN113259990A (zh) * | 2021-06-28 | 2021-08-13 | 南京微鲤科技有限公司 | 用于识别的智能信息传输系统及传输方法 |
CN114006651A (zh) * | 2021-11-02 | 2022-02-01 | 四川安迪科技实业有限公司 | 一种适用于多协议的卫星互联网传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021698A1 (en) * | 2000-04-10 | 2002-02-21 | Yu-Ro Lee | Data transmission method for hybrid ARQ type II/III uplink for a wide-band radio communication system |
CN102957730A (zh) * | 2011-08-29 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 基于udp协议的数据传输方法和系统 |
CN104243097A (zh) * | 2014-09-19 | 2014-12-24 | 东软集团股份有限公司 | 基于卫星网络的数据传输方法及系统 |
-
2015
- 2015-01-08 CN CN201510006787.7A patent/CN104618260A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021698A1 (en) * | 2000-04-10 | 2002-02-21 | Yu-Ro Lee | Data transmission method for hybrid ARQ type II/III uplink for a wide-band radio communication system |
CN102957730A (zh) * | 2011-08-29 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 基于udp协议的数据传输方法和系统 |
CN104243097A (zh) * | 2014-09-19 | 2014-12-24 | 东软集团股份有限公司 | 基于卫星网络的数据传输方法及系统 |
Non-Patent Citations (1)
Title |
---|
芦东昕 等: ""基于UDP的可靠数据传递技术研究"", 《计算机工程》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262746A (zh) * | 2015-10-12 | 2016-01-20 | 国家电网公司 | 一种基于udp协议保证数据可靠传输的方法 |
CN106385322A (zh) * | 2016-09-07 | 2017-02-08 | 海能达通信股份有限公司 | 一种数据组呼方法、装置及系统 |
CN106385322B (zh) * | 2016-09-07 | 2019-11-15 | 海能达通信股份有限公司 | 一种数据组呼方法、装置及系统 |
CN109379355A (zh) * | 2018-10-11 | 2019-02-22 | 无锡威孚力达催化净化器有限责任公司 | 基于udp协议的自适应可靠多窗口数据传输方法 |
CN111464569A (zh) * | 2020-06-22 | 2020-07-28 | 浙江大学 | 一种采用自定义协议的以太网数据传输方法 |
CN111464569B (zh) * | 2020-06-22 | 2020-11-24 | 浙江大学 | 一种采用自定义协议的以太网数据传输方法 |
CN113259990A (zh) * | 2021-06-28 | 2021-08-13 | 南京微鲤科技有限公司 | 用于识别的智能信息传输系统及传输方法 |
CN113259990B (zh) * | 2021-06-28 | 2021-11-02 | 南京微鲤科技有限公司 | 用于识别的智能信息传输系统及传输方法 |
CN114006651A (zh) * | 2021-11-02 | 2022-02-01 | 四川安迪科技实业有限公司 | 一种适用于多协议的卫星互联网传输方法 |
CN114006651B (zh) * | 2021-11-02 | 2023-04-25 | 四川安迪科技实业有限公司 | 一种适用于多协议的卫星互联网传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104618260A (zh) | 一种基于udp的可配策略数据传输方法 | |
AU2006229508B2 (en) | Method of generating lower layer data block in wireless mobile communication system | |
US8750334B2 (en) | Link layer assisted robust header compression context update management | |
CN101517996B (zh) | 用于降低无线通信系统中的死锁可能性的方法和装置 | |
CN102547848B (zh) | 一种处理业务数据流的方法和装置 | |
WO2017045487A1 (zh) | 传输数据的方法、基站和终端设备 | |
CN102301630B (zh) | 用于rlc协议的新分组指示符 | |
US11219091B2 (en) | Data receiving status reporting method and apparatus | |
JP2007089177A (ja) | 無線通信システムにおける状態報告信号の伝送速度を改善する方法及び装置 | |
WO2010121410A1 (zh) | 一种采用arq机制的头压缩通信方法和装置 | |
CN104683017A (zh) | 一种卫星移动通信rlc层am模式传输方法 | |
WO2018165924A1 (zh) | 自适应传输方法和装置 | |
CN107209713B (zh) | 按需文件修复的方法和系统 | |
CN100493081C (zh) | 一种用户面数据处理方法 | |
CN109861797A (zh) | 一种数据传输方法和系统 | |
CN107801211A (zh) | 一种报文的非按序递交方法及rlc实体、基站 | |
WO2021208694A1 (zh) | 一种数据传输方法及网络设备 | |
US20030103483A1 (en) | Adaptive radio link protocol (RLP) to improve performance of TCP in wireless environment for cdmaone and cdma2000 systems | |
WO2018036222A1 (zh) | 无线通信系统及方法、数据重发装置及方法、聚合结构 | |
Boggia et al. | ROHC+: A new header compression scheme for TCP streams in 3G wireless systems | |
CN107046452A (zh) | 一种数据高带宽高可靠性传输方法 | |
WO2020199030A1 (zh) | 一种压缩处理方法、解压缩处理方法及相关设备 | |
TWI394399B (zh) | 計算協定資料單元之傳輸次數的方法及通訊裝置 | |
CN114070806B (zh) | 一种基于可变消息格式数据链的无人机系统及通信方法 | |
US7672279B2 (en) | Methods for dynamic radio resource management and link control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150513 |