• 学习:ARP协议/数据包分析


    ARP(Address Resolution Protocol)即地址解析协议, 用于实现从IP地址MAC地址的映射,即实现通过目标IP找到对应的MAC地址

    在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源/目MAC的封装

    上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装


    问题:内网中当 主机A 发送消息给 主机B 之间的通信是怎么样的?

    ARP请求过程:

    1、主机A先在ARP缓存表中查找主机B的MAC地址
    
    2、如果在A的ARP缓存表中找到了,那么就继续数据封装通信。如果没有找到主机A会先发送ARP的广播包(里面包括了A的IP地址和MAC地址、主机B的IP地址)
    
    3、既然是广播帧那么内网中的所有存活主机都会收到该ARP的广播包
    
    4、存活主机会进行检查自身IP地址是否与广播包中的目的IP地址一致,如果不一致的话进行丢弃。如果一致那么就会将主机A的IP和MAC地址添加到自己的ARP缓存表里面,然后再将自己的MAC地址和ARP响应包通过单播方式发送给主机A
    
    5、然后主机A就可以给主机B发送消息
    

    ARP数据包分析:

    **win10: **192.168.1.104

    win2008: 192.168.1.101

    1、ARP请求包:

    以太网目的地址: 目的主机的硬件地址,目的地址为ff:ff:ff:ff:ff:ff,则是一个广播地址

    以太网源地址:源主机的硬件地址

    帧类型:ARP:0x0806、 RARP:0x8035

    Hardware type :硬件类型,标识链路层协议

    Protocol type: 协议类型,标识网络层协议

    Hardware size :硬件地址大小,标识MAC地址长度,这里是6个字节(48bti)

    Protocol size: 协议地址大小,标识IP地址长度,这里是4个字节(32bit)

    Opcode: 操作代码,标识ARP数据包类型,1表示请求,2表示回应

    Sender MAC address :发送者MAC

    Sender IP address :发送者IP

    Target MAC address :`目标MAC,此处全0表示在请求

    Target IP address: 目标IP


    2、ARP响应包:

    响应包与请求包大致相同,不同地方为Opcode为2,源/目IP和MAC地址相反,Target MAC address被补充


    小知识:关于ARP协议属于哪层协议?

    协议到底所属哪一层,可以从应用/功能来考虑,也可以从层次/封装来考虑。

    从功能来看,它的功能最终是获取到MAC信息,服务于链路层,从这点考虑,ARP是链路层协议;

    但是从层次来看,ARP基于Ethernet协议,IP协议基于Ethernet协议,它们在Ethernet协议里面有独立的Type类型,前者是0x0806,后者是0x0800,那么同样属于网络层协议

    参考文章:https://www.cnblogs.com/csguo/p/7527303.html

  • 相关阅读:
    如何提高沟通能力?
    如何做到科学决策?推荐你看这本《决策必读12篇》
    领导者如何让员工真心服从自己?
    MBA看什么书,MBA教材书目推荐
    有关战略管理的书,哪本最值得推荐?
    市场营销必看书籍推荐
    P1208 混合牛奶题解
    P5019 铺设道路题解
    P1728 陶陶摘苹果题解
    P1106 删数问题题解
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12288199.html
Copyright © 2020-2023  润新知