目录
数据链路层(以太网):
链路一般分为两种:
以太网的MAC地址:
以太网帧格式
Ethernet_II帧格式
IEEE802.3帧格式
帧格式:
编辑地址解析协议(ARP):
免费arp:
代理arp:
目标MAC地址没有怎么办?
什么是单播帧?什么是组播数据帧?什么是广播帧?
单播:
组播:
广播:
数据链路层(以太网):
所有网络层数据都必须封装在链路层以帧为单位进行转发。
![](https://img-blog.csdnimg.cn/6948f3627c4f48dfaf119fdca017302f.png)
链路一般分为两种:
1、点到点链路:即仅支持2个接口的链路,PPP , DHLC,无虚链路层地址区别不同的接口
2、广播型链路(MA多路访问) : 允许链路上存在2个以上的接口,所以需要区别不同的接口,那么规定每个以太网接口都要有一个全球唯一但链路有效的MAC地址。
以太网的MAC地址:
总共48bit
组成 分为
24 bitsOUI 24bits由供应商分配
MAC
地址有两部分组成,分别是供应商代码和序列号。其中前
24
位 代表该供应商代码,由IEEE
管理和分配。剩下的
24
位序号由厂商自己分配
![](https://img-blog.csdnimg.cn/29d89cb336e7496b97c7bed70375d83b.png)
以太网帧格式
Ethernet_II帧格式
绝对部分应用使用的帧格式
Ethernet_II帧类型值大于等于1536(0x600),以太网数据帧的长度在64-1518字节之间
![](https://img-blog.csdnimg.cn/deff36b3cda64404ada6caceaa8cef2a.png)
每一层都把上一层当成自己的数据,链路层则把网络层当成自己的数据,网络层把传输层当自己的数据,以此类推,逐层封装。
![](https://img-blog.csdnimg.cn/b0b024e0300949dea028603018c81416.png)
帧的大小最小为64字节,最大为1518字节。帧的数据大小为46~1500字节。不能小于这个区间,否则这个数据不能成帧。
IEEE802.3帧格式
用于底层协议使用的帧格式
IEEE802.3帧长度字段值小于等于1500(0x05DC)
![](https://img-blog.csdnimg.cn/2faa021fd4244fb8a39f548e6aa56663.png)
帧格式:
Length/Type >= 1536(Ox0600) Ethernet_ll (绝大部分应用传输数据使用的帧格式)
Length/Type <= 1500(Ox05DC) IEEE802.3 (底层协议使用的帧格式)
帧长度字段大于或等于1536的是Ethernet_II的帧格式
帧长度字段小于或等于1500的是IEEE802.3的帧格式
例:
下面就是抓包工具抓出来的数据包,帧的长度是316,所以是IEEE802.3格式的数据帧。(帧长度字段小于或等于1500)
![](https://img-blog.csdnimg.cn/afb22adfd4044a6294fb8aa6dade5fed.png)
地址解析协议(ARP):
ARP协议:是网络层协议,通过eth II 帧进行工作。
为什么需要ARP地址解析协议?
1、因为我们网络设备在第一次交换数据的时候,没有对方MAC地址。所以我们需要使用ARP来获取MAC地址。
2、发送数据,要在数据链路上转发数据,需要目的的MAC地址。所以我们需要使用ARP来获取目的MAC地址。
3、唯一性,因为IP地址可修改的逻辑地址,仅仅只能做到范围内唯一。而MAC地址,是不可修改的,且是全球唯一性的。
所以,我们要确定数据在网络上转发给唯一的目标设备,就需要IP地址和MAC地址共同作用。英尺我们需要ARP来获取目标MAC地址,来使得我们确定设备的唯一性。
作用:根据已知的IP地址解析获得其对应的MAC地址。没有ARP地址解析协议,互联网就无法正常的工作。
在链路层中,帧的组成需要源MAC地址和目标MAC地址,若没有目标MAC地址,若只知道源IP和目标IP则不能成帧,所以就需要ARP地址解析协议根据已知的IP地址或得相对应的MAC地址,数据帧才能组成,数据才能正常通信。
ARP作用步骤:
请求目标MAC地址
封装内容:
1、硬件类型:以太网
2、协议类型:IPv4(0x0800)
3、操作的动作:请求(1)/回应(2)
4、发送者信息:MAC地址 和 IP地址
5、接受者信息:MAC地址 和 IP地址
ARP代理:解决广播无法到达ARP请求
免费ARP:解决Ip地址冲突的检测技术
![](https://img-blog.csdnimg.cn/7cffe2c977bf49e08e984046f5527a89.png)
免费arp:
1、用于地址冲突检测,当接口地址变更时可以用免费arp做地址冲突检测,测试同广播域是否存在相同的IP地址。
2、用于刷新其他主机的ARP缓存,接口MAC地址变更时发送免费ARP,用于刷新链路其他接口的ARP缓存。
IP地址变化和MAC地址变化,都会触发免费arp的行为。但是处理机制不一样。
原理:当修改接口地址时例如修改成1.1.1.3,该接口就会用arp发送广播问谁是1.1.1.3,若无回应,则代表地址无冲突,若出现回应(应答是单播),就代表该广播域出现相同地址,该IP地址存在冲突。
代理arp:
PC在没有设置网关时,访问其他的网段的主机,对目标地址发起arp请求。
如果路由器开启了arp代理,并拥有DIP(目标地址)的路由信息,则回应arp应答。
![](https://img-blog.csdnimg.cn/31dea21014a34dd5aab02b95b3a52236.png)
目标MAC地址没有怎么办?
1、查自身的ARP缓存表(有缓存时间,时间过了就会清空缓存表),是否存在DIP的对应MAC地址信息
例:ARP缓存表
![](https://img-blog.csdnimg.cn/0eaa6e85ef874576a8ce16da263352e0.png)
2、如果不存在目标IP地址对应的MAC信息,则发送ARP请求报文。
以下是ARP请求报文:
![](https://img-blog.csdnimg.cn/e1e1bf1c4eb5462494e336ed54c0d785.png)
3、如果ARP缓存表中存在目标地址(DIP)的MAC地址,则直接发送数据
什么是单播帧?什么是组播数据帧?什么是广播帧?
单播:
DMAC地址第8bit等于0的就是单播帧
一对一有明确的目标叫单播 网络原则 只要不是自己的就不理
组播:
DMAC地址的第8bit等于1就是组播帧
分类过程 只争对特地范围的人访问
广播:
DMAC地址全为1的就是广播帧
知道范围内,不知道目标是谁,发送一份数据 一对多