CN104253811A - 一种网络包通信方法和系统 - Google Patents
一种网络包通信方法和系统 Download PDFInfo
- Publication number
- CN104253811A CN104253811A CN201410006305.3A CN201410006305A CN104253811A CN 104253811 A CN104253811 A CN 104253811A CN 201410006305 A CN201410006305 A CN 201410006305A CN 104253811 A CN104253811 A CN 104253811A
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- network packet
- length
- client
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种网络包通信方法,包括:客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;客户端发送网络包到服务端;服务端将相同消息ID的网络包中的数据内容组装形成数据包。本申请还提供了对应的系统。本发明通过将超过标准长度的消息拆分成多个标准长度的消息并打包发送到服务端,避免了出现长消息拆分成子消息之后必须排队发送的过程,提高了效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种网络包通信方法和系统。
背景技术
在通信领域,大多数通信都利用TCP协议进行,但是在TCP协议中规定了一条消息的最大长度是65536字节。如果消息长度超过65536字节则需要将该消息拆分成多个消息,然后按照固定顺序传送。
在实际使用中,本发明的发明人发现,在超过长度的消息拆分发送过程中,如果拆分的子消息由于连接不稳定或者其它原因导致有一条子消息发送不成功,则后续子消息必须等待该子消息重新发送成功才能进入发送;这样的发送方式在消息长度特别大或者消息数量比较多的情况下效率比较低。
发明内容
本申请所要解决的技术问题是提供一种可以发送超过标准长度的网络包通信方法以及对应的装置。
为了解决上述问题,本申请公开了一种网络包通信方法,包括:
客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;
客户端发送网络包到服务端;
服务端将相同消息ID的网络包中的数据内容组装形成数据包。
进一步,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包后还包括:
服务端处理所述数据包,并将结果返回到客户端。
进一步,所述客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包包括:
客户端将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
客户端将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
进一步,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包包括:
服务端将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
本申请还提供了一种网络包通信系统,包括:
客户端,用于封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;发送网络包
服务端,用于将相同消息ID的网络包中的数据内容组装形成数据包。
进一步,所述服务端还用于处理所述数据包,并将结果返回到客户端。
进一步,所述客户端还用于:
将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
进一步,所述服务端还用于:
将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
与现有技术相比,本申请包括以下优点:通过将超过标准长度的消息拆分成多个标准长度的消息并打包发送到服务端,避免了出现长消息拆分成子消息之后必须排队发送的过程,提高了效率。
附图说明
图1是本发明一种网络包通信方法一实施例的流程图;
图2是本发明一种网络包通信系统一实施例的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种网络包通信方法一实施例的流程图;
本发明实施例提供的网络包通信方法,包括:
步骤S101、客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;
进一步,所述客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包包括:
客户端将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
客户端将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
客户端即将通过TCP协议发送数据包时,先判断该数据包是否超过65536字节,如果超过65536字节则将该数据包进行分拆。在分拆过程中例如该数据包需要分拆成3个子消息才能满足三个子消息在封装后都小于或等于65536字节,则将该消息分拆为三个子消息,进行封装形成数据包。在封装形成的数据包中,至少应该包含该子消息所属的数据包的消息ID、分拆前的数据包的消息长度和子消息的数据内容。值得说明的是,本发明实施例在实际应用时,客户端可以是包含本端应用软件和通信设备的一个整体。
步骤S102、客户端发送网络包到服务端;
客户端在发送封装完成的网络包时,无需按照子消息在数据包中的前后顺序进行发送,只需按照预置规则排队发送即可。如果发送过程中,某一个网络包发送失败,后续网络包无需等待可以先行发送,等第二次发送成功后再将之前发送失败的网络包发送。
步骤S103、服务端将相同消息ID的网络包中的数据内容组装形成数据包。
进一步,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包后还包括:
服务端处理所述数据包,并将结果返回到客户端。
进一步,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包包括:
服务端将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
服务端获取到同一消息ID下所有网络包后,判断所有网络包中数据内容的长度相加所得的结果是否与网络包中的消息长度一致,如果一致则判断同一消息ID下所有网络包接收完成。当所有网络包接收完成之后,服务端将所有网络包中的数据内容解析出,然后封装成数据包。
本发明实施例通过将超过标准长度的消息拆分成多个标准长度的消息并打包发送到服务端,避免了出现长消息拆分成子消息之后必须排队发送的过程,提高了效率。
参照图2为本发明一种网络包通信系统一实施例的结构示意图。
本申请提供一种网络包通信系统,包括:
客户端21,用于封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;
服务端22,用于接收网络包;将相同消息ID的网络包中的数据内容组装形成数据包。
进一步,所述服务端22还用于处理所述数据包,并将结果返回到客户端21。
进一步,所述客户端21还用于:
将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
进一步,所述服务端22还用于:
将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
客户端21即将通过TCP协议发送数据包时,先判断该数据包是否超过65536字节,如果超过65536字节则将该数据包进行分拆。在分拆过程中例如该数据包需要分拆成3个子消息才能满足三个子消息在封装后都小于或等于65536字节,则将该消息分拆为三个子消息,进行封装形成数据包。在封装形成的数据包中,至少应该包含该子消息所属的数据包的消息ID、分拆前的数据包的消息长度和子消息的数据内容。值得说明的是,本发明实施例在实际应用时,客户端21可以是包含本端应用软件和通信设备的一个整体。
客户端21在发送封装完成的网络包时,无需按照子消息在数据包中的前后顺序进行发送,只需按照预置规则排队发送即可。如果发送过程中,某一个网络包发送失败,后续网络包无需等待可以先行发送,等第二次发送成功后再将之前发送失败的网络包发送。
服务端22获取到同一消息ID下所有网络包后,判断所有网络包中数据内容的长度相加所得的结果是否与网络包中的消息长度一致,如果一致则判断同一消息ID下所有网络包接收完成。当所有网络包接收完成之后,服务端22将所有网络包中的数据内容解析出,然后封装成数据包。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种网络包通信方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种网络包通信方法,其特征在于,包括:
客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;
客户端发送网络包到服务端;
服务端将相同消息ID的网络包中的数据内容组装形成数据包。
2.根据权利要求1所述的方法,其特征在于,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包后还包括:
服务端处理所述数据包,并将结果返回到客户端。
3.根据权利要求2所述的方法,其特征在于,所述客户端封装数据包形成至少包含消息ID、消息长度和数据内容的网络包包括:
客户端将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
客户端将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
4.根据权利要求3所述的方法,其特征在于,所述服务端将相同消息ID的网络包中的数据内容组装形成数据包包括:
服务端将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
5.一种网络包通信系统,其特征在于,包括:
客户端,用于封装数据包形成至少包含消息ID、消息长度和数据内容的网络包;发送网络包;
服务端,用于将相同消息ID的网络包中的数据内容组装形成数据包。
6.根据权利要求5所述的系统,其特征在于,所述服务端还用于处理所述数据包,并将结果返回到客户端。
7.根据权利要求6所述的系统,其特征在于,所述客户端还用于:
将长度大于预设阈值的数据包拆分成至少两个长度小于等于预设阈值的子数据包;
将所述子数据包按顺序封装成包含消息ID、消息长度和数据内容的网络包;所述子数据包封的消息ID相同。
8.根据权利要求7所述的系统,其特征在于,所述服务端还用于:
将消息ID相同的网络包进行解析获取子数据包;
将所述子数据包组装形成数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410006305.3A CN104253811A (zh) | 2014-01-07 | 2014-01-07 | 一种网络包通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410006305.3A CN104253811A (zh) | 2014-01-07 | 2014-01-07 | 一种网络包通信方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104253811A true CN104253811A (zh) | 2014-12-31 |
Family
ID=52188348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410006305.3A Pending CN104253811A (zh) | 2014-01-07 | 2014-01-07 | 一种网络包通信方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104253811A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108471399A (zh) * | 2018-02-07 | 2018-08-31 | 平安科技(深圳)有限公司 | 一种反洗钱作业中数据包的生成方法、存储介质和服务器 |
CN110611644A (zh) * | 2018-06-15 | 2019-12-24 | 视联动力信息技术股份有限公司 | 一种数据的传输方法和装置 |
US12010008B2 (en) | 2017-12-29 | 2024-06-11 | Alibaba Group Holding Limited | Network communication method and apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547348A (zh) * | 2003-12-10 | 2004-11-17 | 中国科学院计算技术研究所 | 基于智能网卡的计算机间用户级并行通信的方法 |
CN101119219A (zh) * | 2007-09-12 | 2008-02-06 | 中兴通讯股份有限公司 | 一种广播组播业务中数据传输的实现方法及系统 |
CN101931919A (zh) * | 2010-08-18 | 2010-12-29 | 中国电信股份有限公司 | 长短信发送处理方法与装置、业务网关及通信系统 |
-
2014
- 2014-01-07 CN CN201410006305.3A patent/CN104253811A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547348A (zh) * | 2003-12-10 | 2004-11-17 | 中国科学院计算技术研究所 | 基于智能网卡的计算机间用户级并行通信的方法 |
CN101119219A (zh) * | 2007-09-12 | 2008-02-06 | 中兴通讯股份有限公司 | 一种广播组播业务中数据传输的实现方法及系统 |
CN101931919A (zh) * | 2010-08-18 | 2010-12-29 | 中国电信股份有限公司 | 长短信发送处理方法与装置、业务网关及通信系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12010008B2 (en) | 2017-12-29 | 2024-06-11 | Alibaba Group Holding Limited | Network communication method and apparatus |
CN108471399A (zh) * | 2018-02-07 | 2018-08-31 | 平安科技(深圳)有限公司 | 一种反洗钱作业中数据包的生成方法、存储介质和服务器 |
CN108471399B (zh) * | 2018-02-07 | 2020-06-26 | 平安科技(深圳)有限公司 | 一种反洗钱作业中数据包的生成方法、存储介质和服务器 |
CN110611644A (zh) * | 2018-06-15 | 2019-12-24 | 视联动力信息技术股份有限公司 | 一种数据的传输方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN108270732B (zh) | 一种流媒体处理方法及系统 | |
CN104937896B (zh) | 地址解析协议消息的处理方法和转发器、控制器 | |
CN108521343B (zh) | 一种oam报文的处理方法及装置 | |
US20170085473A1 (en) | OPENFLOW Communication Method and System, Controller, and Service Gateway | |
WO2017198236A1 (zh) | 数据发送方法、装置及系统 | |
CN109547162B (zh) | 基于两套单向边界的数据通信方法 | |
CN104158625B (zh) | 一种地铁调度通信的信息传输分发方法 | |
CN107948217B (zh) | 交换机系统和通信方法 | |
WO2016062142A1 (zh) | 报文汇聚传输的方法、装置和系统 | |
US10980043B2 (en) | Data transmission method and device, and base station | |
US20180109451A1 (en) | Protocol frame transmission method, apparatus, and system, and node device | |
CN109120540A (zh) | 传输报文的方法、代理服务器和计算机可读存储介质 | |
EP2913977A2 (en) | Resource information acquisition method, system and device for internet of things terminal device | |
CN104253811A (zh) | 一种网络包通信方法和系统 | |
EP3672189B1 (en) | Data transmission method, device and system | |
CN108696900A (zh) | 一种数据包的封装方法、解析方法、装置及设备 | |
CN107995315B (zh) | 业务板间信息的同步方法、装置、存储介质及计算机设备 | |
CN109067922A (zh) | 一种数据传输方法及装置 | |
US9762353B2 (en) | Data packet for bidirectional transmission of data packets during data transmission between a first and a second communication appliance, and method for transmitting such a data packet | |
CN118200253A (zh) | 面向rdma ud传输的可靠通信方法、电子设备及可读介质 | |
CN112118594A (zh) | 数据上传方法、下载方法、电子设备及存储介质 | |
EP2876830A1 (en) | Data transmission method and device | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 | |
CN114846774B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141231 |
|
RJ01 | Rejection of invention patent application after publication |