查看: 5597|回复: 11

交换机的怪问题讨论

[复制链接]
发表于 2006-11-1 12:02:40 | 显示全部楼层 |阅读模式
近日看了[IP之[分段标识]疑问]这篇文章,突然想到本人去年遇到的一个问题.于是拿出来大家讨论,讨论.

好了,我就把故障现象说一下吧.话说,某一天一个同事跑过来对我说,他的MAIL用不了,我过去一看,果然用不了.于是首先拿起"七种武器"之PING,于是乎怪事发生了.居然网络是通的.接下来,测试发现PING数据包3000以下没有问题,但PING65500数据包却死活都PING 不通.后来发现是交换机电源的问题,更换交换机OK!

于是今天讨论的问题来了,首先我们都知道以太网II的帧最大是1518Bytes,也就是一个数据最终会分成大大小小的不同的以太网帧,那为什么PING 65500却PING 不通呢?
回复

使用道具 举报

发表于 2006-11-1 12:50:52 | 显示全部楼层
在默认的情况下,windows的ping发送的数据包大小为32byt,也可以自己定义它的大小;

但有一个大小的限制,就是最大只能发送65500byt;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2006-11-1 16:37:14 | 显示全部楼层
本人昨天也刚刚发现跟本主题有关一个有趣的现象,从这个现象说明ICMP最大发包是1518B。


Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

C:\>ping 192.168.0.2 -l 1472

Pinging 192.168.0.2 with 1472 bytes of data:

Reply from 192.168.0.2: bytes=1472 time<10ms TTL=128
Reply from 192.168.0.2: bytes=1472 time<10ms TTL=128
Reply from 192.168.0.2: bytes=1472 time<10ms TTL=128


C:\>ping 192.168.0.2 -l 1473

Pinging 192.168.0.2 with 1473 bytes of data:

Request timed out.
Request timed out.
Request timed out.

以上测试在2000、XP下通过。。。
回复

使用道具 举报

 楼主| 发表于 2006-11-1 16:57:55 | 显示全部楼层

能否解释一下呢?

原帖由 artico 于 2006-11-1 16:37 发表
本人昨天也刚刚发现跟本主题有关一个有趣的现象,从这个现象说明ICMP最大发包是1518B。


Microsoft Windows 2000
(C) 版权所有 1985-2000 Microsoft Corp.

C:\>ping 192.168.0.2 -l 1472

Pinging  ...




现象果真有趣,能否解释一下呢?
回复

使用道具 举报

发表于 2006-11-1 17:56:51 | 显示全部楼层
这个现象说明ICMP最大发包是1518B

1518=1472+MAC头尾(18)+IP头(20)+ICMP头(8)
不知道这样解释还行不???
回复

使用道具 举报

 楼主| 发表于 2006-11-1 18:42:31 | 显示全部楼层
以太网II的帧最大是1518Bytes,但在2k与xp下可以PING65500字节,你却只能PING 1472字节,是不是在路由器里设置了.
你是怎么得到这样的现象的?谢谢!
回复

使用道具 举报

发表于 2006-11-2 07:46:48 | 显示全部楼层
无意发现。。
后来查看一下,是跟防火墙有关,可能是跟PING DEAD设置有关吧,具体还不清
回复

使用道具 举报

发表于 2006-11-2 11:08:41 | 显示全部楼层
个人觉得,
1. 不知道是否是网络设备的设置有关,
2. 还有就是在分段的时候,其中有某个分段数据丢失导致
3. 不同的操作系统的MTU值也不一样!

不知道是否是这样原因!
回复

使用道具 举报

发表于 2006-11-2 16:48:26 | 显示全部楼层
原帖由 artico 于 2006-11-1 16:37 发表
本人昨天也刚刚发现跟本主题有关一个有趣的现象,从这个现象说明ICMP最大发包是1518B。


Microsoft Windows 2000
(C) 版权所有 1985-2000 Microsoft Corp.

C:\>ping 192.168.0.2 -l 1472

Pinging  ...



确实,我也曾遇到过相同的现象!我想还是与系统的安全设置有关吧?同一个IP,我前几天可以ping 65500(据一朋友说,当时,该主机基本上是瘫痪了,几万个包每秒 ,阿弥托佛),但过了几天,却只能ping 1300之下了!
回复

使用道具 举报

 楼主| 发表于 2006-11-2 16:57:15 | 显示全部楼层

那知不知道是怎样一回事吗?

原帖由 ghostorc 于 2006-11-2 16:48 发表



确实,我也曾遇到过相同的现象!我想还是与系统的安全设置有关吧?同一个IP,我前几天可以ping 65500(据一朋友说,当时,该主机基本上是瘫痪了,几万个包每秒 ,阿弥托佛),但过了几天,却只能ping 1300之下 ...


那知不知道是怎样一回事吗?我遇到的情况是因为交换机的电源不稳定引起的.当ping 2000以下的时候MAIL超级的慢,像死机了一样!
回复

使用道具 举报

发表于 2006-11-2 17:55:53 | 显示全部楼层
这里面有2个问题

  首先,windows下的mtu默认是1500。如果ping -l的值超过1472(1500-20IP头-8icmp头),则整个ping请求就会变成2个或多个帧。这个观点用sniff很容易就能证明。大家还可以修改一下默认的mtu,然后用ping -f测试,情况将会更明朗。

  其次,巨大的icmp请求是会被路由器或者防火墙过滤掉的,这可能就是为什么大icmp(多个桢的icmp)请求会出现request timed out 的情况。这是因为,如果设备响应大icmp echo request,将会非常容易受到攻击。可以想一下,ping -l 65530 -t,差不多的流量将达到65kbyte/s,512kbps。如果用多台电脑同时ping,那样网络肯定会阻塞。
回复

使用道具 举报

 楼主| 发表于 2006-11-3 11:13:18 | 显示全部楼层
原帖由 ValorZ 于 2006-11-2 17:55 发表
巨大的icmp请求是会被路由器或者防火墙过滤掉的, ...


首先,谢谢楼上的精彩解答.
还有一个问题,知不知道路由器或者防火墙具体是怎样配置可以过滤大icmp包的!但是小icmp包可以通过.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表