zoukankan      html  css  js  c++  java
  • Networking

    ARP 协议概述

    ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址。网段上的每台主机都维护着一个被称为 ARP Table 或 ARP Cache 的表格,其中包含着网段上其他主机的 IP 地址与物理地址的对应关系。当主机需要向网段上的其他主机发送数据时,它会查看 ARP Cache 来获得目的的物理地址。ARP 缓存是动态变化的。如果要接收数据的地址当前并不存在于 ARP Cache,主机就会广播一个 ARP 请求帧。

    ARP 请求帧包含未解析的 IP 地址,还包含发送这个请求的主机的 IP 地址和物理地址。网段上的其他主机接收到这个 ARP 请求,拥有这个未解析的 IP 地址的主机会向发出请求的主机发送自己的物理地址。这个新的 IP 地址与物理地址的对应关系就会添加到请求主机的 ARP Cache 中。一般来说,ARP Cache 里的条目在一定时间后会过期,条目就会被从表里删除。当主机需要向这个条目所包含的 IP 地址发送数据时,解析过程会再次重复。

    ARP 报文格式

    ARP 报文格式如下:

    HTYPE PTYPE HLEN PLEN OPER SHA SPA THA TPA

    HTYPE(Hardware Type): 该字段有 2 个字节,表示硬件类型。

    PTYPE(Protocol Type): 该字段有 2 个字节,表示协议类型。

    HLEN(Hardware Address Length ): 该字段有 1 个字节,表示硬件地址长度。

    PLEN(Protocol Address Length ): 该字段有 1 个字节,表示协议地址长度。

    OPER(Operation): 该字段有 2 个字节,表示操作类型。1 表示 ARP 请求,2 表示 ARP 应答。

    SHA(Sender Hardware Address): 该字段有 6 个字节,表示发送者硬件地址。

    SPA(Sender Protocol Address): 该字段有 4 个字节,表示发送者 IP 地址。

    THA(Target Hardware Address): 该字段有 6 个字节,表示目标硬件地址。

    TPA(Target Protocol Address): 该字段有 4 个字节,表示目标 IP 地址。

    ARP 工作过程

    Wireshark - 观察 ARP 地址解析过程

    动画 - ARP 地址解析过程

  • 相关阅读:
    Java中Comparable与Comparator的区别
    LeetCode[5] 最长的回文子串
    LeetCode[3] Longest Substring Without Repeating Characters
    LeetCode 7. Reverse Integer
    统计单词出现的次数
    System.arraycopy()和Arrays.copyOf()的区别
    SyncToy
    查看端口占用及进程号
    TCP协议
    python 的日志logging模块学习
  • 原文地址:https://www.cnblogs.com/huey/p/4826019.html
Copyright © 2011-2022 走看看