【TCP/IP详解】第6章 ICMP: Internet控制报文协议

来源:互联网 发布:如何使用linux多线程 编辑:程序博客网 时间:2024/05/16 19:19
6 ICMP: Internet控制报文协议
I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。 I C M P报文通常被 I P层或更高层协议。
I C M P报文是在 I P数据报内部被传输的
检验和字段覆盖整个I C M P报文。
ICMP报文的类型
不同类型由报文中的类型字段和代码字段来共同决定:查询报文 or 差错报文
ICMP地址掩码请求与应答
I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。
系统广播它的I C M P请求报文。无盘系统获取子网掩码的另一个方法是 B O O T P协议
I C M P报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样,发送端就可以把应答与请求进行匹配
ICMP时间戳请求与应答
I C M P时间戳请求允许系统向另一个系统查询当前的时间
时间戳的值是自午夜开始计算的毫秒数
ICMP端口不可达差错
U D P的规则之一是,如果收到一份 U D P数据报而目的端口与某个正在使用的进程不相符,那么 U D P返回一个I C M P 不可达报文。可以用 T F T P来强制生成一个端口不可达报文。
I C M P报文是在主机之间交换的,而不用目的端口号,而每个 2 0字节的U D P 数据报。则是从一个特定端口。发送到另一个特定端口。
I C M P差错报文(参见图 6 - 3的最后一列)必须包括生成该差错报文的数据报 I P首部(包含任何选项),还必须至少包括跟在该 I P首部后面的前8个字节。
一个重要的事实是包含在 U D P首部中的内容是源端口号和目的端口号。就是由于目的端口号才导致产生了 I C M P端口不可达的差错报文。接收 I C M P的系统可以根据源端口号来把差错报文与某个特定的用户进程相关联。
导致差错的数据报中的 I P首部要被送回的原因是因为 I P首部中包含了协议字段,使得 I C M P可以知道如何解释后面的 8个字节
  
原创粉丝点击