基础
network
network
  • TCP/IP 网络模型
    • 应用层
      • 域名系统 DNS
      • 超文本传输协议 HTTP
    • 传输层
      • 用户数据报协议 UDP
      • 传输控制协议 TCP
        • TCP 报文段
        • 建立连接(三报文握手)
        • 连接释放(四报文握手)
    • 网络层
      • IPv4 地址
        • 分类的 IP 地址
        • 划分子网
        • 无分类编址 CIDR(构造超网)
      • IP 数据报的格式
      • 地址解析协议 ARP
      • IPv6 地址
    • 网络接口层
      • 数据链路层
        • 点对点协议 PPP
        • CSMA/CD 协议
          • MAC 帧的格式
          • 交换式集线器 (switching hub)
      • 物理层
  • Session 与 Cookie
  • 键入网址到网页显示,期间发生了什么?
  • Linux 系统是如何收发网络包的?
  • HTTP
    • HTTP 常见的状态码
    • HTTP 缓存技术
    • HTTP 常见字段
    • HTTPS
  • Group 1
    • 局域网
    • 网卡
    • 专用地址
    • 端口号
    • 网络安全
      • 数据加密模型
      • 数字签名
      • 鉴别(authentication)
        • 报文鉴别
        • 实体鉴别
      • 密钥分配
Powered by GitBook
On this page
  1. TCP/IP 网络模型
  2. 网络层

地址解析协议 ARP

ARP 协议的用途是为了从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。

每一台主机都设有一个 ARP 高速缓存(ARP cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。当主机 A 要向本局域网上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。

  • 如有,就在 ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址。

  • 若没有,主机 A 就自动运行 ARP,然后按以下步骤找出主机 B 的硬件地址:

    1. ARP 进程在本局域网上广播发送一个 ARP 请求分组,ARP 请求分组的主要内容是:“我的 IP 地址是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18。我想知道 IP 地址为 209.0.0.6 的主机的硬件地址。”

    2. 在本局域网的所有主机上运行的 ARP 进程都收到此 ARP 请求分组。

    3. 主机 B 的 IP 地址与 AR P请求分组中要查询的 IP 地址一致,就收下这个 ARP 请求分组,并向主机 A 发送 ARP 响应分组 ,同时在这个 ARP 响应分组中写入自己的硬件地址。

      由于其余的所有主机的 IP 地址都与 ARP 请求分组中要查询的 IP 地址不一致,因此都不理睬这个 ARP 请求分组。

    4. 主机 A 收到主机 B 的 ARP 响应分组后,就在其 ARP 高速缓存中写入主机 B 的 IP 地址到硬件地址的映射。

ARP 对保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10~20 分钟),凡超过生存时间的项目就从高速缓存中删除掉。

PreviousIP 数据报的格式NextIPv6 地址

Last updated 8 months ago