• ARP协议介绍


    简介

      ARP协议是某些网络接口使用的特殊协议,用来转换IP层和网络接口层使用的地址


      ARP为IP地址到对应的硬件地址之间提供映射。也就是说如果两台主机需要通信,需要知道对方的mac地址,因为IP地址相当于是逻辑地址.

      如果只知道IP地址是没办法通信的,因为主机并不知道需要把数据报发送到哪台主机上。

    例子

      现在假设我们有两台主机,需要通信,IP地址分别是192.168.3.31192.168.3.32

      这两台主机需要通信的话,首先发送方会发送一份ARP请求的以太网数据帧给以太网上的所有主机,这个过程也叫做广播,目的主机接收到ARP广播,发现是在询问它的IP地址,于是发送一个ARP应答.

      下面是192.168.3.32服务器的高速缓存



      在192.168.3.32服务器上使用抓包程序进行抓包,在192.168.3.31上ping32主机


      把刚才保存的testx.cap保存下来,这里我用了writeshark打开刚才抓取到的数据报

      下图就是刚才我们抓到的数据报,首先31服务器会发送一个广播(Broadcast)询问,第二条就回应告诉31,我的ip地址就是32并且回应的报文当中,还携带着自己的mac地址.这样我们在31服务器上就在ARP缓存当中缓存了32服务器的mac地址,默认的高速缓存时间是20分钟


      接下来我们查看ARP详细报文信息




      frame里面包含的物理传输的数据帧,暂且不去关注.从以太网开始(Ethernet)

    1.Destination:Broadcast
        目的地址,一个广播地址
    
    2.Source
        源mac地址
    
    3.Type
        数据报的类型,主要记住 一下两种就可以了
        IP数据报:0x0800
        ARP地址解析数据报:0x0806
    

      在看ARP数据报

    1.Hardwre type
        硬件类型,这里是以太网
    
    2.Protocol Type
        传输协议类型 IP4
    
    3.Hardwre Size
        硬件地址长度,单位为字节,这里硬件mac地址是6字节(00:0c:29:9a:93:03)
    
    4.Protocol size
        协议地址长度, 4字节(192.168.3.31)
    
    5.opcode request
        操作类型,主要有四个字段
        ARP请求(值为1)
        ARP应答(值为2)
        RARP请求(值为3)
        RARP应答(值为4)
    
    6.剩下的一个是发送mac、IP和目的主机mac地址和ip地址
    


    ARP代理

    免费ARP

      免费ARP,它是指主机发送ARP查找自己的IP地址,通常它发生在系统引导期间进行接口配置的时候

      这句话的意思就是当我主机在设置IP地址的时候,会发送一个ARP请求广播到局域网,如果局域网内没人回复就代表IP是可用的,如果有人回复,就代表IP冲突了。

      还有一个作用就是如果修改IP地址的主机正好也修改了mac地址,那么收到广播的机器,也可以更新ARP缓存的mac地址

    总结

      我觉得ARP地址解析这个过程就好像是在在一个办公室内,大家相互不认识,当你老板说让你给张三(目的主机)一个东西,那你就会在办公室里喊一声谁是张三,办公室里所有人都听得到你在喊广播,因为其他人不是张三,他们不会答应你,只有张三一听原来是叫我,它就会回答我是张三(ARP应答)。然后你心里就会记下它是张三这个记下也就是ARP高速缓存

  • 相关阅读:
    python 获取浏览器窗口句柄
    实现远程连接 Win10的Ubuntu子系统下的MySQL数据库
    Postman 测试微信小程序后台接口
    使用Postman获取小程序码时如何解决47001报错
    富文本编辑框比较
    PIL 生成随机验证码图片
    哪里买书合算
    在文件中读取列表功能
    python函数01
    修改文件内容
  • 原文地址:https://www.cnblogs.com/zhengyazhao/p/13043098.html
Copyright © 2020-2023  润新知