搭配这篇博文服用,效果更好:以太网数据包、IP数据包、UDP数据包:https://blog.csdn.net/u011754972/article/details/116030526


1.数据封装:是指将协议数据单元封装在一组协议头和协议尾中的过程。

由于用户传输的数据一般比较大,一次性发送出去十分困难,于是需要把数据分成多段,再按照一定的次序发送出去,这个过程就需要对数据进行封装

  • ⑴ 1.应用层准备数据–>

  • ⑵ 传输层接受应用层数据添加上TCP的控制信息(称为TCP头部),这个数据单元叫段(segment),将交给网络层–>

  • ⑶ 网络层接收到,再添加上IP头部,这个数据单元叫包(packet),将交给数据链路层–>

  • ⑷ 数据链路层将再添加上MAC头部尾部,这个数据单元叫帧(frame),交给物理层–>

  • ⑸ 物理层将收到的数据转化为比特流(就是二进制,0101),在网线中传送。

数据封装是从高层到底层,逐层封装。


2.数据拆封:是指将接收到的数据进行拆包,每一层只把对该层有意义的数据拿走。
  • ⑴ 物理层接收到比特流,经处理后将数据交给数据链路层–>

  • ⑵ 数据链路层收到数据转化为数据帧,去掉MAC头尾部(这个是解封),将交给网络层–>

  • ⑶ 网络层收到,去掉IP头,将段交给传输层–>

  • ⑷ 传输层收到,去掉TCP头部,将数据交给应用层–>

  • ⑸ 应用层处理数据。

数据拆封是从低层到高层,逐层拆装。


可以看到底层有这么复杂,但是我们不需要管,Java的JDK都已经封装好了。

【Socket网络编程】11.网络编程中的 数据封装 和 数据拆封相关推荐

  1. Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换

    Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...

  2. 揭秘2019双11背后的云网络 – 双11网络架构和洛神系统

    图1 天猫双11成交额 2019年天猫双11成交额,2684亿!核心系统100%上云!全球最大流量洪峰,阿里云扛住了.  狂欢背后的技术栈 网上轻松购物体验实际上是背后复杂的技术组成的,这是一个简化 ...

  3. 【网络编程】网络基础知识

    前言 小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ ...

  4. 网络协议 11 - Socket 编程(下):眼见为实耳听为虚

    网络协议 11 - Socket 编程(下):眼见为实耳听为虚 原文:网络协议 11 - Socket 编程(下):眼见为实耳听为虚 系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP ...

  5. python中http协议编程_python网络编程、套接字、HTTP协议

    网络编程 网络目的 : 数据的传输 网络数据传输是一个复杂的过程 OSI 七层模型 --> 网络通信标准化流程 应用层 : 提供用户服务,具体内容由特定程序规定 表示层 : 数据的压缩优化 会话 ...

  6. 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

  7. JAVA基础11 网络编程

    JAVA基础 11.网络编程 1.什么是网络?网络模型?网络四要素? 1.网络 在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享. 资源的 ...

  8. 11.网络编程的学习总结

    11.网络编程 1.什么是网络?网络模型?网络四要素? 网络: 在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享. 1.资源的共享 2.免 ...

  9. JavaSE - 11 网络编程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.网络编程概述 1.1 什么是网络 1.2 网络编程的三要素 1.3 IP地址 1.4 端口号 1.5 协议 2.通信程序 ...

最新文章

  1. 服务器产品选型与性价比图解
  2. MySQL SELECT同时UPDATE同一张表
  3. MATLAB实战系列(十八)-遗传算法解决TSP(旅行商)问题-算法原理
  4. mysql日期序列填充_MySQL如何在范围内填充缺失的日期?
  5. 螺丝孔槽中的螺丝拧花了的物理原理分析
  6. 图像的色彩类别,灰度化,二值化
  7. oracle数据库读取工具,用Oracle导入导出工具实现Oracle数据库移植
  8. tensorboard运行
  9. 重装系统后删除Cygwin的安装文件
  10. 【英语】舞动奇迹--荡漾我心
  11. 【Android】Android SDK下载和更新失败的解决方法!!!
  12. 选择软件测试作为你的职业,一个无经验的大学毕业生,可以转行做软件测试吗?
  13. 数据爬取 mail_Python网络爬虫实战,数据解析!
  14. IS-IS快速收敛调优(一)——IS-IS收敛机制
  15. 获取百度网盘提取码的两种方法
  16. SolidWorks基础操作笔记
  17. Linux修改系统时间
  18. QFile 无法重命名文件名问题
  19. spring boot项目:用户中心的商品信息编辑功能
  20. Linux访问群晖NAS共享文件夹

热门文章

  1. 带你看android的内心世界
  2. Caffe部署中的几个train-test-solver-prototxt-deploy等说明二
  3. Google的深度学习强在哪?谷歌首席科学家说了这些奇妙特性
  4. 杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM
  5. 深入理解分布式技术 - 分布式缓存实战_Hot Key 和Big Key的发现与治理
  6. MySQL - Join关联查询优化 --- NLJ及BNL 算法初探
  7. linux接收网络数据并存存储,linux网络数据包数据结构 Socket Buffer
  8. groovy定义变量获取当前时间_IDEA不愧为神器,结合Groovy脚本,简直无敌!
  9. 在哪里可以找到用于读取 YML 配置文件的 Spring 文档
  10. 八进制、十进制、十六进制及字符相互对应表