以太网数据链路层、Ethernet_II 帧格式、IEEE802.3 帧格式,以太网的 MAC 地址的组成,ARP 地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
数据链路层(以太网):
所有网络层数据都必须封装在链路层以帧为单位进行转发。
编辑
链路一般分为两种:
1、点到点链路:即仅支持 2 个接口的链路,PPP , DHLC,无虚链路层地址区别不同的接口
2、广播型链路(MA 多路访问) : 允许链路上存在 2 个以上的接口,所以需要区别不同的接口,那么规定每个以太网接口都要有一个全球唯一但链路有效的 MAC 地址。
以太网的 MAC 地址:
总共 48bit 组成 分为 24 bitsOUI 24bits 由供应商分配
MAC 地址有两部分组成,分别是供应商代码和序列号。其中前 24 位 代表该供应商代码,由 IEEE 管理和分配。剩下的 24 位序号由厂商自己分配
编辑
以太网帧格式
Ethernet_II 帧格式
绝对部分应用使用的帧格式
Ethernet_II 帧类型值大于等于 1536(0x600),以太网数据帧的长度在 64-1518 字节之间
编辑
每一层都把上一层当成自己的数据,链路层则把网络层当成自己的数据,网络层把传输层当自己的数据,以此类推,逐层封装。
编辑
帧的大小最小为 64 字节,最大为 1518 字节。帧的数据大小为 46~1500 字节。不能小于这个区间,否则这个数据不能成帧。
IEEE802.3 帧格式
用于底层协议使用的帧格式
IEEE802.3 帧长度字段值小于等于 1500(0x05DC)
编辑
帧格式:
Length/Type >= 1536(Ox0600) Ethernet_ll (绝大部分应用传输数据使用的帧格式)Length/Type <= 1500(Ox05DC) IEEE802.3 (底层协议使用的帧格式)
帧长度字段大于或等于 1536 的是 Ethernet_II 的帧格式
帧长度字段小于或等于 1500 的是 IEEE802.3 的帧格式
例:
下面就是抓包工具抓出来的数据包,帧的长度是 316,所以是 IEEE802.3 格式的数据帧。(帧长度字段小于或等于 1500)
编辑地址解析协议(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 地址冲突的检测技术
编辑
免费 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 应答。
编辑
目标 MAC 地址没有怎么办?
1、查自身的 ARP 缓存表(有缓存时间,时间过了就会清空缓存表),是否存在 DIP 的对应 MAC 地址信息
例:ARP 缓存表
编辑
2、如果不存在目标 IP 地址对应的 MAC 信息,则发送 ARP 请求报文。
以下是 ARP 请求报文:
编辑
3、如果 ARP 缓存表中存在目标地址(DIP)的 MAC 地址,则直接发送数据
什么是单播帧?什么是组播数据帧?什么是广播帧?
单播:
DMAC 地址第 8bit 等于 0 的就是单播帧
一对一有明确的目标叫单播 网络原则 只要不是自己的就不理
组播:
DMAC 地址的第 8bit 等于 1 就是组播帧
分类过程 只争对特地范围的人访问
广播:
DMAC 地址全为 1 的就是广播帧
知道范围内,不知道目标是谁,发送一份数据 一对多
版权声明: 本文为 InfoQ 作者【Python-派大星】的原创文章。
原文链接:【http://xie.infoq.cn/article/1f41ffee72b5ec51365e504e8】。文章转载请联系作者。
评论