码迷,mamicode.com
首页 > Web开发 > 详细

ICMP:Internet控制报文协议

时间:2014-06-04 13:05:47      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:c   style   blog   a   http   ext   

ICMP:Internet控制报文协议。是IP层的组成部分,传递差错报文或其它信息。

ICMP报文被封装在IP数据报内部:
bubuko.com,布布扣

具体格式如下所示:
bubuko.com,布布扣

个字段含义如下:
  • 8位类型。表示该ICMP报文的含义,如目的不可达、超时、请求回显等。
  • 8为代码。进一步描述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定
  • 16位检验和。和IP首部检验和的算法相同。

我们经常使用的ping程序就是基于ICMP报文进行的传输。ping客户端发送一个ICMP回显请求报文,服务器收到此报文后返回一个ICMP回显应答报文作为应答。客户端和服务器都是在内核层发送和接受该报文的,而不是通过用户进程。回显请求和回显应答报文格式如下:
bubuko.com,布布扣

类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求

ICMP回显请求和回显应答报文多出了几个特有的字段:
  • 标识符。表示发送进程的ID号。
  • 序号。从0开始,每发送一个新的回显请求就加1.
  • 选项数据。实际载荷,例如保存发送时间,接收端用当前时间减去发送时间就能计算出往返时间。
下面是抓包的结果:
bubuko.com,布布扣

客户端一共向服务器发送了4个回显请求。TTL字段是在IP首部中的。由于ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输,所以ping偶尔会出现传输出错的情况。

参考:
《TCP/IP详解》第6章、第7章。

ICMP:Internet控制报文协议,布布扣,bubuko.com

ICMP:Internet控制报文协议

标签:c   style   blog   a   http   ext   

原文地址:http://blog.csdn.net/jy02326166/article/details/28255975

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!