tcp/ip学习笔记--第6章ICMP

来源:互联网 发布:网络主播收入排行榜 编辑:程序博客网 时间:2024/06/07 01:24

这章内容不算难,没有产生啥自己的笔记,记一遍只是为了加深印象。


ICMP经常被认为是 IP层的一个组成部分,用来传递差错报文以及其他需要注意的信息。ICMP报文通常被 IP层或更高层协议(TCP或UDP)使用 。

ICMP报文被封装在IP报文中,格式如下:



ICMP报文的格式如下:



ICMP报文类型:



ICMP地址请求掩码与应答:

用于无本地存储介质的系统在启动的时候查询子网掩码。

报文格式:



ICMP时间戳请求和应该报文

I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间。这种ICMP报文的好处是它提供毫秒级别的精度,但是这也依赖于它请求的主机。缺陷是必须通过其他方法获得日期。

报文格式:

时间差值计算公式:

receivedTime-RTT/2-orginateTime

节末提到有一种更精确的实现方式,ntp(netword time protocol) RFC1305.


ICMP端口不可到达差错报文

UDP有一个规则是,如果接收到一个UDP报文,但是并没有任何程序在使用这个报文的目标端口,那么UDP就会回发一个ICMP端口不可达差错报文。

UDP包产生的差错报文格式如下:



在这个例子中,ICMP数据报中的内容:产生差错报文的IP头(20字节)+IP数据报文的前8个字节(udp首部),收到差错报文的主机就可以从ip头中知道用什么协议来解析后面的报文。解析报文可以得知是哪个程序发送的报文出错了,从而上报给相应的程序。

ICMP端口不可达报文格式:





原创粉丝点击