在非对称传输速率下提高数据传输效率的方法和装置的制作方法

文档序号:7721791阅读:316来源:国知局
专利名称:在非对称传输速率下提高数据传输效率的方法和装置的制作方法
技术领域
本发明涉及通信领域,尤其是涉及涉及在上下行非对称速率下的网络中提高数据 传输效率的方法。
背景技术
移动终端和网络设备作为底层的承载,可以为应用程序提供传输链路,来完成数 据的传输。对于使用TCP/IP协议的应用程序,终端和网络设备之间传递的数据就是IP包。 FTP就是应用程序的一种,在终端和网络之间可以进行两个方向的数据传输,终端向网络传 输数据称为上行数据传输,网络向终端方向的数据传输称为下行数据传输。在基于TCP/IP 的有线或无线网络中,往往会给上、下行数据传输配置不同的速率。举例来说,在电信运营 商所提供的有线宽带业务中,一般下行方向数据速率较快,而上行的速率较慢。在无线网络 中,对于终端与无线设备之间的无线信道来说,每时每刻分配给某个终端的上行和下行资 源都可能是变化的,这也会导致上行速率与下行速率不相等的情况。总体而言,无论在有线 网络还是无线网络中,都会出现上行数据传输速率和下行数据传输速率不对称的情况。这 种非对称传输速率的情况会导致数据传输速率趋向速率较小的那一个,从而无法充分利用 信道资源。下面以无线网络为例来分析这一问题。如图1所示,终端(MQ本身包括非接入层、接入层和物理层,TCP/IP以及应用层 则属于应用程序的范畴,应用程序可以位于诸如个人计算机的计算设备侧。进行上行数据 传输的时候,TCP/IP数据包经过终端的非接入层、接入层和物理层,通过无线信道到达基站 子系统(BSS),后来又经过有线网络和互联网,最终到达应用服务器。下行数据传输则是相 反的过程。在图2所示的现有数据传输方案下,进行对上行数据传输的时候,在终端的协议 层完全是透明的。也就是说,终端根据收到的TCP/IP报文的先后顺序,进行拆包、组包的 操作,然后存放于缓存队列,如果得到物理层的获得上行无线资源的通知,表明可以发送数 据,则从缓存队列中取出数据,经过编码、调制过程,然后通过无线链路发送到网络一侧,在 网络一侧,经过有线网络传输,最终到达应用服务器。在下行数据传输的时候,终端的协议 层对于接收到的数据也完全是透明的,即终端接收到来自空口的消息,经过解调、解码、拆 包、组包的过程,然后依照接收到这些数据块的顺序递交给终端的应用层。而对终端一侧的应用程序和网络一侧的应用程序来说,将根据拥塞窗口和通告窗 口来进行流量控制。其中拥塞窗口是发送方用来进行流量控制的,通告窗口则是接收方用 来进行流量控制的。发送方根据拥塞窗口来决定是否需要继续发送TCP报文给对端,接收方则通过通 告窗口来告诉发送方是否可以继续接收TCP报文,这是TCP/IP协议所规定的。接收方是否 回复确认信息,一方面取决于收到的TCP报文段的个数,另一方面取决于接收方的周期定 时器,这两个条件符合其中一个,就会触发确认信息的传递。
以拥塞窗口是两个报文段的大小为例,拥塞窗口 = 2920字节,通告窗口 =8192字节,报文段长度(LEN) = 1460字节最常见的就是隔一个包确认的情况,这个意思是接收方每收到两个TCP包就回复 一个ACK类型的确认信息。在只有一个方向上有数据传输的情况下,这个过程如图3所示。 可以看到,发送方在发送了两个报文段之后,因为达到了拥塞窗口,停止发送,而在接收方 一侧,在周期性定时器超时之前接收方就收到了两个TCP数据报文段,于是接收方会立即 回复确认报文给发送方,表明收到了这两个TCP数据报文,发送方在收到这个确认信息之 后,继续发送后面的TCP报文段。如果上行和下行FTP是同时进行的,那么在上下行空口速率基本对称的情况下, 发送方和接收方的消息序列如图4所示,上行FTP的数据传输标记为连接1,下行FTP数据 传输标记为连接2。由图中可以看到,在上行方向上,不仅有连接1的上行TCP数据报文段, 还有连接2下行报文的上行确认报文,而数据报文一般来说较长,需要较长的时间才能够 传递到另一端,而确认信息报文较短,传递时间相对较短,在上下行无线资源基本对称的情 况下,从应用层看到的数据传输速率也基本是对称的,无线资源基本上是被充分利用的。而在上下行无线资源不对称的情况下,传输就会出现瓶颈。仍以前述的上行FTP 和下行FTP的TCP参数为例,在一个FTP下载和FTP上传同时存在的情况,在无线资源的分 配上,下行无线资源是上行无线资源的两倍(这一般是通过时隙数的多少来实现的,例如 在GSM系统,上行分配一个时隙,下行分配两个时隙,就会出现下行无线资源是上行无线资 源两倍的情况)。从应用程序来说,只要拥塞窗口没有满,那么就会连续发送TCP数据报文 给承载,这里的承载就是用来发送数据的终端和无线网络子系统,从图5可以看出,由于在 空中接口上,上行方向的速率要比下行方向的速率慢,终端收到了两个下行方向的TCP数 据报文,只发送了一个上行方向的TCP数据报文,虽然收到了两个报文之后,可以产生一个 上行方向的TCP确认报文(ACK)。但是因为上行方向的数据早已从终端一侧的应用程序发 送到了终端承载,进入了缓存队列,ACK报文只能在第二个数据报文之后发送,网络侧在时 间点1和时间点2分别收到了终端发送的TCP数据报文,直到时间点3才收到了 ACK报文, 这使得网络侧因为不能够及时收到ACK报文,拥塞窗口无法移动,就不能继续发送TCP数据 报文,在时间点1和时间点2之间的下行无线资源就被浪费了,直到时间点3之后才能继续 向终端发送TCP数据报文。在上行无线资源是下行无线资源的两倍的情况下,也会发生同 样的问题。在上述现有方案下,虽然上下行的速率都是一直保持着,但是从应用层来看,上行 和下行的速率是基本相同的。从图5可以看出,上下行应用层的数据速率实际上都趋近于 两个方向上较小的一个无线资源的速率。于是整个网络的TCP数据传输效率就降低了。

发明内容
本发明所要解决的技术问题是提供一种在非对称传输速率下提高数据传输效率 的方法和装置。本发明为解决上述技术问题而采用的技术方案是提出一种在非对称传输速率下提高数据传输效率的方法,包括以下步骤在接收数据包后,识别数据包的类型是数据报文 还是控制报文,然后将类型为控制报文的数据包放入一控制队列中,且将类型为数据报文 的数据包放入一数据队列中。在处理数据包时,首先处理并发送控制队列中的数据包,然后 处理并发送数据队列中的数据包。在本发明一实施例中,识别数据包的类型是数据报文还是控制报文的步骤包括 解析数据包的包头部分。在本发明一实施例中,处理控制或数据队列中的数据包的步骤包括拆包和组包。在本发明一实施例中,数据包是TCP/IP协议包。本发明另提供一种在非对称传输速率下提高数据传输效率的装置,包括非接入层 模块、控制缓存、数据缓存、报文解析模块以及接入层处理模块。非接入层模块,用以接收数 据包。控制缓存和数据缓存分别用以存放控制队列和数据队列。报文解析模块可包含在非 接入层模块中,用以识别数据包的类型是数据报文还是控制报文。非接入层模块将类型为 控制报文的数据包放入控制缓存的控制队列中,并且将类型为数据报文的数据包放入数据 缓存的数据队列中。接入层处理模块可处理控制和数据队列中的数据包以生成待发送的数 据包,其中接入层处理模块优先处理控制队列中的数据包,然后处理数据队列中的数据包。在本发明一实施例中,报文解析模块是通过解析数据包的包头部分来识别数据包 的类型是数据报文还是控制报文。在本发明一实施例中,接入层处理模块对控制和数据队列中的数据包进行拆包和组包。在本发明一实施例中,数据包是TCP/IP协议包。在本发明一实施例中,上述装置可为网络中的终端。在本发明另一实施例中,上述 装置可为网络设备。本发明由于采用以上技术方案,使之与现有技术相比,通过配置一个控制缓存并 且为其设置高的优先级。应用层下发的单纯控制报文能够被置于控制缓存中,使得控制报 文能够尽早发送出去。因此,当TCP/IP协议运行在有线或无线网络上的时候,在上下行无 线资源不对称的情况下,可以有效提高网络资源多的一个方向的传输速率,从而有效的提 高了网络资源的利用率。


为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具 体实施方式作详细说明,其中图1示出通过无线终端进行数据传输的协议结构。图2(a)示出一种现有的数据传输方案的装置框图。图2(b)示出一种现有的数据传输方案的方法流程图。图3示出单方向数据发送的TCP消息序列。图4示出双向数据传送时的TCP消息序列。图5示出上下行速率不对称的情况下的消息序列。图6(a)示出本发明一实施例的提高数据传输效率的装置框图。图6(b)示出本发明一实施例的提高数据传输效率的方法的流程图。
图7示出应用本发明一实施例的方法之后在上下行速率不对称的情况下的TCP消 息序列。图8示出根据本发明一实施例的TCP包头的结构。图9示出根据本发明一实施例的IP包头的结构。图10示出根据本发明一实施例的判断TCP/IP包是否为单纯的ACK控制包的过程。
具体实施例方式下面的具体实施方式
和附图详细描述了某些特定细节以提供对在此描述的方法 和系统的各种实施例的理解。某些公知的细节和相关的电子和通信方法在此不再赘述,以 避免不必要地模糊这些各种的实施例。此外,相关领域技术人员可以理解,可以在没有以下 描述的一个或多个细节的情况下实践所描述的方法和系统的其他实施例。具体地说,在此 描述的方法和系统描述了使用TCP/IP协议的无线网络各种实施例,但是也可应用到其他 类型的协议和网络。本发明所描述的方法的一个实例以图1的无线网络作为示例性环境,其中网络中 的终端包含应用层、TCP/IP层、非接入层、接入层和物理层。终端与网络设备,例如基站子 系统之间的信道为无线信道。根据本发明的实施例,对于终端模块来说,缓存队列被分成了 两个类型,一个用来存放TCP数据报文,称为数据缓存队列,另一个用来存放TCP控制报文, 称为控制缓存队列,并且被移到拆包组包模块之前。终端模块首先区分接收到的数据包,例 如TCP/IP报文是TCP数据报文还是单纯的控制报文(如ACK报文),如果是TCP数据报文, 就放进TCP数据缓存队列,如果是单纯的ACK报文,就放进控制缓存队列。终端模块会优先 处理控制缓存队列中的TCP/IP报文,然后再处理控制缓存队列中的TCP/IP报文。通过赋 予控制报文高优先级,能够使诸如ACK报文这样的控制报文尽早发送出去,从而避免因上、 下行速率不对称造成的传输瓶颈。对于网络设备来说,也可以实施同样的方法。图6(a)示出本发明一实施例的提高数据传输效率的装置框图。参照图6(a)所示, 这一装置可以是有线或无线网络中的终端,或者是与前述终端进行数据传输的网络设备。 在装置100中,包含非接入层模块102、数据缓存104、控制缓存106、接入层处理模块108以 及物理层110。在本发明的实施例中,这些模块或组件可以由硬件、软件或者其组合来构建。 非接入层模块102用以接收数据包,例如TCP/IP报文。非接入层模块内可包含报文解析模 ±夬,用以识别数据包的类型是数据报文还是控制报文。在一实施例中,报文类型的识别可通 过解析TCP包的包头来实现。当识别了报文类型后,非接入层模块104可将类型为控制报 文的数据包放入控制缓存106的控制队列中中,而将类型为数据报文的数据包放入数据缓 存104的数据队列中。接入层处理模块108通常为拆包组包模块,其连接到非接入层模块 102和两个缓存104、106,用以处理这些缓存的数据包以生成待发送的数据包。在本实施例 中,接入层处理模块108可被配置为优先处理控制缓存106中的数据包,然后处理数据缓存 108中的数据包。装置的物理层110可包含一个或多个实现物理层的编码、调制等功能的模 块,经过编码、调制的数据会被发送到装置的空中接口。图6(b)示出提高数据传输效率的方法一实施例的详细流程图。这一流程可以适用于如图6(a)所示的装置,例如有线或无线网络中的终端,或者与前述终端进行数据传输 的网络设备。参照图6(b)所示,在步骤S11,接收来自应用层的数据包,例如TCP/IP报文。 在步骤S12,不进行拆包和组包的过程,而是通过解析TCP包的包头来识别数据包是数据报 文还是控制报文(如ACK报文),解析TCP包头的步骤将在后文详细描述。如果在步骤S13 判断出是控制报文,则此数据包会在步骤S14放到控制缓存队列中。否则,数据包会在步骤 S15放到数据缓存队列中。在流程于步骤S16开始的处理部分,当收到物理层的通知,可以发送上行数据的 时候。流程首先于步骤S17察看控制缓存队列之中是否有数据需要发送,如果有的话,就首 先取出(步骤S19),然后经过拆包、组包步骤S21,以及编码调制步骤S22,经空口发送到对 端S23。如果于步骤S17察看控制缓存队列中没有待发的数据的话,那么就继续到步骤S18 察看数据缓存队列中的情况。如果有待发数据的话则取出(步骤S20),经过类似的拆包、组 包步骤S21和编码调制步骤S22,于步骤S23发送到对端。如果数据缓存队列也没有待发数 据,就等待回到步骤Sll来自应用层的新的数据的到来。对于背景技术中描述的非对称传输速率下的双向数据传输例子,使用本发明的实 施例描述的方法,从终端到网络一侧的ACK报文可以在产生之后就立即发送,不用等待之 前已经产生的TCP数据报文,就表现为如图7所示的消息序列。不难发现,在这个消息序列 中,时间点1网络收到了来自终端的上行TCP数据报文,在时间点2’ (这里使用时间点2’ 是为了同图5中的时间点2相区别,显然,时间点2’要比时间点2早)就收到了来自终端 的ACK报文,在时间点3收到了来自终端的下一个上行TCP数据报文,而网络在时间点2’ 之后就能继续向终端发送TCP报文,这使得网络向终端发送数据的速率相对于图5来说明 显提高,要高于终端向网络发送数据的速率,大概是2倍左右。这同上下行无线资源的速率 比例是基本符合的。也就是说,采用本实施例提出的办法,在非对称无线资源的情况下,提 高了无线资源的利用率。根据本发明的实施例,判断TCP包是否为控制包的方法具体描述如下。TCP包由包头(header)和数据构成。TCP包头由不少于5个字节构成,如图8所 示。图中的头长度表示以32比特为单位的TCP包头的长度,A是一个比特,为“1”表示该 TCP包包含一个ACK报文。IP包又由包头部分和数据内容部分两部分构成。其中数据部分包括TCP包。IP 包头由至少5个字节构成,如图9所示。图中的总长表示以字节为单位的IP包的总长度, 头标长表示以32比特为单位的IP包头的长度。需要区分的是单纯的TCP控制报文,也就是说,A比特置为1,并且不存在数据域, 也就是TCP包的数据域部分长度为0。判断报文是否是单纯的TCP控制报文的方法如图10 所示。在本发明实施例中,为了达到控制TCP报文发送顺序的目的,配置一个控制缓存, 并且为其设置了高的优先级。应用层下发的单纯控制报文能够被置于控制缓存中,使得控 制报文能够尽早发送出去。因此,当TCP/IP协议运行在有线或无线网络上的时候,在上下 行无线资源不对称的情况下,可以有效提高网络资源多的一个方向的传输速率,从而有效 的提高了网络资源的利用率。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范 围当以权利要求书所界定的为准。
权利要求
1.一种在非对称传输速率下提高数据传输效率的方法,包括 接收数据包;识别所述数据包的类型是数据报文还是控制报文;将类型为控制报文的数据包放入一控制队列中,且将类型为数据报文的数据包放入数 据队列中;处理并发送控制队列中的数据包;以及 处理并发送数据队列中的数据包。
2.如权利要求1所述的方法,其特征在于,识别所述数据包的类型是数据报文还是控 制报文的步骤包括解析所述数据包的包头部分。
3.如权利要求1所述的方法,其特征在于,处理控制或数据队列中的数据包的步骤包括拆包和组包。
4.如权利要求1所述的方法,其特征在于,所述数据包是TCP/IP协议包。
5.一种在非对称传输速率下提高数据传输效率的装置,包括非接入层模块,用以接收数据包,所述非接入层模块包括报文解析模块,用以识别所述 数据包的类型是数据报文还是控制报文,所述非接入层模块将类型为控制报文的数据包放 入一控制缓存中的控制队列中,并且将类型为数据报文的数据包放入一数据缓存中的数据 队列中;接入层处理模块,用以处理控制和数据队列中的数据包以生成待发送的数据包,其中 所述接入层处理模块优先处理控制队列中的数据包,然后处理数据队列中的数据包。
6.如权利要求5所述的装置,其特征在于,所述报文解析模块通过解析所述数据包的 包头部分来识别所述数据包的类型是数据报文还是控制报文。
7.如权利要求5所述的装置,其特征在于,所述接入层处理模块对控制和数据队列中 的数据包进行拆包和组包。
8.如权利要求5所述的装置,其特征在于,所述数据包是TCP/IP协议包。
9.如权利要求5所述的装置,其特征在于,所述装置为网络中的终端。
10.如权利要求5所述的装置,其特征在于,所述装置为网络设备。
全文摘要
本发明涉及一种在非对称传输速率下提高数据传输效率的方法和装置。该方法包括以下步骤在接收数据包后,识别数据包的类型是数据报文还是控制报文,然后将类型为控制报文的数据包放入一控制队列中,且将类型为数据报文的数据包放入一数据队列中。在处理数据包时,首先处理并发送控制队列中的数据包,然后处理并发送数据队列中的数据包。通过赋予控制报文高优先级,能够使诸如ACK报文这样的控制报文尽早发送出去,从而避免因上、下行速率不对称造成的传输瓶颈。
文档编号H04L12/56GK102118298SQ20091024793
公开日2011年7月6日 申请日期2009年12月31日 优先权日2009年12月31日
发明者朱健安, 李引新, 陈加明 申请人:联芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1