首页 > 其他分享 >04_物理链路层

04_物理链路层

时间:2023-04-13 14:35:01浏览次数:48  
标签:ARP 缓存 04 端口 MAC 地址 交换机 链路层 物理

MAC

MAC

  • MAC包头的协议类型通常使用:0800:IP协议 ,0806:ARP协议

  • 发送方的MAC地址是在网卡生产时写入到ROM里的,接收方的MAC地址需要用目标IP根据ARP协议查到目标MAC。

  • 所以先得搞清楚应该把包发给谁,这个只要查一下路由表就知道了。在路由表中找到相匹配的条目,然后把包发给 Gateway 列中的 IP 地址就可以了。

  • ARP协议

    • 根据IP找到路由器的MAC地址。
    • 查询ARP缓存,如果其中已经保存了对方的MAC地址,就不需要发送ARP查询,直接使用ARP缓存中的地址。而当ARP缓存中不存在对方MAC地址时,则发送ARP广播查询。(以太网所有的设备喊出:“这个IP地址是谁的?请把你的MAC地址告诉我”。然后就会有人回答:“这个IP地址是我的,我的MAC地址是 XXXX”。后续操作系统会把本次查询结果放到一块叫做ARP缓存的内存空间留着以后用,不过缓存的时间就几分钟)
    • arp -a 查询arp缓存
    • 计算机的网卡本身具有MAC地址:并通过核对收到的包的接收方MAC地址判断是不是发给自己的,如果不是发给自己的则丢弃
  • 交换机的ARP:交换机基于以太网设计的,俗称二层网络设备

    • 交换机的端口不具有MAC地址:交换机的端口不核对接收方MAC地址,而是直接接收所有的包并将包的“源MAC地址+进入交换机的端口”存放到缓冲区中。将包存入缓冲区后,接下来需要查询一下这个包的接收方MAC地址是否已经在MAC地址表中有记录了。地址表中找不到指定的MAC地址。这可能是因为具有该地址的设备还没有向交换机发送过包,或者这个设备有一段时间没有工作导致地址被从地址表中删除了。这种情况下,交换机无法判断应该把包转发到哪个端口,只能将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包
    • 交换机的MAC地址表主要包含两个信息:一个是设备的MAC地址,另一个是该设备连接在交换机的哪个端口上.
  • 路由器的ARP: 路由器是基于IP设计的,俗称三层网络设备

    • 路由器的各个端口都具有MAC地址和IP地址
    • 路由器的端口具有 MAC 地址,因此它就能够成为以太网的发送方和接收方;同时还具有IP地址,从这个意义上来说,它和计算机的网卡是一样的。当转发包时,首先路由器端口会接收发给自己的以太网包,然后路由表查询转发目标,再由相应的端口作为发送方将以太网包发送出去。
    • 路由器也有ARP缓存,因此首先会在ARP缓存中查询,如果找不到则发送ARP查询请求。
  • 参考


ARP

ARP[MAC层]用于根据IP地址查询相应的以太网MAC地址。

标签:ARP,缓存,04,端口,MAC,地址,交换机,链路层,物理
From: https://www.cnblogs.com/Zhangyq-yard/p/17314695.html

相关文章

  • ubuntu使用记录(5)ubuntu20.04 切换root用户
    ubuntu20.04使用root用户登录系统以普通用户登录系统,创建root用户的密码在终端输入命令:sudopasswdroot先输入当前普通用户(如用户coco)的密码,用于提权。......
  • 电力系统的物理信息神经网络python源代码 介绍了一种在电力系统中应用物理信息神经网
    电力系统的物理信息神经网络python源代码代码按照高水平文章复现介绍了一种在电力系统中应用物理信息神经网络的框架。利用控制电力系统的基本物理定律,并受到机器学习领域最新发展的启发,我们提出了一种神经网络训练程序,它可以利用广泛的数学模型来描述电力系统的行为,包括稳态和......
  • 【计算机网络-数据链路层】集线器、网桥、交换机
    目录1【物理层】集线器(Hub)——共享式以太网1.1为什么使用集线器?1.2集线器的特点1.3为什么使用转发器?2【链路层】网桥(Bridge)——多级共享式以太网2.1为什么使用网桥?2.2网桥的工作原理2.3透明网桥的自学习算法3【链路层】交换机(Switch)——交换式以太网3.1为什么使用交换机......
  • 每日总结2023-04-12
    今天对项目目前进度做了总结,并针对当前的任务做了思路说明以及调整,在每日站立会议中,我充分了解了目前项目所需要完成的部分。今天针对这些内容做出了调整。1.新增数据库,内容为用户购买的商品,主键为商家绑定信息,根据这些信息可以算出每日总收益。2.绘制出补货的具体页面。3.写......
  • java学习日记20230411-Vector
    VectorVector底层也是一个对象数组;Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized在开发中需要线程同步安全的,考虑使用VectorpublicclassVector01{//Vector线程安全publicstaticvoidmain(String[]args){Vector<Object>objects......
  • java学习日记20230411-ArrayList
    ArraylList注意事项ArrayList可以加入null,并且多个;ArrayList是由数组来实现数据存储的ArrayList基本等同于Vector,处理ArrayList是线程不安全(执行效率高),在多线程情况下,不建议使用ArrayLIst  ArrayList示例publicclassArrayList01{publicstaticvoidmain(Stri......
  • ubuntu 22.04国内镜像阿里云/163源/清华大学/中科大
    Ubuntu22.04LTS这是一个长期支持版本,它将被支持五年,直到2027年4月。已发布的LTS版本带来了一些新的功能国内有很多Ubuntu22.04的镜像源,包括阿里、网易,还有很多教育网的镜像源,比如清华源、中科大源。在教程中我们将介绍如何更改镜像在ubuntu22.04。国内的包括有镜像阿里云/16......
  • 2023/04/12每日总结
    今天复习MVC模式和Servlet相关知识  ......
  • 20230412-Python-pycharm使用技巧
     1.新建文件,自动生成代码       2.自动补齐自定义段落        3.修改注释颜色        ......
  • Python程序笔记20230304
    抛硬币实验random模块importrandomrandom.randint(a,b)返回一个随机整数N,范围是:a<=N<=brandom.choice("ilovefishc")从"ilovefishc"这个字符串中随机选出一个字符。编写一个双色球的开奖模拟程序importrandomred=random.sample(range(1,34),6)blue=r......