『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请求和接 ...
随机推荐
- c语言中三个点的解释 : variadic
3.6 Variadic Macros A macro can be declared to accept a variable number of arguments much as a funct ...
- Oracle:ORA-00955: name is already used by an existing object
下午从生产库导出了一份表结构,用来测试一些问题,由于生产库连接着其他用户下的表所以通过视图在本地模拟一下,于是创建视图: create or replace view csews as select ...
- nginx + lua +redis环境搭建
环境搭建,其实主要是lua的环境,这个环境够麻烦的,在网上找了很多前辈的文章,终于完成了 ,安装redis wget http://download.redis.io/releases/redis-3 ...
- web页面全角&半角
根据Unicode编码,全角空格为12288,半角空格为32 : 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 全角-->半角函数 //半角转换 ...
- Java重点之小白解析--浅谈数据流形式图片上载
文档上载,上载也不知道哪个大神(混球)起的名字,读起来怪怪的,反正平时我只读上传. 闲话少说,直入主题.先等等这两天做文件上传,都快把宝宝折磨疯了,不会呀,各种查呀,最可悲的是废了老大功夫学会了传送文 ...
- SVM学习笔记(二):什么是交叉验证
交叉验证:拟合的好,同时预测也要准确 我们以K折交叉验证(k-folded cross validation)来说明它的具体步骤.{A1,A2,A3,A4,A5,A6,A7,A8,A9} 为了简化,取 ...
- ABAP 动态内表添加单元格颜色字段
*动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...
- Python Decorator分析
decorator本身是一个函数,这个函数的功能是接受被修饰的函数(decorated)作为参数,返回包装函数(wrapper)替换被修饰函数(decorated). @decorator func ...
- 迅雷VIP帐号获取小工具
自己写的迅雷vip帐号获取工具,主要是熟悉一下正则表达式 下载地址: 迅雷VIP获取工具 另附vip防踢补丁,不能使用最新迅雷,我使用的是迅雷尊享版2.0.12.258,使用了一段时间,至少没被踢出来 ...
- ssh链接数设置问题
今天碰到一个问题,脚本执行scp文件拷贝,因为拷贝的服务器很多,所以拷贝脚本的实现是在把拷贝动作转后台执行,结果发现一堆文件拷贝失败.比较有迷惑性的是,拷贝失败的通常是同一个文件夹拷贝到所有服务器时失 ...