数据封装

作者: 只吃十二分饱 | 来源:发表于2022-09-14 21:15 被阅读0次

数据封装过程中将创建一个协议数据单(PDU)。                                                                                                                               

网络数据沿着OSI模型向下流动,PDU逐渐变化、增长,各层协议均将其头部或尾部信息添加进去,直到物理层时达到其最终形式,并发送给目标计算机。

当计算机收到PDU后,沿着OSI模型往上处理时,逐层剥去协议头部和尾部。                                                                          

当PDU到达OSI参考模型最上层时,将只剩下原始传输数据。                                                                                                  

下图展示了数据封装和处理的过程:                                                                                                            

1、我们从客户端计算机应用层开始,浏览一个网站时,

2、应用层协议发出指令(HTTP协议)--->传输层(TCP协议确保数据包的可靠投递)--->网络层(TCP协议将数据包交给IP协议:负责为数据包进行逻辑寻址)----------->数据链路层(以太网协议:以太网物理地址会被添加并存储在以太网帧头中)--------->物理层(数据包组装完毕交给物理层,在这里数据包通过0,1信号完成网络的传输)

3、封装好的数据包通过网络线缆,最终到达WEB服务器,WEB服务器开始从下往上读取数据包,数据链路层(提取所包含的物理以太网寻址信息,确保数据包是法网这台服务器的)----------->第二层头部与尾部的信息将被剥除------------>网络层(IP寻址信息会被读取,确认数据包 被正确转发和数据包并未进行分片处理)-------->剔除这些信息----------->传输层(TCP协议信息被读取,确保数据包是按序到达的)------->TCP报头信息被剥离,只剩下应用层数据---------->WEB服务器。

4、为了响应客户端发过来的这个数据包,服务器应该发回一个TCP确认数据包,使客户端知道它的请求已经被接受了。

相关文章

  • Retrofit & RxJava 封装篇

    一、封装RxJava (1)BaseResponse封装请求返回数据 (2)BaseObserver封装返回数据处...

  • 【Android】本地存储

    笔记:本地存储类SharedPreferences 取数据 未封装 存数据 未封装

  • 面向对象的特征(封装、继承、多态)

    Java面向对象的三大特征:封装、继承和多态 封装: 封装就是把抽象出的数据和对数据的操作封装在一起,数据被...

  • 1.0 C++远征:数据的封装

    4-1数据的封装 1.如何进行数据封装 ​ 未进行数据的封装,成员变量容易发生数据的泄露: ​ (1)可以...

  • 封装的学习

    ·封装介绍封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护...

  • JavaScript的面向对象--封装的实现、类型、变化

    封装的目的是将信息隐藏。一般而言,我们讨论的封装是封装数据和封装实现。这里将讨论更广义的封装,不仅包括封装数据和封...

  • iOS runtime进行数据解析封装

    iOS runtime进行数据解析封装 iOS runtime进行数据解析封装

  • Java

    10.11 1.Java的三大特征:封装、继承、多态 封装:利用抽象数据类型将数据和基于数据的操作封装在一起,数据...

  • php三大特性

    封装 简而言之,封装就是把要操作的数据封装在内部,外部若想访问数据必须满足函数设定的条件。这种封装如功能函数的封装...

  • 面向对象编程三大特性

    三大特征 封装 继承 多态 封装性 封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部...

网友评论

    本文标题:数据封装

    本文链接:https://www.haomeiwen.com/subject/jnvmnrtx.html