CN103138904A - 报文处理方法、装置及系统 - Google Patents
报文处理方法、装置及系统 Download PDFInfo
- Publication number
- CN103138904A CN103138904A CN2011103919616A CN201110391961A CN103138904A CN 103138904 A CN103138904 A CN 103138904A CN 2011103919616 A CN2011103919616 A CN 2011103919616A CN 201110391961 A CN201110391961 A CN 201110391961A CN 103138904 A CN103138904 A CN 103138904A
- Authority
- CN
- China
- Prior art keywords
- tcp
- message
- tcp message
- buffering area
- sequence number
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种报文处理方法、装置及系统。方法包括:确定待发送的第一传输控制协议TCP报文对应的TCP连接;若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。本发明实施例可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
Description
技术领域
本发明实施例涉及无线通信技术领域,尤其是一种报文处理方法、装置及系统。
背景技术
在宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)与时分同步码分多址(Time Division-Synchronous Code DivisionMultiple Access,简称TD-SCDMA)无线数据网中,用户终端(User Equipment,简称UE)使用传输控制协议(Transmission Control Protocol,简称TCP)与对等端(通常是一台因特网服务器)来完成应用层数据的可靠传输。UE与通用移动通信系统(Universal Mobile Telecommunications System,简称UMTS)陆地无线接入网(UMTS Terrestrial Radio Access Network,简称UTRAN)之间使用无线链路控制(Radio Link Control,简称RLC)确认模式(AcknowledgedMode,简称AM)作为二层传输协议,保证上层数据在UE与UTRAN之间的可靠传输。
由于RLC按照先入先出(First Input First Output,简称FIFO)方式传输来自包括TCP在内的高层数据。当TCP发生重传时,重传的TCP报文在RLC的缓存区中排在队列的最末。这使得重传的TCP报文需要等待较长的时间才能得以传输,从而影响TCP的性能,使应用层观察到的吞吐率出现较大抖动。通常因特网服务器都使用默认的64千字节(Kbytes)的TCP接收窗,在无线链路带宽较小时,如32千比特每秒(kbit/s)或64kbit/s,则TCP层与应用层吞吐率抖动更严重。
举例来说,假设从UE到因特网服务器的TCP流运行在48kbit/s的第三代(3rd Generation,简称3G)无线链路上,因特网服务器通告的通告窗口(Advertised Window),即TCP接收窗大小为64Kbytes,即UE在没有收到相应确认(ACK)时能够发送的最多数据量。假设在时刻1发生了一次TCP数据包丢失,UE在时刻2进行了TCP重传,重传的TCP报文为TCP报文段2。由于UE的RLC缓存中已有64Kbytes数据,TCP报文段2排在RLC缓存的最末,在约11s之后,TCP报文段2才发送到因特网服务器。在时刻3,UE收到了因特网服务器返回的TCP报文段2的确认后才能发送下一个报文段,在时刻2到时刻3之间,UE的上下行吞吐率大为下降。
发明内容
本发明实施例提供一种报文处理方法、装置及系统,用以解决现有技术中重传的TCP报文需等待较长的时间才能得以传输而影响TCP的性能和吞吐率的问题。
一方面,本发明实施例提供了一种报文处理方法,包括:
确定待发送的第一传输控制协议TCP报文对应的TCP连接;
若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
另一方面,本发明实施例提供了一种报文处理装置,包括:
确定模块,用于确定待发送的第一传输控制协议TCP报文对应的TCP连接;
存放模块,用于若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
再一方面,本发明实施例提供了一种报文处理系统,包括:用户终端和因特网服务器,所述用户终端包括第一报文处理装置,所述因特网服务器包括第二报文处理装置,所述第一报文处理装置、第二报文处理装置均为如上所述的装置。
以上多个技术方案中的一个技术方案具有如下优点或有益效果:
本发明实施例采用将待发送的TCP报文的序列号与缓冲区中对应同一TCP连接的TCP报文的序列号进行比较,使得缓冲区中属于同一TCP连接的TCP报文按序列号的顺序存放,序列号越小的报文越先发送的技术手段,当有重传的TCP报文时,由于重传的TCP报文的序列号比缓冲区中对应同一TCP连接的TCP报文的序列号都要小,因此可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
附图说明
图1为本发明实施例提供的一种报文处理方法实施例一的流程示意图。
图2为本发明实施例提供的一种报文处理方法实施例二的流程示意图。
图3为本发明实施例提供的一种报文处理装置实施例的结构示意图。
图4为本发明实施例提供的一种报文处理系统实施例的结构示意图。
具体实施方式
图1为本发明实施例提供的一种报文处理方法实施例一的流程示意图。如图1所示,该方法包括:
步骤101、确定待发送的第一TCP报文对应的TCP连接;
举例来说,报文处理装置确定待发送的第一TCP报文对应的TCP连接。具体地,报文处理装置可以设置在TCP对等端,如用户终端或因特网服务器中。待发送的第一TCP报文可以是第一次发送,也可以是重新发送,及重传。具体地,可以根据所述第一TCP报文的源IP地址、源TCP端口、目的IP地址和目的TCP端口确定所述第一TCP报文对应的TCP连接,即第一TCP报文所属的TCP连接。
步骤102、若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
这里的缓冲区可以为RLC缓存。具体地,可以根据TCP报文中的序列号(Sequence)字段解析获得TCP报文的序列号。若所述缓冲区中没有所述至少一个第二TCP报文,即没有与第一TCP报文属于同一TCP连接且序列号比第一TCP报文大的报文,则将所述第一TCP报文存放在所述缓冲区中最后的位置,即缓冲区中已存放报文的后面。
以使用TCP作为三层协议,RLC协议作为二层协议为例,TCP层将待发送的第一TCP报文传递给RLC层,RLC层在收到TCP层传递的待发送的第一TCP报文后,不是直接将第一TCP报文存放到RLC缓存的最后位置,即RLC缓存中所有已存放报文的后面,而是先确定第一TCP报文对应的TCP连接,然后确定RLC缓存中是否有对应同一TCP连接且序列号比第一TCP报文的序列号大的至少一个第二TCP报文,若有则将第一TCP报文放到至少一个第二TCP报文的前面,这样在将RLC缓存中的报文按FIFO原则发送出去时,第一TCP报文可以更早被发送。
本发明实施例采用将待发送的TCP报文的序列号与缓冲区中对应同一TCP连接的TCP报文的序列号进行比较,使得缓冲区中属于同一TCP连接的TCP报文按序列号的顺序存放,序列号越小的报文越先发送的技术手段,当有重传的TCP报文时,由于重传的TCP报文的序列号比缓冲区中对应同一TCP连接的TCP报文的序列号都要小,因此可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
图2为本发明实施例提供的一种报文处理方法实施例二的流程示意图。本实施例以第一TCP报文重传为例,对实施例一进行扩展。如图2所示,该方法包括:
步骤201、发送第一TCP报文;
具体地,在步骤201之前,还可以执行步骤101、102。
步骤202、在预设时间内未收到所述第一TCP报文的确认消息,确定重新发送所述第一TCP报文;
这个预设时间可以根据TCP对等端之间的网络状况来确定。应用中,可以在发送第一TCP报文的同时开启一个定时器,若定时器到期仍未收到所述第一TCP报文的确认消息,则确定需重新发送第一TCP报文。通常,第一TCP对等端在收到第二TCP对等端发送的TCP报文时,会向发送第二TCP对等端返回该TCP报文的确认(ACK)消息。具体地,若该TCP报文大小为10字节,这10字节的编号为100-109,则该TCP报文的ACK消息中携带编号110,以指示第二TCP对等端发送起始编号为110的下一个TCP报文;若第一TCP对等端未收到起始编号为110的TCP报文,第一TCP对等端会定时向第二TCP对等端返回携带编号110的ACK消息;可选地,第二TCP对等端可以在发出起始编号为110的TCP报文后,计算收到携带编号110的ACK消息的次数,若次数超过预设的阈值,则确定需要重新发送起始编号为110的TCP报文。另外,第一TCP对等端还可以在ACK消息中携带通告窗口(Advertised Window),该通告窗口的值即第二TCP对等端在发送了字节编号为100-109的TCP报文之后、未收到携带编号110的ACK消息之前,能够发送的最大字节数。具体地,若通告窗口大小为50字节,第二TCP对等端发送字节编号为100-109的TCP报文之后,一直到发送最大编号为159的TCP报文后仍未收到携带编号110的ACK消息,而此时50字节的通告窗口已满,则第二TCP对等端无法再继续发送下一个TCP报文了。对于第一TCP对等端来说,在未接收到字节编号为100-109的TCP报文之前,会将接收到的字节编号为110-159的TCP报文放在缓存中,直到接收到字节编号为100-109的报文之后,再一起确认缓存中字节编号为100-159的所有TCP报文。举例来说,第二TCP对等端的缓存中已存放了字节编号为110-120、121-135、136-159的TCP报文,若第二TCP对等端收到了字节编号为100-109的TCP报文,则可以直接向第一TCP对等端返回携带编号160的ACK消息,或者依次返回分别携带编号110、121、136、160的ACK消息。
步骤203、确定所述第一TCP报文对应的TCP连接;
步骤204、判断缓冲区中是否存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,若是则执行步骤205,若否则执行步骤206;
举例来说,第二对等端确定需重新发送字节编号为100-109的第一TCP报文时,已发送了字节编号为110-120的TCP报文,缓存中存放的是字节编号分别为121-135、136-159的TCP报文,若字节编号为136-159的第二TCP报文与字节编号为100-109的第一TCP报文属于同一TCP连接,且序列号小于所述第一TCP报文,则将字节编号为100-109的第一TCP报文放在字节编号为136-159的第二TCP报文之前。
步骤205、将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,执行步骤207;
步骤206、将所述第一TCP报文存放在所述缓冲区中最后的位置;
步骤207、按照FIFO原则发送缓冲区中的报文。
这里缓冲区中的报文包括上述第一TCP报文、至少一个第二TCP报文,以及缓冲区中的其他报文,具体地,缓冲区中其他报文可以是与第一TCP报文属于同一TCP连接但序列号比第一TCP报文小的报文,还可以是与第一TCP报文不属于同一TCP连接的报文,若是第一TCP报文属于同一TCP连接但序列号比第一TCP报文小的报文,则在缓冲区中位于第一TCP报文、至少一个第二TCP报文之前,若是不同属于一个TCP连接的报文,则其在缓冲区中与第一TCP报文、至少一个第二TCP报文的存放顺序,本实施例不限定。
需要说明的是,步骤207实际上是一个持续在执行的步骤,与步骤201~206是并行的,不同的仅是缓冲区中的报文不同。
本发明实施例采用将待发送的TCP报文的序列号与缓冲区中对应同一TCP连接的TCP报文的序列号进行比较,使得缓冲区中属于同一TCP连接的TCP报文按序列号的顺序存放,然后按FIFO原则发送缓冲区中报文的技术手段,当有重传的TCP报文时,由于重传的TCP报文的序列号比缓冲区中对应同一TCP连接的TCP报文的序列号都要小,因此可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
图3为本发明实施例提供的一种报文处理装置实施例的结构示意图。如图3所示,该装置包括:
确定模块31,用于确定待发送的第一TCP报文对应的TCP连接;
存放模块32,用于若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
具体地,存放模块32还可以包括所述缓冲区。
在本发明的一个可选的实施例中,确定模块31具体用于,
根据所述第一TCP报文的源IP地址、源TCP端口、目的IP地址和目的TCP端口确定所述第一TCP报文对应的TCP连接。
在本发明的又一可选的实施例中,该装置还包括:
发送模块33,用于发送所述第一TCP报文;
确定模块31具体用于,若在预设时间内未收到所述第一TCP报文的确认消息,确定重新发送所述第一TCP报文。
在本发明的又一可选的实施例中,存放模块32还用于,
若所述缓冲区中没有所述至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中最后的位置。
本实施例的具体实现参照本发明提供的一种报文处理方法实施例一或实施例二。本发明实施例采用将待发送的TCP报文的序列号与缓冲区中对应同一TCP连接的TCP报文的序列号进行比较,使得缓冲区中属于同一TCP连接的TCP报文按序列号的顺序存放,序列号越小的报文越先发送的技术手段,当有重传的TCP报文时,由于重传的TCP报文的序列号比缓冲区中对应同一TCP连接的TCP报文的序列号都要小,因此可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
图4为本发明实施例提供的一种报文处理系统实施例的结构示意图。如图4所示,该系统包括:用户终端41和因特网服务器42,用户终端41包括第一报文处理装置411,因特网服务器42包括第二报文处理装置421,第一报文处理装置411、第二报文处理装置421均为如本发明实施例提供的一种报文处理装置实施例所述的装置。
具体地,用户终端41和因特网服务器42互为TCP对等端。
本发明实施例采用将待发送的TCP报文的序列号与缓冲区中对应同一TCP连接的TCP报文的序列号进行比较,使得缓冲区中属于同一TCP连接的TCP报文按序列号的顺序存放,序列号越小的报文越先发送的技术手段,当有重传的TCP报文时,由于重传的TCP报文的序列号比缓冲区中对应同一TCP连接的TCP报文的序列号都要小,因此可以将重传的TCP报文存放在缓冲区中较前的位置,使得重传的TCP报文可以更早被发送出去,提高了TCP的性能和吞吐率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种报文处理方法,其特征在于,包括:
确定待发送的第一传输控制协议TCP报文对应的TCP连接;
若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
2.根据权利要求1所述的方法,其特征在于,所述确定待发送的第一传输控制协议TCP报文对应的TCP连接具体包括:
根据所述第一TCP报文的源IP地址、源TCP端口、目的IP地址和目的TCP端口确定所述第一TCP报文对应的TCP连接。
3.根据权利要求1所述的方法,其特征在于,所述确定待发送的第一传输控制协议TCP报文对应的TCP连接之前还包括:
发送所述第一TCP报文;
若在预设时间内未收到所述第一TCP报文的确认消息,确定重新发送所述第一TCP报文。
4.根据权利要求1~3中任一项所述的方法,其特征在于,还包括:
若所述缓冲区中没有所述至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中最后的位置。
5.一种报文处理装置,其特征在于,包括:
确定模块,用于确定待发送的第一传输控制协议TCP报文对应的TCP连接;
存放模块,用于若缓冲区中存放有对应所述TCP连接且序列号大于所述第一TCP报文的序列号的至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中所述至少一个第二TCP报文之前的位置,以使所述第一TCP报文先于所述至少一个第二TCP报文被发送。
6.根据权利要求5所述的装置,其特征在于,所述确定模块具体用于,
根据所述第一TCP报文的源IP地址、源TCP端口、目的IP地址和目的TCP端口确定所述第一TCP报文对应的TCP连接。
7.根据权利要求5所述的装置,其特征在于,还包括:
发送模块,用于发送所述第一TCP报文;
所述确定模块具体用于,若在预设时间内未收到所述第一TCP报文的确认消息,确定重新发送所述第一TCP报文。
8.根据权利要求5~7中任一项所述的装置,其特征在于,所述存放模块还用于,
若所述缓冲区中没有所述至少一个第二TCP报文,则将所述第一TCP报文存放在所述缓冲区中最后的位置。
9.一种报文处理系统,其特征在于,包括:用户终端和因特网服务器,所述用户终端包括第一报文处理装置,所述因特网服务器包括第二报文处理装置,所述第一报文处理装置、第二报文处理装置均为如权利要求5~8中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103919616A CN103138904A (zh) | 2011-11-30 | 2011-11-30 | 报文处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103919616A CN103138904A (zh) | 2011-11-30 | 2011-11-30 | 报文处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103138904A true CN103138904A (zh) | 2013-06-05 |
Family
ID=48498267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103919616A Pending CN103138904A (zh) | 2011-11-30 | 2011-11-30 | 报文处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103138904A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141443A (zh) * | 2006-09-05 | 2008-03-12 | 中兴通讯股份有限公司 | 检测tcp插入式攻击的方法和系统 |
CN101217429A (zh) * | 2008-01-18 | 2008-07-09 | 清华大学 | 基于tcp时间戳选项确定tcp报文之间的引发关系的方法 |
CN101841468A (zh) * | 2010-03-16 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 数据流报文发送控制方法及装置 |
CN101854309A (zh) * | 2010-06-18 | 2010-10-06 | 中兴通讯股份有限公司 | 报文输出的管理方法和装置 |
-
2011
- 2011-11-30 CN CN2011103919616A patent/CN103138904A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141443A (zh) * | 2006-09-05 | 2008-03-12 | 中兴通讯股份有限公司 | 检测tcp插入式攻击的方法和系统 |
CN101217429A (zh) * | 2008-01-18 | 2008-07-09 | 清华大学 | 基于tcp时间戳选项确定tcp报文之间的引发关系的方法 |
CN101841468A (zh) * | 2010-03-16 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 数据流报文发送控制方法及装置 |
CN101854309A (zh) * | 2010-06-18 | 2010-10-06 | 中兴通讯股份有限公司 | 报文输出的管理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2674655C (en) | Improved data transfer method, system and protocol | |
CN102137027B (zh) | 数据的可靠传输方法和装置 | |
US7965674B2 (en) | Sub-segment based transport layer protocol for wireless medium | |
JP5523350B2 (ja) | Tcpフロー制御のための方法及び装置 | |
CA2368770C (en) | Packet discard notification for semi reliable retransmission protocol | |
CN101621368B (zh) | 一种重传数据包的方法、装置及系统 | |
CN106330414A (zh) | 一种报文传输方法及装置 | |
CN101369877B (zh) | 无线传输控制协议处理方法和设备 | |
CA2466231A1 (en) | Time-aware best-effort hole-filling retry method and system for network communications | |
CN102395156A (zh) | 应用于pdcp实体和rlc实体间的数据传输方法及装置 | |
CN107204834A (zh) | 一种基于udt协议的高速网络可靠传输的控制方法 | |
WO2008044653A1 (fr) | Système, périphérique et procédé de communication | |
CN104093170A (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
CN107005560A (zh) | 一种数据发送方法、数据接收方法和相关设备 | |
CN110460412A (zh) | 用于数据传输的方法和rdma网卡 | |
CN104836648A (zh) | 一种rlc am模式的快速重传和反馈的方法 | |
CN104618007B (zh) | 一种同步卫星tcp协议分段连接优化方法 | |
CN101488841A (zh) | 一种无线链路协议帧重传方法及装置 | |
CN102137441B (zh) | 数据传输方法、设备及系统 | |
CN103338184A (zh) | 数据发送方法及装置、数据接收装置以及数据传输系统 | |
CN101369879A (zh) | 一种请求数据重传的方法及装置 | |
CN101883047B (zh) | 多网络接口设备的数据并发传输方法 | |
CN102457387B (zh) | 多播封包的接收方法 | |
CN102457986A (zh) | 终端的上行数据传输方法及终端 | |
CN104426638A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130605 |