济南的企业网站,手机网站怎么做SEO优化,毕设做网站心得体验,网络营销师报名ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol#xff0c;就是互联网控制报文协议。
ICMP 报文是封装在 IP 包里面的。因为传输指令的时候#xff0c;肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型#xff0c;不同的类型…ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol就是互联网控制报文协议。
ICMP 报文是封装在 IP 包里面的。因为传输指令的时候肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型不同的类型有不同的代码。最常用的类型是主动请求为 8主动请求的应答为 0。
对 ping 的主动请求进行网络抓包称为 ICMP ECHO REQUEST。同理主动请求的回复称为ICMP ECHO REPLY。
在选项数据中ping 还会存放发送请求的时间值来计算往返时间说明路程的长短。
差错报文类型终点不可达为 3源抑制为 4超时为 11重定向为 5。网络不可达代码为 0主机不可达代码为 1协议不可达代码为 2端口不可达代码为 3需要进行分片但设置了不分片位代码为 4。
ping 的发送和接收过程 Traceroute 的第一个作用就是故意设置特殊的 TTL来追踪去往目的地时沿途经过的路由器。Traceroute 就拿到了所有的路由器 IP。当然有的路由器压根不会回这个 ICMP。这也是 Traceroute 一个公网的地址看不到中间路由的原因。
怎么知道 UDP 有没有到达目的主机呢Traceroute 程序会发送一份 UDP 数据报给目的主机但它会选择一个不可能的值作为 UDP 端口号大于 30000。当该数据报到达时将使目的主机的 UDP 模块产生一份“端口不可达”错误 ICMP 报文。如果数据报没有到达则可能是超时。
Traceroute 还有一个作用是故意设置不分片从而确定路径的 MTU。要做的工作首先是发送分组并设置“不分片”标志。发送的第一个分组的长度正好与出口 MTU 相等。如果中间遇到窄的关口会被卡住会发送 ICMP 网络差错包类型为“需要进行分片但设置了不分片位”。其实这是人家故意的好吧每次收到 ICMP“不能分片”差错时就减小分组的长度直到到达目标主机。 此文章为9月Day7学习笔记内容来源于极客时间《趣谈网络协议》推荐该课程。