一个内网用动态dns架服务器的奇怪问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:15:16
家中一台电脑做服务器,通过路由器ADSL拨号上网.看是一切正常,在其它地方不管是公网还是内网的电脑都可以通过花生壳提供的域名访问这台服务器,速度也不错,可就是在办公室里访问就很慢很慢,有时甚至打不开页面.办公室也是由几台电脑通过路由ADSL拨号组成的内网,由于办公室需要常期访问这台服务器,换了路由器,换了网线,更改了客户端设置,都不行,办公室周边的内网电脑访问也很慢,同一种现像,公网访问没问题,最后开了路由的DMZ,问题解决了,可是一直不明原因,办公室离服务器几公里,而我在自己家(离服务器1公里)也用内网访问不开DMZ也没问题,是因为那个地区的原因吗还是其它原因?请高手解答.

这是典型的MTU数据包问题.

在网络介质的传输单位中,MTU即一个数据包的最大字节数是有限制的.如果单位超过了网络媒体所能负荷的大小,除非操作系统支持数据包分片,否则数据包无法传递.如果数据包的大小与最大传输单元无法配合,导致数据包传送时不停的进行分片,将导致网络传输效能下降.同时也造成了连接不上某些网站.

所以网卡的MTU设置最好能够针对网络接口进行最优化.

如果客户端无法浏榄某些网站或无法发送邮件,这样的问题常常与MTU的数值不正确有关.一般而言,MTU在网卡(ENTERNET)的默认值为1500,其它的接口如下所示:

PPPoE(ADSL):1492
Dial-up(model):576

默认的网络接口MTU是1500,而PPPoE使用的是1492,MTU的要求不同,所以有些数据无法正确传输.一般调整客户端MTU值,就可以解决这一问题,通过调整MTU,也可以提高网络网络效率.所以这个时候就要修改MTU值

找出MTU值

由于MTU与Router具有很大的关系,通常在客户端对Router(就是NAT主机,可能是LINUX,也可能是WINDOWS)进行MTU的检测.

Windows系统上的检测
1.进入DOS命令提示符

2.输入ping -f -l <bytes> IP
如:ping -f -l 1500 192.168.1.2

bytes是本机送出去的数据包大小,IP是GateWay的IP,使用-f,所以数据包没有办法重新组合.

如果结果表明出现响应了,就表示这个MTU是可行的,不过建议找出可行的最大MTU值,就可以达到最优的网络传输.

3.MTU值的计算

如ping -f -l 1464 192.168.1.2,找到的数据是数据包的大小,但每个数据包都具有包头,这个包头部分占去28个字节,所以最终的MTU数值其实是:1464+28=1492.