TCP/IP学习20180710-数据链路层-ICMP协议

时间:2022-02-15 00:29:48

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&sol;ip 学习(一)

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

  2. TCP&sol;IP的三次握手协议

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

  3. tcp&sol;ip学习笔记-TCP

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

  4. TCP&sol;IP详解学习笔记&lpar;4&rpar;-ICMP协议,ping和Traceroute

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

  5. TCP&sol;IP详解学习笔记&lpar;4&rpar;-ICMP协议,ping和Traceroute【转】

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

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

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

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

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

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

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

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

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

随机推荐

  1. 探索javascript----事件对象下的各种X和Y

    每次用到诸如client,screen,offset等,虽然通常都是能用对的,但是总觉得不是那么的自信没错.所以整理一下可以再需要的时候来查阅. 一:clientX和clientY,screenX和s ...

  2. Linux之DNS

    DNS服务器配置 一.DNS概述:DNS 是域名系统 (Domain Name System) 的缩写,是一种组织域层次结构的计算机和网络服务命名系统.它的作用是:把域名转换成为网络可以识别的 IP ...

  3. Eclipse 打开时&OpenCurlyDoubleQuote;发现了以元素&&num;39&semi;d&colon;skin&&num;39&semi;”开头的无效内容。此处不应含有子元素(转)

    打开 Eclipse 时,如图所示: 解决办法: 把有问题的 devices.xml 文件删除,再把 sdk 里面 tools\lib 下的这个文件拷贝到你删除的那个文件夹里,重启 eclipse 就 ...

  4. P神的SDFZ考试题 C题

                                                                      探险[问题描述]          探险家小 T 好高兴! X 国要 ...

  5. Jetson TX2安装tensorflow(原创)

    Jetson TX2安装tensorflow 大致分为两步: 一.划分虚拟内存 原因:Jetson TX2自带8G内存这个内存空间在安装tensorflow编译过程中会出现内存溢出引发的安装进程奔溃 ...

  6. mybatis:SQL拦截器

    打印执行的SQL语句 import java.sql.Connection; import java.text.DateFormat; import java.util.Date; import ja ...

  7. Qt551&period;窗口滚动条

    1.代码的方式来创建 ScrollArea,然后使用 倒是 正常(有滚动条显示),但是此方式太麻烦 不如直接拖控件来的方便直观快捷. 但是,直接拖控件的方式 ScrollArea中无法显示出 滚动条, ...

  8. day10 while else continue break

    a. while else b. continue   break                   continue ,终止当前循环,开始下一次循环                   break ...

  9. jumpservice一步一步安装

    一步一步安装 (CentOS) 本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 进阶安装文档 云服务器快速部署参考 极速安装 安装过程中遇到问题可参考 安装过程中常见的问题 测试推荐环 ...

  10. js对象之XMLHttpReques对象学习

    背景:业务需求是,一个前端(手机和浏览器)HTML页面中有图片,按钮......,需要统计用户点击图片或者按钮的次数. 前端实现:通过一个js来统计HTML页面中所有的图片和按钮对象,并给每个对象赋予 ...