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

2023-05-02 来源:飞速影视
那当它接收到数据包,并发现mac=a时,它会直接将数据扔向端口1。
当然,也可以看下维基百科中列举的同局域网中两台computer互联的简单例子:

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


再看下linux操作系统中的arp命令:
Copy# 发送一个arp广播,如下:~]# arp -agateway (192.168.0.1) at fa:16:3e:66:c8:15 [ether] on eth0? (192.168.0.254) at fa:fa:fa:fa:fa:01 [ether] on eth0# 可以看到网关ip地址:192.168.0.1,mac地址是:fa:16:3e:66:c8:15 网卡是eth0# 广播地址:192.168.0.254,mac地址是:fa:fa:fa:fa:fa:01 网卡是eth0
嗯,在arp协议的帮助下,主机A顺利拿到了主机B的mac地址。于是数据包从网络层流转到数据链路层时已经被封装成了下面的样子:
Copysrc ip = 192.168.1.2src mac = 主机A的mac地址dst ip = 192.168.1.3dst mac = 主机B的mac地址
网络层基于ip地址做数据做转发
数据链路基于mac地址做数据转发
根据OIS7层网络模型,我们都知道数据包经过物理层发送到机器B,机器B接收到数据包后,再将数据包向上流转,拆包。流转到主机B的数据链路层。
那主机B是如何判断这个在数据链路层的包是否是发给自己的呢?答案前面说了,根据目的mac地址判断。
Copy// 主机Bif 收到的数据包.MAC地址 == 自己的MAC地址{ if dst ip == 本机ip{ // 本地处理数据包}else{ // 查询路由表,根据路由表的规则,将数据包转某个某卡、或者默认网关}}else{// 直接丢弃}
这个例子比较简单,就是主机B的本机ip 所以它自己会处理这个数据包。
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

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