新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 计算机科学论坛计算机技术与应用『 C/C++编程思想 』 → ARP解析过程 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8251 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: ARP解析过程 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 C/C++编程思想 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 ARP解析过程


    ARP
    当 IP 通过共享访问、基于广播的网络技术(例如以太网或 802.11 无线 LAN)发送数据包时,协议必须能够解析与数据包要转发到的节点的 IPv4 地址(又称下一跃点 IPv4 地址)相对应的媒体访问控制 (MAC) 地址。正如 RFC 826 所定义的,ARP 使用 MAC 级广播将下一跃点 IPv4 地址解析为它们的相应 MAC 地址。

    在转发数据包时,IPv4 基于目标 IPv4 地址和路由确定过程来决定下一跃点 IPv4 地址和接口。然后,IPv4 将 IPv4 数据包、下一跃点 IPv4 地址和下一跃点接口传递给 ARP。

    如果数据包的下一跃点的 IPv4 地址与数据包目标的 IPv4 地址相同,则 ARP 执行到目标的直接传送。在直接传送中,ARP 必须将数据包目标的 IPv4 地址解析为它的 MAC 地址。

    如果数据包的下一跃点的 IPv4 地址与数据包目标的 IPv4 地址不同,则 ARP 执行到路由器的间接传送。在间接传送中,ARP 必须将路由器的 IPv4 地址解析为它的 MAC 地址。

    为将数据包的下一跃点的 IPv4 地址解析为它的 MAC 地址,ARP 使用共享访问网络技术(例如以太网或 802.11)上的广播工具来发送一个广播 ARP 请求帧。作为响应,发送方会收到一个 ARP 应答帧,其中包含与数据包的下一跃点的 IPv4 地址相对应的 MAC 地址。

    ARP 缓存
    为最大限度地减少广播 ARP 请求帧的数量,许多 TCP/IP 协议实现都包含一个 ARP 缓存,它是一个记录了最近解析过的 IPv4 地址及其相应的 MAC 地址的表。在发送 ARP 请求帧之前,ARP 将首先检查此缓存。每个接口都有其自己的 ARP 缓存。

    ARP 缓存可具有以下特性(具体取决于供应商实现):

    ? ARP 缓存条目可以是动态的(基于 ARP 应答),也可以是静态的。静态 ARP 缓存条目是永久性的,您可以使用 TCP/IP 工具(例如 Windows 附带的 Arp 工具)手动添加它们。静态 ARP 缓存条目禁止节点发送对常用的本地 IPv4 地址(例如路由器和服务器的 IPv4 地址)的 ARP 请求。使用静态 ARP 缓存条目的问题是,在网络适配器设备发生更改时您必须手动更新它们。

    ? 动态 ARP 缓存条目拥有与之相关的超时值,所以在超过指定的时间后,将从缓存中删除它们。例如,Windows 的动态 ARP 缓存条目不超过 10 分钟就会被删除。

    要查看基于 Windows 的计算机上的 ARP 缓存,请在命令提示符下键入 arp -a。您还可以使用 Arp 工具来添加或删除静态 ARP 缓存条目。

    ARP 过程
    在发送主机发送初始数据包或路由器转发数据包时,IPv4 会将 IPv4 数据包、下一跃点 IPv4 地址和下一跃点接口发送给 ARP。无论是执行直接传送还是间接传送,ARP 都执行下面的过程:

    1.
    根据下一跃点 IPv4 地址和接口,ARP 会检查适当的 ARP 缓存以查找与下一跃点 IPv4 地址相匹配的条目。如果 ARP 找到了一个相应条目,则 ARP 会跳到步骤 6。

    2.
    如果 ARP 没有找到任何相应的条目,则 ARP 将构造一个 ARP 请求帧。此帧包含发出 ARP 请求的接口的 MAC 地址和 IPv4 地址以及 IPv4 数据包的下一跃点 IPv4 地址。然后,ARP 将从相应的接口广播此 ARP 请求帧。

    3.
    子网中的所有节点都会接收此广播帧并处理 ARP 请求。如果 ARP 请求中的下一跃点地址对应于分配给子网中的某个接口的 IPv4 地址,则该接收节点会使用 ARP 请求方的 IPv4 地址和 MAC 地址更新它自己的 ARP 缓存。所有其他节点都会悄悄地丢弃该 ARP 请求。

    4.
    被分配了 IPv4 数据包的下一跃点地址的接收节点会构造一个 ARP 应答,并会直接将该应答发送给 ARP 请求方;该应答包含被请求的 MAC 地址。

    5.
    ARP 请求方将在收到 ARP 应答后使用地址映射更新其 ARP 缓存。通过 ARP 请求和 ARP 应答的交换,ARP 请求方和 ARP 应答方都在其 ARP 缓存中拥有了对方的地址映射。

    6.
    ARP 请求方通过将 IPv4 数据包定址到解析的 MAC 地址来将其发送到下一跃点。

    图 2-2 描绘了此过程。

    按此在新窗口浏览图片

    图 2-2ARP 地址解析过程


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/8 8:50:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/29 12:24:37

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    8,546.875ms