ICMP:Internet控制报文协议
2016-02-12 10:07
1026 查看
ICMP:Internet控制报文协议。
是IP层的组成部分。传递差错报文或其他信息。
ICMP报文被封装在IP数据报内部:
详细格式例如以下所看到的:
个字段含义例如以下:
8位类型。
表示该ICMP报文的含义,如目的不可达、超时、请求回显等。
8为代码。进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定。
16位检验和。和IP首部检验和的算法同样。
我们常常使用的ping程序就是基于ICMP报文进行的传输。
pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。回显请求和回显应答报文格式例如以下:
类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求
ICMP回显请求和回显应答报文多出了几个特有的字段:
标识符。表示发送进程的ID号。
序号。从0開始,每发送一个新的回显请求就加1.
选项数据。实际载荷,比如保存发送时间,接收端用当前时间减去发送时间就能计算出往返时间。
以下是抓包的结果:
client一共向server发送了4个回显请求。
TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输。所以ping偶尔会出现传输出错的情况。
參考:
《TCP/IP具体解释》第6章、第7章。
是IP层的组成部分。传递差错报文或其他信息。
ICMP报文被封装在IP数据报内部:
详细格式例如以下所看到的:
个字段含义例如以下:
8位类型。
表示该ICMP报文的含义,如目的不可达、超时、请求回显等。
8为代码。进一步描写叙述该ICMP报文。ICMP报文的类型由类型字段和代码字段共同决定。
16位检验和。和IP首部检验和的算法同样。
我们常常使用的ping程序就是基于ICMP报文进行的传输。
pingclient发送一个ICMP回显请求报文,server收到此报文后返回一个ICMP回显应答报文作为应答。client和server都是在内核层发送和接受该报文的,而不是通过用户进程。回显请求和回显应答报文格式例如以下:
类型0 + 代码0 = 回显应答
类型8 + 代码0 = 回显请求
ICMP回显请求和回显应答报文多出了几个特有的字段:
标识符。表示发送进程的ID号。
序号。从0開始,每发送一个新的回显请求就加1.
选项数据。实际载荷,比如保存发送时间,接收端用当前时间减去发送时间就能计算出往返时间。
以下是抓包的结果:
client一共向server发送了4个回显请求。
TTL字段是在IP首部中的。因为ICMP属于IP层协议,而IP层又是不可靠、无连接、尽力而为式的传输。所以ping偶尔会出现传输出错的情况。
參考:
《TCP/IP具体解释》第6章、第7章。
相关文章推荐
- 汇编语言1:基础知识
- 【CODEVS2776】寻找代表元
- 商界黄埔-特种兵训练营
- 树莓派2 从 u盘启动系统实验
- java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode
- ELK setup guide
- http VS https
- Servet介绍及其生命周期
- 心得体会
- eclipse 智能提示
- 12.1、PageRank实例
- SAX和DOM解析的xml的区别
- 善用VS中的Code Snippet来提高开发效率
- 12、pageRank
- JavaScript实现弹出模态窗体并接受传值的方法
- hdu 5289 Assignment
- 【BZOJ 2242】[SDOI2011]计算器
- SQL primary key, foreign key
- [译] 给PHP开发者的PHP源码-第一部分-源码结构
- 直觉告诉我,引力是可以阻断(2)