关于运维:ping和traceroute原理

6次阅读

共计 1768 个字符,预计需要花费 5 分钟才能阅读完成。

ping 原理

ping 次要是用来探测主机和主机之间是否能够进行通信,如果不能 ping 到某台主机,示意不能与这台主机建设连贯。ping 应用的是 ICMP 协定,他发送 ICMP 回送申请音讯给目标主机。ICMP 协定规定:目标主机必须返回 ICMP 回送应答音讯给源主机,如果源主机在肯定工夫内收到应答,表明主机可达。ICMP 协定是通过 IP 协定发送的,IP 协定是无连贯的,不牢靠的数据报协定。

ping 是用来检测网络是否畅通或者网络连接速度的命令

在同一网段内:

在主机 A 上运行“Ping 192.168.0.5”后,都产生了些什么呢?

首先,Ping 命令会构建一个固定格局的 ICMP 申请数据包,而后由 ICMP 协定将这个数据包连同地址“192.168.0.5”一起 交给 IP 层协定,IP 层协定将以地址“192.168.0.5”作为目标地址。本机 IP 地址作为源地址,加上一些其余的管制信息,构建一 个 IP 数据包,并想方法失去 192.168.0.5 的 MAC 地址,以便交给数据链路层构建一个数据帧。要害就在这里,IP 层协定通过机器 B 的 IP 地址和本人的子网掩码,发现它跟本人属同一网络,就间接在本网络内查找这台机器的 MAC, 如果以前两机有过通信,在 A 机的 ARP 缓存表应该 有 B 机 IP 与其 MAC 的映射关系,如果没有,就发一个 ARP 申请播送,失去 B 机的 MAC, 一并交给数据链路层。后者构建一个数据帧,目标地址是 IP 层传过来的物理地址,源地址则是本机的 MAC 地址,还要附加上一些管制信息,根据以太网的介质拜访规定,将它们传送 进来。主机 B 收到这个数据帧后,先查看它的目标地址,并和本机的 MAC 地址比照,如合乎,则接管;否则抛弃。接管后查看该数据帧,将 IP 数据包从帧中提取进去,交给本机的 IP 层 协定。同样,IP 层查看后,将有用的信息提取后交给 ICMP 协定,后者解决后,马上构建 一个 ICMP 应答包,发送给主机 A,其过程和主机 A 发送 ICMP 申请包到主机 B 截然不同。

在不同网段内:

在主机 A 上运行“Ping 192.168.1.4”后,开始跟下面一样,到了怎么失去 MAC 地址时,IP 协定通过计算发现 D 机与本人不在同一网段内,就间接将交由路由解决,也就是将路由的 MAC 取过去,至于怎么失去路由的 MAC,跟下面一样,先在 ARP 缓存表找,找不到就播送吧。路由失去这个数据帧后,再跟主机 D 进行分割,如果找不到,就向主机 A 返回一个 超时的信息。

Understanding Ping Command and ICMP with Examples

Traceroute 原理

Traceroute 是用来侦测由源主机到目标主机所通过的路由的状况的重要工具,也是最简洁的工具,只管 ping 能够进行侦测,然而 ping 受到 IP 头的限度(IP 首部字段最多只能放 9 个 IP 地址),ping 不能齐全记录所通过的路由器,所以才会引入 Traceroute。

Traceroute 原理:其实 Traceroute 的原理很简略,他收到目标主机 IP 后,首先给目标主机发送一个 TTL=1(TTL 指生存工夫)的 udp 数据包,而通过的第一个路由器收到这个数据包之后,主动把 TTL 减去 1,而 TTL 变为 0 之后,路由器就将这个数据包摈弃了,并同时产生一个主机不可达的 ICMP 超时数据报给主机。主机收到这个 ICMP 数据报当前,会发送一个 TTL= 2 的数据报给目标主机,而后刺激第二个路由器给主机发送 ICMP 数据报,如此重复,直到达到目标主机。这样 Traceroute 就能够拿到所有路由器的 IP,从而避开 IP 头只能记录无限路由的 IP 地址。

那么咱们怎么晓得 UDP 到没达到目标主机呢?这就波及一个技巧的问题,TCP 和 UDP 协定有一个端口号定义,而一般的网络程序只监控多数的几个号码较小的端口,比如说 80, 比如说 23, 等等。而 traceroute 发送的是端口 >30000(真变态) 的 UDP 报,所以达到目标主机的时候,目标主机只能发送一个端口不可达的 ICMP 数据报给主机。主机接到这个报告当前就晓得目标主机到了。

————————————————

understanding traceroute

Exploring ICMP Protocol with Examples

Understanding Ping Command and ICMP with Examples

What is ICMP type?

icmp port

正文完
 0