数据封装与解封
数据封装与解封
数据封装:数据的封装是一个自上而下的过程,我们在客户端应用(比如微信)上发送一个“hello”,数据流经每一层时是怎样变化的呢?首先一个用户在发给电脑一个请求,先传给应用层应用将数据处理完,之后交给传输层加好TCP或者UDP的报头,传给网络层再添加一层IP的报头,再交给数据链路层添加mac的头部和尾部,最后送到物理链路层转为比特流进行传出,这就是封装过程。
数据解封:数据封装的逆过程,数据的解封是一个自下而上的过程。
上图可以看出,每一层数据是由上一层数据+本层首部信息组成的,其中每一层的数据 ,称为本层的协议数据单元 ,即PDU。
2.2 应用层
应用层功能:
应用层:为用户的应用提供服务并支持网络访问;
会话层:负责管理网络中计算之间的通信,提供传输层不具备的连接相关功能;
表示层:负责转化数据格式,并处理数据加密和数据压缩。
即负责一切与应用程序相关的功能
我们在应用软件(如微信、qq等)用户端发出一条消息“hello”,应用层将这条消息处理为一个五层的数据包,这里我们可以认为数据包的内容为我们发出的“hello”应用消息。
2.3 传输层
传输层功能:
提供应用程序接口,为网络应用程序提供网络访问的途径;
提供可以从多个应用层序接收消息的功能(多路复用),同时也提供可以把消息分发给应用程序的功能(多路分解);
对数据进行错误检测、流量控制。
即为上层提供端到端的(一台主机到另一台主机)、透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
应用层将消息封装成数据包后,将数据包传递到传输层,传输层会对五层数据包进行进一步的封装,即为该数据包添加一个TCP/UDP头部(TCP或者UDP二者其中一个,具体取决于软件选择那个协议),其中含有源端口号和目的端口号,源端口号即为软件使用的上一层协议的端口号,目的端口号为接收数据方接收该数据的端口号。例如当我们用浏览器访问一个https开头的网页时,实际上我们是在访问对方服务器的443端口。
2.4 网络层
网络层功能:
该层解决数据由一个计算机的IP如何路由到目标计算机的过程规范。
即通过路由算法,为报文或分组通过通信子网选择最适当的路径, 确保数据及时传送。
一个网络里有那么多主机,我们的计算机消息发送出去后,数据包怎么才能成功的传输到我们指定的主机上呢?在发送数据时,网络层会对该数据包添加一个IP包头,其中含有数据包的源IP和目标IP,数据传输的过程中就是根据这层的目标IP找到需要通信的主机。
前三层的数据包很重要,在一个包中称为上三层数据,是最有价值的包,不能被别人篡改,一旦被篡改就有可能造成通信出错或者信息泄露。(例如本来A发给B的数据,上三层数据被篡改后发给了C)
接下来的两层在网络中也是必不可少的,虽然上三层在数据包中指明了传输的路线,但是上三层数据包是无法通过介质进行传播的(例如网线、WiFi、光纤),那如果数据包想过介质进行传播的话怎么办呢,这就需要用到下面的两层了。
2.5 数据链路层
数据链路层功能:
为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的物理地址以及检错和控制信息。
即通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
当上三层的数据包到了数据链路层,就意味着这个信息已经成功到达计算机的网卡,下一步就可以通过网线传输了,这时我们的信息就需要一个载体来进行传输,于是在第二层会给上三层数据包加上一个二层头部(MAC子层)和二层尾部(FCS)。
2.6 物理层
物理层功能:
为数据端设备提供传送数据通路、传输数据。
所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,比如亮度、电压或者振幅。
网卡二层数据帧包送到网线上,这时候二层的数据帧包会被转化成一段连续的比特流,然后以电脉冲的形式传输到交换机,最后到达目标主机物理层。(对于数字应用来说,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列。)
2.7 小结
数据封装就是不断的加头,数据解封过程就是不断的去头的过程。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 数据封装与解封
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm