APP下载

移动互联网端到端数据包分片优化思路及研究

2017-03-30刘华金志坚

移动通信 2017年4期
关键词:移动互联网

刘华+金志坚

【摘 要】为了提升端到端数据包传输效率以及移动互联网用户感知,以EGPRS网络为例,深入分析了整个业务链条影响数据包分片的机制、参数设置等,并提出相应设置策略和建议,最后结合实际案例验证了研究成果的可行性和准确性。

【关键词】移动互联网 EGPRS 端到端 数据包分片 MTU

Research on the Optimization Method of End-to-End Packet Fragmentation

in Mobile Internet

[Abstract] In order to improve the end-to-end data packet transmission efficiency and the mobile Internet user perception, based on EGPRS networks, the impacts of the whole business chain on the mechanism and parameter configuration of packets was analyzed in depth in this paper. Then, corresponding setting policies and suggestions were put forward. Finally, the feasibility and accuracy of the research result was verified according to the practical case.

[Key words]mobile Internet EGPRS end-to-end packet fragmentation maximum transmission unit

1 引言

移动互联网业务流程涉及众多节点,包括终端、无线网、核心网、业务网、承载网、互联网等,这些网络节点由于其实现机制、接口协议、处理能力等不同,都有可能对数据包进行分片。分片过多或者过少,都将严重影响端到端链路的承载效率和用户感知。本文以EGPRS(Enhanced General Packet Radio Service,增强型通用分组无线业务)网络为例,研究如何在复杂的业务流程和众多的业务节点中合理设置数据包分片大小,帮助从业人员提升2G/3G数据业务优化能力,并为当前LTE网络优化奠定基础。

2 EGPRS端到端网络结构及协议

EGPRS端到端网络结构及接口如图1所示。手机上网业务经过的主要节点包括终端、BSS(Base Station Subsystem,基站子系统)/UTRAN(Universal Terrestrial Radio Access Network,全球陆地无线接入网络)、SGSN(Serving GPRS Support Node,服务GPRS支持节点)、GGSN(Gateway GPRS Support Node,网关GPRS支持节点)等,主要涉及Um、Gb、Gn、Gi等接口。

EGPRS网络体现出了分组交换和分组传输的特点,即数据和信令是基于统一的传输平面。EGPRS端到端控制面、用户面接口及协议分别如图2和图3所示:

3 IP数据包分片

为了适应移动业务多元化,实现网络融合、业务融合以及运营转型,移動互联网不断向IP化演进,因此IP协议是端到端数据包分片的首要考虑因素。

3.1 数据包的分片与重组

在TCP(Transmission Control Protocol,传输控制协议)/IP协议封装过程中,各个应用程序将要发送的数据送给传输层,传输层TCP/UDP(User Datagram Protocol,用户数据报协议)再将数据分为大小一定的数据段,加上本层的报文头发送给网络层(IP)。IP分片是网络层传输IP报文的一种技术手段。IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在下一跳节点进行重组,这一过程称为分片(Fragmentation)。

MTU(Maximum Transmission Unit,最大传输单元)是指在网络层中可以传输的最大IP数据包大小;MSS(Maximum Segment Size,最大报文段长度)是TCP协议的概念,是指传输层能够发送的数据块最大长度,此长度不包括TCP头内容。

MTU和MSS是TCP/IP协议通信中有关传送数据包大小的参数,直接影响到传送路径上设备对数据包的分片处理,间接影响到分片包错序、丢包导致重传等情况的发生。如果MTU/MSS设置过大,将会导致数据在传送时多次进行分片,影响系统性能或者出现丢包等问题;如果TCP MSS值设置过小,报文数量明显增多,导致承载效率下降。

通常情况下,MSS=MTU-IP报头-TCP报头(一般为1460=1500-20-20)。为了达到最佳的传输效能,TCP协议在建立连接时,需要事先协商双方的MSS值。对于TCP数据包来说,每个TCP数据包在组成前其大小就已经被MSS限制了,自然也就不用再进行IP层分片;而对于UDP数据包来说,如果UDP组成的IP数据包长度超过MTU,那么必须要进行IP层分片,因为UDP协议不能像TCP协议那样可以自己进行分片。需要注意的是,分片既可能发生在发送端,也可能发生在转发报文的路由器、防火墙等中间系统。

IP数据报被分片之后,所有分片报文的IP报头中的源IP、目的IP、IP标识、上层协议等信息都是一样的,不同的地方在于分片标志位和分片偏移量,而接收方正是根据接收到的分片报文的源IP、目的IP、IP标识、分片标志位、分片偏移量来对接收到的分片报文进行重组。接收方根据报文的源IP、目的IP、IP标识将接收到的分片报文归为不同原始IP数据报的分片分组;分片标志中的MF位(More Fragment)标识了是否是最后一个分片报文,如果是则根据分片偏移量计算出各个分片报文在原始IP数据报中的位置,重组为分片前的原始IP报文,如果不是则等待最后一个分片报文达到后完成重组。

如图4所示,数据包在IP层进行了分片,Identification(0x3555)为该数据包所有分片打上同样的标记,由于第一个分片的长度为1480字节,因此第二个分片的Fragment offset为1480。

3.2 数据包分片带来的问题

分片过多将带来诸多网络问题,为此要尽量减少分片产生,以适配各个网络阶段传输特性,提升系统整体性能。分片带来的主要问题如下:

(1)分片过多带来性能消耗

分片和重组会消耗发送方、接收方一定的CPU等资源,如果存在大量的分片报文,可能会造成较为严重的资源消耗;分片对接收方内存资源的消耗较多,因为接收方要为接收到的每个分片报文分配内存空间,以便于最后一个分片报文到达后完成重组。

(2)分片丢包导致重传

IP层本身没有超时重传机制,而是由更高层(如TCP)来负责超时和重传。如果某个分片报文在网络传输过程中丢失,那么接收方将无法完成重组,若应用进程要求重传,发送方必须重传所有分片报文而不是仅重传被丢弃的那个分片报文,这种效率低下的重传行为会给端系统和网络资源带来额外的消耗。

(3)分片攻击

黑客构造的分片报文不向接收方发送最后一个分片报文,导致接收方要为所有的分片报文分配内存空间,但由于最后一个分片报文永远不会达到,接收方的内存得不到及时释放,接收方会启动一个分片重组的定时器,在一定时间内如果无法完成重组,将向发送方发送ICMP重组超时差错报文,只要这种攻击的分片报文发送的足够多、足够快,很容易占满接收方内存,让接收方无内存资源处理正常的业务,从而达到DoS的攻击效果。

(4)安全隐患

由于分片只有第一个分片报文具有四层信息而其他分片没有,这给路由器、防火墙等中间设备在做访问控制策略匹配时带来了麻烦。

4 各层协议数据包分片标识

对于不同节点,可以基于以下方法对各个节点IP层分片情况进行评估和分析:

(1)IP层分片标识

IP层应用于Gn、Gi等众多接口,可以利用ip_flags、ip_flags_df、ip_flags_mf(该字段为“0”表示是最后一个分段,为“1”表示还有更多的分段,除了最后一个分段外,其他的分段都应将该位置“1”)、ip_frag_offset分组统计,得到ip_flags_mf=1的IP层分片包数量占比(即IP层分片的比例)等指标。MF字段为“0”表示是最后一个分段,为“1”表示还有更多的分段,除了最后一个分段外,其他的分段都应将该位置“1”。

(2)IP2层分片标识

EGPRS的IP应用规程结构可以理解为两层IP结构,即用户级的IP协议以及采用IP协议的EGPRS系统本身。可以利用ip2_flags、ip2_flags_df、ip2_flags_mf、ip2_frag_offset分组统计,得到ip2_flags_mf=1的IP2层分片包数量占比(即IP2层分片的比例)等指标。

(3)SNDCP层分片标识

SNDCP(Sub Network Dependent Convergence Protocol,子网相关会聚协议)层应用于Gb接口,More bit表示是否最后一个SNDCP分片(实际上隐含说明这个数据包有没有被分段),该字段为“0”表示是最后一个分段,为“1”表示还有更多的分段。可以利用ip_flags_mf、sndcp_m、sndcp_segment分组统计,得到IP层分片包数量占比、SNDCP层分片包数量占比等指标。

5 接口分片

5.1 Um接口分片

Um接口是手机和基站间的接口,数据包的分片主要取决于信道编码方式。GPRS支持的编码方式如表1所示:

EGPRS支持9种编码方式,峰值速率相比GPRS提升了约3倍,具体如表2所示。

RLC(Radio Link Control,无线链路控制)层主要负责LLC-PDU包的拆分和组装。其运用一种滑动窗口协议,采用确认或非确认模式在对等层之间传送数据。通过优化手段提升高阶编码占比和降低重传率,可以提升空中接口传输效率和用户上网速率。

5.2 Gb接口分片

Gb接口是SGSN和BSS之间的接口,该接口通过SNDCP协议实现数据包的分片。SNDCP层执行N-PDU分段的依据是N201,這个LLC层参数通过XID流程协商确定。具体来说,非确认模式根据N201-U来进行分段,确认模式根据N201-I来进行分段。

由于协议并未规定由手机还是SGSN首先发起N201-U协商,目前部分终端不主动与SGSN进行SNDCP的N201-U协商,如果SGSN配置为不主动发起N201-U协商,可能导致以下结果:

(1)终端不主动发起而使得N201-U为500字节,引起数据包在SNDCP层分片。

(2)终端发起协商,由于终端的品牌类型和能力不同,N201-U协商的值会参差不齐,手机发起协商的N201-U值过小(如仅为800字节)。这种情况下也会引起数据包在SNDCP层分片,只是分片数量比第一种情况少。

因此,建议SGSN侧开启Gb N201-U协商功能以及对TCP MSS进行优化调整,可实现所有手机的最大传输单元参数协商,以提升手机传输能力。

考虑到上述原因,现网中N201-U参数具体优化思路为:基于现网统计,确定现网BSSGP协议开销,合理设置N201-U参数,保证在SNDCP层和IP层都不分片。例如,基于现网统计,BSSGP协议的字节开销为63个字节,则LLC层N201-U应设置为:MTU-IP头长度20字节-UDP头长度8字节-NS头长度4字节-BSSGP头长度63字节-LLC头长度6字节。

5.3 Gn、Gi接口分片

Gn接口是SGSN和GGSN之间的接口,该接口采用在UDP协议之上承载GTP(GPRS Tunneling Protocol,GPRS隧道协议)的方式进行通信;Gi接口是GPRS与外部分组数据网之间的接口,该接口根据所互通的数据网不同而采用相应的协议,如X.25协议、IP协议等。

Gn、Gi接口采用隧道(Tunnel)技术,隧道是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,该接口提供了一条通路使封装的数据包能够在这个通路上传输,并且在一个隧道的两端分别对数据包进行封装及解封装。EGPRS网络中主要的隧道技术包括:GTP隧道和GRE(Generic Routing Encapsulation,通用路由封装协议)隧道。

在传统有线以太网接入情况下,MTU=MSS+IP报头长度+TCP报头长度。当MTU为默认1500字节、MSS为1460字节时,MTU和MSS为最优设置,在传送过程中不会额外发生分片,传送顺畅且效率最佳。但在EGPRS网络中,由于数据包在Gn、Gi等接口存在额外开销,有线以太网中的MTU和MSS最优设置不再有效,对于传统默认参数设置,在GTP隧道(GTP Tunnel)/GRE隧道(GRE Tunnel)必须进行分片处理后才能发送。

(1)GTP隧道

GSN和GGSN之间数据承载为GTP Tunnel,当终端APN(Access Point Name,接入点名称)设置为CMNET时,GGSN可以直接通过防火墙NAT访问公网业务服务器,无需GRE隧道(如APN=CMNET)。

3GPP TS 29.060定义的GTP头部字段(GTP Header)如图5所示,通常为12字节,其中第1~8个字节为必选项。因此,GTP Tunnel的额外开销为:IP层开销(20字节)、UDP层开销(8字节)和GTP层开销(可变长度,通常为8字节或12字节)。

(2)GRE隧道

在EGPRS网络中,用户使用WAP(Wireless Application Protocol,无线应用通讯协议)网关代理的业务时,由于WAP网关采用私网地址、GGSN采用公网地址,需要在WAP网关和GGSN之间建立GRE隧道,将私网IP报文用公网IP地址封装后在公网上进行传输。当终端APN设置为CMWAP时,GGSN和WAP网关侧防火墙之间数据承载为GRE Tunnel。

RFC1701定义的GRE头部字段如图6所示,包头长度为4~20字节,GRE报头的前32位,这4个字节是必选项,构成了GRE的基本报头。因此,GRE Tunnel的额外开销为:IP层开销(20字节)和GRE开销(通常为4字节)。

6 分片优化案例

通过对数据包分片原理进行研究,结合实际网络情况,可以有针对性地解决网络中存在的分片相关的问题。

案例1:GRE包头长度问题导致用户访问WAP网页无法打开

问题描述:A厂商GGSN和B厂商WAP网关对接。具体设置为:WAP网关侧MSS设置为1436,MTU为1476字节;GRE路由器以及中间IP承载网其他数据通信设备的MTU都是1500。用户投诉访问WAP网页无法打开。

问题分析:

GRE封装过程如图7所示,GRE的包大小为:MSS+原始TCP包头(20字节)+原始IP包頭(20字节)+新IP包头(20字节)+GRE包头(通常为4字节)=1500字节。

通常情况下,GRE头部开销为4~20字节,前4个字节为必选项,后16个字节为可选项。进行抓包分析,发现在该GRE路由器GRE头部开销实际为8字节,导致WAP网关侧1476(MTU)字节长度的数据包经过GRE路由器后实际长度为:1476+20(新IP包头)+8(GRE包头)=1504字节,超过GRE路由器以及中间IP承载网其他数据通信设备的MTU(1500字节),如果存在中间网元丢包处理或者GGSN无法完成分片重组等,MS将无法打开相应的网页。

考虑到实际网络中GRE头部开销为8字节,将WAP网关侧MTU降至1472字节,保证经过GRE路由器处理后正好为1500字节(1472+20+8=1500),这样在传递给其他数据通信设备以及GGSN时就不会再出现分片的问题。

案例2:GGSN GRE接口MTU设置问题导致下行分片率过高

问题描述:基于现网统计,某局WAP网关到GGSN下行分片率较高。

问题分析:WAP网关→GGSN下行数据业务承载在GRE Tunnel上,除去IP层开销(20字节)和GRE开销(通常为4字节)后,最大传输单元最大为1476字节。基于上述分析,可通过优化GGSN GRE接口MTU值为1476、优化WAP网关防火墙MTU值为1476来解决该问题。

案例3:GGSN侧Gi接口MSS设置问题导致GTP Tunnel和GRE Tunnel分片率均过高

问题描述:基于现网统计,WAP网关到SGSN的下行数据传输中,GTP Tunnel和GRE Tunnel分片率均较高。

问题分析:正常情况下,GTP Tunnel需要增加IP层开销(20字节)、UDP层开销(8字节)和GTP层开销(8或12字节开销,假设现网为8字节),而GRE Tunnel需要增加IP层开销(20字节)和GRE开销(4字节)。因此,一个数据包如果在GTP Tunnel上不分片,那么在GRE Tunnel上也不会分片。

基于上述分析,解决措施为:优化GGSN侧汇聚交换机Gi接口MSS配置为1500-20-8-8-20(应用级IP包头)-20(应用级TCP包头)=1424字节。

7 結束语

本文以EGPRS网络为例,研究了移动互联网端到端数据包分片的原理,基于业务链条总结了Um、Gb、Gn、Gi导致数据包分片的原因及优化方法,相应成果在解决网络实际问题中也得到了应用和验证。下一步可在此成果基础上,对LTE、VoLTE端到端数据包分片的原理及优化方法进行专题研究。

参考文献:

[1] W Richard Stevens. TCP/IP详解卷1:协议[M]. 范建华,胥光辉,张涛,等译. 北京: 机械工业出版社, 2014.

[2] Chris Sanders. Wireshark数据包分析实战[M]. 2版. 诸葛建伟,陈霖,许伟林,译. 北京: 人民邮电出版社, 2013.

[3] 3GPP TS 29.060 V4.11.0. GPRS Tunnelling Protocol (GTP) across the Gn and Gp interface[S]. 2004.

[4] 3GPP TS 23.060 V4.11.0. Service description; Stage 2[S]. 2006.

[5] 3GPP TS 44.060 V4.23.0. Radio Link Control/Medium Access Control (RLC/MAC) protocol[S]. 2005.

[6] 3GPP TS 44.064. V4.3.0. Logical Link Control (LLC) layer specification[S]. 2002.

[7] 3GPP TS 44.065.V4.3.0. Subnetwork Dependent Convergence Protocol (SNDCP)[S]. 2004.

[8] 3GPP TS 29.061. V4.10.1. Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN)[S]. 2005.

[9] 3GPP TS 48.016.V4.4.0. Base Station System (BSS) - Serving GPRS Support Node (SGSN) interface; Network Service[S]. 2004.

[10] 3GPP TS 48.018. V4.7.0. General Packet Radio Service (GPRS); Base Station System (BSS) - Serving GPRS Support Node (SGSN); BSS GPRS Protocol (BSSGP)[S]. 2004.

猜你喜欢

移动互联网
微信在金融中应用存在的问题与对策研究
移动新闻客户端信息推送特点及问题分析
分享经济的价值创造模式及其影响
基于移动互联网络环境的MOOC微课程研究
微美学
智能手机在大学生移动学习中的应用研究
基于Android的一键智能报警系统设计与实现 
O2O电子商务模式发展问题及对策研究
大数据环境下基于移动客户端的传统媒体转型思路
基于移动互联网的心理健康教育初探