「NetWork」前辈分享整理-1

关键字:从交换机、到路由器,再到简述传输过程

摘要:前辈推荐了很棒的学习资料,本文简要整理和学习总结

资料分析:https://zhuanlan.zhihu.com/p/426085830


【网络层理解】

​ 过去我们学习了子网的划分、子网的汇总,但却没有好好思考过子网的意义所在。文中提到了,当两台路由器进行数据传递时,如何判断要不要通过路由器进行转发呢?便是依托子网来实现。

  • 如果源 IP 与目的 IP 处于一个子网,直接将包通过交换机发出去。
  • 如果源 IP 与目的 IP 不处于一个子网,就交给路由器去处理。
image-20221208143653391

【跨路由通信的步骤简述】

在之前的一次考核中,就被问过如下的一个问题:简述从A到F跨路由进行通信的全过程。之前表述并没有具体到每一个Ip和下一跳等具体细节,本次借助资料实例进行简要描述。

img

1. 首先 A(192.168.0.1)通过子网掩码(255.255.255.0)计算出自己与 F(192.168.2.2)并不在同一个子网内,于是决定发送给默认网关(192.168.0.254)

2. A 通过 ARP 找到 默认网关 192.168.0.254 的 MAC 地址。

3. A 将源 MAC 地址(AAAA)与网关 MAC 地址(ABAB)封装在数据链路层头部,又将源 IP 地址(192.168.0.1)和目的 IP 地址(192.168.2.2)(注意这里千万不要以为填写的是默认网关的 IP 地址,从始至终这个数据包的两个 IP 地址都是不变的,只有 MAC 地址在不断变化)封装在网络层头部,然后发包

4. 交换机 1 收到数据包后,发现目标 MAC 地址是 ABAB,转发给路由器1

5. 数据包来到了路由器 1,发现其目标 IP 地址是 192.168.2.2,查看其路由表,发现了下一跳的地址是 192.168.100.5

6. 所以此时路由器 1 需要做两件事,第一件是再次匹配路由表,发现匹配到了端口为 2,于是将其封装到数据链路层,最后把包从 2 号口发出去。

7. 此时路由器 2 收到了数据包,看到其目的地址是 192.168.2.2,查询其路由表,匹配到端口号为 1,准备从 1 号口把数据包送出去。

8. 但此时路由器 2 需要知道 192.168.2.2 的 MAC 地址了,于是查看其 arp 缓存,找到其 MAC 地址为 FFFF,将其封装在数据链路层头部,并从 1 号端口把包发出去。

9. 交换机 3 收到了数据包,发现目的 MAC 地址为 FFFF,查询其 MAC 地址表,发现应该从其 6 号端口出去,于是从 6 号端口把数据包发出去。

10. F 最终收到了数据包!并且发现目的 MAC 地址就是自己,于是收下了这个包。

总结

​ 费曼学习法提到一种思想,便是如果我们能够将所学的知识通过通俗易懂的语言和文字传授给另一个人,那么就说明我们理解深刻了。而如果我们看似学会但到描述和表达却总是卡住的话,说明我们只是记住了知识而没有真正转化为自己所掌握的技能。所以,需要多向他人请教和学习,同时也要在分享和交流中检验自己的掌握情况。