icmp回复报文_网络工程师必懂篇·ICMP工具包

网络江湖上有着南北两大武林,南武林以ping为尊,据说一ping在手,天下我有,可以通过ping命令探测到到达网络江湖各个节点的连通性,深得各个江湖中工程师的爱戴。

北武林则以tracert为尊,tracert年少时喜欢过一个名叫思科的姑娘,只是后来两个人分开了,思科与其分开之后,对其念念不忘,于是创立了一个traceroute的宗门,但两者其实是一样的,同宗同源。

这一日,又到南北江湖划江而治之时,双方要进行文战,而这一战,直接将分割整个网络江湖的格局,于是各大IE,NP工程师都慕名而来,浩浩荡荡的人群占满了演武场,有相互熟络的工程师互相嘘寒问暖。

“高兄,这次比武,最前方的贵宾席只有十个IE空位,而为何这十人之中,竟有九人是新盟教育的,而剩下的那一位,也与新盟有着千丝万缕的联系,这新盟,究竟是何人?”

“李兄有所不知了,这新盟啊,是咱们网络江湖门派中,享誉南北的一个,门派成立至今已有九年有余,为我们江湖中输送了不知多少NP,IE大佬,可谓是声势滔天了。”

“这么厉害的门派,想必我是没有机会进去了,实在是个天大的遗憾。”

“李兄此言差矣,新盟可是一个面向大众,平易近人的大盟,而且门派曾经广发英雄帖,我凑巧,知道他们的一个企鹅分派,那就是765244669,而门派中,企鹅长老的id,就是2301798538,不说了不说了,ping和tracert都来了。”

演武场上,ping与tracert相对而立,两者皆是冷笑,ping说:“我是必不可少的一个工具,当管理员对网络进行诊断的时候,会经常的使用到我,我可以告诉管理员到达这个地址或者域名时,能否连通,时延多少。”

f39f97188ebc66cba2fd07a9cc4e0b1b.png

Tracert说:“这点微末伎俩也不怕别人笑话,我可以跟踪路由,不仅可以查看是否可以连通,而且在测试过程中,还能查看到达每一个三层设备的路由,你这点小功能实在是不值得看。”

ae92c4144b9d7c6cb06e1e9000c64953.png

“你们看那是谁?”正当两人争论时,人群中突然传来一阵惊呼,为首的几名IE大佬,也从椅背上离开,缓缓睁开了眼睛。

新盟IE望着那人,长相平平无奇,但是,却让他惊疑不定,试探的说:“ICMP?”

“高兄,ICMP是何物?”

“李兄,这你就有所不知了,ICMP(Internet Control Message Protocol)被称为网际控制报文协议,它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。”

“也就是说,无论是ping还是tracert,都是ICMP协议中的一个工具而已,他们都归属于ICMP,而ICMP不至于他们。”

“啊,这么厉害,那高兄,这两个工具在icmp中是如何进行区分的呢?”

2ac0333e93616d438b660becd0d3e055.png

ICMP中,对于type和code中的数值,都有着严格的定义。

首先,ping开始工作时,会发送一个echo包,里面会有icmp·request请求,此时type字段设置为8,code值设置为0,而目的主机假如收到了这个echo包,发现这个echo包中,是type为8的ping请求,那么,他就会发送一个type为0,code为0的echo-reply包。

而默认情况下,ping包会发送4个,当源主机收到reply回复包后,会继续发送第二个echo包,此时会将序列号从0置为1。以此类推,一共八个包。

bcd49b572a89352ad4d2ef2ef37ea460.png

而假如目的地址,ping不同,目的不可达时,此时ICMP也会返回不同的数据包。

b41f1724620cfdbd5f2913f2dee878fc.png

此时如果目的地址无法到达时,会返回一个“主机不可达”(destination unreachable)的回复包,此时,type和code会根据不同的错误回复不同的数据。

当type=3,code=0时,为网络不可达,

当type=3,code=1时,为主机不可达,

当type=3,code=2时,为协议不可达,

当type=3,code=3时,为端口不可达。

“原来如此,看来ping只是icmp协议之下的小工具啊,那tracert呢。”

Tracert就是运用了ICMP的一个规则,故意制造一些错误的场景,而以此来追踪路由。

Traceroute 的第一个作用就是故意设置特殊的 TTL,来追踪去往目的地时沿途经过的路由器。Traceroute 的参数指向某个目的 IP 地址,它会发送一个 UDP 的数据包。将 TTL 设置成 1,一旦遇到一个三层设备就表示它“牺牲”了。

ca33d9fba501379a255268bc01cf5a34.png

如果中间的路由器不止一个,当然碰到第一个就“牺牲”。于是,返回一个 ICMP 包,也就是网络差错包,类型是时间超时。

接下来,将 TTL 设置为 2。第一关过了,第二关就“牺牲”了,那我就知道第二关有多远。如此反复,直到到达目的主机。这样,Traceroute 就拿到了所有的路由器 IP。当然,有的路由器压根不会回这个 ICMP。这也是 Traceroute 一个公网的地址,看不到中间路由的原因。

12ecc59e41f7bb7e7e490870e8524149.png
(默认每次发三个tracert包)

怎么知道 UDP 有没有到达目的主机呢?Traceroute 程序会发送一份 UDP 数据报给目的主机,但它会选择一个不可能的值作为 UDP 端口号(大于 30000)。当该数据报到达时,将使目的主机的 UDP 模块产生一份“端口不可达”错误 ICMP 报文。

ad5afd658f9cfb5c0e651ca436359316.png

“原来如此,看来ICMP协议才是网络江湖中必备的一个协议啊,看来这次网络江湖比武可以告一段落了。”

ICMP默默地走到台上,ping和tracert都战战兢兢,不敢开口,摇了摇头,ICMP望着下方的数名网络工程师说道:“家事,让诸位见笑了,自此以后,ICMP当与诸位共同维护这个网络江湖,也希望诸位网络通畅,用不到我。”

台下的新盟IE起身抱拳笑道:“ICMP兄言重了,你的这两个小兄弟可是我们网络测试中的利器,平时可以用他们来检测路径,测试通断,不过共同维护也是真的,我冥冥之中有感应,这个江湖,马上就要不太平了。”

言毕,默默地望向了天空,原本蔚蓝的天空中,似乎多了一些黑色。

新盟十IE站起身来,环顾一下开口道:“接下来会有变故,我新盟既得网络江湖气运,自当为江湖殚精竭虑,此时,入我门者,不仅可得NA教程,倘若成为内门弟子,更可获得宗门福利,而若是成为真传弟子,那自当得我新盟真传,若是享受我新盟供奉,望江湖有志之士,奔走相告,共守网络这方净土。”

“话虽如此,但怎么进你新盟宗门呢?”台下有人说道。

一名长相英俊的IE纵身而起,挥手之间,一行文字出现在空中:“此篇文中有企鹅地址和长老地址,不过此时我给诸位出道题,算得出,便可获得我新盟大长老之闭关所在,算是诸位试试水如何?”

“老五你疯了?大长老临行前提到过,万万不可泄露他的所在,你这,倘若江湖中有人算得出,你岂不是进退两难?”

“无妨,我也看看这如今江湖,是否依旧是代有才人出。”一抹冷笑,噙在了英俊IE的嘴角。

00000011,

00001001,

00000111,

00000000,

00000110,

00001000,

00001001,

00000011,

00001001,

Tip:二进制与十进制,相爱相杀!

获得答案后,添加该企鹅,可领取宗门好礼!

f8565ebb08b32cbc931fe74eed253e49.png
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值