Ping过程 原理 详解加图
来源:互联网 发布:金山软件king计划 编辑:程序博客网 时间:2024/05/18 01:49
如果你想了解PING的原理,就看我的文章,不要去网上找,找不到什么好的内容。看了我文章,也许你会从对网络一窍不通,到豁然开朗。
先看拓朴图:
我在这里讲拼的两情况,一种是同一网段内,一种是跨网段的ping ….
首先,如果主机A,要去拼主机B,那么主机A,就要封装二层报文,他会先查自己的MAC地址表,如果没有B的MAC地址,就会向外发送一个ARP广播包,如图:
其中ARP报文格式如下:
以太网目的MAC以太网源MAC帧类型硬件类型46OP发送端以太网MAC发送端IP地址目的MAC目的IPFF-FF-FF-FF-FF-FF00-50-56-C0-00-0108060800100-50-56-C0-00-011.1.1.100-00-00-00-00-001.1.1.3
其中OP
1 :表示ARP请求
2:表示ARP应答
3:表示RARP请求
4:表示RARP应答
首先,交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B有MAC,如果有,就返回给主机A,如果没有,就会向所有端口发送ARP广播,其它主机收到后,发现不是在找自己,就纷纷丢弃了该报文,不去理会。。直到主机B收到了报文后,就立即相应,我的MAC地址是多少,同时学到主机A的MAC地址,并按同样的ARP报文格式返回给主机A,如图:
ARP报文格式:
以太网目的MAC以太网源MAC帧类型硬件类型46OP发送端以太网MAC发送端IP地址目的MAC目的IP00-50-56-C0-00-0100-50-56-C0-00-0308060800200-50-56-C0-00-031.1.1.300-50-56-C0-00-011.1.1.1
这时候主机A学到了主机B的MAC,就把这个MAC封装到ICMP协议的二层报文中向主机B发送,报文格式如下:
目的地址
源地址
…
源IP
目的IP
…
ICMP报文
00-50-56-C0-00-03
00-50-56-C0-00-01
1.1.1.1
1.1.1.3
Echo request
当主机B收到了这个报文后,发现是主机A 的ICPM回显请求,就按同样的格式,返回一个值给主机A,这样就完成了同一网段内的ping过程…
目的地址
源地址
…
源IP
目的IP
…
ICMP报文
00-50-56-C0-00-01
00-50-56-C0-00-03
1.1.1.3
1.1.1.1
Echo answer
在这里 我讲了这么久的局域网内的PING,实际过程的发生不到1毫秒….
再继续…
如果主机A要ping主机C,那么主机A发现主机C的IP和自己不是同一网段,他就去找网关转发,但是他也不知道网关的MAC情况下呢?他就会向之前那个步骤一样先发送一个ARP广播,学到网关的MAC,再发封装ICMP报文给网关路由器.
报文格式如下:
目的地址
源地址
…
源IP
目的IP
…
ICMP报文
00-50-56-C0-00-02
00-50-56-C0-00-01
1.1.1.1
2.1.1.1
Echo request
当路由器收到主机A发过来的ICMP报文,发现自己的目的地址是其本身MAC地址,根据目的的IP2.1.1.1,查路由表,发现2.1.1.1/24的路由表项,得到一个出口指针,去掉原来的MAC头部.加上自己的MAC地址向主机C转发…(如果网关也没有主机C的MAC地址,还是要向前面一个步骤一样,ARP广播一下即可相互学到….路由器2端口能学到主机D的MAC,主机D也能学到路由器2端口的MAC..),报文格式如下:
目的地址
源地址
…
源IP
目的IP
…
ICMP报文
00-50-56-C0-00-05
00-50-56-C0-00-04
1.1.1.1
2.1.1.1
Echo request
最后,在主机C已学到路由器2端口MAC,路由器2端口转发给路由器1端口,路由1端口学到主机A的MAC的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求回复过来..报文格式大致如下:
目的地址
源地址
…
源IP
目的IP
…
ICMP报文
00-50-56-C0-00-04
00-50-56-C0-00-05
2.1.1.1
1.1.1.1
Echo Answer
1 0
- Ping过程 原理 详解加图
- Ping过程 原理 详解(图)
- Ping过程 原理 (图)
- Ping命令 原理 详解(图)
- Ping过程详解
- Ping过程详解
- Ping过程 详解
- Ping过程详解
- ping过程详解
- ping过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- ping命令执行过程详解
- POJ 3071 Football (概率DP)
- android material design 主题
- 74. Search a 2D Matrix
- ubuntu上mount移动硬盘
- 错误:unable to run app in simulator An error was encountered while runing
- Ping过程 原理 详解加图
- 3个老鼠确定8个瓶子哪瓶有毒
- 【top】动态查看进程列表
- ORA-00600: internal error code, arguments: [SKGMFAIL]问题解决
- 递归——LeetCode70. Climbing Stairs
- hdu 1257 trie树
- 怎么学习阅读大型项目的代码
- cas单点登录搭建
- hdu2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)