20241107数据封装
数据包利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源(传输设备和传输线路),事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节,安全性和可靠性较高时,还要进行加密处理等等。这些操作就叫数据封装。
一、电路交换、报文交换、分组交换
电路交换:整个数据的比特流连续地从源点直达终点,就像在一个管道中传送
传输过程:经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式
优点是数据传输速率高,因为是1对1。
缺点:建立和释放连接都需额外的时间花销,线路利用率低(1对1),线路分配的灵活性差,不支持差错检测(无法发现传输过程中发生的数据错误)
报文交换: 数据先传输到相邻节点,数据全部存储下来后查找转发表,根据目的地址再转发到下一个节点
优点是通信前无需建立连接,数据以报文为单位被交换节点存储转发,通信线路可灵活分配,线路利用率高,交换节点支持差错检测(通过校验技术)
缺点:报文不限制大小,不方便存储转发管理;长报文的存储转发时间开销大,缓存开销大;长报文容易出错,重传代价高。
分组交换: 单个分组(报文的一部分)传送到相邻节点,存储下来后根据转发表 转发到下一个节点
发送报文前,先把较长的报文划分为一个个更小的等长数据段,在每一个数据点前加上必要的控制信息组成的首部(header)包头(包含源地址、目的地址、分组号等),构成一个分组,也叫做包。
路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。
优点:无需建立连接、数据以“分组”为单位被交换节点间“存储转发”,通信线路可以灵活分配、交换节点支持“差错控制”(通过校验技术)、分组定长,方便存储转发管理、分组不易出错,重传代价低、分组的存储转发时间开销小、缓存开销小。
缺点:相比于报文交换,控制信息占比增加,报文被拆分为多个分组,传输过程中可能出现失序、丢失等问题,增加处理的复杂度。
二 、数据封装
发送方数据封装过程:
1.应用层准备数据,把数据交给传输层。
2.传输层把数据分段,将文件分成数据包,并标上顺序号,然后传给网络层,传输层的数据叫做数据段。
3.网络层给每一段加上地址(源IP地址,目标IP地址),把数据给数据链路层,网络层的数据叫做数据包。
4.数据链路层:先判断: 使用自己的子网掩码,判断自己在哪个网段,然后使用自己的子网掩码,判断目标地址在哪个网段。1.如果是同一个网段,使用ARP协议广播解析目标IP地址的MAC地址。2.如果不是一个网段,通过网关把数据包给路由器。然后把当前的MAC地址和下一跳的MAC地址添加在数据包后面,在数据包前面加上FCS(帧校验序列),把数据给物理层,数据链路层的数据叫数据帧。
5.物理层把数据链路层的数据帧变成数字信号(比特流),物理层的数据叫做比特流,就是0和1组成的序列,单位是位Bit,是计算机最小单位。
中间网络数据传输过程:
6.(如果有集线器)物理层把数据发给集线器,集线器传递比特流,加强信号,不做任何判断。(集线器和网线是同一级别的)
7.比特流被发送到交换机,交换机接收并存储比特流,查看目标MAC地址,选择出口(由哪个口转发出去)
8.交换机把比特流发送到路由器,路由器接收比特流,接收后去掉数据链路层的帧校验序列以及MAC地址,根据目标IP地址选择路径出口。网卡重新包装数据包,路由器和下一个路由器之间如果使用的是PPP协议(点对点),因为使用了这个协议,所以不写源MAC地址,只写目标MAC地址为FF,变成比特流再往下传输。
9.下一个路由器接收到比特流,去掉MAC地址,如果IP地址是对的,根据数据包选择转发的路径,封装上目标MAC地址和当前MAC地址,变成比特流继续传输。错误的则丢掉数据包。
10.计算机接收到之后处理数据。
接收方数据解封装:
11.物理层接收到比特流,把比特流转换成数据帧给数据链路层。
12.数据链路层把打包数据时加入的两个MAC地址和FCS去掉,把数据包交给网络层。
13.网络层把数据包中的IP地址去掉,把剩余的数据段给传输层。
14.传输层把数据段的头去掉,把数据交给应用层。
15.应用层把收到的一段一段的数据再拼到一起,成为一块完整的数据。