网络层(三):IP协议

网际控制报文协议 ICMP

概述

ICMP 经常被认为是IP层的一个组成部分,它传递差错报文以及其他需要注意的信息。ICMP 报文通常被 IP 层或更高层协议(TCP 或UDP)使用。ICMP报文是在 IP 数据报内部传输的。IP协议是不可靠协议,不能保证 IP 数据报能够成功的到达目的主机,无法进行差错控制,而ICMP协议能够协助IP协议完成这些功能

ICMP作为IP数据报的数据,加上数据报的首部,组成IP数据报发送出去

  • 类型:一个8位类型字段,表示ICMP数据包类型;

  • 代码:一个8位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0;

  • 检验和:数据包中ICMP部分上的一个16位检验和;

报文类型

ICMP 报文大致可分为两类:差错报文、查询报文

ICMP报文前4个字节是统一的格式,有三个字段组成:类型、代码和校验和。接着4个字节内容和ICMP类型有关。最后是数据字段,长度取决于ICMP的类型

不产生 ICMP 差错报文的几种情况:

  • ICMP 报文差错(ICMP查询报文可能会产生ICMP差错报文);

  • 目的地址是广播地址或多播地址的 IP 数据报;

  • 作为链路层广播的数据报;

  • 不是 IP 分片的第一片;

  • 源地址不是单个主机的数据报,也就是说,源地址不可能是零地址、环回地址、广播地址或多播地址;

ICMP差错报文的几种情况

  • ICMP 目标不可达消息:IP 路由器无法将 IP 数据报发送给目的地址时,会给发送端主机返回一个目标不可达 ICMP 消息,并在这个消息中显示不可达的具体原因。

  • ICMP 重定向消息:如果路由器发现发送端主机使用次优的路径发送数据时,那么它会返回一个 ICMP 重定向消息给这个主机,这个消息包含了最合适的路由信息和源数据。主要发生在路由器持有更好的路由信息的情况下,路由器会通过这个 ICMP 重定向消息给发送端主机一个更合适的发送路由。

  • ICMP 超时消息:IP 数据包中有一个字段 TTL(Time to live,生存周期),它的值随着每经过一个路由器就会减 1,直到减到 0 时该 IP 数据包被丢弃。此时,IP 路由器将发送一个 ICMP 超时消息给发送端主机,并通知该包已被丢弃。

  • 源抑制消息:当 TCP/IP 主机发送数据到另一主机时,如果速度达到路由器或者链路的饱和状态,路由器发出一个 ICMP 源抑制消息。

ICMP 查询报文

  • ICMP 回送消息:用于进行通信的主机或路由之间,判断发送数据包是否成功到达对端的消息。可以向对端主机发送回送请求消息,也可以接收对端主机回来的回送应答消息。

  • ICMP 地址掩码消息:主要用于主机或路由想要了解子网掩码的情况。可以向那些主机或路由器发送 ICMP 地址掩码请求消息,然后通过接收 ICMP 地址掩码应答消息获取子网掩码信息。

  • ICMP 时间戳消息:可以向那些主机或路由器发送 ICMP 时间戳请求消息,然后通过接收 ICMP 时间戳应答消息获取时间信息。

Ping 程序

Ping 程序利用ICMP回显请求报文和回显应答报文(而不用经过传输层)来测试目标主机是否可达。它是一个检查系统连接性的基本诊断工具。

ICMP 回显请求和 ICMP 回显应答报文是配合工作的。当源主机向目标主机发送了 ICMP 回显请求数据包后,它期待着目标主机的回答。目标主机在收到一个 ICMP 回显请求数据包后,它会交换源、目的主机的地址,然后将收到的 ICMP 回显请求数据包中的数据部分原封不动地封装在自己的 ICMP 回显应答数据包中,然后发回给发送 ICMP 回显请求的一方。如果校验正确,发送者便认为目标主机的回显服务正常,也即物理连接畅通。

例如:在终端上 Ping 下谷歌的地址,神奇的发现谷歌地址既然不用翻墙都能上了,而且丢包率 0%。

1. $ ping www.google.com

2. PING www.google.com (173.194.127.148) 56(84) bytes of data.

3. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=1 ttl=48 time=11.0 ms

4. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=2 ttl=48 time=10.8 ms

5. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=3 ttl=48 time=11.1 ms

6. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=4 ttl=48 time=10.8 ms

7. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=5 ttl=48 time=11.1 ms

8. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=6 ttl=48 time=11.0 ms

9. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=7 ttl=48 time=10.5 ms

10. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=8 ttl=48 time=9.96 ms

11. 64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148): icmp_req=9 ttl=48 time=10.9 ms

12. ^C

13. --- www.google.com ping statistics ---

14. 9 packets transmitted, 9 received, 0% packet loss, time 8009ms

15. rtt min/avg/max/mdev = 9.963/10.830/11.123/0.368 ms
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,034评论 6 174
  • 地址解析协议ARP 物理这一级,主机和路由器是用物理地址来区别的。物理地址是一个本地地址,管辖范围是本地网络,所以...
    顾慎为阅读 1,057评论 0 1
  • 9.1 引言 选路是IP最重要的功能之一。图9-1是IP层处理过程的简单流程。需要进行选路的数据报可以由本地主机产...
    张芳涛阅读 1,184评论 0 2
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,780评论 1 6