浅谈ARP协议
来源:互联网 发布:淘宝举证是什么意思 编辑:程序博客网 时间:2024/06/07 06:28
ARP协议是一种地址解析协议,在实际应用中 ,我们经常会遇到这样的问题,已经知道啦一个主机的IP地址,需要找出与之相应的物理地址,或者反过来已经知道了物理地址需要找出相应的IP地址。地址解析协议ARP和逆地址解析协议就是用来解决这样的问题的。
IP地址是表示网络中不同主机的地址,而端口号就是同一台主机上表示不同进程的地址,IP号和端口号合起来表示网络中的唯一进程
虽然IP,ARP,RARP数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,ARP和RARP属于链路层,IP属于网络层
以太网的帧格式:
其中源地址和目的地址都是指网卡地址(也叫MAC地址)长度是48位帧协议类型的字段分别有三种值,分别为IP,ARP,RARP
以太网中的数据长度规定最小为46个字节,最大为1500个字节,ARP和RARP数据包的长度不够46个字节要在后面补填充位。最大值1500称为以太网的最大传输单元MTU,不同的网络类型有不同的MTU。
ARP数据报格式
在网络通信时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡收到再去处理上层协议的,如果接收到的数据包的硬件地址与本主机不符,就直接丢弃,因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。
源主机发送ARP请求,询问地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求 ⼴广播到本地⽹网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表⽰示⼴广播),目的主机接收到 ⼴广播的ARP请求,发现其中的IP地址与本机相符,则发送⼀一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
每台主机都维护一个ARP缓存表,可以⽤用arp -a命令查看。缓存表中的表项有过期时间(⼀一 般为20分钟),如果20分钟内没有再次使⽤用某个表项,则该表项失效,下次还要发ARP请求来获得 ⽬目的主机的硬件地址。
ARP的请求和应答过程:
上述例子的源主机和目的主机是在同一个网段的。
编写ARP脚本:
#!/bin/bashi=1count=0while [ $i -le 254 ]do if [ $count -gt 10 ];then count=0 fi ping -c1 192.168.0.$i & let i++ let count++donewaitecho "#####################################"arp -a |grep -v incompleteecho "#####################################"
- 浅谈ARP协议
- 浅谈ARP
- 浅谈ARP、NAT、ICMP、DHCP、RIP、OSPF、BGP协议
- arp协议,arp欺骗
- ARP协议
- ARP协议
- ARP协议
- arp协议
- ARP协议
- ARP协议
- ARP协议
- ARP 协议
- ARP协议
- ARP协议
- ARP协议
- ARP协议
- ARP协议
- ARP 协议
- 从编译角度看java域和方法
- 循环链表c语言实现 circlelinklist.h 和 circlelinklist.c
- 火车出站
- 循环从终端输入整数,在循环体中求出奇数的个数以及偶数的个数,当输入值为0时循环退出
- 【codeforces 747A】Display Size
- 浅谈ARP协议
- JVM处理兼容具体措施的分析
- Qt 多线程之间的通信 实例 emit
- 计算二进制数中1的个数
- python之decode、encode及codecs模块
- Centos7安装mysql
- Linux安装,连接,删除FTP服务器(常用FTP命令)
- (水仙花数问题)假设100
- 结构体内存大小的求法(内存对齐)&&c++类大小同样适用