封装和解封装
我们一般把数据从应用层开始到数据链路层的加工过程称为封装,反过程称为解封装
封装 — 将每一层最重要的数据添加到原始数据当中,来实现这一层的功能。
应用层 — 应用需要进行封装,但是,封装方式取决于不同的应用 (比如在电脑上同时登陆三个QQ号,这时要给其中的某一个发送信息,就要依靠QQ号来进行区分(不能用端口号来区分,因为端口号是区分不同的应用的,所以就要依靠QQ号来充当会话层的地址来区分不同的QQ号之间的信息),微信依靠微信号来区分,这就是封装方式取决于不同的应用)
传输层 — 封装端口号(由工作在传输层的协议来封装端口号) — 依靠TCP和UDP协议来进行封装
网络层 — 封装IP地址(由工作在网络层的协议封装IP地址) — 依靠IP协议来进行封装
数据链路层 —封装 MAC地址(由工作在数据链路层的协议封装MAC地址) —依靠以太网协议来进行封装
物理层—不需要封装(电信号不能封装,只能对它进行传输和处理)
类型字段非常重要,它可以根据使用的协议来判断解封装后要把数据交给哪个模块,比如说以太网类型判断该数据是IPV4网络类型,就会把数据包交给IPV4模块来处理,协议类型判断使用的协议是TCP协议就会把数据段交给TCP模块来处理,如果没有类型字段,数据就不知道要往哪里去。
跨层封装主要存在两种形式:
1、跨四层封装 — OSPF协议 (直连路由器之间(路由器是三层设备,只看IP地址;交换机是二层设备,一般只看MAC地址))(不用封装第四层的源端口号和目标端口号,直接从会话层到网络层封装IP)
2、跨三,四层封装—直连交换机之间进行通讯可以跨三、四层封装
三层IP报头:
三层的协议可以代替四层的端口号,所以可以跨过四层
协议号:
TCP — 6代表TCP(6是协议号)
UDP — 17 代表UDP
协议号 — 由8位二进制构成 — 0 - 255 ---- 可以用来标定跨层封装的上层协议
OSPF ---- 对应的协议号为 — 89
数据帧结构图:
二层的type字段可以标记四层的字段,代替四层的标记上层应用,从而跨过四层
同时二层还应该可以对数据进行数据分片,完成三层的功能,但是在普通的以太网(Ethernet)二层帧中,二层不能完成对数据分片的功能,IEEE 802.3 帧的二层可以完成对数据进行分片的功能,所以在跨三层、四层中,用到的是IEEE 802.3帧
Preamble—Ethernet和IEEE 802.3的前8个和7个字符都是用来激活对应的程序
SOF — 帧首定界符 (标定帧的正式开始)
Length----指后面数据部分(802.2 Header and Data)
的长度
数据链路层分为两个子层:
MAC — 介质访问控制层 (对硬件进行访问和控制)
LLC — 逻辑链路控制层 — 提供分片和标定数据类型号的作用
DSAP----占一个字节长度,指一个帧的物理上层协议类型
SSAP----指明帧上层协议的类型(帧是由哪个协议产生的)
Control field-----控制字段,可以实现两个作用:①可靠性的传输 ②分片和排序