网络基本知识(1) ARP解析
来源:互联网 发布:编程助手app 编辑:程序博客网 时间:2024/05/16 17:44
IP地址是一个32位的二进制数(这里我们说的都是IPV4),通常用 " 点分十进制 " 表示 “a.b.c.d”。地址分类的话,其实大多数同学都知道,我就大概的说一下:
A类:0.0.0.0~127.255.255.255.255;
B类:128.0.0.0~191.255.255.255;
C类:192.0.0.0~223.255.255.255;
D类:224.0.0.0~239.255.255.255;
E类:24.0.0.0~247.255.255.255;.
ABC三类地址称为单播地址,用于标识一个接口,D类地址称为组播地址,这个后面有机会详细介绍,E类地址暂时不用。
还有一个特别地址255.255.255.255,称为广播地址,可以被所有设备接收。
下面开始讲arp协议,以太局域网的内部通信需要知道链路层地址,即MAC地址。已经知道了对方的IP地址,怎么才能获取对方的MAC地址呢?
举例:A要向B发数据,但是目前只知道B的IP。
A向所有的喊一声,谁的IP是X.X.X.X,告诉一下MAC地址?(这个就是广播)
B收到之后就会回给A说,我的IP是X.X.X.X,MAC地址是......(这个是单播)
这样的话A就拿到了B的MAC地址。
每个以太网设备都有一个唯一的属于自己的MAC地址,叫做单播MAC地址,例如48:EA:33:05:33:45,目的MAC为该地址的以太帧只有它才会接收。有一个特别的MAC地址"FF:FF:FF:FF:FF:FF",它对应于局域网上的所有设备,只要给这个MAC地址发送报文,局域网上的所有设备都会接收,这个MAC地址称为广播MAC地址。另外还有一类地址,对应于以太网上的一组特定的设备,这类MAC地址叫做组播MAC地址,目的为组播MAC地址的以太帧,只要加入到这个组播组的设备才会接收。
当A不知道B的MAC地址的时候,他会发送一个ARP请求报文,通常是一个广播以太帧。大意是“谁知道192.168.1.10的MAC地址是多少,告诉我192.168.1.100”,然后在发送者地址字段填上自己的MAC地址:46:e3:54:21:43:65.既然不知道对方的MAC地址,目的MAC地址的话就填广播MAC地址“FF:FF:FF:FF:FF”。
当B收到这个报文一看,有人在问我的MAC地址,那就告诉他吧。然后发送一个ARP应答报文,通常是一个单播以太帧。大意就是“192.168.1.10的MAC地址是45:32:56:44:78:21,目的MAC的话就是请求人的MAC地址”。还要把对方的IP和MAC地址保存下来,下一次给A发报文的时候就不要询问,这个就是ARP表项。
与此同时,同一个局域网内的其他设备都会受到A发送的广播ARP请求以太帧,虽然他们不会回应,但是也会把A的IP和MAC地址保存下来,下次如果发送的话就不用发送ARP请求了。
上述的ARP学习过程是通过协议动态获取的,这样的表项叫做动态ARP,为了节省表项资源,ARP表项需要定期老化清楚。相对动态ARP,也可以手动ARP配置,这个叫做静态ARP表项。
我们知道,以太帧用于局域网通信,同样MAC地址只有在局域网内有效,所以只有当设备认为自己与对方处于同一个局域网时候,才会通过ARP协议请求对方的MAC地址,然后将报文直接或通过交换机发送给对端设备,这个过程叫做二层转发。否则,设备就不会将报文直接发送给对方,而是将报文发送给一个叫“网关”的设备,即路由器,通过网关转发处于另一个局域网的目的设备,这个过程叫做三层转发。
其实这里可以说一下,虽然ARP是处理的链路层的数据,可是它是网络层的协议,所以不是一个网段的话只能转发给网关,即使是连在一个交换机的两个IP地址。
最后的话说一下免费ARP吧,这个过程的话其实比较简单,就是明知故问。有什么用呢??
当一个设备获得了一个IP或刚开机时候,为了确定自己的IP没有被局域网内的其他设备占用,通常会发送一个免费ARP请求,如果局域网内有其他设备已经使用该IP,就会回应一个ARP应答,于是发送免费ARP的设备就会给予系统提示(例如:IP地址冲突)。还有一种情况的话,就是设备IP对应的MAC地址发生了变化,免费ARP可以使得局域网被的其他设IP设备立刻刷新该设备的ARP表项。
今天就先到这里,2015年12月10日00:04:07。
- 网络基本知识(1) ARP解析
- ARP协议解析(1)
- 【网络基础】地址解析协议(ARP协议)简介
- 【网络基础】ARP地址解析协议
- 网络层--地址解析协议ARP
- 网络层地址I解析协议ARP
- ARP攻击基本知识
- ARP协议解析(2)
- ARP(地址解析协议)
- 地址解析协议(ARP)
- ARP (地址解析协议)
- ARP 数据包解析(转载)
- ARP解析
- ARP解析
- 网络 Arp
- 网络基本知识
- 网络基本知识
- 网络基本知识
- linux下jsoncpp的编译和测试使用
- 闲扯强制类型转换
- 【Linux编程】零拷贝之sendfile( )函数
- SHELL笔记-1
- Ajax与JSON的一些总结
- 网络基本知识(1) ARP解析
- Java:单例模式的几种写法
- Ioc模式(Inversion of Control,即反转模式)的理解
- linux下的头文件和库文件搜索路径
- oj废弃主页的设计[滑动按钮]
- maven jar包不能引入到tomcat web项目lib的原因
- PyCharm 5汉化方法
- 学习c++总结
- Android tickplusdrawable(TickPlusDrawable)