TCP/IP详解卷1 读书笔记:第七章 Ping程序

来源:互联网 发布:网络繁忙请稍后再试 编辑:程序博客网 时间:2024/05/16 05:24

Ping程序

        目的是为了测试另一台主机是否可达。该程序发送一份 I C M P回显请求报文给主机,并等待返回 I C M P回显应答。Ping服务端程序一般在内核中实现,客户端未必在内核中实现。

        以目前的网络程序,Ping不通,并不能代表网络是不通的。因为Ping可能在去往目的端的路途中防火墙过滤了。

        利用Ping程序记录路由选项,是利用了IP数据包头中的可选项字段,最多只能记录9个路由信息。

 

Ping不存在的主机

       当Ping一个局域网主机的时候,会得到一个发送端主机返回的ICMP目的不可达差错报文。

       当ping一个外网主机的时候,会得到一个发送送端主机返回的ICMP超时差错报文。


        Ping局域网内主机,发送端会发送一个ARP广播来找目的主机的MAC地址,由于目的主机不存在,所以未得到回复,最终导致该ICMP报文(ping数据)未发到网卡。这样,发送端认为该目的主机不可达,于是给应用进程(Ping程序)返回了ICMP不可达报文。通过抓包发现,该ICMP请求报文并未发出去。

        Ping外网主机,发送端将该ICMP查询报文,通过默认路由发出去了,但最终未得到目的地址的回复,因此,发送端产生了一个ICMP超时报文给应用进程(Ping程序)。通过抓包发现,ICMP请求报文发出去了,但并未收到应答。

        无论外网还是内网,这里的ICMP差错报文,都是由发送端产生后直接交给应用程序的,未经过链路层(网卡)转发。


0 0
原创粉丝点击