CN103179087A - 应用层到TCP层异步Socket数据传输方法及系统 - Google Patents

应用层到TCP层异步Socket数据传输方法及系统 Download PDF

Info

Publication number
CN103179087A
CN103179087A CN2011104318611A CN201110431861A CN103179087A CN 103179087 A CN103179087 A CN 103179087A CN 2011104318611 A CN2011104318611 A CN 2011104318611A CN 201110431861 A CN201110431861 A CN 201110431861A CN 103179087 A CN103179087 A CN 103179087A
Authority
CN
China
Prior art keywords
data
application layer
layer
out step
sent
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
Application number
CN2011104318611A
Other languages
English (en)
Other versions
CN103179087B (zh
Inventor
徐新
吴建俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI FLEETY COMMUNICATIONS CO Ltd
Original Assignee
SHANGHAI FLEETY COMMUNICATIONS CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI FLEETY COMMUNICATIONS CO Ltd filed Critical SHANGHAI FLEETY COMMUNICATIONS CO Ltd
Priority to CN201110431861.1A priority Critical patent/CN103179087B/zh
Publication of CN103179087A publication Critical patent/CN103179087A/zh
Application granted granted Critical
Publication of CN103179087B publication Critical patent/CN103179087B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本申请公开了一种应用层到TCP层异步Socket数据传输方法,数据推送到TCP层有两个流程:应用层调用触发以及数据发送驱动触发;应用层调用触发,在接收到应用层的发送调用后,如果缓存器中不存在数据,则直接把待发送数据推送到TCP层,如果缓存器中存在数据并且应用层的待发送数据的大小小于缓存器的剩余存储空间,则将待发送数据将保存进缓存;等待下次应用层调用触发或数据发送驱动触发时再行发送;数据发送驱动触发,每隔一定的时间检查缓存器是否存有数据,如果存有数据,则推送数据到TCP层。本申请还公开了一种应用层到TCP层异步Socket数据传输系统。本申请,能保障TCP/IP协议在应用层发送数据时,在异步Socket传输中,完整的提交应用层协议数据到TCP层。

Description

应用层到TCP层异步Socket数据传输方法及系统
技术领域
本申请涉及半导体网络通信技术,特别涉及一种应用层到TCP层异步Socket数据传输方法及系统。
背景技术
TCP/IP协议保障了数据传输的到达和准确率,但未对应用层数据提交的完整性进行保障。
在进行TCP数据流式传输的过程中,数据通常具备应用层协议,同步Socket中,在应用层发送数据时,会阻塞调用,直到所有的数据都提交到TCP层,但在异步Socket中,TCP层只接收能接收的数据容量,对于超出其接收范围的,TCP层将不再接收,调用会立即返回。在TCP层进行数据远程发送后,会空闲出空间,此时能够再次接收外来数据,但需要应用方再次调用进行数据提交,方能提交数据到TCP层。可见TCP/IP协议在应用层发送数据时,无法保障在异步Socket传输中,完整的提交应用层协议数据到TCP层。例如,在GPRS(General Packet Radio Service,通用分组无线服务技术)的网络传输中,5KB/S的数据带宽即可造成网络的阻塞,进而造成到达TCP层的应用层协议数据的不完整。
发明内容
本申请要解决的技术问题是,保障TCP/IP协议在应用层发送数据时,在异步Socket传输中,完整的提交应用层协议数据到TCP层。
为解决上述技术问题,本申请提供了一种应用层到TCP层异步Socket数据传输方法,包括以下步骤:
一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;
三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四;
四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;
五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;
七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;
八.保存待发送数据到所述缓存器,然后进行步骤二;
九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。
为解决上述技术问题,本申请还提供了一种应用层到TCP层异步Socket数据传输系统,包括缓存器、数据发送驱动模块、应用层调用接口模块、数据控制模块;
所述缓存器,用于缓存发送数据;
所述数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
所述应用层调用接口模块,用于接收应用层的发送调用。
所述数据控制模块,用于在所述应用层调用接口模块接收到应用层的发送调用后,控制将应用层的待发送数据直接推送到TCP层,或者保存到所述缓存器。
所述数据控制模块的具体工作过程如下:
一.如果所述应用层调用接口模块接收到应用层的发送调用,则进行步骤二;
二.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果未超过则进行步骤三;
三.判断所述缓存器中是否缓存有数据,如果有则进行步骤四,否则进行步骤八;
四.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
五.判断所述缓存器中是否还缓存有数据,如果有则进行步骤六,否则进行步骤八;
六.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果未超过则进行步骤七;
七.保存待发送数据到所述缓存器;
八.推送不超过设定量的待发送数据到TCP层,如果待发送数据未能全部推送完毕,则将剩余的待发送数据保存到所述缓存器。
本申请的应用层到TCP层异步Socket数据传输方法及系统,应用层的待发送数据可能直接被提交到TCP层,也可能被缓存到缓存器中,甚至可能部分被提交进TCP层,部分缓存在缓存器。被缓存在缓存器中的数据,无需应用层的干预,将会随着TCP层的数据空间的空闲,主动被推送进TCP层。本申请的应用层到TCP层异步Socket数据传输方法及系统,能控制TCP/IP协议应用层的待发送数据完整进入或完全不进入TCP层,并为数据主动推送到TCP层提供驱动能力,从而在异步Socket的数据发送中,保障了应用层数据发送的完整性。
附图说明
为了更清楚地说明本申请的技术方案,下面对本申请所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的应用层到TCP层异步Socket数据传输方法一实施例示意图;
图2是本申请的应用层到TCP层异步Socket数据传输系统一实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
应用层到TCP层异步Socket数据传输方法,如图1所示,包括以下步骤:
一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;
三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间(如100KB),如果超过则进行步骤二,否则进行步骤四;
四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;
五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;
七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;
八.保存待发送数据到所述缓存器,然后进行步骤二;
九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。
该应用层到TCP层异步Socket数据传输方法,数据推送到TCP层有两个流程:应用层调用触发以及数据发送驱动触发。
应用层调用触发,在接收到应用层的发送调用后,首先对应用层的待发送数据的大小进行判断,如果数据量过大,超出了应用层缓存器的总存储空间,将不对该待发送数据进行发送,因为一旦发送一个字节后,剩余的字节无法保存进入缓存器中,那么后续的数据将无法保存进缓存,从而无法对待发送数据的完整性提供保障。如果应用层的待发送数据的大小超过了缓存器的剩余存储空间,因上述同样的原因,同样将不对该待发送数据进行发送。当从所述缓存器中推送设定量数据到TCP层后,如果缓存器中还存在数据,那么待发送数据将直接保存进缓存;如果缓存器中不存在数据,则直接把待发送数据推送到TCP层,如果不能全部推送,剩余的数据将保存到缓存器中,等待下次再触发(应用层调用触发或数据发送驱动触发)时再行发送。
数据发送驱动触发,每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层。
实施例二
应用层到TCP层异步Socket数据传输系统,如图2所示,包括缓存器、数据发送驱动模块、应用层调用接口模块、数据控制模块;
所述缓存器,用于缓存发送数据;
所述数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
所述应用层调用接口模块,用于接收应用层的发送调用,所述应用层调用接口模块提供基于不同数据结构的多个应用层发送调用接口。
所述数据控制模块,用于在所述应用层调用接口模块接收到应用层的发送调用后,控制将应用层的待发送数据直接推送到TCP层,或者保存到所述缓存器,具体工作过程如下:
一.如果所述应用层调用接口模块接收到应用层的发送调用,则进行步骤二;
二.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间(如100KB),如果未超过则进行步骤三;
三.判断所述缓存器中是否缓存有数据,如果有则进行步骤四,否则进行步骤八;
四.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
五.判断所述缓存器中是否还缓存有数据,如果有则进行步骤六,否则进行步骤八;
六.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果未超过则进行步骤七;
七.保存待发送数据到所述缓存器;
八.推送不超过设定量的待发送数据到TCP层,如果待发送数据未能全部推送完毕,则将剩余的待发送数据保存到所述缓存器。
该应用层到TCP层异步Socket数据传输系统,所述数据控制模块对由所述应用层调用接口模块传递进来的应用层的待发送数据,进行数据流程的控制。如果一次性发送数据量过大或者当前的缓存器剩余存储空间不足以放置待发送数据,数据将不被发送,否则如果缓存器中缓存有数据,则将先推送缓存器中的数据到TCP层,然后再发送当前应用层调用接口模块传递进来的应用层的待发送数据接口提交的数据。所述缓存器用于缓存应用层的待发送数据,如果应用层的数据发送速度不过高,通常该缓存器中不会有数据,但是如果发送的数据发送速度过高,那么在该缓存器中存放未能推送到TCP层的数据。所述数据发送驱动模块主要用于对缓存器中的数据进行主动推送,从而在无需应用层干预的情况下,达到对数据发送的主动驱动。
本申请的应用层到TCP层异步Socket数据传输方法及系统,应用层的待发送数据可能直接被提交到TCP层,也可能被缓存到缓存器中,甚至可能部分被提交进TCP层,部分缓存在缓存器。被缓存在缓存器中的数据,无需应用层的干预,将会随着TCP层的数据空间的空闲,主动被推送进TCP层。本申请的应用层到TCP层异步Socket数据传输方法及系统,能控制TCP/IP协议应用层的待发送数据完整进入或完全不进入TCP层,并为数据主动推送到TCP层提供驱动能力,从而在异步Socket的数据发送中,保障了应用层数据发送的完整性。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (6)

1.一种应用层到TCP层异步Socket数据传输方法,其特征在于,包括以下步骤:
一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;
三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四;
四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;
五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;
七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;
八.保存待发送数据到所述缓存器,然后进行步骤二;
九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。
2.根据权利要求1所述的应用层到TCP层异步Socket数据传输方法,其特征在于,所述缓存器的总存储空间为100KB。
3.一种应用层到TCP层异步Socket数据传输系统,其特征在于,包括缓存器、数据发送驱动模块、应用层调用接口模块、数据控制模块;
所述缓存器,用于缓存发送数据;
所述数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;
所述应用层调用接口模块,用于接收应用层的发送调用。
所述数据控制模块,用于在所述应用层调用接口模块接收到应用层的发送调用后,控制将应用层的待发送数据直接推送到TCP层,或者保存到所述缓存器。
4.根据权利要求3所述的应用层到TCP层异步Socket数据传输系统,其特征在于,
所述数据控制模块的具体工作过程如下:
一.如果所述应用层调用接口模块接收到应用层的发送调用,则进行步骤二;
二.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果未超过则进行步骤三;
三.判断所述缓存器中是否缓存有数据,如果有则进行步骤四,否则进行步骤八;
四.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;
五.判断所述缓存器中是否还缓存有数据,如果有则进行步骤六,否则进行步骤八;
六.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果未超过则进行步骤七;
七.保存待发送数据到所述缓存器;
八.推送不超过设定量的待发送数据到TCP层,如果待发送数据未能全部推送完毕,则将剩余的待发送数据保存到所述缓存器。
5.根据权利要求3所述的应用层到TCP层异步Socket数据传输系统,其特征在于,所述应用层调用接口模块提供基于不同数据结构的多个应用层发送调用接口。
6.根据权利要求3所述的应用层到TCP层异步Socket数据传输系统,其特征在于,所述缓存器的总存储空间为100KB。
CN201110431861.1A 2011-12-21 2011-12-21 应用层到TCP层异步Socket数据传输方法及系统 Expired - Fee Related CN103179087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110431861.1A CN103179087B (zh) 2011-12-21 2011-12-21 应用层到TCP层异步Socket数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110431861.1A CN103179087B (zh) 2011-12-21 2011-12-21 应用层到TCP层异步Socket数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN103179087A true CN103179087A (zh) 2013-06-26
CN103179087B CN103179087B (zh) 2016-07-06

Family

ID=48638713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110431861.1A Expired - Fee Related CN103179087B (zh) 2011-12-21 2011-12-21 应用层到TCP层异步Socket数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN103179087B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187506A (zh) * 2015-08-12 2015-12-23 深圳市广和通无线股份有限公司 无线通讯模块的数据上传方法
CN105530713A (zh) * 2014-09-28 2016-04-27 中兴通讯股份有限公司 一种基于多无线连接的数据传输方法和装置
CN105791230A (zh) * 2014-12-24 2016-07-20 常熟市盛铭信息技术有限公司 一种异步iocp实现的sokcet通信设计方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087314A (zh) * 2007-05-15 2007-12-12 华为技术有限公司 一种应用程序跨进程使用套接字服务的系统及方法
US20080013448A1 (en) * 2006-07-11 2008-01-17 Sony Computer Entertainment Inc. Network Processor System and Network Protocol Processing Method
CN101247319A (zh) * 2007-02-16 2008-08-20 华为技术有限公司 处理异步消息队列的方法、系统和异步socket

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080013448A1 (en) * 2006-07-11 2008-01-17 Sony Computer Entertainment Inc. Network Processor System and Network Protocol Processing Method
CN101247319A (zh) * 2007-02-16 2008-08-20 华为技术有限公司 处理异步消息队列的方法、系统和异步socket
CN101087314A (zh) * 2007-05-15 2007-12-12 华为技术有限公司 一种应用程序跨进程使用套接字服务的系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530713A (zh) * 2014-09-28 2016-04-27 中兴通讯股份有限公司 一种基于多无线连接的数据传输方法和装置
CN105530713B (zh) * 2014-09-28 2020-12-11 中兴通讯股份有限公司 一种基于多无线连接的数据传输方法和装置
CN105791230A (zh) * 2014-12-24 2016-07-20 常熟市盛铭信息技术有限公司 一种异步iocp实现的sokcet通信设计方法
CN105187506A (zh) * 2015-08-12 2015-12-23 深圳市广和通无线股份有限公司 无线通讯模块的数据上传方法

Also Published As

Publication number Publication date
CN103179087B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN101877604B (zh) 一种传输文件的方法及系统
CN102394925B (zh) 远程监测诊断中心与地区调度中心的通讯方法及装置
CN102148662B (zh) 一种数据发送速率的调整方法及装置
CN104378308A (zh) 报文发送速率检测方法及装置
CN106953797B (zh) 一种基于动态连接的rdma数据传输的方法与装置
CN109547162B (zh) 基于两套单向边界的数据通信方法
CN101977358A (zh) 一种数据短信的传输方法、装置及设备
CN109714267A (zh) 管理反向队列的传输控制方法及系统
CN103746938A (zh) 一种发送数据包的方法及装置
CN103546258A (zh) 一种数据传输方法及装置
CN100553189C (zh) 基于缓冲管理的多链路冗余的实现方法
CN102340734A (zh) 定位应用管理方法及装置
CN105141603A (zh) 通信数据传输方法及系统
CN103036885B (zh) Sip服务器过载保护系统及方法
CN102957626A (zh) 一种报文转发方法和装置
CN101146050B (zh) 帧中继报文传输方法和设备
CN103179087A (zh) 应用层到TCP层异步Socket数据传输方法及系统
CN102104552A (zh) 基于明确拥塞通知机制的报文控制方法及设备
CN103617132B (zh) 一种基于共享存储的以太网终端发送实现方法及终端装置
CN103297384A (zh) 协议转换的通信方法及系统
CN103124400A (zh) 短信缓存方法及系统
CN101079815B (zh) 报文转换方法、系统及装置
CN102694727A (zh) 实现网络数据包转发加速的方法及装置
CN102299861A (zh) 一种报文流量控制方法
CN102387012A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706

CF01 Termination of patent right due to non-payment of annual fee