频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

5.2.1 ping

作者: 鸟哥 出处:机械工业出版社华章公司  2007-12-05 10:09    砖    好    评论   进入论坛
阅读提示:《鸟哥的Linux私房菜——服务器架设篇》(第二版)第五章的主要介绍一些常见的网络命令,并新增了一些数据包捕获的命令。本文主要介绍的是ping命令。

5.2.1  ping

这个ping是很重要的命令,ping主要通过ICMP数据包来进行整个网络的状况报告,当然,最重要的就是ICMP type 0、8这两个类型,分别是要求回报与主动回报网络状态是否存在的特性。要特别注意的是,ping需要通过IP数据包来传送ICMP数据包,而IP数据包里有个相当重要的TTL(Time To Live)属性,这是一个很重要的路由特性,详细的IP与ICMP表头数据请参考网络基础的详细介绍。

[root@linux ~]# ping [-bcstnM] IP
参数:
-b,后面接的是 broadcast 的 IP,用在你“需要对整个网段的主机进行 ping ”时;
-c,后面接的是执行 ping 的次数,例如 -c 5 ;
-n,不进行 IP 与主机名称的反查,直接使用 IP ;
-s,发送出去的 ICMP 数据包大小,默认为 56(bytes),再加 8 bytes 的 ICMP 表头资料。
-t,TTL 的数值,默认是 255,每经过一个节点就会少
-M [do|dont] :主要在检测网络的 MTU 数值大小,两个常见的项目是:
   do,代表传送一个 DF (Don't Fragment) 旗标,让数据包不能重新拆包与打包;
   dont,代表不要传送 DF 标记,表示数据包可以在其他主机上拆包与打包。

范例一:检测一下 168.95.1.1 这部 DNS 主机是否存在?
[root@linux ~]# ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms

--- 168.95.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2


ping最简单的功能就是传送ICMP数据包去要求对方主机响应是否存在于网络环境中。上面的响应信息当中,几个重要的项目如下。

· 64 Bytes:表示这次传送的ICMP数据包大小为64 Bytes,这是默认值。在某些特殊场合中,例如,要搜索整个网络内最大的MTU时,可以使用-s 2000之类的数值来取代。

· icmp_seq=0:ICMP所检测进行的次数,第一次编号为0。

· ttl=243:TTL与IP数据包内的TTL是相同的,每经过一个带有MAC的节点(node)时,例如router、bridge时,TTL就会减少1,默认的TTL为255,你可以通过 -t 150之类的方法来重新设置默认TTL数值。

· time=9.16 ms:响应时间,单位有ms(0.001秒)及µs(0.000001秒),一般来说,响应时间越小,表示两台主机之间的网络联机越良好。

如果你忘记加上 -c 3这样的规定检测次数,那就得要使用 [ctrl]-c将它结束掉了。

范例二:针对整个网段进行 ping 的追查
[root@linux ~]# ping -c 3 -b 192.168.10.255
WARNING: pinging broadcast address          <==会告知危险。
PING 192.168.10.255 (192.168.10.255) 56(84) bytes of data.
64 bytes from 192.168.10.100: icmp_seq=1 ttl=64 time=0.177 ms
64 bytes from 192.168.10.20: icmp_seq=1 ttl=64 time=0.179 ms (DUP!)
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.302 ms (DUP!)
64 bytes from 192.168.10.40: icmp_seq=1 ttl=64 time=0.304 ms (DUP!)
# 当针对整台主机作 ping 的检测时,可以利用 -b 这个参数。
# 请特别注意,当使用 ping -b 时,会对整个网段进行检测。没事别乱用。
# 例如上面的范例中,区网内的 192.168.10.20... 等主机会被检测到。

如果想要了解网内有多少台主机存活着,那么使用ping -b broadcast就能够知道了。而不必一台一台主机来检测。另外要特别注意一下,如果你的主机与待检测主机并不在同一个网段内,那么TTL默认使用255,如果是同一个网段内,那么TTL默认则使用64。看看上面的输出即可明白。

我们在前几章的网络基础里面谈到加大帧(frame)时,对于网络性能是有帮助的,因为数据包打包的次数会减少,加上如果整个传输的媒介都能够接受这个frame而不需要重新进行数据包的拆解与重组的话,那么性能当然会更好,修改frame大小的参数就是MTU。好了,现在我们知道网卡的MTU可以通过ifconfig或者是ip等来实现,那么追踪整个网络传输的最大MTU时,又该如何查询?最简单的方法当然是通过ping传送一个大数据包,并且不许中继的路由器或Switch将该数据包重组,这就能够处理了:

范例三:找出最大的 MTU 数值
[root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data.
1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms
# 如果有响应,那就是可以接受这个数据包,如果无响应,那就表示这个 MTU 太大了

[root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data.
ping: local error: Message too long, mtu=1500
# 这个错误信息是说,本地端的 MTU 才到 1500 而已,你要检测 8000 的 MTU
# 根本就是无法实现的。那如何是好?用前一小节介绍的 ip link 来进行 MTU 设置吧

不过,你需要知道的是,由于IP数据包表头(不含options)已经占用了20Bytes,再加上ICMP的表头有8Bytes,所以当然你在使用 -s size的时候,那个数据包就得要先扣除 (20+8=28)的大小了。因此如果要使用MTU为1500时,就得要下达“ping -s 1472 -M do xx.yy.zz.ip”才行。另外,由于本地端的网卡MTU也会影响到检测,所以如果想要检测整个传输媒介的MTU数值,那么每个可以调整的主机就得要先使用ifcofig或ip将MTU调大,然后再去进行检测,否则就会像上面提供的案例一样,可能会出现“Message too long,mtu=1500”之类的字样。如果检测完毕后,想要调整最佳化的MTU,那么请参考前一章节的内容来调整。

不过不要随便调整MTU,除非真的有问题。通常是在如下情况调整MTU。

· 因为全部的主机群都是在内部的网段,例如群集架构(Cluster)的环境下,由于内部的网络节点都是我们可以控制的,因此可以通过修改MTU来改进网络性能。

· 因为操作系统默认的MTU与你的网段不符,导致某些网站可以顺利联机,某些网站则无法联机。以Windows操作系统作为联机分享的主机时,在Client端挺容易发生这个问题。

如果是要连上Internet的主机,注意不要随便调整MTU,因为我们无法知道Internet上面的每台机器能够支持的MTU到多大,因为这些也不是我们能够管得到的。

另外,其实每种联机方式都有不同的MTU值,常见的各种接口的MTU值如表5-1所示。

表5-1  常见的各种接口的MTU值

网络接口

MTU

Ethernet

1500

PPPoE

1492

Dial-upModem

576

网络上也有免费帮忙查询MTU与传输相关数据的网站,例如下面这个网站:

http://forums.speedguide.net:8117/

连接上这个网站之前,请先取消你浏览器上的代理服务器(Proxy)的设置,才能显示出正确的信息。如果在Windows的系统上想要修改MTU值的话,那就得要修改Windows的日志文件,在Windows上面对于MTU的检测与修改的详细做法可以参考微软的官方网站:

http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001
/tip1to3/tip1to3_2.htm

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
专题
网络工程师职业规划与现状
见证中国网络安全二十年
计算机网络维护入门
未来五年可能必备的10大网络技术
网络管理系统如何支撑ITSM
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用