临海响应式网站设计,导航网站的好处,广州seo优化,中企做的网站网际控制报文协议ICMP
为了更有效的转发IP数据报和提高交付成功的机会#xff0c;在网际层使用ICMP#xff08;Internet Control Message Protocol#xff09;协议#xff0c;其允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文装在IP数据报中#xf…网际控制报文协议ICMP
为了更有效的转发IP数据报和提高交付成功的机会在网际层使用ICMPInternet Control Message Protocol协议其允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文装在IP数据报中作为其中的数据部分看起来像高层协议但其实还是IP层的协议。
一、ICMP报文的种类
ICMP报文有两种。前四个字节是统一的格式。代码字段用于进一步区分某种类型中的几种不同情况校验和字段用来检验整个ICMP报文因为IP数据报首部中的检验和字段只检验首部不检验IP数据报的内容。
1、ICMP差错报告报文
1终点不可达当路由器或主机不能交付数据报时就向源点发送该报文。
2时间超过
当路由器收到TTL为0的数据报时除了丢弃该数据报外还要向源点发送该报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时就把已收到的数据报片全部丢弃并向源点发送该报文。
3参数问题当路由器或目的主机收到的数据报的首部中有的字段值不正确时根据首部检验和字段判断就丢弃该数据报并向源点发送该报文。
4改变路由重定向路由器把改变路由报文发送给主机让主机知道下次应将数据报发送给另外的路由器(也就是说找到了更好的路由)。
在互联网的主机中也要有一个转发表。当主机要发送数据报时首先查找主机自己的转发表看应当从哪一个接口把数据报发送出去。在互联网中主机的数量远大于路由器的数量出于效率的考虑这些主机不和连接在网络上的路由器定期交换路由信息。在主机刚开始工作时一般都在转发表中设置一个默认路由器的IP地址。不管数据报要发送到哪个目的地址都一律先把数据报传送给这个默认路由器而这个默认路由器知道到每一个目的网络的最佳路由(通过和其他路由器交换路由信息)。如果默认路由器发现主机发往某个目的地址的数据报的最佳路由应当经过网络上的另一个路由器R就用改变路由报文把这情况告诉主机。于是主机就在其转发表中增加一个项目到某某目的地址应经过路由器R(而不是默认路由器)。
所有的ICMP差错报告报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来作为ICMP报文的数据字段。再加上相应的ICMP 差错报告报文的前8个字节就构成了ICMP 差错报告报文。提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于 TCP和UDP)以及运输层报文的发送序号(对于 TCP)。这些信息对源点通知高层协议是有用的。整个ICMP报文作为IP数据报的数据字段发送给源点。
2、ICMP询问报文
1回送请求或回送回答由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发四送ICMP回送回答报文。可以用来测试目的站是否可达以及了解其有关状态。
2时间戳请求或时间戳回答发出该报文后就能够收到对方响应的ICMP时间戳回答报文利用在报文中记录的时间戳发送方可以计算出当前网络是往返时延。
二、ICMP的应用举例
1、ping
用来测试两台主机之间的连通性使用了ICMP回送请求与回送回答报文。它没有经过运输层的TCP或UDP而是直接使用网络层的ICMP。 2、traceroutetracert
用来追踪一个分组从源点到终点的路径。在UNIX操作系统下是tracerouteWindows下是tracert。
其工作原理大致是这样的
从源主机向目的主机发送一连串的IP数据报数据报中封装的是无法交付的UDP用户数据报使用了非法端口。第一个数据报P1的生存时间TTL设置为1当P1到达路径上的第一个路由器R1时路由器R1先收下它接着把TTL 的值减1。由于TTL等于零了因此R1就把P1丢弃并向源主机发送一个ICMP 时间超过差错报告报文。源主机接着发送第二个数据报P2并把TTL 设置为2。P2先到达路由器R1R1收下后把TTL减1再转发给路由器R2。R2收到P2时 TTL为1但减1后 TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP 时间超过差错报告报文。
这样一直继续下去。当最后一个数据报刚刚到达目的主机时数据报的TTL是1。主机不转发数据报也不把TTL 值减1。但因IP数据报中封装的是无达交付的运输层的 UDP用户数据报因此目的主机要向源主机发送ICMP终点不可达差错报告报文。
这样源主机达到了自己的目的因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息到达目的主机所经过的路由器的IP 地址以及到达其中的每一个路由器的往返时间。图中每一行有三个时间出现是因为对应于每一个TTL值源主机要发送三次同样的IP数据报。