数据封装与解封装过程

2.2数据封装与解封装过程(二)


        如果网络世界只有终端设备,那么将不能称之为网络。正因为有很多中转设备才形成了今天如此复杂的Internet网络,只不过一贯作为网络用户的我们没有机会感知它们的存在,这都是传输层的“功劳”,由于传输层通过端口号辅助上层建立最终用户间的端到端会话,因此对于最终用户而言,数据的真实传输过程都被掩藏起来。例如,通过QQ软件即时通信时,用户感觉好像在和对方面对面沟通,全然不知自己要说的内容经过了多少交换机和路由器才到达对方那里,但这些过程是真实发生的。下面我们就结合封装过程具体研究一下这个过程。
        首先需要明确一个问题,发送方与接收方各层之间必须采用相同的协议才能建立连接,实现正常的通信,如图2.9所示,例如,应用层之间必须采用相同的编码,解码规则,才能保证用户信息传输的正确性:传输层之间必须采用相同的端口号与协议对应关系才能保证上层应用进程间的通信。
        网络层之间必须采用相同的逻辑寻址过程才能保证数据不会传输到错误的目的地。如果数据链路层采用的协议不同,接收方甚至不能“理解”数据的内容,如果物理层的硬件接口规格不同,接收方甚至连信号都无法接收到。

        在实际的网络环境中,最终的发送方和接收方往往相隔千山万水,中间会有很多的硬件设备起到中转的作用。为了说明整个过程,我们假设了一种通信结构,如图2.10所示,在两台通信的计算机之间增加了两台交换机和路由器,发送主机所发送的数据只有经过这些“中间设备”才能到达接
收主机。

        (1)发送主机按照之前讲解的内容进行数据封装,这里不再赘述。
        (2)从发送主机物理网卡发出的电信号通过网线到达交换机,交换机将电信号转换成二进制数
据送往交换机的数据链路层,因为交换机属于数据链路层的设备,所以它将可以查看数据帧头部的
内容,但不会进行封装和解封装过程,当交换机发现数据帧头部封装的MAC地址不属于自己的MAC地址时,它不会像终端设备那样将数据帧丢弃,而是根据该MAC地址将数据帧智能地转发到路由器设备,在转发前要重新将二进制数据转换成物理的电信号。
        (3)当路由器收到数据后,会拆掉数据链路层的MAC 头部信息,将数据送达网络层,这样P头部信息就“暴露”在最外面了。路由器将检测数据包头部的目标IP地址信息,并根据该信息进行路由过程,智能地将数据报文转发到下一跳路由器上,在转发前要重新封装新的MAC头部信息,并将数据转换成二进制数。
        (4)之后的过程就大同小异了,这里不再详细介绍。从这个过程我们可以看出,数据在传输过程中不断地进行着封装和解封装的过程,中间设备属干哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。也正因如此,我们称TCP/IP五层模型为“参考”模型,参考这五层模型可以帮助我们很好地研究网络中的设备及设备工作讨程中遵守的协议。 

3.理解封装与解封装的含义及其重要性

封装和解封装是计算机科学领域中的重要概念,它们的概念在许多不同的语言和领域中都有不同的定义,但核心思想是相同的。首先,封装可以定义为封装代码中的某些特定功能,以便用户只需要知道它的功能,而不需要知道其实现细节。解封装是指将被封装的功能拆分开来,以便用户可以理解它的实现原理。

1、封装的概念及其重要性。封装是指将一些具有特定功能的代码封装成一个独立的模块,也就是一个独立的函数,而不关心它的实现原理和细节。这使得代码重用性更高,也可以提高代码的可维护性。此外,封装的好处还有:提高程序的可读性和可维护性,提高代码的可重用性,简化程序的编写工作,为不同的语言和领域提供统一的接口,提高程序的安全性。

2、解封装的概念及其重要性。解封装是指将被封装的功能拆分开来,以便用户可以理解它的实现原理。解封装的好处有:可以帮助开发者更好地理解程序的实现原理,更容易检查和修改程序,更容易分析和优化程序,可以更好地检查程序的正确性和可靠性,使程序更加易于维护和管理,更容易添加新的功能,更容易重用代码。

3、封装和解封装的关系。封装和解封装是一对互补的概念,一个把复杂的程序分解成简单的模块,另一个把简单的模块组合成复杂的程序。封装把复杂的程序分解成简单的模块,而解封装则是把简单的模块组合起来,以实现更复杂的功能。解封装也可以帮助我们更好地理解封装的含义,更好地利用封装的好处。

4、封装和解封装的重要性。封装和解封装都是计算机科学领域中的重要概念,它们在许多不同的语言和领域中都有不同的定义,但核心思想是相同的。封装可帮助我们提高程序的可读性和可维护性,提高代码的可重用性,简化程序的编写工作,为不同的语言和领域提供统一的接口,提高程序的安全性。解封装可以帮助开发者更好地理解程序的实现原理,更容易检查和修改程序,更容易分析和优化程序,可以更好地检查程序的正确性和可靠性,使程序更加易于维护和管理,更容易添加新的功能,更容易重用代码。

封装和解封装都是计算机科学领域中的重要概念,它们可以帮助我们更好地管理程序,提高程序的可用性。正确使用此技术可以帮助程序员更高效地开发出高质量的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/48422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在外SSH远程连接macOS服务器

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

科技云报道:云计算下半场,公有云市场生变,私有云风景独好

科技云报道原创。 大数据、云计算、人工智能,组成了恢弘的万亿级科技市场。这三个领域,无论远观近观,都如此性感和魅力,让一代又一代创业者为之杀伐攻略。 然而高手过招往往一瞬之间便已胜负知晓,云计算市场的巨幕甫…

测试框架pytest教程(11)-pytestAPI

常量 pytest.__version__ #输出pytest版本 pytest.version_tuple #输出版本的元组形式 功能 pytest.approx pytest.approx 是一个用于进行数值近似比较的 pytest 断言工具。 在测试中,有时候需要对浮点数或其他具有小数部分的数值进行比较。然而,由于…

Node.JS教程

文章目录 Node.JSNode.js学习指南一、Node.js基础1.认识Node.js2.开发环境搭建3. 模块、包、commonJS3.1、为什么要有模块化开发?3.2、CommonJS规范3.3、 modules模块化规范写法 总结 Node.JS Node.js学习指南 服务端开发底层平台周边生态 学习前提 JavaScript、E…

Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

一、简介 Rspack CLI 官方文档。 rspack.config.js 官方文档。 二、创建 vue 项目 创建项目(文档中还提供了 Rspack 内置 monorepo 框架 Nx 的创建方式,根据需求进行选择) # npm 方式 $ npm create rspacklatest# yarn 方式 $ yarn create…

html动态爱心代码【二】(附源码)

目录 前言 效果演示 内容修改 完整代码 总结 前言 七夕马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景&#xff0c…

Android 面试之Glide做了哪些优化?

前言 Glide可以说是最常用的图片加载框架了,Glide链式调用使用方便,性能上也可以满足大多数场景的使用,Glide源码与原理也是面试中的常客。 但是Glide的源码内容比较多,想要学习它的源码往往千头万绪,一时抓不住重点.…

shell脚本免交互

一.Here Document免交互 1.免交互概述 使用I/O重定向的方式将命令列表提供给交互式程序 是一种标准输入&#xff0c;只能接收正确的指令或命令 2.格式&#xff1a; 命令 <<标记 ....... 内容 #标记之间是传入内容 ....... 标记 注意事项 标记可以使用任意的合法…

mybatisplus批量写入

1.新建MybatisPlusConfig /*** MybatisPlusConfig.*/ Configuration MapperScan("com.test.mapper") public class MybatisPlusConfig {/*** 自定义批量插入 SQL 注入器.*/Beanpublic InsertBatchSqlInjector insertBatchSqlInjector() {return new InsertBatchSqlI…

WPF 项目中 MVVM模式 的简单例子说明

一、概述 MVVM 是 Model view viewModel 的简写。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面清晰分离。 几个概念的说明&#xff1a; model :数据&#xff0c;界面中需要的数据&#xff0c;最好不要加逻辑代码view : 视图就是用户看到的UI结构 xaml 文件viewModel …

一文了解汽车芯片的分类及用途介绍

汽车芯片按其功能可分为控制类&#xff08;MCU和AI芯片&#xff09;、功率类、传感器和其他&#xff08;如存储器&#xff09;四种类型。市场基本被国际巨头所垄断。人们常说的汽车芯片是指汽车里的计算芯片&#xff0c;按集成规模可分为MCU芯片和AI芯片&#xff08;SoC芯片&am…

Lua之Lua源文件批量转换为luac字节码文件

准备的工具&#xff1a;luac.exe CSDNhttps://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版: using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine;public static class Bat…

(学习笔记-调度算法)进程调度算法

进程调度算法也称 CPU 调度算法&#xff0c;毕竟进程是由 CPU 调度的。 当 CPU 空闲时&#xff0c;操作系统就选择内存中标的某个 [就绪状态] 的进程&#xff0c;将其分配给 CPU。 什么时候会发生CPU调度呢&#xff1f;通常有以下情况&#xff1a; 当进程从运行状态转换到等待…

BATPowerShell实现本地文件自动上传FTP服务器

运维工作中&#xff0c;经常需要一些脚本来实现自动化&#xff0c;今天分享本地文件自动上传FTP的两种解决办法&#xff1a; 一、使用BAT自动上传FTP 使用批处理&#xff08;BAT&#xff09;命令文件将本地文件夹内容上传到FTP服务器需要使用Windows自带的命令行工具&#xf…

【卷积神经网络】经典网络之 LeNet-5, AlexNet 与 VGG-16

随着计算机硬件的升级与性能的提高&#xff0c;运算量已不再是阻碍深度学习发展的难题。卷积神经网络&#xff08;Convolution Neural Network&#xff0c;CNN&#xff09;是深度学习中一项代表性的工作&#xff0c;其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今&#xff…

Python爬虫——scrapy_日志信息以及日志级别

日志级别&#xff08;由高到低&#xff09; CRITICAL&#xff1a; 严重错误 ERROR&#xff1a; 一般错误 WARNING&#xff1a; 警告 INFO&#xff1a; 一般警告 DEBUG&#xff1a; 调试信息 默认的日志等级是DEBUG 只要出现了DEBUG或者DEBUG以上等级的日志&#xff0c;那么这些…

[oneAPI] 基于BERT预训练模型的SQuAD问答任务

[oneAPI] 基于BERT预训练模型的SQuAD问答任务 Intel Optimization for PyTorch and Intel DevCloud for oneAPI基于BERT预训练模型的SQuAD问答任务语料介绍数据下载构建 模型 结果参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Int…

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本…

【24择校指南】华东师范大学计算机考研考情分析

华东师范大学(B) 考研难度&#xff08;☆☆☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分数人数统计&#xff09;、院校概况、23考试科目、23复试详情、各科目及专业考情分析。 正文2563字&#xff0c;预计阅读&#xff1a;3分钟。 2023考情概况…

机器学习深度学习——NLP实战(自然语言推断——注意力机制实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——NLP实战&#xff08;自然语言推断——数据集&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习&…