一种确定报文的最大容量的方法及装置的制作方法

文档序号:7550501阅读:217来源:国知局
专利名称:一种确定报文的最大容量的方法及装置的制作方法
技术领域
本发明涉及移动通信领域,尤其涉及一种确定报文的最大容量的方法及装置
背景技术
基站中NP (Network Processor,网络处理器)处理器的 MTU (MaximumTransformUnit,最大传输单元)为1500字节,即能够通过的最大数据包的字节大小为1500字节。以上行方向为例,UE(UserEquipment,用户设备)发送的 IP(InternetProtocol,网络互连协议)包,进入基站后,经过站内的处理器会加上GTPU(GPRS TunnellingProtocol User, GPRS隧道协议用户面)头(8字节)和基站内部通信的UDP (User DatagramPacket,用户数据报)/IP头(28字节),基站内部各个节点的MTU为1500字节,因此只要UE发送的IP包大于1464 (1500-28-8)处理器就会分片,将分片包送给NP,NP会对分片包进行重组并修改为局间(NB(NodeB,基站)与EPC(Evolved Packet Core,演进分组核心)之间)通信的Μ)Ρ/ΙΡ头,再根据本身的MTU再进行分片,发送到EPC(Ev0lvedPaCket Core,演进分组核心),如图1所示。同理,下行方向,由EPC加上UDP/IP头和GTPU头,送往基站。如果通信两端(业务服务器和UE终端)的MTU为1500,NP处理器一定会进入分片重组流程。那么就需要保证通信两端发送报文长度最大不能超过1464 (1500-28 (UDP/IP)-8 (GTPU))字节。另外,在通信两端传输TCP (Transmission Control Protocol,传输控制协议)报文时,也会存在类似的NP处理器需要进行分片重组的问题。NP处理器的进行二次重组和分片的功能很弱,传输性能很低,而现有技术中通信两端的报文的最大容量的取值不会考虑到NP处理器的需求;因此,现有技术中基站的传输性能较低。

发明内容
本发明实施例提供了一种确定报文的最大容量的方法及装置,用以避免基站内部的NP处理器对报文进行分片重组,提高基站传输效率。本发明实施例提供的一种确定报文的最大容量的方法包括:接收发送端发送的报文;当确定接收的报文为包含MSS (Maximum Segment Size,最大分段大小)值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;向接收端发送该TCP报文,其中携带调整后的MSS值。本发明实施例提供的另一种确定报文的最大容量的方法包括:接收发送端发送的报文;比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。
本发明实施例提供的一种确定报文的最大容量的装置包括:报文接收单元,用于接收发送端发送的报文;容量调整单元,用于当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;报文发送单元,用于向接收端发送该TCP报文,其中携带调整后的MSS值。本发明实施例提供的另一种确定报文的最大容量的装置包括:报文接收单元,用于接收发送端发送的报文;容量调整单元,用于比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。通过以上技术方案可知,本发明中接收发送端发送的报文;当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;向接收端发送该TCP报文,其中携带调整后的MSS值。在传输TCP报文的过程中,基站可以主动修改通信两端所协商的MSS值,使得该MSS值满足基站需求,提高了后续基站传输TCP报文时的效率。另外,本发明中接收发送端发送的报文;比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。在接收到大容量报文时,向发送端主动反馈控制报文,令发送端调整发送的报文的大小,提高了后续基站传输该发送端的报文的效率。


图1为现有技术中NP分片重组报文的示意图;图2为本发明实施例提供的一种确定报文的最大容量的方法的流程示意图;图3为本发明实施例提供的另一种确定报文的最大容量的方法的流程示意图;图4为本发明具体实施例提供的一种确定报文的最大容量的方法的流程示意图;图5为本发明具体实施例提供的另一种确定报文的最大容量的方法的流程示意图;图6为本发明实施例提供的一种确定报文的最大容量的装置的结构示意图;图7为本发明实施例提供的另一种确定报文的最大容量的装置的结构示意图。
具体实施例方式本发明实施例提供了一种确定报文的最大容量的方法及装置,用以避免基站内部的NP处理器对报文进行分片重组,提高基站传输效率。MSS和MTU分别为TCP报文和UDP报文单个数据包的最大容量。参见图2,本发明实施例提供的一种确定报文的最大容量的方法包括:S201、接收发送端发送的报文;S202、当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;S203、向接收端发送该TCP报文,其中携带调整后的MSS值。较佳的,所述预设容量门限值为NP不需要进行分片重组时的报文的最大容量值。较佳的,所述包含MSS值的TCP报文,为:同步SYN报文,或者同步确认SYNACK报文。TCP连接的三次握手流程为同步SYN(SYNchronization)、SYN确认ACK(ACKnowledgement), ACK。发送的双方均会在建立连接的过程中将自身的MSS值写在SYN或SYN ACK类型TCP报文的选项Options字段中,双方经过协商后,取最小的MSS值作为传输时报文的最大分段大小。因此只要改小通信一端的MSS,TCP协议会自动根据协商,选择最小的MSS来传输。本方案中基站监听TCP三次握手的过程,将两端发出的SYN和SYN ACK报文中的MSS字段值改写为基站期望的大小,再发送到接收端。较佳的,所述将该报文的MSS值调整为预设容量门限值之后,该方法还包括:根据调整后的MSS值,调整该报文的校验和。参见图3,本发明提供的一种确定报文的最大容量的方法包括:S301、接收发送端发送的报文;S302、比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。较佳的,所述预设容量门限值为NP不需要进行分片重组时的报文的最大容量值。较佳的,所述控制报文,为类型3代码4的ICMP(Internet ControlMessageProtocol,互联网控制报文协议)报文。类型3指示终点不可达,代码4指示无法分片。该报文原本的作用是告知发送端路由器的MTU,并要求发送方按照路由器的MTU发送数据。但是,在整个通信网络中,无线接入网可以看作路由器,基站作为无线接入网的一部分,可以运用ICMP协议的此功能将基站MTU告知通信两端,以达到通信两端将其MTU改小的目的。由于Μ)Ρ协议决定了无法实现类似TCP的方法通过修改MSS控制数据MTU,因此利用此类型ICMP报文可以达到控制修改通信两端MTU的目的。较佳的,所述ICMP报文的扩展字段填写为预设容量门限值,目的IP填写为发送端IP,报文结尾填写为接收的报文的IP首部和数据的前8个字节。S301、S302主要用于对UDP报文进行处理,但是不需要判断其报文类型是否为UDP报文。由于TCP在三次握手建立连接期间,SYN、SYN ACK,ACK的报文长度很短,一定小于预设容量门限值,而三次握手之后已经按照基站需求调整了 MSS值,因此后续的TCP报文也一定不会大于预设容量门限值。因此,发送所述ICMP报文仅出现在当前两端是使用UDP协议传输的场景。以上方法可以在基站内的DIYPS (Do It Yourself Protocol Stack,自研协议栈)模块实现。下面给出本发明的具体实施例:实施例1:调整TCP报文最大容量;如图4所示,具体步骤如下:S401、获取当前报文类型;
S402、检查是否是TCP报文;不是TCP报文,跳到步骤S407 ;是TCP报文,执行步骤S403 ;S403、检查是否是TCP连接中三次握手的SYN或SYNACK报文;不是SYN或SYN ACK报文,跳到步骤S407 ;是SYN或SYN ACK报文,执行步骤S404 ;S404、取得当前TCP报文中Options字段的MSS值;S405、判断TCP报文中的MSS值是否大于设定合理值;例如:设定的合理值为避免NP分片重组的值,最大不能超过1500-UDP/IP (28) -GTPU (8) -TCP/IP (40) =1424 字节报文的MSS值大于设定的合理值,执行步骤S406 ;否则,跳到步骤S407 ;S406、将合理值填写到MSS字段中,重新计算校验和,执行步骤S407 ;S407返回成功,发送到接收端。实施例2:调整UDP报文最大容量;如图5所示,具体步骤如下:S501、判断当前报文长度是否大于设定的MTU合理值;设定的合理值为避免NP分片重组的值,最大不能超过1500-UDP/IP (28) -GTPU (8) =1464 字节当前报文长度小于等于MTU合理值,跳到步骤S506 ;当前报文长度大于MTU合理值,执行步骤S502 ;S502、提取原始报文的源IP、目的IP,执行步骤S503 ;S503、创建设定MTU的ICMP控制报文,报文格式为IP/ICMP,执行步骤S504 ;S504、将设定的MTU合理值填写到ICMP扩展的MTU字段中,并将原始报文的源IP作为目的IP,目的IP作为源IP填写到构造的IP头中,报文结尾再携带原始IP数据报的IP首部和数据的前8个字节,执行步骤S505 ;S505、返回成功,ICMP报文返回给发送端;结束;S506、返回成功,不作处理;结束。实施例2也可采取如下方式=DIYPS对包的长度进行判断后,每4个大包发送一次修改MTU的ICMP报文反馈给发送端。一旦发送端MTU已成功被改小,即按照基站要求的MTU发送数据,DIYPS则停止发送ICMP报文,以免占用太多的带宽。参见图6,本发明实施例提供的一种确定报文的最大容量的装置包括:报文接收单元61,用于接收发送端发送的报文;容量调整单元62,用于当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;报文发送单元63,用于向接收端发送该TCP报文,其中携带调整后的MSS值。较佳的,所述容量调整单元62还用于:在所述将该报文的MSS值调整为预设容量门限值之后,根据调整后的MSS值,调整该报文的校验和。参见图7,本发明实施例提供的另一种确定报文的最大容量的装置包括:报文接收单元71,用于接收发送端发送的报文;容量调整单元72,用于比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。较佳的,所述容量调整单元用于发送控制报文时,具体用于发送类型3代码4的互联网控制报文协议ICMP报文。所述容量调整单元用于发送所述ICMP报文时,所述ICMP报文的扩展字段填写为预设容量门限值,目的IP填写为发送端IP,报文结尾填写为接收的报文的IP首部和数据的前8个字节。本发明是在现有协议框架内进行的改进,例如,基站发出的动态改变MTU的控制报文在整个传输过程中能够被识别,因而能够在现有协议下直接实现应用。对于TCP报文,通过监听TCP建立连接的过程,将基站期待的MSS值写到建立连接的报文中,利用TCP的自协商的特性保证通信两端按照基站MTU传输报文。对于UDP报文,利用ICMP协议中错误控制报文来实现动态修改终端和业务服务器的MTU,该ICMP报文类型如下:错误类型(3):终点不可达;错误代码(4):无法分片。本发明方案将两端的MSS/MTU改小后,分片重组过程仅发生在两端。两端发小包,则避免了传输过程的中间设备二次分片重组处理,大大提高了传输的效率。综上所述,本发明实施例提供了一种确定报文的最大容量的方法及装置,用于用以避免基站内部的NP处理器对报文进行分片重组,提高基站传输效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种确定报文的最大容量的方法,其特征在于,该方法包括: 接收发送端发送的报文; 当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值; 向接收端发送该TCP报文,其中携带调整后的MSS值。
2.如权利要求1所述的方法,其特征在于,所述预设容量门限值,为网络处理器NP不需要进行分片重组时的报文的最大容量值。
3.如权利要求1所述 的方法,其特征在于,所述包含MSS值的TCP报文,为: 同步SYN报文,或者同步确认SYN ACK报文。
4.如权利要求1所述的方法,其特征在于,所述将该报文的MSS值调整为预设容量门限值之后,该方法还包括: 根据调整后的MSS值,调整该报文的校验和。
5.—种确定报文的最大容量的方法,其特征在于,该方法包括: 接收发送端发送的报文; 比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。
6.如权利要求5所述的方法,其特征在于,所述预设容量门限值为NP不需要进行分片重组时的报文的最大容量值。
7.如权利要求5所述的方法,其特征在于,所述控制报文,为类型3代码4的互联网控制报文协议ICMP报文。
8.如权利要求7所述的方法,其特征在于,所述ICMP报文的扩展字段填写为预设容量门限值,目的IP填写为发送端IP,报文结尾填写为接收的报文的IP首部和数据的前8个字节。
9.一种确定报文的最大容量的装置,其特征在于,该装置包括: 报文接收单元,用于接收发送端发送的报文; 容量调整单元,用于当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值; 报文发送单元,用于向接收端发送该TCP报文,其中携带调整后的MSS值。
10.如权利要求9所述的装置,其特征在于,所述容量调整单元还用于: 在所述将该报文的MSS值调整为预设容量门限值之后,根据调整后的MSS值,调整该报文的校验和。
11.一种确定报文的最大容量的装置,其特征在于,该装置包括: 报文接收单元,用于接收发送端发送的报文; 容量调整单元,用于比较接收的报文的长度与预设容量门限值的大小,如果该报文的长度大于预设容量门限值,向发送端发送控制报文,用以控制发送端发送大小小于所述容量门限值的报文。
12.如权利要求11所述的装置,其特征在于,所述容量调整单元用于发送控制报文时,具体用于发送类型3代码4的互联网控制报文协议ICMP报文。
13.如权利要求12所述的装置,其特征在于,所述容量调整单元用于发送所述ICMP报文时,所述ICMP报文的扩展字段填写为预设容量门限值,目的IP填写为发送端IP,报文结尾填写为接收的报 文的IP首部和数据的前8个字节。
全文摘要
本发明实施例提供了一种确定报文的最大容量的方法及装置,用以避免基站内部的NP处理器对报文进行分片重组,提高基站传输效率。该方法包括接收发送端发送的报文;当确定接收的报文为包含最大分段大小MSS值的传输控制协议TCP报文时,比较该报文的MSS值和预设容量门限值的大小,如果该报文的MSS值大于预设容量门限值,将该报文的MSS值调整为预设容量门限值;向接收端发送该TCP报文,其中携带调整后的MSS值。
文档编号H04W28/06GK103079232SQ201310016128
公开日2013年5月1日 申请日期2013年1月16日 优先权日2013年1月16日
发明者孙祎, 马明礼, 龚绍钦 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1