51学通信技术论坛

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

关于GB 口的IP分片讨论 [复制链接]

Rank: 2Rank: 2

跳转到指定楼层
楼主
发表于 2013-12-12 12:30:12 |只看该作者 |倒序浏览
一键分享 一键分享
本帖最后由 杨昭 于 2013-12-12 16:01 编辑

看到了一个报告,里面的部分内容看不懂,请大家给予指教:请看下面的图片:





报告里面对上述两个图片的解释如下:

上层IP对一个长度为1470的IP包进行传输,由于SNDCP层分段依据是N201-U参数,而N201-U参数协商后取值为1520,因此1470大小的IP包在经过SNDCP不需要进行分段。随后1470长度的IP包加上SNDCP、LLC、BSSGP、NS、UDP等包头(共计105字节),长度大于下层IP的MTU 1500的长度限制。根据IP协议大于MTU的IP包将会进行IP分片,所以可以看该报文在被下层IP分成两个IP分片(IP报文ID为20949),第3个包文为91字节,第4个报文1500字节。


问题一:“上层IP对一个长度为1470的IP包进行传输……”里面提到是1470字节,为何不是1500字节?上层IP里面显示的TOTAL LENGTH为1500字节的呀!

问题二:“第3个报文为91字节,第4个报文1500字节”,这个91字节是怎么计算的?91和1500字节是纯内容还是包含了包头,若包含了包头,那么是哪些包头,分别是多大?

问题三:IP分片一般指的是哪个层面的分片,内层和外层都统计的吧,gb口讨论的分片主要指的是下层IP的吧?


问题五:下面列举的N201-U和MSS的计算公式对不对,请高手指点,谢谢!

N201-U计算公式:

MTU1500– 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6 = 1399

考虑到华为设备的N201-U为100的整数,因此可以设置为1400,不知合理与否?

CMWAP的MSS值计算公式:MTU1500 – 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6-SNDCP头长度4  - 外层IP头长度20  -  TCP头长度20 - GTP头长度8 - GRE头长度4=1343


CMNET的MSS值计算公式:MTU1500 – 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6-SNDCP头长度4  - 外层IP头长度20  -  TCP头长度20 - GTP头长度8=1347



附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 9Rank: 9

懒

沙发
发表于 2013-12-12 20:31:33 |只看该作者

说下个人理解,有不对的地方敬请谅解。

问题一:“上层IP对一个长度为1470的IP包进行传输……”里面提到是1470字节,为何不是1500字节?上层IP里面显示的TOTAL LENGTH为1500字节的呀!

答:上层和下层的说法应该是站在SNDCP层的角度来看的。SNDCP上层是用户的payload,所以应该是1470字节。你看到的1500字节是下层IP,要加上LLC、BSSGP等多层报文头。应该没错的。

问题二:“第3个报文为91字节,第4个报文1500字节”,这个91字节是怎么计算的?91和1500字节是纯内容还是包含了包头,若包含了包头,那么是哪些包头,分别是多大?

答:你的第3个报文给出的内容较少,只有个IP头,都不清楚上层是什么协议了。如果也是传送的payload的话,那这91个字节就是包括NS、UDP、BSSGP、LLC、SNDCP等多层的内容的总和。

问题三:IP分片一般指的是哪个层面的分片,内层和外层都统计的吧,gb口讨论的分片主要指的是下层IP的吧?

答:只要是IP层都要分片。如果Gb over IP的话,那用户面的数据实际上有两层IP头,一层IP头用于BSC和SGSN之间传送的外层IP头,一层是用户自己payload的IP头。这两层IP头都要遵循TCP/IP四层模型。都需要分段。Gb接口的分片主要讨论的是外层IP头的分片(即源IP是BSC,目的IP是SGSN的这一层),因为内层IP是手机发出来的,已经分过片了。但外层IP分片之前,SNDCP层会先做一个分片,如果SNDCP层分片规则N201-U设置得较小的话(如默认值是500字节),那外层IP基本就不用分片了。

问题五:下面列举的N201-U和MSS的计算公式对不对,请高手指点,谢谢!
N201-U计算公式:

MTU1500– 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6 = 1399

考虑到华为设备的N201-U为100的整数,因此可以设置为1400,不知合理与否?

个人感觉应该是合理的。

CMWAP的MSS值计算公式:MTU1500 – 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6-SNDCP头长度4  - 外层IP头长度20  -  TCP头长度20 - GTP头长度8 - GRE头长度4=1343

CMNET的MSS值计算公式:MTU1500 – 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6-SNDCP头长度4  - 外层IP头长度20  -  TCP头长度20 - GTP头长度8=1347

应该是合理的。这个MSS是手机发出来payload部分的的TCP层的分段参数。

www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

使用道具 举报

Rank: 2Rank: 2

板凳
发表于 2013-12-13 10:51:11 |只看该作者
爱总,首先非常感谢您这么详细的解答!
但是,还有几个疑问:
第一:因为BSSGP的option部分大小不定,因此BSSGP的头部的大小应该在21到66字节之间,把BSSGP的头部得按照两个极端值计算,得到的N201-U值分别如下:
当BSSGP头部=21字节时:MTU1500– 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度21 – LLC头长度6 = 1441
当BSSGP头部=66字节时:MTU1500– 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度66 – LLC头长度6 = 1396
若要保证SNDCP层不分段,是不是得保证N201-U>1441,考虑到华为的N201-U是100的整数,因此N201-U取值为1500,不知对否?
我看论坛里面有的帖子上说N201-U过大会导致GB口的负荷高,但是目前GB口都IP化了,因此这个应该影响不大吧。
第二:我看有的资料里面在讨论基于GB口的IP分片时,计算的MSS没有区分CMWAP和CMNET分别计算,而是算出了一个相同的值,他们的计算公式里也没有考虑GTP头部和GRE头部,他们的MSS的计算公式如下:
MTU1500 – 内层IP头长度20 – UDP头长度8 – NS头长度4 – BSSGP头长度63 – LLC头长度6-SNDCP头长度4  - 外层IP头长度20  -  TCP头长度20 =1355
而我算出的MSS分CMEAP和CMNET,CMWAP MSS为1343,CMNET MSS为1347,因此有点迷糊,不知道哪种方法是正确的。

使用道具 举报

Rank: 2Rank: 2

地板
发表于 2013-12-13 17:32:49 |只看该作者
还有如何在wireshark里面看BSSGP的option部分的大小呢?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 2Rank: 2

5#
发表于 2013-12-13 22:06:10 |只看该作者
杨昭 发表于 2013-12-13 10:51
爱总,首先非常感谢您这么详细的解答!
但是,还有几个疑问:
第一:因为BSSGP的option部分大小不定,因此 ...

在GB口是没有GTP和GRE的包头的!

使用道具 举报

Rank: 2Rank: 2

6#
发表于 2013-12-14 10:50:35 |只看该作者
非常感谢!

使用道具 举报

Rank: 2Rank: 2

7#
发表于 2013-12-17 11:44:50 |只看该作者
麻烦帮我分析一个GB的抓包, 为何这个包里面对N201-U的描述,只有MS请求的值,没有最终协商好的值。附件太大传不上去,只能传个截图,frame7098为MS对N201-U的请求,但是其上下的包列表中没有SGSN的回复,不知道为何?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

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

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

GMT+8, 2024-5-4 14:22 , Processed in 0.050007 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部