声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!!
文章目录
封装
一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为封装。
封装就是在数据前面加上特定的协议头部。
比如说:我们利用tcp协议进行通信,
当数据到达传输层的时候,那么要加上一个tcp头。
当数据到达网络层的时候,那么在我们数据前面还要加上一个ip头。
封装注意点
1、 OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。
2、OSI参考模型中每一层都要依靠下一层提供的服务。
3、为了提供服务,下层把上层的PDU作为本层的数据封装,然后加入本层的头部(和尾部)。头部中含有完成数据传输所需的控制信息。有的层还要加入尾部,像数据链路层就要加入头部和尾部。
例如:我们寄送一封信件,我们要把这封信件放到信封当中,当收信的人拿到这封信的时候,那么他要打开信封,取出信件。
4、这样,数据自上而下递交的过程实际上就是不断封装的过程。到达目的地后自下而上递交的过程就是不断拆封的过程。由此可知,在物理线路上传输的数据,其外面实际上被包封了多层“信封”。
5、但是,某一层只能识别由对等层封装的“信封”,而对于被封装在“信封”内部的数据仅仅是拆封后将其提交给上层,本层不作任何处理。
系列文章(java网络编程)
java网络编程:1、计算机网络?网络通信的组成?什么是ip、协议、端口号?
java网络编程:2、IP地址、协议、网络状况、网络异质性问题的解决
java网络编程:6、TCP/IP模型、TCP/IP模型与OSI参考模型的对应关系
java网络编程:8、基于TCP的socket编程(一)简单的socket通信_一个客户端
java网络编程:9、基于TCP的socket编程(二)服务器端循环监听接收多个客户端_多线程服务器程序
java网络编程:10、基于TCP的socket编程(三)缓冲流、flush方法、关闭流
java网络编程:11、基于UDP的socket编程(一)理论、基本步骤
java网络编程:12、基于UDP的socket编程(二)代码通信-简单实例
java网络编程:13、基于UDP的socket编程(三)实现相互发送接收消息