数据链路层与MAC地址+网络层

以太网数据帧

如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网数据帧

E2和802.3作用

定义帧头和帧尾的格式

数据

对于下层的每个层级而言,上层所反馈或者传递给我的信息,下层认为皆是数据

MAC地址

mac地址:物理地址:网卡地址

每个设备出厂时,烧录进网卡芯片中。自带出厂。

在一个以太网中,标识设备在链路中的什么位置。

E2

 

D.MAC:目的mac地址,接收者的mac信息

S.MAC:源mac地址,发送者的mac信息

Type:类型。用于标识上层的协议

Data:由应用层传到数据链路层的所有数据(包括上面的几次封装)

FCS:帧校验序列 ------ 算法:CRC循环冗余校验(整体的信息)

(将前面的数据进行计算得出来的数据)(用于差错检测)

发送者的动作

由发送者填充源目mac信息,以及type字段标识上层协议,以及CRC检验,数值填充至FCS,信息都填充完毕之后,此时借助物理层,转变为二进制比特流,从链路中传递。

数据抵达接收端接口以后,接收者的动作:

1.首先看目的MAC,是否是自己的mac,如果不是丢弃,如果是,则进行下一步;

2.将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同,则进行下一步;

3.查看type字段,交由type字段标识的上层协议处理。

数据链路层工作,结束。

802.3

 

Length:表示Data的长度。

LLC:逻辑链路控制

D.SAP:目标服务接入点(相当于E2中的Type字段)

S.SAP:源服务接入点

Control:保留字段(无用)

SNAP:子网络服务接入点(私有化才有)

Org Code:机构标识

Type:类型:标识厂商私有化的协议是什么

两者区别

E2的帧长度增加18B

802.3

1.私有化:帧长度增加26B

2.公有化:帧长度增加21B

1Byte(1B)(字节) = 8bit(8b)(位)

MTU

MTU:最大传输单元(规定1500,可以修改),存在于每条链路的概念。(不包含数据链路层的封装,指的是网络层及以上的封装)(只有在某种特殊的业务场景下会去修改MTU,一般不进行修改)

数据太小的话进行Padding值

Padding:补丁 00000000 ---- 按照46取值(不够补0,补到46位)

E2封装完后 数据帧:最小为64B,最大为1518B

封装前:最大为1500B,最小为46B

E2和802.3的区分

当 Length/Type >= 1536 (0x0600) 时为 Ethernet_II

当 Length/Type <= 1500 (0x05DC) 时为 IEEE802.3

E2中的一些协议

ARP = 0x0806

IPV4 = 0x0800

IPV6 = 0x86DD

进制

0x ---- 十六进制数

二进制比特流

01 ---- 二进制 ---- 逢二进一

十进制:0123456789

十六进制:0123456789A(10) B(11) C(12) D (13) E (14) F (15)   16 =0x10

除了0以外,任何数的0次方为1.

二进制和十六进制之间 1个16进制可以用4个二进制表示,1:4关系

1111是否取值
8 4 2 1 取值所代表的数值

 

在一台交换机上每台设备间的物理链路:不是直连 -- 直接连接

逻辑状态:都处于互联状态,处于一条链路上

MAC地址

由两部分组成,前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。

mac地址 ----- 物理地址 ----- 网卡地址

网卡上 ---- 烧录进网卡芯片 ---- mac地址

mac地址:显示16进制 = 12个16进制数

mac地址的概念

单播

通信形式上,点对点,单对单的通信。(类似于qq私聊)

数据封装时,源mac和目的mac都是单播mac,则为单播通信

单播mac地址特点:从高位地向低位(从左往右)第8位为0,且一定为0,其他任意

组播

通信形式上,点对多点,单对多的通信。(类似于qq群聊)

数据封装时,因为组播代表的是一组的集合,面向一组的通信,此时组播mac不能成为数据的源地址,仅能充当目的地址。

单播mac地址特点:从高位地向低位(从左往右)第8位为1,且一定为1,其他任意

广播

通信形式上,点对所有,单对所有的通信。广而播之/强制的接受处理。

数据封装时,因为广播代表的是所有人的集合,面向所有人的通信,此时广播mac不能成为数据的源地址,仅能充当目的地址。

单播mac地址特点:从高位地向低位48位全部为1,且一定为1

a:目的mac为单播mac

b:目的mac为组播mac

c:目的mac为广播mac

a场景:

单播数据抵达接收端接口以后,接收者的动作:

1.首先看目的MAC,是否是自己的mac,如果不是丢弃,如果是,则进行下一步;

2.将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同,则进行下一步;

3.查看type字段,交由type字段标识的上层协议处理。

数据链路层工作,结束。

b场景:

组播数据抵达接收端接口以后,接收者的动作:

1.首先看目的MAC,查看自己本地是否加组,如果没加组丢弃,如果加组,则进行下一步;

2.将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同,则进行下一步;

3.查看type字段,交由type字段标识的上层协议处理。

数据链路层工作,结束。

c场景:

广播数据抵达接收端接口以后,接收者的动作:

1.首先看目的MAC,如果是广播,则直接进行下一步;

2.将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同,则进行下一步;

3.查看type字段,交由type字段标识的上层协议处理。

数据链路层工作,结束。

IP报文头部

IP Header

Header Length:代表ip报头的长度

DS Field:定义报文的优先级

Total Length:代表总长度(报头长度加数据长度)

DF 不分片位

1 不可分片

0 可以分片

Identification:用来区分不同设备发来的分片(区分哪些分片是一组数据)

Flags:标志位:例如:MF,当MF为1时表示后面还有分片,当为0时表示后面没有分片。

Fragment Offset:用来区分每片分片在整组数据中的位置

Time to Live :防环机制 , 经过了多少个三层设备(每经过一个减一) 固定数值:255 128 64 (当TTL值为1 时数据被丢弃)

Protocol:标示使用的什么协议(3层拆完后4层使用什么协议) 1:ICMP     6:TCP     17:UDP

Header Checksum:检验IP报头的头部,用来保证数据的完整性(相当于第二层的FCS)

posted @ 2024-09-15 16:19  半个小菜鸟  阅读(44)  评论(0编辑  收藏  举报