什么ARP和ARP欺骗

  对TCP IP的认识一直停留在只知道名字的阶段,最近看了一下moblie IP  和 IP v6  依然对很多概念是模糊的。但是好一些的是还是对一些概念开始清楚了。在这些概念中通常说的一层协议 二层协议 三层协议 或者说lay1 lay2 lay3  最起码不会听到这几个名字跟二一样瞪个眼睛了。

一层就是物理层,可能只有做硬件的同志们会关心了,还有做水晶头卖网线的,会关心下8根4对双绞线,那四根是有用的哪四个是没用,还有交叉线和非交叉线。其实物理层是什么波形一直都不知道,没有像对串口每个bit的电平和波形都清楚明白。

二层就是mac层,对于这一层还是没有什么理解 因为就没有看过mac协议具体是什么,只知道A 要 给B 发东西(包)需要在IP头前边再封装B的MAC地址,才能把包发到。

三层就是IP层

这一层很重要 一直以为就只是IP协议,其实主要有四个协议组成

(1) ICMP Internet control message protocol 控制管理协议

这个协议最早接触是在mobile ip中接触的,如果当时有IP协议基础就不会看的那么痛苦。现在在回过头看能会好一些。mobile ip中使用icmp来传递移动端的注册信息(随后再补充)。在普通IP中的功能有①向源主机发送目的主机不可达信息, 对PING的请求和应答。

(2)ARP address resolution protrol 地址解析协议、

就是这篇文章的主题,要先回答这几个问题,为什么需要arp,什么arp,和arp的原理实现。

1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议。最直白的说法是:在IP-以太网中,当一个上层协议要发包时,有了节点的IP地址,ARP就能提供该节点的MAC地址。

2. 为什么要有ARP? OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layer interface). IP地址在第三层, MAC地址在第二层。协议在发送数据包时,得先封装第三层(IP地址),第二层(MAC地址)的报头, 但协议只知道目的节点的IP地址,不知道其MAC地址,又不能跨第二、三层,所以得用ARP的服务。

3. 什么是ARP cache? ARP cache 是个用来储存(IP, MAC)地址的缓冲区。当ARP被询问一个已知IP地址节点的MAC地址时,先在ARP cache 查看,若存在,就直接返回MAC地址,若不存在,才发送ARP request向局域网查询。

4. ARP 有什么命令行?常用的包括:(格式因操作系统、路由器而异,但作用类似)- 显示ARP cache: show arp; arp -a - 清除ARP cache: arp -d;clear arp。

其实总结起来就是一句话,二层发包需要MAC地址,但是来的包中只有目标IP地址没有MAC地址,所有就需要在三层中,通过一定方式知道目标IP地址对应的MAC地址是什么,所有就产生了ARP这个东东,就是专门来干这个事情的

那么ARP的在又是怎么实现的呢?

在TCP/IP协议中,A给B发送IP包,在报头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址.

计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议。

在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。

A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。

本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。

ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。

这里主要有两点需要注意 就是两个红字部分。所以才有了ARP欺骗 和 还有就是我们的路由器是如何实现的绑定MAC上网让其他非用户MAC的电脑不能上网。

(3)RARP 逆向ARP协议  

主要用于无盘工作站启动,还需要一个RARP服务器。其实是个什么东西 我也不知道,一个工作站没有硬盘吗?

(4)IP协议 (这段直接拷贝,就是讲IP地址的


IP地址的定义:IP地址就是可以唯一标识主机的地址,它是一个网络编码,既可以是一个主机的地址,也可以是一路由器一个端口的地址。它确定的是网络中的一个连接,32位,由4个8位的二进制数组成,每8位之间用圆点隔开。由于二进制数不便记忆,通常转换成十进制数表示,取值范围为0~255.

IP地址分为网络标识和主机标识:网络标识用于区分不同的网络,主机标识用于在一个网络中区分主机。

IP地址的分类:

a)A类地址

第一个8位组为网络标识,其余三个8位组为主机标识;

第一个8位组的首位为0,其余7位表示网络标识。全0标识本地网络,全1保留诊断用。

b)B类地址

B类地址中的第一、二个8位组为网络标识,第三、四个8位组用于主机标识;

第一个8位组的取值范围为128~191;

适用于中等规模的网络。

c)C类地址

C类地址中的前三个8位组是网络标识,第四个8位组为主机标识;

第一个8位组的取值范围为192~223;

C类地址适用于主机量较多的网络中。

d)D,E类地址

D类地址用于组播通信地址,其第一个8位组的最高四位等于1110,取值范围为224~为239,用于标识组播通信地址,后28位用于区分不同的组播组。

E类地址的第一个8位组的最高五位等于11110,其取值范围为240~247,此类地址作为未来地址而被保留;

目前具体的网络中只能被分配到A,B,C类地址中的一种。

e)特殊用途的IP地址

网络地址:主机标识位全部为0的地址从来不分配给任何单个主机,而是作为网络本身的标识;

直接广播地址:主机标识位全部为1的地址从不单独分配给主机,而是作为同网络的广播地址;

有限广播地址(255.255.255.255):在未知本网情况下用于本网广播。


你可能感兴趣的:(什么ARP和ARP欺骗)