计算机网络数据通信部分之网络层ARP报文分析

ARP (地址解析协议)
即(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系。

1. 物理地址(MAC地址)
又称为硬件地址,长度是48bit,即6Bytes,由16进制的数字表示,前24位叫做组织唯一标志符,是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。MAC地址对应于第二层数据链路层,二层交换设备根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。 网卡的物理地址通常是由网卡生产厂家烧入网卡的ROM中。网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。

  • 以太网MAC帧格式
    这里写图片描述
    目的地址、源地址:MAC地址,各占6Bytes。
    类型:用来标志上一层使用什么协议,以便把收到的MAC帧数据上交给上一层的这个协议,占2Bytes。eg:若类型字段值为0x0800,表示上层使用的是IP数据报。若类型字段值为0x8137,则表示该帧是IPX发送来的。
    数据:封装上层数据包,长度在46到1500字节之间(46Bytes即:最小长度64-6-6-2-4=46Bytes,即整个帧的长度范围为64~1518Bytes)。
    帧检验序列(FCS):占用4Bytes,使用CRC校验。

  • IP地址(逻辑地址):
    连接到 Internet上的设备必须有一个全球唯一的ip地址,ip地址由4Bytes组成,采用点分十进制表示,即每个ip地址被表示为以小数点隔开的4个十进制整数,即每个整数代表一个字节,如192.168.1.1。 ip地址由网络号和主机号组成。分为A、B、C、D和E五类地址,详情如下图:
    这里写图片描述
    这里写图片描述

    2. ARP报文分析
    这里写图片描述

  • 硬件类型:发送方想知道的硬件接口类型,如以太网的值为1

  • 上层协议类型:说明了发送方提供的高层协议类型,IP为0x0800

  • MAC地址长度、IP地址长度:各占1Bytes,指定MAC地址的长度和IP地址的长度

  • 操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4

  • 源MAC地址、源IP地址:即发送源的MAC地址和IP地址

  • 目的MAC地址:表示接收方的硬件地址,在请求报文中为00-00-00-00-00-00,表示任意地址,因为暂时不知道该MAC地址

  • 目的IP地址:表示接收方的IP地址

ARP报文向下传输到数据链路层,封装成帧,以广播的形式发送在局域网中。当找到目标主机,目标主机以单播的形式回应,在回应数据包中,将自己的MAC地址告诉请求着。若非目标主机接收到ARP广播报文,就会丢弃。
这里写图片描述

  • 目的MAC地址:该地址为接收方MAC地址,由于ARP请求报文并不知道目的MAC地址,所以在二层使用广播地址,即FF-FF-FF-FF-FF-FF

  • 帧类型:用来标识帧封装的上层协议,ARP协议号为0x0806

    3. ARP映射表
    无论是主机还是交换机,都有一个用来缓存同一网段设备IP地址和MAC地址的ARP映射表,用于数据帧的转发,设备通过ARP解析到目的MAC地址之后,将会在自己的ARP映射表中增加IP地址到MAC地址的记录。ARP映射表分为动态ARP表和静态ARP表,动态ARP表动态的定期更新ARP映射记录,静态ARP表需要手动添加和维护。

展开阅读全文

没有更多推荐了,返回首页