作者:xwsk008 | 来源:互联网 | 2023-06-12 21:19
在两台主机通信的过程中,数据在经过网络时会进行封装和解封装。下面详细解释下封装和解封装的过程。 一、数据封装 比如说用户要发送hello这个英文单词,我们称要发送的这
在两台主机通信的过程中,数据在经过网络时会进行封装和解封装。下面详细解释下封装和解封装的过程。
一、数据封装
比如说用户要发送hello这个英文单词,我们称要发送的这个英文单词为原始数据,即用户真正想要传输的数据。数据在上三层即应用层、表示层、会话层是不发生任何变化的。相当于用户在应用层发送了数据,数据直接透传到传输层。当数据来到传输层的时候,传输层会在这个数据上打上一个或者是TCP或者是UDP的头部,传输层一共工作着两个协议,即TCP/UDP协议。然后数据会在往下传,传到网络层,网络层会再在四层头部的外面添加上一个三层的IP头部。然后在往下传,传到数据链路层,数据链路层会在三层头部的外面在添加上一个二层的MAC头部,并在最后边添加上一个用于错误检测恢复的FCS,FCS叫做帧校验序列和。最终数据链路层把数据封装好之后,它给到物理层,物理层在把二层封装好的数据转换成比特流的形式,通过我们的有线网络或者无线网络传过去。这就是数据发送过程中的一个自上而下的封装过程。如下图所示:
二、数据解封装
当数据到达接收方之后,接收方需要对数据进行解封装。物理层把数据收过来,然后给到数据链路层,数据链路层先把二层的头部MAC和尾部FCS拆掉,拆掉之后给到网络层,网络层再把IP头部拆掉,在给到传输层,传输层再把4层的TCP或者UDP头部拆掉,最后露出原始数据给到会话层,在由会话层直接将原始数据透传到应用层,然后由接收者正常的接收数据。所以我们可以发现数据的解封装完全执行的是相当于封装的逆运算。解封装过程如下图所示:
最后概括一下,发送者和接收者在传递一个数据的时候,发送者是自上而下的封装,而接收者是自下而上的解封装。
三、传输单位
数据在每一层有不同的传输单位。发送方在将数据发送出来之后,数据在经过上三层时是不发生任何变化的,那么数据在上三层的时候有一个单位名称,叫做PDU,PDU叫做协议数据单元,即 protocol data unit 。当数据来到第四层之后,我们知道这时候四层会给数据加一个TCP/UDP头部,那么封装之后,此时的数据就不叫PDU了,而叫做数据段segment。接着到了网络层之后,网络会在四层头部的外面在加一个IP头部,在添加完IP头部之后,此时的数据叫做数据包packet。在数据链路层封装完之后,此时的数据就叫做数据帧frame。然后在给到物理层,由物理层转化为0101的二进制比特流。如下图所示:
TCP/IP模型
既然有了OSI 模型,为什么又会有TCP/IP模型呢?在OSI模型开发出来之后,人们发现很多层次制定的过于详细了,比如应表会这上三层,数据在这3层是不发生任何变化的,它们仅仅是给用户提供接口以及提供一个加密,我们发现它有一些层次的功能是冲突的,或者有一些层次没有必要区分的那么清楚,所以后来人们在使用过程中就把OSI这个模型做了一个整合,把七层整合成了四层,这就形成了TCP/IP模型。
如上图所示,它把上三层合并成了应用层,传输层、网络层保持不变,然后把物理层和数据链路层做了一个合并,合并为网络接口层。从而就把7层模型变成了四层,当然这4层模型的功能和七层模型是完全一样的。
但是有的人提出了异议,认为合并上三层可以,但是不能合并物理层和数据链路层,因为这两层的功能是完全不一样的,所以在吸取了大家的意见之后,TCP/IP模型也被修改成了五层结构,仅仅是把上三层进行了合并,下四层保持不变,如下图所示:
最后就演变成了到现在我们都在使用的TCP/IP模型五层结构。即我们现在全球互联网使用的都是TCP/IP五层模型。
从win7开始,开始同时支持IPV4 和IPV6,那么他们有什么区别呢?
IPv4 一共有 2 的32次方个IP地址,当年的网络设计者没想到网络可以发展这么快,到现在,几乎所有的人都离不开网络,那么就出现了IP地址不够用的危机,为了解决这一情况,开发者设计出了IPV6网络,IPV6网络共有2的128次方个网络地址,可以完全解决地址不够用的情况。现在很多大型网站或者公司已经开始在使用IPV6网络地址,可以使用nslookup命令查看,可以看到搜狐网站有4个IPV4和2个IPV6,即IPV4和V6是可以共同使用的。随着网络的快速发展,国内也会逐步将网络从V4转向V6,相信用不了几年,IPV6将会被普及使用。