原文引用地址:http://blog.51cto.com/dengqi/1223132

MAC地址表

说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。

交换机的工作原理

交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标MAC地址的信息,如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播),如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。

如下图:详细讲解交换机传输数据帧的过程

1) 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。

2) 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。

3) 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。

4) 这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。

5) 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。

如下图:当局域网存在多个交换机互联的时候,交换机的MAC地址表是怎么记录的呢?

1) 主机A将一个源MAC地址为自己,目标MAC地址主机C的数据帧发送给交换机

2) 交换机1收到此数据帧后,会学习源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧。

3) 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会广播此数据帧。

4) 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机1和交换机1都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。

5) 这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口f 0/1。

总结:从上面的两幅图可以看出,交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口。

注意:交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。

ARP缓存表

上面我们讲解了交换机的工作原理,知道交换机是通过MAC地址通信的,但是我们是如何获得目标主机的MAC地址呢?这时我们就需要使用ARP协议了,在每台主机中都有一张ARP表,它记录着主机的IP地址和MAC地址的对应关系。

ARP协议:ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。

如下图:详细讲解ARP的工作原理。

1) 如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。

2) 当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。

3) 当主机B接受到此数据帧后,会校对IP地址是否是自己的,并将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,其中包括自己的MAC地址。

4) 主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。

windows/linux下可以通过命令行中输入"arp -a"查看本机的ARP缓存表。

路由表

路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。

直连路由:是直接连接在路由器接口的网段,由路由器自动生成。

非直连路由:就是不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由。

路由表中记录的条目有的需要手动添加(称为静态路由),有的测试动态获取的(称为动态路由)。直连路由属于静态路由。

路由器是工作在网络层的,在网络层可以识别逻辑地址。当路由器的某个接口收到一个包时,路由器会读取包中相应的目标的逻辑地址的网络部分,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。这就是数据路由的过程。

如下图:详细介绍路由器的工作原理

1) HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由A的转发。

2) HostA通过ARP请求获取网关路由A的E0口的MAC地址,并在链路层将路由器E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。

3) 路由器A从E0可接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器2的E1接口的MAC地址。

4) 路由B从E1口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E0口的直连网段,路由器B通过ARP广播,获知HostB的MAC地址,此时数据包在路由器B的E0接口再次封装,源MAC地址是路由器B的E0接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器的E0接口发送给HostB。

5) 此时HostB才会收到来自HostA发送的数据。

总结:路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。

MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理相关推荐

  1. android 清空arp缓存表,ARP缓存表 相关命令 arp-a /arp-d

    查询本地电脑的物理地址命令: ipconfig/all 也可"网上连接"打开,双击"本地连接","支持"里"详细信息". ...

  2. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  3. oracle arp绑定mac地址,使用ARP命令来绑定IP和MAC地址

    使用ARP命令来绑定IP和MAC地址 前言:我本来没有想过写关于ARP绑定的文章,坦白的说一句,在你理解ARP工作的原理时,这其实比较简单.只是看到最近论坛很多人在问关于绑定IP和MAC地址的问题, ...

  4. 华为路由器上有没有mac表_MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理...

    MAC地址表 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负 ...

  5. 网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...

  6. ARP缓存表和MAC地址表

    前文讲过arp缓存表和mac地址表,现在总结下它们的相同和不同 不同 定义 arp缓存表是主机用来缓存其他主机的ip地址和mac地址的映射关系的表 mac地址表是交换机用来缓存连接在各端口的主机的源m ...

  7. cmd命令查看路由器上记录的IP地址与MAC地址(ARP表)

    如何使用cmd命令查看路由器上记录的IP地址与MAC地址(ARP表): 1.windows+R打开运行,输入cmd回车: 2.输入arp -a回车即可查看. 希望对你有所帮助,欢迎订阅我的博客!

  8. 脚本实现扫描局域网IP以及查看arp缓存表

    目录 任务要求 分析 实现 任务要求 如何知道整个局域网有哪些IP地址在使用,哪些没有?使用的IP地址和没有使用的IP地址都记录到一个文件里,以及这些IP地址对应的MAC地址也保存到文件里? 分析 a ...

  9. 1、交换机ARP缓存表分析

    1.交换机ARP缓存表分析 一.用模拟器不是一个简单的拓扑:   拓扑简单描述:交换机不做任何配置,两台电脑使用arp -a命令查看混存表,均为空. 操作1:PC A 去ping  PC B: 10. ...

最新文章

  1. 聚类:基本概念和方法
  2. 定义c/c++全局变量/常量几种方法的区别
  3. 01-Introducing the Arm architecture
  4. tcp/ip协议包含哪几层_TCP/IP协议的简单介绍
  5. python中二维数组如何按索引找元素_按索引或坐标访问二维数组中的元素
  6. boost::math模块非有限环回的基本测试
  7. 5月9日 python学习总结 外键、表之间的关联关系、修改表、清空表内容、复制表...
  8. 奇奇seo优化软件_西藏seo关键词优化软件
  9. redistemplate使用_如何使用 SpringBoot + Redis 优雅的解决接口幂等性问题
  10. 03-mysql的相关命令-启动与关闭服务-配置环境变量
  11. Python回文判断代码优化与6个思考题
  12. Smart3D系列教程5之 《案例实战演练2——大区域的地形三维重建》
  13. 关于融资融券和转融通
  14. uniapp 图片生成
  15. Java基础学习总结(149)——日志打印是一门技术
  16. 用Python解读“女神大会”,直男心目中的女神是这样的~
  17. JAVA8用哪个版本的MYSQL_MySQL用哪个版本,5.7还是8.0?
  18. 什么是进程、线程、协程
  19. android视频解码数据分辨率改变,Android实现任意分辨率视频编码的思考与实现
  20. 「集成架构」ETL工具大比拼:Talend vs Pentaho

热门文章

  1. 刘雪峰卷积神经网络,刘雪峰老师哪里人
  2. IC卡写扇区卡号的格式问题
  3. 阿里巴巴正在成为操作系统?谁是用户,谁是设备?
  4. 【职场】技术人员的自我运营之道
  5. DOCKER部署gitlab-ce中文版或最新英文版
  6. 武汉理工大学计算机学院专业排名,2019武汉理工大学专业排名
  7. 中兴linux系统卸载软件,如何在Ubuntu Linux上配置ZTA中兴认证客户端
  8. 计算机课给别人交作业检讨书,关于给同学抄作业检讨书范文
  9. 迷茫!工作之余要学点什么呢?
  10. python基础知识整理