ARP表 MAC表 路由表
ARP表是一个动态表,存储在计算机当中,目的是做一个ip地址与mac地址的对应。
假设在同一子网段,计算机A与计算机B通信
计算机A的ip地址192.168.0.1 MAC地址AA-AA-AA-AA-AA-AA
计算机B的ip地址已知192.168.0.2 MAC地址未知
那么计算机A就要发起一个ARP查询,“谁能告诉我,192.168.0.2的MAC地址是多少?”
很显然通过交换机的时候,交换机并不能看懂ip地址,所以要广播这个信息,就把这个查询信息发到除发送端的其它所有端口。(当然,交换机还要记住192.168.0.1主机的mac地址)
其它所有的计算机看到这个广播发现目的ip不是自己,就把这个数据丢弃,只有192..168.0.2的计算机B会响应,并发送回执,告诉计算机A,“我是192.168.0.2,我的MAC地址是AA-AA-AA-AA-AA-AB”当通过交换机,交换机记住从计算机B端口过来的MAC地址,并通过已知的A计算机MAC地址,发动到连接计算机A的端口。(此时不再广播)计算机A与计算机B都知道对方的ip和MAC地址,开始通信。
我相信有些人已经知道答案了。
三层交换机肯定是有arp表的,这个毋庸置疑,因为有路由功能嘛,牵扯到ip,那肯定是有的,可能大家对2层是否有,有点疑问,一般来说2层是没有的,所谓arp是地址解析协议,而地址指的是ip解析成mac,可2层跟ip没关啊,所以一般来说是没的,但当我们配置了管理vlan时,比如int vlan 1 ,然后ip add ······,这是用来管理的,这时就产生了arp表
什么叫ARP表啊!什么叫MAC地址表啊!
你们搞清楚没有啊!二层交换有MAC地址表,没有ARP表。ARP表里面有IP地址,二层设备不会有IP地址的。所以二层交换机不会有ARP表。有MAC表。一定要搞清楚。
谈论学术的一定要严谨啊!定义一定要清楚,不然很难说清楚啊!
三层交换机肯定是有arp表的,这个毋庸置疑,因为有路由功能嘛,牵扯到ip,那肯定是有的,可能大家对2层是否有,有点疑问,一般来说2层是没有的,所谓arp是地址解析协议,而地址指的是ip解析成mac,可2层跟ip没关啊,所以一般来说是没的,但当 ... [/quote]非常赞同,二层交换机有个管理vlan,默认是关闭的,如果开启之后,就有了arp表项了。
arp 是地址解析协议,实现通过IP地直得知MAC地址。
工作原理的话,我就不都说了,上面的兄弟们解释得非常清楚了。
在每台安装有[url=/view/7649.htm][color=#0000ff]TCP/IP协议[/color][/url]的电脑里都有一个ARP缓存表,表里的IP地址与[url=/view/69334.htm][color=#0000ff]MAC地址[/color][/url]是一一对应的。
我们可以在命令提示符下输入:arp -a 查看本机电脑arp 缓存表。
详细参数的话,可以?试看。
arp缓存并不长久存在,ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
层二设备的只有 PORT---MAC表
当一个层二交换机启动的时候,它会自动去侦测那些联系到自己端口上的 机器的MAC地址的.从而形成了一个PORT--MAC这样一个对应表
层三设备才有 arp表~
简单来说,ARP这个协议谁也说不准,它是个3层协议但是工作在2层,交换机确切的说是有MAC地址表,当主机要经过2层设备访问的话,先查找它内部的ARP缓存表,如果没有,就发一个广播包,里面携带目的的IP地址,如果对应IP地址的主机看到有人叫它的时候,它才给以回应,发送回包,包里面有本机的MAC地址,这样被交换机放入MAC表中,关于20楼兄弟说的SVI那是一个特例。。。严格意义上来说不是ARP表,ARP这个协议谁也说不好是具体2层的还是3层的,具体说就是2层靠MAC表转发,由于TCP协议是需要ACK的,所以也能导致一些ARP欺骗的问题
要弄明白二三转发原理和流程,必须弄清楚ARP表、交换机转发表和路由表,这是数据转发的依据。由于ARP表和交换机转发表对于管理员来说是透明的,一般很忽视其工作原理,这是我需要注意的学习地方。所以今天主要是弄明白ARP表、交换机转发表、路由表。
数据最终转发依靠的都是ARP表,他是数据转发最基础的依据。ARP直接将硬件地址和网络地址相互映射。
数据最终转发依靠的虽然不是路由表,但路由表是一个向导,指引着数据的走向,让数据能跨越网络,ARP表是没有掩码的,是不区分网段的。
ARP表 MAC表 路由表的更多相关文章
- 转发表(MAC表)、ARP表、路由表总结
原文:https://cloud.tencent.com/developer/article/1173761 转发表(MAC表).ARP表.路由表总结 我是东东东 发表于我是东东强订阅 1.5K ...
- Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信
大家好,本次我们须要完毕的任务是: 完毕两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表 使用帧完毕两台主机的通信(Hello! I'm -) 声明:本文章的目的是为大家的 ...
- ARP解析MAC地址的全过程(ARP的工作机制)
以太网环境下,同一个网段的主机之间需要互相知道对方的MAC地址,才能访问. TCP/IP协议栈从上层到下层的封装过程中,第三层封装需要知道目的IP,第二层封装需要知道目的MAC. 目的IP一般由用户手 ...
- MSSQLServer 纵向表转横向表 横向表转纵向表 行转列 列转行
MSSQLServer 纵向表转横向表 横向表转纵向表 建表语句及插入数据语句: CREATE TABLE Test_y( ) NULL, ) NULL, [Grade] [int] NULL ) ...
- EXP/IMP迁移案例,IMP遭遇导入表的表空间归属问题
生产环境: 源数据库:Windows Server + Oracle 11.2.0.1 目标数据库:SunOS + Oracle 11.2.0.3 1.确认迁移需求:源数据库cssf 用户所有表和数据 ...
- SQL Server 2008 R2——TRUNCATE TABLE 无法截断表 该表正由 FOREIGN KEY 约束引用
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- SQL表关联赋值、系统表、表数据删除
1. 表与表的关联赋值(用于表与表之间有关联字段,数据互传) 双表关联赋值 UPDATE #B SET #B.D=#A.B from #B inner join #A on #B.C=#A.A 多表关 ...
- mysql分表和表分区详解
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能 ...
- ORACLE修改用户表所属表空间的步骤
ORACLE修改用户表所属表空间的步骤 使用脚本进行修改.据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!正常情况下的修改脚本:1.修改表的 ...
随机推荐
- Asp.Net Web API 2 官网菜鸟学习系列导航
链接地址: http://www.cnblogs.com/aehyok/p/3446289.html
- InterruptedException异常
本文总结自:https://blog.csdn.net/asdfsadfasdfsa/article/details/78808131 什么样的方法会抛出InterruptedException异常? ...
- C++二阶构造函数
转自:http://blog.51cto.com/9291927/1896411 一.构造函数的问题 构造函数存在问题: A.构造函数只提供自动初始化成员变量的机会 B.不能保证初始化逻辑一定成功,如 ...
- ThinkPHP开发博客系统笔记之二
1. 登陆验证码 当用户登陆的时候我们希望也弹出验证码,有两种方法可以实现:一是再增加一个弹出验证码的dialog,二是和注册共用一个验证码dialog.第一种方法有大量重复代码,所以我们使用第二种方 ...
- No module named yum
升级python之后,执行yum的时候可能出现错误,类似: There was a problem importing one of the Python modulesrequired to run ...
- 【Spark SQL 源码分析系列文章】
从决定写Spark SQL源码分析的文章,到现在一个月的时间里,陆陆续续差不多快完成了,这里也做一个整合和索引,方便大家阅读,这里给出阅读顺序 :) 第一篇 Spark SQL源码分析之核心流程 第二 ...
- tensorflow conv2d的padding解释以及参数解释
1.padding的方式: 说明: 1.摘录自http://stackoverflow.com/questions/37674306/what-is-the-difference-between-sa ...
- eclipse导入android项目错误,项目名称上有红叉,但代码中无报错
首先,在项目上右键,属性,选择编译目标,选择android版本或把Android的版本调高一点.
- Ajax-01 Ajax概述
Web应用程序: 用户浏览器发送请求,服务端接收并处理请求,然后返回结果,往往返回就是字符串(HTML).浏览器将字符串(HTML)渲染并显示到浏览器上. 传统的Web应用: 一个简单操作(每个请求) ...
- 三个大数据处理框架:Storm,Spark和Samza 介绍比较
转自:http://www.open-open.com/lib/view/open1426065900123.html 许多分布式计算系统都可以实时或接近实时地处理大数据流.本文将对三种Apache框 ...