zoukankan      html  css  js  c++  java
  • TCP/IP协议---ARP协议

      ARP协议
    以下就默认在以太网类型的网络。
    这个协议的作用是通过ip地址(32bit)找到硬件地址(48bit)。
    顺便提一下:在一个局域网里,大家常见的设备交换机,交换机上的主机在互相通信时,实际用的就是硬件(MAC)地址,它并不管谁的ip。因此说交换机是链路层上的设备,而不是ip层上的设备。

    举一个ftp到一个主机的例子:


    知道主机的IP地址并不能让内核发送一帧数据给机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的
    IP地址和采用不同网络技术的硬件地址之间提供动态映射。

    ARP的数据帧格式:


    以太网首部和28字节的ARP请求/应答。稍微了解下~
    - 以太网首部:
    1). 6个字节的以太网目的地址(请求的时候是广播类型全1),arp请求一般不会跨路由,在一个网段中广播,每个主机都会收到这个数据帧,被问谁有这个目的ip的硬件地址。
    2). 6个字节的以太网源端地址
    3). 2个字节的帧类型。对于arp请求/应答来说是固定的。


    - 28字节的arp请求/应答:
    1). 2个字节的硬件类型:硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。表示也可以映射其它种类的硬件地址。
    2). 2个字节的协议类型:它的值为0x0800即表示IP地址。表示arp可以解析IP地址以外的地址。
    3). 1个字节的硬件地址长度&1个字节的协议地址长度。比如以太网硬件地址就是6个长度,协议地址就是4个长度
    4). 2个字节的操作op类型:是arp请求还是应答,rarp的请求还是应答
    5). 接下来是4个地址。和以太网首部有点重叠。

    然则并非每次网络传输都要来一次arp请求,虽然是几毫秒。由于ip和硬件地址变化的频率不那么频繁,因此高效来讲,每个主机上是有大约20分钟的arp高速缓存的。这在机器上运行命令arp -a,就可以看到缓存的ip和硬件地址映射。如果没有的话,尝试去ping一个局域网主机,然后再arp -a就可以看到这个被ping的机器ip和mac了~ 顺便说下删除一个缓存可以命令arp -d ip地址...

    RARP协议:  稍做了解~

    具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,X终端或无盘工作站,则需要采用其他方法来获得IP地址。 络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP应答中)。

    在概念上这个过程是很简单的,但是实现起来常常比ARP要困难。

    -

  • 相关阅读:
    大二第二学期周学习进度总结(十三)
    java课程之团队开发冲刺阶段2.5
    java课程之团队开发冲刺阶段2.4
    java课程课后作业190530之用户体验评价
    java课程课后作业190530之找水王
    java课程之团队开发冲刺阶段2.3
    python运算学习之Numpy ------ 认识数组、数组的创建
    安装 jdk
    公司想辞退的你六种表现,你get到了么?
    性能测试基础知识系统学习之相关术语
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5345870.html
Copyright © 2011-2022 走看看