首页 > 链路层寻址与 ARP

链路层寻址与 ARP

一、 MAC 地址

不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址。因此,具有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址。

然而,链路层交换机并不具有与它们接口相关联的链路层地址。这是因为链路层交换机的任务是在主机与路由器之间承载数据报;交换机透明地执行该项任务,也就是说,主机或路由器不必明确地将帧寻址到其间的交换机。



尽管 MAC 地址被设计为永久的,但用软件改变一块适配器的 MAC 地址是可能的。

二、地址解析协议

因为存在网络层地址和链路层地址,因此需要在它们之间进行转换。对于因特网来说,这个协议就是 ARP 协议。

DNS 和 ARP 协议的一个重要区别是,DNS 为因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。

每台主机或路由器在其内存中具有一个 ARP表 (ARP table),这张表包含 IP 地址到 MAC 地址的映射关系。这张表中也包含了一个寿命 (TTL) 值。从一个表项放置到某 ARP 表中开始,一个表项通常的过期时间是 20 分钟。



ARP协议的几点:

  1. 查询 ARP 报文是在广播帧中发送的,而响应 ARP 报文是在一个标准帧中发送的。

  2. ARP 是即插即用的。

    也就是说一个 ARP 表是自动建立的,不需要系统管理员来配置。

    并且如果某主机与子网断开连接,它的表项最终会从留在子网的结点的表中删除掉。

  3. 可以把 ARP 协议看成是跨越链路层和网络层边界两边的协议

    ARP 帧封装在链路层帧中,因此在链路层之上。此外,一个 ARP 分组具有包含链路层地址的字段。

三、发送数据报到子网以外



主机必须把数据报首先发给第一跳路由器,因此发出的链路帧的 MAC 地址是路由器接口的 MAC 地址。

如何获得这个 MAC 地址呢?当然是通过 ARP 协议。

转载于:https://www.cnblogs.com/huahuahu/p/lian-lu-ceng-xun-zhi-yu-ARP.html

更多相关:

  • 51 三菱PLC可读不可写Q:MT8102IQ和三菱Q系列PLC通讯,屏无法写入PLC,但是可以读取PLC的状态和数值?A:PLC程序中"允许RUN中写入"打钩,程序下载重启后解决。52 控制不了输入点Q:触摸屏做了三菱PLC的X点的元件,但是控制不了X输出?A:是的,PLC端X点无法通过触摸屏控制输出,屏上只能做X点的显示。53 M...

  • 传统方法(仅适用于普通项目):   1、在vscode中安装 Live Server 插件: 2、安装成功后,vscode右下角会有 Go Live 标识点击: 3、cmd ipconfig 查询自己电脑的ip地址: 4、复制地址替换端口前的地址(http://127.0.0.1:8080修改为http://192.168....

  • ngx_http_geo_module模块,默认情况下,nginx会加载,除非人为的 --without-http_geo_module。 这个模块提供了一个非常好用的geo指令,可以用它来创建变量,诞生其值依赖于客户端IP地址。 ngx_http_geo_module 模块官网地址 http://nginx.org/en...

  • uboot启动Linux内核过程分为4大步骤: 问题2: uboot阶段DDR的分区的问题 上述步骤2和步骤4中,有将uboot/kernel拷贝纸DDR的步骤,具体要拷贝到DDR的什么位置呢? 分清楚这两个概念: 链接地址:链接时指定的地址(指定方式为:Makefile中用-Ttext,或者链接脚本) 运行地址:程序实际运行...

  • 在Linux系统中,以32bit x86系统来说,进程的4GB内存空间(虚拟地址空间)被划分成为两个部分 ------用户空间和内核空间,大小分别为0-3G,3-4G。        用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。          每个进程的用户空间存放用户的程序和代码(堆栈,数据区,代码区等)...