我在百度告诉你,当你请求百度时都发生了什么……(2)

2023-05-02 来源:飞速影视
Copyif 收到的数据包.MAC地址 == 自己的MAC地址{ // 接收数据 // 处理数据包}else{// 丢弃}
那对于主机A来说,它想发送给主机B数据包,还不能让主机B把这个数据包扔掉,它只能中规中矩的按以太网网络协议要求封装将要发送出去的数据包,往下传递到数据链路层(这一层传输的数据要求,必须要有目标mac地址,因为他是基于mac地址做数据传输的)。
那数据包中都需要哪些字段呢?如下:
Copysrc ip = 192.168.1.2 //源ip地址,交换机dst ip = 192.168.1.3 //目标ip地址//本机的mac地址(保证从主机B回来的包正常送达主机A,且主机A能正常处理它)src mac = 主机A的mac地址dst mac = 主机B的mac地址//目标mac地址
其中的dst ip好说,我们可以直接固定写,或者通过DNS解析域名得到目标ip。
那dst mac怎么获取呢?
这就不得不说ARP协议了! 其实是一种地址解析协议,它的作用就是:以目标ip为线索,找到目的ip所在机器的mac地址。也就是帮我们找到地址!大概的过程如下几个step:

我在百度告诉你,当你请求百度时都发生了什么……


简述这个过程:主机A想给主机B发包,那需要知道主机B的mac地址。
主机A查询本地的arp 高速缓存中是否已经存在和地址的映射关系了,如果已存在,那就直接用。
本地arp高速缓存中不存在和地址的映射关系的话那就只能广播arp请求包,同一网段的所有机器都能收到arp请求包。
收到arp请求包的机器会对比arp包中的src ip是否是自己的ip,如果不是则直接丢弃该arp包。如果是的话就将自己的mac地址写到arp响应包中。并且它会把请求包中和src mac的映射关系存储在自己的本地。
补充:
交换机本身也有学习能力,他会记录mac地址和交换机端口的映射关系。比如:mac=a,端口为1。
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号