tcp/ip学习笔记--第4章 arp协议
来源:互联网 发布:产品排名优化流程 编辑:程序博客网 时间:2024/05/20 01:35
前言:
由于公司业务需要,也由于自己的兴趣,开始学习计算机网络。去年暑假的时候看过一本谢希仁老师写的《计算机网络》,看得不够认真,而且由于以前没有任何基础,也没有看懂多少。那是一本典型的教材,将一个一个的知识点罗列出来,缺少实践,也不够易懂。
这次选了经典的tcp/ip卷1:协议,读的是英文原版。一方面是个人认为翻译的技术书籍有些地方实在是翻译得太差,二是想逼自己一把,提升英文阅读的能力。
希望能坚持做到多思多想,重要的章节第个章节输出一篇笔记,从而巩固记忆,加深理解,将来可以对比学习。
第4章 arp协议
arp协议的英文全称是 adress resulation protocol,即地址解析协议。在计算机网络的世界中,每个主机都有两个地址,一个是ip地址,另一个是物理地址--MAC(全称Media Access Control),ip地址是可变的,而物理地址是网卡制造商在制造的时候写入的,不可变而且理论上来说全球唯一。上层程序在使用的时候,都是使用ip地址,而链路层在发送数据的时候,必须使用物理地址。arp协议就是负责将ip地址转换为物理地址。主机会以广播的方式发送arp查询报文,具有目标ip的主机回复arp回应报文。主机拿到物理地址后,就可以将数据报文发送到对应主机上。
arp缓存:如果每次要发送数据报文前都去查询一次,效率肯定不够高,所以就有了arp缓存,将ip地址和物理地址的对应关系缓存起来。一般缓存的有效时间是20分钟。
代理arp:路由器可以代替其子网回复arp查询报文,这样可以对外部隐藏具体的子网细节。
gratuitous arp(免费arp):发送查询自己ip地址对应的物理地址的arp查询报文,一般在系统引导的时候发送,这样可以检测发现是否有ip冲突。如果收到了回复,则说明发生了冲突。
工作在以太网上的arp分组格式:
destination addr:全1地址,表示广播地址。
source addr :发送查询报文的主机的物理地址。
frame type:数据帧类型,arp请求和响应是0X806
hard type:表示硬件的物理地址类型
prot type:协议类型,表示所要映射的上层协议的类型。如果是ip协议,这个字段就是0X0800
hard size:物理地址的字节长度。以太网地址为6
prot size:协议地址的字节长度。ip协议为4
op:1.arp request 2.arp reply 3.RARP quest 4.RARP reply
剩下的4个字段如字面意思。
arp攻击:
由于arp工作的原理是基于互相信任的, 会相信任何主机发送的arp报文,所以说一旦局域网内混入了其他恶意攻击的机器,或者说arp攻击报文从外部传了进来,局域网将会崩溃甚至发生信息泄露。
这有一篇文章写得比较清楚:
ARP攻击原理简析及防御措施
未解疑惑:
1.为什么链路层在传输数据的时候必须为物理地址,用ip地址行吗?
2.arp协议只是在局域网工作吗?
- tcp/ip学习笔记--第4章 arp协议
- tcp/ip协议学习笔记(4)ARP&RARP
- TCP/IP 第4章 ARP:地址解析协议
- 【TCP/IP详解】第4章 ARP:地址解析协议
- 《TCP/IP详解》学习笔记-第4/5章 ARP和RARP
- TCP/IP学习笔记之四 --- ARP:地址解析协议
- TCP/IP学习笔记一:地址解析协议ARP初识
- TCP/IP学习笔记二:地址解析协议ARP 数据格式
- TCP/IP学习笔记(3)--ARP和RARP协议
- TCP/IP学习笔记(ARP)
- TCP/IP学习笔记:ARP
- TCP/IP 详解卷一 - 第4、5章 ARP协议和RARP协议
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
- 《TCP/IP详解 卷1:协议》 读书笔记 第4章 ARP:地址解析协议
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
- JavaScript忍者秘籍笔记02之闭包
- 贪心法-区间问题-今年暑假不AC
- 【正则表达式】正则表达式进阶
- Java注解基本原理
- Map 的 使用方法和内容
- tcp/ip学习笔记--第4章 arp协议
- Oracle之分区truncate、drop、add等索引失效分分析
- 加班的那点事儿
- Linux下vsftp的安装及配置
- Linux下快速替换文本中的字符串
- 调试远程服务项目程序代码——Eclipse调试远程服务器(亲测步骤)
- 当技术遇上管理
- VS2013 中 处理winnt.h 的 Error C2146时系统拒绝访问的解决方法
- 使用Session防止表单重复提交_JavaWeb学习