zoukankan      html  css  js  c++  java
  • tcpip详解笔记(4) arp协议

     
    1. 链路层通信根据48bit以太网地址(硬件地址)来确定目的接口,而地址解析协议负责32bit IP地址与48bit以太网地址之间的映射:
     
    (1)ARP负责将IP地址映射到对应的硬件地址
     
    (2)RARP负责相反的过程,通常用于无盘系统。
     
    2. ARP高速缓存
     
    ARP高效运行的关键是每台主机上都有一个ARP高速缓存,缓存中每一项的生存时间一般为20分钟,但不完整表项超时时间一般为3分钟(如192.168.13.254)。
     
    # arp -a
     
    ? (192.168.0.16) at 00:1b:21:b9:9f:d4 [ether] on eth0
     
    ? (192.168.0.6) at 00:1b:21:b9:9f:d4 [ether] on eth0
     
    ? (192.168.13.233) at 00:16:3e:01:7a:b2 [ether] on eth0
     
    ? (192.168.13.254) at <incomplete> on eth0
     
    3. ARP分组格式
     
    5
    
     
    其中:
     
        ARP协议的帧类型为0x0806
     
        硬件类型:1表示以太网地址
     
        协议类型:0x800表示IP协议
     
        硬件地址长度:值为6
     
        协议地址长度:值为4
     
        op:1为ARP请求,2为ARP应答,3为RARP请求,4为RARP应答
     
        对于ARP请求来说,目的端硬件地址为广播地址(ff:ff:ff:ff:ff:ff),由ARP相应的主机填入。
     
    一个完整ARP请求应答的抓包:
     
    # tcpdump -e -p arp -n -vv
     
    21:08:10.329163 00:16:3e:01:79:43 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.14.23 tell 192.168.13.43, length 28
     
    21:08:10.329626 00:16:3e:01:7b:17 > 00:16:3e:01:79:43, ethertype ARP (0x0806), length 60: Ethernet (len 6), IPv4 (len 4), Reply 192.168.14.23 is-at 00:16:3e:01:7b:17, length 46
     
    4. 当向位于不同网络的主机发送ARP请求时,由两个网络之间的路由器响应该ARP请求,这个过程称为ARP代理。
     
    ARP代理也称为混合ARP:通过两个网络之间的路由器可以互相隐藏物理网络。
     
    5. 免费ARP:主机发送ARP请求查找自己的IP地址。通常有两个用途:
     
    (1)确认网络中是否有其他主机设置了相同的IP地址;
     
    (2)当主机的物理地址改变了,可以通过免费ARP更新更新路由器和其他主机中的高速缓存。
     
    6. 可以通过arp命令来操作ARP高速缓存:
     
    arp 显示当前的ARP缓存列表。
     
    arp -s ip mac 添加静态ARP记录,如果需要永久保存,应该编辑/etc/ethers文件。
     
    arp -f 使/etc/ethers中的静态ARP记录生效。
  • 相关阅读:
    Android 按键消息处理Android 按键消息处理
    objcopy
    SQLite多线程读写实践及常见问题总结
    android动画坐标定义
    Android动画效果translate、scale、alpha、rotate
    Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)
    Flatten Binary Tree to Linked List
    Distinct Subsequences
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/feisky/p/2732939.html
Copyright © 2011-2022 走看看