TCP/IP协议族【第8章地址解析协议APR】
来源:互联网 发布:七腾软件科技有限公司 编辑:程序博客网 时间:2024/06/16 12:14
8.1 地址映射
在网络这一级,主机和路由器是通过它们的逻辑地址(IP地址)来识别的。逻辑地址在全局是唯一的。
在物理这一级别,主机和路由器通过本地地址来识别。
8.1.1 静态映射
把物理地址与逻辑地址映射到一张表。保存到每一台机器,缺点:需要定期更新
8.1.2 动态映射
使用协议根据逻辑地址找出静态地址。目前有两种协议:
地址解析协议(APR):把逻辑地址解析成物理地址、
逆地址解析协议(RARP)。把物理地址解析成逻辑地址(已被其他协议替代)
8.2 APR协议
APR接受来自IP协议的逻辑地址,将其映射成物理地址,然后再把物理地址递交给数据链路层。
ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包(包含发送方的物理地址,ip地址,接收方的IP地址)。网络上的没太主机或者路由器都会收到广播,但只有期待的接收方才能认出是自己的IP地址,并以一个含有IP和以太网地址对的数据包作为应答,以单播的形式响应查询者。
8.2.1 分组格式
硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1。
协议类型字段指明了发送方提供的高层协议类型,IP为0806(16进制)。
硬件地址长度和协议长度指明了硬件地址和逻辑地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用。
操作字段用来表示这个报文的目的,ARP请求为1,ARP响应为2,
8.2.2 封装
APR数据直接封装在数据链路层的帧中
8.2.3 操作
APR请求采用广播发送,APR应答采用单播发送。
发送方收到回应后,就知道目标机器的物理地址了。然后携带有给目标机器的IP数据报就封装成帧,以单播的方式发送到终点。
8.3 ATMAPR
ATM 地址识别协议(ATM Address Resolution Protocol)
8.3.1 分组格式
8.3.2 ATMAPR操作
永久虚电路:PVC连接
在PVC的情况下,反向请求报文(inverse request message)和反向应答报文(inverse reply message)可以把物理地址和IP绑定起来。
SVC链接:路由器想和另一个路由器(或主机)建立连接时,必须建立一条新的虚电路。
建立过程3个步骤:连接服务器,收到新物理地址,建立连接
在SVC的情况下,用请求报文和回答报文可以将物理地址跟IP地址绑定。
用请求报文和回答报文也可以用来构建服务器的映射表。
8.3.3 逻辑子网(LIS)
LIS允许把ATM划为若干个逻辑子网,要使用ATMAPR,各子网中都需要一个独立的服务器。
8.4 APR软件包
8.4.1 高速缓存表
空间有限,表中的映射关系不能无时间限制保存。
状态、硬件类型、协议类型、硬件地址长度、协议地址长度、接口号、队列号、尝试、超时、硬件地址、协议地址
8.4.2 队列
ARP协议维护着一个队列,每个队列维护一个终点。用来在ARP尝试解析硬件地址的时候保存IP分组。
输出模块把未解析的IP分组发送到相应的队列,输入模块从队列中取出分组,并联通解析出的物理地址一并发给数据链路层传输。
8.4.3 输出模块
ARP——output——module{sleep,等待接受来自IP软件的IP分组检查高速缓存表,寻找IP分组对应的物理地址if(找到){ if(状态是 resolved) { 从该表项提取硬件地址对应的值 把分组连同物理地址发送到数据链路层 return } if( 状态是 pending){ 把分组放入响应的队列, return }}else{//没找到 创建一个高速缓存表项,状态是pending。attempts为1 创建一个队列 把分组放入队列 发送一个ARP请求 return}}
8.4.4 输入模块
ARP——input——module{sleep,直到一个ARP请求(或者回答)到达检查高速缓存表,寻找相应的表项if(找到){更新这个表项if( 状态是 pending){while(相应的队列非空){ 从队列取分组 把这个分组连同物理地址一起发送 }}} if(未找到){ 创建一个表项 把新建的表项放入表 } if(这个分组是请求分组) { 发送ARP回答 }}
8.4.5 高速缓存控制模块
cache control module负责维护高速缓存表。
ARP_cache_control_module{sleep,定时任务结束for(表项){ if(状态为free) { 继续 } if(状态为pending ){ 把尝试值+1 if(尝试 >最大数 ) { 把状态改为free 撤销相应的队列 } else{ 发送一个ARP请求 } } if(状态为 resolved) { 递减超时字段的值 if(超时字段值<=0) { 把状态改为free 撤销效应的队列 } }}}
**************************************************************************
在本地测试下。
简单的ping下。可以看到上面有个43广播。我本机没有回应。
44 我发出一个广播 who has ....,45收到目标机器的单独回应。
arp -a 可以查看本地的缓存。
要测试可以arp -d删除指定的IP映射。
- TCP/IP协议族【第8章地址解析协议APR】
- TCP/IP详解卷1笔记_第四章 APR:地址解析协议
- TCP/IP协议族-----8、地址解析协议(ARP)
- TCP/IP 第4章 ARP:地址解析协议
- TCP/IP 第5章 RARP 逆地址解析协议
- 【TCP/IP详解】第4章 ARP:地址解析协议
- 地址解析协议(APR)
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
- 《TCP/IP详解 卷1:协议》 读书笔记 第4章 ARP:地址解析协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第5章 RARP:逆地址解析协议
- 读《TCP/IP详解》第4、5章:ARP 地址解析协议和RARP 逆地址解析协议
- 【TCP/IP详解】第5章 RARP:逆地址解析协议
- TCP IP详解 (4)地址解析协议
- TCP/IP-04-ARP地址解析协议
- TCP/IP详解卷1:协议(四)【ARP:地址解析协议,RARP:逆地址解析协议】
- 《TCP/IP详解 卷1:协议》 读书笔记 第四章 ARP:地址解析协议
- 《TCP/IP详解 卷1:协议》 读书笔记 第五章 RARP:逆地址解析协议
- TCP/IP详解,卷1:协议,第四章:ARP,地址解析协议
- [简单逻辑学]逻辑学的基本原理——从全称到特称
- H5新增特性
- unity3D基础之渲染管线的设计方法学习路线 讲义源码
- messenger进程之间的通讯
- 父级元素的 font-size:0 解决子代的inline或inlien-block的换行或图片空隙问题
- TCP/IP协议族【第8章地址解析协议APR】
- JavaScript 创建、插入和删除元素
- JAVA构造器
- php 添加 error_log
- Java IO 经典教程 (上) (翻译自jenkov.com)
- html中的用户注册与删除
- 侧拉加XListView分页加载
- Django Web 开发指南--第一章笔记
- 5.3