CN107342983A - 一种事务性处理多分包的高效udp通讯的方法及系统 - Google Patents
一种事务性处理多分包的高效udp通讯的方法及系统 Download PDFInfo
- Publication number
- CN107342983A CN107342983A CN201710433888.1A CN201710433888A CN107342983A CN 107342983 A CN107342983 A CN 107342983A CN 201710433888 A CN201710433888 A CN 201710433888A CN 107342983 A CN107342983 A CN 107342983A
- Authority
- CN
- China
- Prior art keywords
- client
- request
- subpackage
- subpackages
- server
- 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
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种事务性处理多分包的高效UDP通讯的方法及系统,本发明通过将客户端相关联的业务组合成一个请求,服务端把响应拆分成多个分包发送,能避免一个业务一个请求的方式交互,每个分包都添加有一个特殊标识位,丢包确认反馈后的重发机制没有将整个响应过程重发,仅仅重发丢失的响应,能大大减少双方的交互过程和网络负担,能在重发机制中保证业务不会吧重复操作多次,保证业务的完整性,同时确保能够最大化的确保消息的可靠性。本发明作为一种事务性处理多分包的高效UDP通讯的方法及系统,广泛适用于网络通信技术领域。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种事务性处理多分包的高效UDP通讯的方法及系统。
背景技术
当两个系统之间通过UDP进行网络数据的同步交换时,因UDP通讯的不可靠性和大数据量受到网络的限制,一般采用如下的作法:
一)采用请求等待响应模式与业务细分结合;为了减少每次交互的包的大小,需要将业务进行细分;缺点是增加了请求的种类,增加了功能实现的工作量和难度,同时也使得业务的事务性的控制变得非常困难;
二)请求等待响应与数据分包结合的方式;将一个大的数据包分成多次返回,缺点是当存在网络质量问题的时候,等待超时的几率增加,导致重传的可能性更大,这样可能导致某些业务无法完成;
三)重传时无法得知是哪个环节丢包,发送和返回过程都有可能,如果是返回过程丢包实际上一个操作已经执行,重传会导致重复执行一个操作
发明内容
为了解决上述技术问题,本发明的目的是提供一种传输效率好、可靠性高的事务性处理多分包的高效UDP通讯的方法及系统。
本发明所采用的技术方案是:一种事务性处理多分包的高效UDP通讯的方法,其特征在于,包括以下步骤:
步骤1:客户端将业务组合成一个总请求,并发送至服务器;
步骤2:服务器根据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都包含一个特殊标识位;
步骤3:客户端接收响应分包后,检查请求是否完成,如果完成则结束请求,如果没有完成进入步骤4;
步骤4:客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到对应的分包,重新发送给客户端,返回步骤3。
进一步,所述步骤1具体包括子步骤:
步骤1.1将客户端将业务的多个请求进行合并,组合成一个请求,发送请求至服务器,并开始计时;
步骤1.2当客户端等待响应的时间大于预设的超时时间时,客户端请求超时。
进一步,所述步骤4具体包括子步骤:
步骤4.1客户端每收到一个分包,重新开始计时,当达等待响应的时间小于超时时间时,执行步骤4.2,否则客户端请求超时;
步骤4.2客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到未发出的分包发送给客户端;
步骤4.3客户端接收重发的分包。
进一步,所述步骤4.1、步骤4.2、步骤4.3最多会执行3次,直到客户端收到所有响应,否则会返回客户端响应超时。
所述特殊标识位包括pkgIndex、pkgCount或transId。
本发明还提供了一种事务性处理多分包的高效UDP通讯的系统,其特征在于:所述客户端包括:
业务合并模块、用于客户端将相关联的业务组合成一个请求,
第一发送模块、用于客户端将请求发送至服务器,
第一接收模块、用于接收服务器发送的响应,
超时检查模块、用于检查请求是否超时,
丢包检查模块、用于根据特殊标识位的顺序找出未接收到的分包,
所述服务器端包括:
业务拆分模块、用于服务器将据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都有唯一的特殊标识位,
第二接收模块、用于接收客户端发送的请求,
第二发送模块、用于向接收端发送分包,
重传模块、用于向客户端重传未接收到的分包。
本发明的有益效果是:本发明通过将客户端相关联的业务组合成一个请求,服务端把响应拆分成多个分包发送,能避免一个业务一个请求的方式交互,每个分包都添加有一个特殊标识位,丢包确认反馈后的重发机制没有将整个响应过程重发,仅仅重发丢失的响应,能大大减少双方的交互过程和网络负担,能在重发机制中保证业务不会吧重复操作多次,保证业务的完整性,同时确保能够最大化的确保消息的可靠性。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是本发明一种事务性处理多分包的高效UDP通讯的方法一具体实施例的流程图;
图2是本发明一种事务性处理多分包的高效UDP通讯的系统结构图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,一种事务性处理多分包的高效UDP通讯的方法,包括以下步骤:
步骤1:客户端将业务组合成一个总请求,并发送至服务器,减少了请求的种类,不需要对业务进行细化,减小业务实现的难度;
步骤2:服务器根据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都包含一个特殊标识位(所述特殊标识位可使用pkgIndex、pkgCount或transId中的任意一种);重传时接收方发现收到的包已经被处理过了,因此不再执行该操作,实现消息重传时的幂等性。
步骤3:客户端接收响应分包后,检查请求是否完成,如果完成则结束请求,如果没有完成进入步骤4。
步骤4:客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到对应的分包,重新发送给客户端,返回步骤3。
通过将客户端相关联的业务组合成一个请求,服务端把响应拆分成多个分包发送,能避免一个业务一个请求的方式交互,每个分包都添加有一个特殊标识位,丢包确认反馈后的重发机制没有将整个响应过程重发,仅仅重发丢失的分包,能大大减少双方的交互过程和网络负担,能在重发机制中保证业务不会吧重复操作多次,保证业务的完整性,同时确保能够最大化的确保消息的可靠性。
进一步作为优选的实施方式,所述步骤1具体包括子步骤:
步骤1.1将客户端将业务的多个请求进行合并,组合成一个请求,发送请求至服务器,并开始计时;
步骤1.2当客户端等待响应的时间大于预设的超时时间时,客户端请求超时。
进一步作为优选的实施方式,所述步骤4具体包括子步骤:
步骤4.1客户端每收到一个分包,重新开始计时,当达等待响应的时间小于超时时间时,执行步骤4.2,否则客户端请求超时;
步骤4.2客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到未发出的分包发送给客户端;
步骤4.3客户端接收重发的分包。
进一步作为优选的实施方式,所述步骤4.1、步骤4.2、步骤4.3最多会执行3次,直到客户端收到所有响应,否则会返回客户端响应超时。
通过相关联业务组合和拆分成能避免一个业务一个请求的方式交互,保证一个业务在一个完整事务中;通过请求-分包等待-分包接收-丢包反馈确认-响应处理的模式,能够最大化的确保消息的可靠性,丢包确认反馈后的重发机制没有将整个响应过程重发,仅仅重发丢失的响应,能大大减少双方的交互过程和网络负担,既可以实现一请求一响应的情况,也能实现一请求多响应的需求,动态更新总等待时间,丢包重传。
实施例
获取通讯录这个逻辑业务操作,因为udp的MTU(传输的最大数据包)设置一般会不大于1500字节,如果通讯录很大;如下操作:客户端先发请求到服务器端询问有多少个人通讯录,服务器就回复通讯录的个数;客户端再去发请求到服务器端询问通讯录有多长,如果超过MTU的长度,服务器还得分成几个包;客户端就分几次获取第一个人的数据;客户端依次请求第二个人的,一直到全部获取。
多种请求响应过程,可以合并到一个请求多次响应,就是客户端只发一个总请求获取通讯录,服务器多次包返回,服务器每个包都有一个内容,总共多少个包,当前是第几个;然后客户端组合包,统计有没有丢包,如果有丢了,反馈到服务器刚才丢了第几个包,服务器重传过来,而这个过程在一个事务中完成。
如图2所示,一种事务性处理多分包的高效UDP通讯的系统,所述客户端包括:业务合并模块、用于客户端将相关联的业务组合成一个请求,第一发送模块、用于客户端将请求发送至服务器,第一接收模块、用于接收服务器发送的响应,超时检查模块、用于检查请求是否超时,丢包检查模块、用于根据特殊标识位的顺序找出未接收到的分包,所述服务器端包括:业务拆分模块、用于服务器将据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都有唯一的特殊标识位,第二接收模块、用于接收客户端发送的请求,第二发送模块、用于向接收端发送分包重传模块、用于想重传客户未接收到的分包。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (6)
1.一种事务性处理多分包的高效UDP通讯的方法,其特征在于,
包括以下步骤:
步骤1:客户端将业务组合成一个总请求,并发送至服务器;
步骤2:服务器根据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都包含一个特殊标识位;
步骤3:客户端接收响应分包后,检查请求是否完成,如果完成则结束请求,如果没有完成进入步骤4;
步骤4:客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到对应的分包,重新发送给客户端,返回步骤3。
2.根据权利要求1所述的事务性处理多分包的高效UDP通讯的方法,其特征在于:所述步骤1具体包括子步骤:
步骤1.1将客户端将业务的多个请求进行合并,组合成一个请求,发送请求至服务器,并开始计时;
步骤1.2当客户端等待响应的时间大于预设的超时时间时,客户端请求超时。
3.根据权利要求1所述的事务性处理多分包的高效UDP通讯的方法,其特征在于,所述步骤4具体包括子步骤:
步骤4.1客户端每收到一个分包,重新开始计时,当达等待响应的时间小于超时时间时,执行步骤4.2,否则客户端请求超时;
步骤4.2客户端根据特殊标识位的顺序找出未接收到的分包的特殊标识位,并发送给服务器;服务器根据特殊标识位,找到未发出的分包发送给客户端;
步骤4.3客户端接收重发的分包。
4.根据权利要求3所述的事务性处理多分包的高效UDP通讯的方法,其特征在于:所述步骤4.1、步骤4.2、步骤4.3最多会执行3次,直到客户端收到所有响应,否则会返回客户端响应超时。
5.根据权利要求1至4任一项所述的事务性处理多分包的高效UDP通讯的方法,其特征在于:所述特殊标识位包括pkgIndex、pkgCount或transId。
6.一种事务性处理多分包的高效UDP通讯的系统,其特征在于:
所述客户端包括:
业务合并模块、用于客户端将相关联的业务组合成一个请求,
第一发送模块、用于客户端将请求发送至服务器,
第一接收模块、用于接收服务器发送的响应,
超时检查模块、用于检查请求是否超时,
丢包检查模块、用于根据特殊标识位的顺序找出未接收到的分包,
所述服务器端包括:
业务拆分模块、用于服务器将据请求,把响应拆分成多个分包分别发送给客户端,并且每个分包都有唯一的特殊标识位,
第二接收模块、用于接收客户端发送的请求,
第二发送模块、用于向接收端发送分包,
重传模块、用于向客户端重传未接收到的分包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710433888.1A CN107342983A (zh) | 2017-06-09 | 2017-06-09 | 一种事务性处理多分包的高效udp通讯的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710433888.1A CN107342983A (zh) | 2017-06-09 | 2017-06-09 | 一种事务性处理多分包的高效udp通讯的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107342983A true CN107342983A (zh) | 2017-11-10 |
Family
ID=60221490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710433888.1A Pending CN107342983A (zh) | 2017-06-09 | 2017-06-09 | 一种事务性处理多分包的高效udp通讯的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107342983A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536779A (zh) * | 2018-03-29 | 2018-09-14 | 努比亚技术有限公司 | 接口合并方法、服务器、终端、系统以及计算机可读介质 |
CN109104379A (zh) * | 2018-06-28 | 2018-12-28 | 山东超越数控电子股份有限公司 | 一种避免udp协议丢包的电路结构及方法 |
CN109726064A (zh) * | 2019-01-08 | 2019-05-07 | 腾讯音乐娱乐科技(深圳)有限公司 | 模拟客户端异常运行的方法、装置、系统及存储介质 |
EP3525412A1 (en) * | 2018-02-08 | 2019-08-14 | Idea Meets Market Beteiligungsgesellschaft mbH | Improved connectionless data transport protocol |
EP3525413A1 (en) * | 2018-02-08 | 2019-08-14 | Idea Meets Market Beteiligungsgesellschaft mbH | Connectionless protocol with bandwidth and congestion control |
CN111597057A (zh) * | 2020-04-08 | 2020-08-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN112286565A (zh) * | 2020-10-30 | 2021-01-29 | 浙江正泰中自控制工程有限公司 | 一种基于存储容器的嵌入式系统差分升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
WO2008100982A1 (en) * | 2007-02-16 | 2008-08-21 | At & T Intellectual Property I, L.P. | Multicast data packet recovery system |
CN101997851A (zh) * | 2009-08-17 | 2011-03-30 | 中兴通讯股份有限公司 | 访问服务端的目录的方法、客户端、服务端及系统 |
CN104486031A (zh) * | 2014-11-21 | 2015-04-01 | 杭州海兴电力科技股份有限公司 | 智能电表的长数据传输方法 |
CN106572135A (zh) * | 2015-10-09 | 2017-04-19 | 北京国双科技有限公司 | 网络请求的处理方法及装置 |
-
2017
- 2017-06-09 CN CN201710433888.1A patent/CN107342983A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008100982A1 (en) * | 2007-02-16 | 2008-08-21 | At & T Intellectual Property I, L.P. | Multicast data packet recovery system |
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
CN101997851A (zh) * | 2009-08-17 | 2011-03-30 | 中兴通讯股份有限公司 | 访问服务端的目录的方法、客户端、服务端及系统 |
CN104486031A (zh) * | 2014-11-21 | 2015-04-01 | 杭州海兴电力科技股份有限公司 | 智能电表的长数据传输方法 |
CN106572135A (zh) * | 2015-10-09 | 2017-04-19 | 北京国双科技有限公司 | 网络请求的处理方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3525412A1 (en) * | 2018-02-08 | 2019-08-14 | Idea Meets Market Beteiligungsgesellschaft mbH | Improved connectionless data transport protocol |
EP3525413A1 (en) * | 2018-02-08 | 2019-08-14 | Idea Meets Market Beteiligungsgesellschaft mbH | Connectionless protocol with bandwidth and congestion control |
CN108536779A (zh) * | 2018-03-29 | 2018-09-14 | 努比亚技术有限公司 | 接口合并方法、服务器、终端、系统以及计算机可读介质 |
CN109104379A (zh) * | 2018-06-28 | 2018-12-28 | 山东超越数控电子股份有限公司 | 一种避免udp协议丢包的电路结构及方法 |
CN109726064A (zh) * | 2019-01-08 | 2019-05-07 | 腾讯音乐娱乐科技(深圳)有限公司 | 模拟客户端异常运行的方法、装置、系统及存储介质 |
CN109726064B (zh) * | 2019-01-08 | 2022-07-15 | 腾讯音乐娱乐科技(深圳)有限公司 | 模拟客户端异常运行的方法、装置、系统及存储介质 |
CN111597057A (zh) * | 2020-04-08 | 2020-08-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN111597057B (zh) * | 2020-04-08 | 2023-05-02 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN112286565A (zh) * | 2020-10-30 | 2021-01-29 | 浙江正泰中自控制工程有限公司 | 一种基于存储容器的嵌入式系统差分升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107342983A (zh) | 一种事务性处理多分包的高效udp通讯的方法及系统 | |
JP4396639B2 (ja) | 路車間通信システム、基地局装置、及び移動局装置 | |
US7965674B2 (en) | Sub-segment based transport layer protocol for wireless medium | |
CN106330414B (zh) | 一种报文传输方法及装置 | |
CN101536417B (zh) | 消除冗余连接的方法 | |
US20190312938A1 (en) | Data Transmission Method And Apparatus | |
EP3054650A1 (en) | Method, device and system for redirecting data service proxy | |
US10284340B2 (en) | Multicast sending apparatus, multicast receiving apparatus, and multicast transmission determining method | |
US8787370B2 (en) | Method and apparatus for transmitting packet switch domain service data | |
JP2004531122A (ja) | ワイアレスパケットデータサービス接続において複数のサービスレベル品質を提供する方法及び装置 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
CN103516673A (zh) | 一种网络数据通信方法、系统及客户端和服务器 | |
EP3488581B1 (en) | EFFICIENT TRANSPORT OF ENCAPSULATED MEDIA TRAFFIC OVER 
A DATAGRAM BASED TRANSPORT LAYER | |
WO2011100911A2 (zh) | 探测处理方法、数据发送端、数据接收端以及通信系统 | |
CN113765976A (zh) | 一种通信方法和系统 | |
CN115118524B (zh) | 接口设备及其物联网自由互通数据透传方法、系统及装置 | |
CN101631127A (zh) | 文件传输方法及客户端 | |
CN102769520A (zh) | 基于sctp协议的无线网络拥塞控制方法 | |
CN107508828A (zh) | 一种超远程数据交互系统及方法 | |
EP3038312A1 (en) | Data transmission method, user equipment and proxy equipment | |
WO2013152614A1 (zh) | 一种基于应用层数据的网络接入系统和方法 | |
WO2022268137A1 (zh) | Tcp连接方法、系统、网络设备及存储介质 | |
CN105228181B (zh) | 一种基于ap优化tcp连接的方法、ap和系统 | |
US20140177575A1 (en) | Method for establishing an application session, device and corresponding notification | |
WO2016154831A1 (zh) | 一种实现传输控制协议tcp传输的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171110 |
|
RJ01 | Rejection of invention patent application after publication |