《MY网络基础知识》----数据链路层之ARP协议

 

OSI模型

协议

数据包叫法

常见设备

五层模型

应用层

HTTP,DHCP,FTP

报文

常见PC机,工作站,终端等

应用层

表示层

 

会话层

 

传输层

TCP/UDP

传输协议分组,分组

网关

传输层

网络层

IP协议,ICMP协议,IGMP协议

IP包,IP数据报

路由器,三层交换机

网络层

数据链路层

以太网协议ARP协议

帧,数据帧

交换机,网桥

数据链路层

物理层

802.3

比特流

网口,网线,集线器

物理层

 

 

        阅读思路:本篇文章主要介绍数据链路层中的ARP协议。首先接收ARP的概念和作用,然后介绍ARP的协议字段和工作过程,最后用一个实例来验证说明该ARP协议的工作过程,结尾再给出通过命令操作主机ARP表项的实例和操作命令。

 

 

一:ARP的概念和作用

概念:ARP中文叫“地址解析协议”。是根据IP地址获取MAC地址的一个TCP/IP协议族中的网络协议。

作用:主机在发送数据的时候,仅知道目的IP地址和端口号,但是不知道对应的MAC地址。数据在发送的时候有一个封装过程(见《MY网络基础知识》----网络知识的整体架构),必须要指定MAC地址才能将数据封装发送出去。ARP的作用就是为了上层的协议在仅知道IP地址和端口号的情况下,能发送数据包。

 

二:ARP的协议字段和工作过程

基础知识:每台主机维护一个APR缓存表,可用arp -a命令查看本主机的arp表。arp表中标识为动态的arp表项,存在时间一般为20分钟,当超过20分组没有收到对方的数据帧,那么该arp表项将会失效,当往此IP地址发送数据的时候,会先发送arp请求。

ARP工作过程:发送数据时,先查看arp表中有无ip地址对应的arp表项,如果没有,就发送一个arp请求,然后等待接收arp回应,待收到arp回应后,根据arp回应的信息就将其ip地址添加到arp表中。

 

协议字段:

几个协议字段:

硬件类型:长度为2字节,通常值为1表示以太网

协议类型:要转换的协议类型,一般是ip协议,所以这里一般是0x0800

硬件地址长度:也就是mac地址的长度,mac地址为6字节,所有这里是0x06

协议地址长度:也就是ip地址长度,ip地址为4字节,所以这里是0x04

Op:表示该arp数据包是请求还是应答,1表示请求,2表示应答,

 

 

三:实例演示arp请求和应答报文分析

步骤:

1.dos下用arp -a 查看自己的网卡和arp表,可以知道自己的网卡ip是192.168.98.28

2.先用arp -d * 192.168.98.28 删除该网卡的所有arp表

3.启动Wireshark,开始抓包

4.ping 一个192.168.98.120(这是和我主机在同一个局域网的另一台主机)

5.筛选arp包

请求报文:

《MY网络基础知识》----数据链路层之ARP协议_第1张图片

 

应答报文:

《MY网络基础知识》----数据链路层之ARP协议_第2张图片

 

 

 

四:ARP操作命令

 

 

arp命令语法如下

 arp [-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr  [IfaceAddr]]

 

解释如下:

InetAddr 和 IfaceAddr都是ip地址,不同的是,InetAddr 是指某个ip,而IfaceAddr是指某个网卡接口的ip。

-a 显示所有接口的arp缓存表

-a InetAddr  显示指定ip的arp缓存记录

-a -N IfaceAddr 显示指定网卡的arp缓存记录

-g 参数的用法同 -a

-d -d InetAddr [IfaceAddr]  删除由InetAddr 指示的arp缓存记录,或由IfaceAddr指示的网卡接口的arp缓存记录,要删除所有arp缓存记录可用通配符 * 代替InetAddr参数

-s InetAddr EtherAddr  [IfaceAddr]   添加一个静态的arp记录,把InetAddr  ip地址解析为EtherAddr  物理地址,IfaceAddr指定了网卡接口的ip。

InetAddr  和  IfaceAddr 都是点分十进制表示,例如:192.168.0.10

EtherAddr  是以 - 连接的十六进制表示,例如:00-11-22-33-44-55

静态的arp记录不会因为超时而被删除,但如果重启电脑或tcp/ip协议停止运行,会删除所有静态动态的arp记录。


 

你可能感兴趣的:(MY网络基础知识)