『TCP/IP详解——卷一:协议』读书笔记——18
2013-08-27 15:44:52
第7章 Ping程序
7.1 引言
“ping”这个名字来源于声纳定为操作。Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
一般来说,如果不能Ping到某台主机,那么就不能Telnet或者FTP到那台主机。反过来,如果不能Telnet到某太主机,那么通常可以用Ping程序来确定问题出在哪里。Ping程序还能测出到这台主机的往返时间,以表明该主机离我们有“多远”。
随着Internet安全意识的增强,出现了提供访问控制清单的路由器和防火墙,那么像上面没有限定的断言就不再成立了。一台主机的可达性可能不只取决于IP层是否可达,还取决于使用何种协议以及端口号。Ping程序的运行结果可能显示某台主机不可达,但我们可以用Telnet远程登录到该主机的25号端口(邮件服务器)。
7.2 Ping程序
我们称发送回显请求的ping程序为客户,而称被ping的主机为服务器。大多数TCP/IP实现都在内核中直接支持Ping服务器——这种服务器不是一个用户进程。
ICMP回显请求和回显应答报文格式如下:

标识符:为发送ping进程的ID号。
序号:从0开始,每发送一次新的回显请求就加1。ping程序打印处返回的每个分组的序号,允许我们查看是否有分组丢失、失序或重复。
7.2.1 LAN输出

上图为在局域网运行ping程序的输出结果。从上面的输出中可以看出,回显应答是以发送的次序返回的(0,1,2等)。
上图中的往返时间(time)都为0ms,这是由于作者主机程序使用的计时器分辨率较低的缘故。当应答返回时,用当前时间减去存放在ICMP报文中的时间值,即是往返时间(这和ICMP时间戳请求-应答的原理基本相同)。

上图是tcpdump的抓包结果。通常,第一个往返时间值要比其他的大,这是因为目的端的硬件地址不再ARP告诉缓存中的缘故。正如第四章所讲的,在发送第一个回显请求之前要发送一个ARP请求并接收ARP应答,这需要花费几毫秒的时间。
7.2.2 WAN输出

这里序号就不像局域网那样连续了,我们发现有52%的丢包率,虽然在广域网上丢包现象很普遍,但是52%的丢包率显然是不正常的。通过广域网我们可能看到重复的分组(序号相同),失序的分组(序列号不是降序排列)。
7.2.3 线路SLIP链接

SLIP是串行线路所以传输速度很慢,我们第2章有学过串行线路吞吐量的计算。图中的输出结果是已经将slip网络的传输速率降到了1200b/s,这样做是为了能够产生一些特殊的结果。而ping程序发送的ICMP报文有56个字节,加上20个字节的IP首部和8个字节的ICMP首部以及2个字节的起始位和结束位,共86字节。所以往返时间大约为1433(86 * 8.33 * 2)ms。
上面的输出可以证实我们的计算,由于程序每个1s发送一个ICMP回显请求,但是要等1.48s才能接受一个应答,因此在第一条应答返回之前已经发出去两条回显请求(0s和1s时)。这就是为什么最后会显示丢失一个分组,实际上并没有丢失,而是在计算丢失率的时候,它正在返回途中。
7.2.4 拨号SLIP链路
在拨号SLIP链路的两端增加了调制解调器,调制解调器会带来包括数据压缩、错误控制等功能。而带来的影响就有:调制解调器本身的时延,随着数据压缩导致分组长度减少,使用错误控制协议分组长度增加,接收端的调制解调只能验证循环检验字符后才能释放数据,处理每端计算机异步串行接口。这种种影响导致RTT(往返时间)从大变小,并最终保持稳定,且其具体值或范围难以提起推算。
『TCP/IP详解——卷一:协议』读书笔记——18的更多相关文章
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
- 『TCP/IP详解——卷一:协议』读书笔记——13
2013-08-24 16:03:39 4.6 ARP代理 ARP代理(Proxy ARP):如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求.这样可 ...
- 『TCP/IP详解——卷一:协议』读书笔记——11
2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...
- 『TCP/IP详解——卷一:协议』读书笔记——07
2013-08-20 17:51:49 第三章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP和IGMP数据都以IP数据报格式传输.再来看一下图 ...
- 『TCP/IP详解——卷一:协议』读书笔记——06
2013-08-20 14:41:01 2.8 最大传输单元MTU MTU,最大传输单元:以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节.这个不同网络对应的传输上限 ...
- 『TCP/IP详解——卷一:协议』读书笔记——05
2013-08-19 22:35:57 2.6 PPP:点对点协议 PPP点对点协议修改了SLIP协议中的所有缺陷: 1. 在串联链路上封装IP数据报的方法.PPP即支持数据为8位&无奇偶检验 ...
- 『TCP/IP详解——卷一:协议』读书笔记——04
2013-08-18 16:31:17 第2章 链路层 2.1 引言 链路层主要有三个目的: 为IP模块发送和接受IP数据报 为ARP模块发送ARP请求和接受ARP应答 为RARP发送RARP请求和接 ...
随机推荐
- 数据库imp导表dmp的方法
1>sqlplus / as sysdba 进入sqlplus 2>drop user USER cascade 3>create user USER IDENTIFIED BY P ...
- 介绍开源的.net通信框架NetworkComms框架 源码分析(二十二 )TCPConnectionStatic
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- nginx重启
ps aux | grep nginx 查找 主进程 号 kill 9666 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.co ...
- C3属性的轮播图(持续更新)
天气好冷,都不想写代码.就先写个没有焦点的轮播图,过两天在补全. 用的是CSS3的属性 过渡transition 和 转换 transfrom:translateX() 只做了轮播和 鼠标进入停止轮播 ...
- R语言画图,根据正负值画不同颜色,并且画水平线或者垂直线
col=ifelse(x<0, "blue", "red") #如果x值为负值,用蓝色表示,反之,用红色表示 abline(v=0,col="g ...
- Erp中的ATP和CTP是什么?两者有什么区别?
可用量承诺(Available to Promise,ATP),是一种库存匹配模型,意在最大限度地利用库存产品对客户订单需求做出及时和准确的反应,缩短交货提前期.降低库存水准: 可用生产能力承诺(Ca ...
- SQL Server 查询表备注信息的语句
--name 字段名称--user_type_id --max_length 最大长度--is_nullable 是否允许空--remark 描述SELECT c.name, c.user_ty ...
- Ubuntu root 密码 sudo passwd
用vmware安装好ubuntu后,su - 切换不到root,提示密码错误. 解决办法: 1.用当前登录用户打开终端,在终端输入命令 sudo passwd,输入当前用户的密码然后回车 2.会提示输 ...
- 如何在Mac OS X中显示隐藏的文件
打开终端,输入: defaults write com.apple.finder AppleShowAllFiles -bool true 显示文件夹中的隐藏文件. defaults write co ...
- 过滤Xss
/** * 防xss过滤 * * @author rentingshuang <tingshuang@rrkd.cn> * @param type $string * @param typ ...