1、ICMP协议
IP协议不保证数据送达。则应有协议保证数据送达。ICMP就是其中的重要协议。
ICMP:(Internet Control Messages Protocol)因特网信报控制协议
当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会。
ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。(32字节)
ICMP报文分为两种:查询报文和差错报文。

2、ICMP协议应用-ping程序
ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。
ping利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。ping给出来了传送的时间和TTL的数据。
ping还给我们一个看主机到目的主机的路由的机会。这是因为,ICMP的ping请求数据报在每经过一个路由器的时候,路由器都会把自己的ip放到该数 据报中。而目的主机则会把这个ip列表复制到回应icmp数据包中发回给主机。但是,无论如何,ip头所能纪录的路由列表是非常的有限。

C:\Users\lishuotr>ping kat.cr

正在 Ping kat.cr [72.52.4.119] 具有 32 字节的数据:
来自 72.52.4.119 的回复: 字节=32 时间=208ms TTL=243
来自 72.52.4.119 的回复: 字节=32 时间=205ms TTL=243
来自 72.52.4.119 的回复: 字节=32 时间=209ms TTL=243
来自 72.52.4.119 的回复: 字节=32 时间=227ms TTL=243

72.52.4.119 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 205ms,最长 = 227ms,平均 = 212ms

3、ICMP协议应用-traceroute\tracert
Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具.
Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(TTL:time to live)的UDP数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。

C:\Users\lishuotr>tracert baidu.com

通过最多 30 个跃点跟踪
到 baidu.com [123.125.115.110] 的路由:

1     1 ms    <1 毫秒   <1 毫秒 192.168.1.1 [192.168.1.1]
  2     *        *        *     请求超时。
  3     8 ms     5 ms     7 ms  124.74.37.137
  4     5 ms     6 ms     8 ms  101.95.42.45
  5     9 ms     9 ms    12 ms  101.95.120.174
  6    28 ms    28 ms    29 ms  202.97.60.129
  7     *        *        *     请求超时。
  8     *        *        *     请求超时。
  9    33 ms     *       34 ms  219.158.5.137
 10    28 ms    30 ms    29 ms  202.96.12.14
 11    36 ms    30 ms    30 ms  202.106.34.98
 12     *       30 ms    27 ms  202.106.43.30
 13     *        *        *     请求超时。
 14     *        *        *     请求超时。
 15    28 ms    28 ms    28 ms  123.125.115.110

跟踪完成。

C:\Users\lishuotr>tracert rarbg.is

通过最多 30 个跃点跟踪
到 rarbg.is [185.37.100.123] 的路由:

1    26 ms    <1 毫秒    4 ms  192.168.1.1 [192.168.1.1]
  2     *        *        *     请求超时。
  3    12 ms     4 ms     6 ms  124.74.37.137
  4     4 ms     4 ms     7 ms  101.95.42.45
  5    17 ms     5 ms    12 ms  61.152.24.14
  6     5 ms     4 ms     5 ms  202.97.48.26
  7     *       10 ms     4 ms  202.97.33.154
  8   320 ms   317 ms   317 ms  202.97.50.38
  9   317 ms   314 ms   322 ms  118.85.205.214
 10   371 ms   371 ms   380 ms  ae16-9.RT.NTL.KIV.UA.retn.net [87.245.232.150]
 11   245 ms   234 ms   336 ms  GW-BelPak.retn.net [87.245.237.22]
 12   232 ms   235 ms   233 ms  91.195.120.231.hi-load.biz [91.195.120.231]
 13     *        *        *     请求超时。
 14   352 ms   348 ms   358 ms  border1.russia.transit.netsaap.com [185.37.101.2]
 15   361 ms   390 ms   395 ms  xe-0-1.edge.romania.netsaap.com [185.37.102.2]
 16   405 ms   423 ms   431 ms  ae0-94.sr.ipv4.bosnia.netsaap.com [185.37.100.2]
 17   446 ms   509 ms   424 ms  ae0-84.sr.ipv4.bosnia.netsaap.com [185.37.100.6]
 18   440 ms   477 ms   462 ms  185.37.100.123

跟踪完成。

综上,我对ICMP的理解:
ICMP:internet control message protocol,控制报文。
把控制信息进行发送的一种协议。包含:查询报文(在ping程序中使用到)、报错报文(主机不可达、路由不可达等等)。

TCP/IP学习20180710-数据链路层-ICMP协议的更多相关文章

  1. tcp/ip 学习(一)

    TCP/IP协议是什么? TCP:Transmission Control Protocol  传输控制协议 IP:Internet Protocol  因特网协议 简单来说,TCP/IP协议就是一个 ...

  2. TCP/IP的三次握手协议

    关于TCP/IP的三次握手协议,这篇文章中有详细的介绍,很通俗易懂,什么时候忘了,都可以过来瞧两眼,保证很快就明白了. 首先TCP/IP协议分为三个阶段:建立连接(握手阶段),数据传输阶段,连接终止阶 ...

  3. tcp/ip学习笔记-TCP

    tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,

  4. TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...

  5. TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute【转】

    转自:http://blog.csdn.net/goodboy1881/article/details/670761 1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议(是一种尽力传送的协 ...

  6. 【TCP/IP详解 卷一:协议】第一章概论 学习笔记

    第一章 概述 游览了一下,本章主要是简介OSI模型的低层(1-4层).介绍了TCP/IP协议族的相关知识. TCP/IP的分层 Application <--> TCP / UDP < ...

  7. TCP/IP学习笔记(3)-IP、ARP、RARP协议

    这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据 ...

  8. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  9. TCP/IP学习笔记(2)-数据链路层

    数据链路层有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做 ...

随机推荐

  1. VIM学习一: VIM命令学习及插件介绍

    一.光标移动及编辑命令(含查找替换) [打开关闭窗口] :e file或:open file       打开新文档 :q或者ctrl+w+q         关闭当前视图的窗口 :tab split ...

  2. linux系统中文件的权限

    查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...

  3. BUAAOO P5-P7 Elevator Simulation

    目录 Abstract Introduction Topic Request Elevator Analysis Reading Requests Coordinating Scheduling an ...

  4. vue css背景图片打包后路径问题

    limit,代表如果小于大约4k则会自动帮你压缩成base64编码的图片,否则拷贝文件到生产目录 name,后面是打包后的路径: loader,后面 limit 字段代表图片打包限制,这个限制并不是说 ...

  5. 解题报告 『宝藏(Prim思想 + 访问顺序随机)』

    原题地址 本以为不过是一道Prim算法模版题,但貌似只能得45分,虽然对我这种蒟蒻来说已经够了. 然而同机房大佬表示可以用模拟退火A了此题,遂习之,终无所获. 然而机缘巧合之下习得了另一种随机算法,于 ...

  6. 爬虫模块介绍--Beautifulsoup (解析库模块,正则)

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  7. CF285D.Permutation Sum

    想了很久觉得自己做法肯定T啊,就算是CF机子的3s时限,但我毕竟是 O ( C(15,7)*7!*log ) .... 果然在n=15的点T了...贱兮兮地特判了15过掉了,结果发现题解说就是打表.. ...

  8. 洛谷10月月赛II题解

    [咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...

  9. Dubbo的三种连接方式

    1.采用zookeeper作为注册中心 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns ...

  10. day-13装饰器

    函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有函数的嵌套定义:1)函数fn2想直接使用fn1函数的局部变量,可以将fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变量2 ...