51学通信技术论坛

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

GRE包头长度问题导致用户访问WAP网页无法打开 [复制链接]

Rank: 9Rank: 9

懒

跳转到指定楼层
楼主
发表于 2011-9-27 13:24:49 |只看该作者 |倒序浏览
一键分享 一键分享
网络拓扑描述:
   A厂商GGSN和B厂商WAP网关对接。具体设置为:
1 WAP网关上的MSS设置为1436,MTU为1476字节。
2 GRE路由器以及中间IP承载网其他数据通信设备的MTU都是1500.

问题描述:
   发现当WAP网关和MS进行TCP层MS协商时,MSS协商为1436,结果MS无法打开WAP网页。

故障定位:
   使用wireshark抓包,发现在GRE路由器上处理完GRE之后有进行IP包的分片。在分片之后的IP包总长度为1504字节。发现是GRE路由器多加了4字节的头部。

故障解决:
   在防火墙上将MTU降至1472字节。问题解决。(这样可以保证从防火墙出去的时候加上多出来的可选的4字节的GRE头以及GRE本身的24字节,正好是1500(1472+4+28)字节,这样在传递给其他数据通信设备以及GGSN的时候就都没有分片的问题了。)

原因分析:
   MSS是TCP的最大分段大小。GRE的包大小=MSS(1436)+TCP包头(20)+IP包头(20)+GRE包头(24)=1500字节。这样WAP网关发出来的报文长度正好是1476字节,符合接口MTU,不用分片。交给GRE路由器处理加上GRE包头。但GRE包头最大可以到32字节,因为有8个字节是可选的。所以GRE包在GRE路由器处理完后有可能大于1500字节,即超过接口MTU的长度导致分片。这样GGSN将无法完成包的重组,MS将无法打开相应的网页。
www.gprshome.com: GPRS及移动通信技术学习交流分享平台。

Rank: 3Rank: 3Rank: 3

沙发
发表于 2011-12-27 12:38:40 |只看该作者
经典学习了,谢谢!

使用道具 举报

Rank: 2Rank: 2

板凳
发表于 2013-12-8 19:34:57 |只看该作者
楼主,您好,请教几个问题。
在您的帖子里谈到 GRE的包大小=MSS(1436)+TCP包头(20)+IP包头(20)+GRE包头(24),一般GRE包头都是4字节,这里为何计算了24字节,还有前面叙述的GRE头部以及GRE本身,这个“本身”该怎么解释?为什么别的网元没有“本身”这一说呢?

还有报文的重组应该在手机侧进行么,为何你谈到在ggsn上重组?

使用道具 举报

Rank: 9Rank: 9

懒

地板
发表于 2013-12-8 21:57:09 |只看该作者
杨昭 发表于 2013-12-8 19:34
楼主,您好,请教几个问题。
在您的帖子里谈到 GRE的包大小=MSS(1436)+TCP包头(20)+IP包头(20)+GRE包头(24 ...

帮你找了篇文章,推荐看下这篇文章关于GRE的详细介绍。http://wenku.baidu.com/view/699d9749cf84b9d528ea7a82.html

GRE有两个RFC标准,有24字节,也有4字节的。分段无处不在,只要上层数据超过GGSN上定义的IP层MTU,GGSN将在IP层进行分段。你说的手机分段重组是指完整的数据包重组,可以是TCP和应用层的重组。和GGSN侧层的重组还不完全相同。


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

使用道具 举报

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

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

GMT+8, 2024-11-26 02:50 , Processed in 0.029313 second(s), 15 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部