51学通信技术论坛

 找回密码
 立即注册
搜索
查看: 3675|回复: 1
打印 上一主题 下一主题

QoS测试中数据包不按既定规则在专用承载上发送问题 [复制链接]

Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2015-4-15 21:25:15 |只看该作者 |倒序浏览
一键分享 一键分享
QoS测试中数据包不按既定规则在专用承载上发送问题【案例描述】

解决方案QoS测试环境反馈使用三星UE做QoS测试,从UGW触发专有承载建立,采用端口匹配的方式,TCP业务能够正常的完全通过专有承载传输,但是发起UDP业务时,专有承载和默认承载上均有大量数据。

【关键字】

QoS、TCP、UDP、Dedicated Bearer


【版本信息】

非代码缺陷,与版本无关。

【定位思路分析】

TCP业务正常,UDP业务不正常,那么需要对比两种业务在专用承载上的差别,从差别入手进行分析。由于专用承载采用端口匹配的方式,可以考虑差别是否和此种匹配方式有关。

【定位信息】

Ethereal抓包,WebLMT用户吞吐率跟踪,Probe跟踪

【定位过程】

了解问题现象,根据现象进行了简单分析:专有承载使用端口区分的方式,TCP正常,UDP不正常,问题似乎出在TCP和UDP使用了不同的端口上。

TCP业务通过FTP触发,数据链固定使用20号端口;UDP业务使用iperf灌包触发,通过添加 –p 选项固定了UDP端口,如果按照端口filter的方式没错,两者都应该通过端口匹配走到默认承载上。现在的问题是UDP灌包时默认承载上也有大量数据,是否是UDP的问题,抓包来确定。

从抓包结果来看,UDP灌包时出现了分片,检查系统MTU设置,发现对三星终端的USB口设置的MTU确实做过改动,最新的MTU值为1360,而iperf默认的灌包包长为1470+8+20=1498字节。出现分片是正常的,但是是否是分片导致了这个问题的发生呢?

修改iperf灌包命令,使得灌包的UDP包MTU小于1360个字节,结果果然所有的UDP数据均走了正常的专有承载,问题解决。

原因追溯:通过UGW触发专有承载建立,中间有一步是配置知名端口(通过知名端口识别7层协议类型):

/****************************************************************************************************************

[UGW9811_telenor-service]well-known-port tmo l7-protocol rtsp sub-protocol rtsp port eq 5033 priority 2

配置知名端口

*************************************************************************************************************/

而对于产生分片的数据包来说,第一个分片由于没有重组数据,是不带端口号的,整个数据报的内容只能在最后一个分片中看到,如下图:

第一个分片:

由此可知,由于没有高层端口号,第一个分片不能匹配到专有承载上,只能走默认承载,而第二个分片通过端口匹配,在专有承载上传输。由此造成了两个承载上都有数据的现象。

而对于TCP,由于在建链过程存在MTU协商过程,使得一开始使用的数据包就满足最小MTU的条件,不会产生分片,因而数据包都可以正常分发到正确的专用承载上。

同样,对于UE侧触发的专有承载建立,不需要规定端口号,按服务器IP地址区分。所以即便被分片,分片包还是会按IP头对端服务器地址匹配到正确的专有承载上。

【问题根因】

由于iperf默认灌包包长超过了网卡的MTU设置值,导致了数据包分片,而第一个分片包不能解析出端口号,对于按照端口号来区分的专有承载,部分数据无法匹配,只能走默认承载,由此造成了两个承载上都有大量数据在传送。

【建议与总结】

做QoS测试,从UGW触发专有承载建立时,建议采用IP匹配的方式。

分片包知识:

把一份IP数据报分片以后,只有到达目的地才进行重新组装。重新组装由目的端的I P层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的。

回到IP首部,下面这些字段用于分片过程。对于发送端发送的每份IP数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时被复制到每个片中(我们现在已经看到这个字段的用途)。标志字段用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。片偏移字段指的是该片偏移原始数据报开始处的位置。另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。最后,标志字段中有一个比特称作“不分片”位。如果将这一比特置1,IP将不对数据报进行分片。

在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其余部分)必须是8字节的整数倍。

第一个分片:

第二个分片:


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册
51学通信(www.51xuetongxin.com):致力打造最好的通信技术在线学习平台 。

Rank: 2Rank: 2

沙发
发表于 2015-7-28 13:39:34 |只看该作者
案例不错,多谢分享

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

站长邮箱|Archiver|51学通信 ( 粤ICP备11025688 )

GMT+8, 2024-5-3 02:51 , Processed in 0.025174 second(s), 14 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部