• ARP协议


    ARP地址解析协议(IP地址--->MAC地址)

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机与主机之间的通信在物理上实质是网卡与网卡之间的通信,而网卡只认识MAC地址,所以要想实现主机与主机之间的通信,需要知道对方IP地址所对应的MAC地址,完成这一过程的协议就是ARP协议。在具体的网络传输过程中,使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

    ARP工作原理

    每台主机或路由器都有一个ARP缓存表,用来保存IP地址与MAC地址的对应关系。

    以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播arp request,请求包中包含了A主机的ip地址和mac地址。网络上其他主机并不响应ARP询问,直接丢弃,只有主机B接收到这个帧时,才以单播方式向主机A做出回应arp reply,并带上自己的ip和mac地址,而B主机收到A的请求包时也会将A主机的IP与MAC对应关系保存在自己的缓存区。A收到B的回应包后便可得知B的MAC地址,将其存入ARP缓存。此后A再向B发送数据时,就可以直接从缓存表中查找B的地址了,然后直接把数据发送给B。由于B在接收A的请求时也保存了A的地址信息,因此B要向A发送数据也可以直接从缓存表中查找。

    ARP缓存表设置了生存时间TTL,在一段时间内(一般15到20分钟,跟操作系统有关)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

    ARP封装

    可以对ARP报文有个直观的认识,深入的话可以结合WireShark抓包学习。
    在这里插入图片描述

    广播请求:

    在这里插入图片描述

    回应:

    在这里插入图片描述

    补充一个以太网帧封装:

    在这里插入图片描述

    再补充一个ARP协议在TCP/IP协议中的位置:

    在这里插入图片描述

    arp命令

    可通过如下命令查看高速缓存中的所有项目:

    arp -a
    

    其他选项:

    -a 显示所有接口的当前ARP缓存表;
    
    -v 显示详细信息; 
    
    -n 以数字地址形式显示; 
    

    RARP协议(MAC地址--->IP地址)

    反向地址转换协议,RARP(Reverse Address Resolution Protocol),就是将局域网中某个主机的物理地址转换为IP地址。

    MAC地址

    MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成224个不同的地址。MAC地址实际上就是适配器地址或适配器标识符EUI-48。

    关注微信公众号,每天进步一点点!

  • 相关阅读:
    windows 安装 ELK(Elasticsearch,Logstash,kibana)
    NSSM 将程序封装成服务软件
    面试-双向链表
    mySql 事务,游标以及循环
    SQL 事务
    C# Windows 服务
    MVC 中ajax 调用Webservice 或WCF 问题
    js prototype
    计算一个数等于其它数相加的所有可能 如: 5 =1+4 ,1+3+1,2+3,2+2+1,1+1+1+1+1,1+1+1+2
    冒泡排序,选择排序,快速排序
  • 原文地址:https://www.cnblogs.com/s-lisheng/p/11280609.html
Copyright © 2020-2023  润新知