我在百度告诉你,当你请求百度时都发生了什么……(7)
2023-05-02 来源:飞速影视
同样的道理,当eth0网卡收到这个数据包后,路由器进行如下的判断。
Copyif 数据包.mac == 自己的mac{// mac地址相同,说明这是发送给自己的包,所以它不会丢弃。if 数据包.ip == 自己的ip{// 继续OSI的7上层传递,解包,一直到我们的应用层。}else{// 继续查看自己的路由表,找到合适的下一跳地址(扔给网关)。}}else{// 直接丢弃}
经过上面伪代码的判断,eth0知道了这个包虽然是发给它的,但它并不能继续处理这个数据包,他需要将这个数据包准发给下一跳。
对它现在来说:
Copysrc ip = 192.168.0.1 (上图LAN口的ip地址)src mac = eth0的mac地址,dst ip = 220.181.38.251dst mac = ???
那地址怎么获取到呢? 其实和上面的流程类似,需要查询路由表。使用和路由表中的子网掩码相与,得到网段后再与Desitantion对比。由于这个路由器上确实没有连接220.180.38.xxx的网段,所以数据包最终依然会被转发到这个路由器的公网网关。
经过这一步,数据包流转到路由器的WAN口,再往下走就流入公网啦!
数据包在公网中各个路由节点之间跳转,最终会流转到百度对外暴露的网关路由器的公网WAN口。
然后数据包会从这个WAN口流入百度内网的IDC机房集群。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号