搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小小林熬夜学编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【华为OD机试】手机App防沉迷系统(贪心算法—Java&Python&C++&JS实现)_手机app防沉迷系统华为od
2
如何保证分布式文件系统的数据一致性
3
RabbitMQ 笔记_x-delayed-message
4
32单片机 C语言 寄存器(四)_使用c语言判断单片机寄存器数据位
5
Linux下的CentOS7连接不上外网,yum失败_yum install rpm 无法联网失败
6
测试用例设计方法_等价类划分法(游戏向)_请简述一下等价类划分法设计测试用例的方法。
7
当AI遇见现实:数智化时代的人类社会新图景
8
MySQL安装配置教程-win10_mysql5.6安装
9
揭秘游戏行业遭遇大规模DDoS攻击后的影响和真相丨阿里云河南_游戏公司被黑客攻击的影响
10
【人工智能基础】GAN与WGAN实验
当前位置:
article
> 正文
OSI模型的数据封装和解封_在分装过程中,是数据在osi的那一层被添加到pud的
作者:小小林熬夜学编程 | 2024-05-13 05:54:06
赞
踩
在分装过程中,是数据在osi的那一层被添加到pud的
数据
封装
当主机跨越
网络
向其他设备传输数据时,就要进行数据封装,就是在OSI模型的每一层加上
协议
信息。每一层只与接受设备上相应的对等层进行通信。
为了实现通信并交换信息,每一层都使用协议数据单元(Protocol Data Units,PDU)。在模型中的每一层,这些含有控制信息的PDU被附加到数据上。他们通常被附加到数据字段的报头中。但它们也可以附加在数据字段的报尾中。
在OSI模型的每一层,通过封装使每个PDU被附加到数据上,而且每个PDU都有特定的名称(物理层:比特流;链路层:数据帧;网络层:数据包;传输层:数据段;)其名称取决于在每个报头中所提供的信息。这种PDU信息只能呢个由接收方设备中的对等层读取,在读取之后,报头就被剥离,然后把数据交给上一层。
图1.28显示了PDU,以及PDU怎样给每一层附加控制信息。这个图演示了上层用户数据怎样被转换,以便在网络上进行传输。数据流被送到传输层,通过发送天内哦公布包,传输层能够建立一条到接收方设备的虚电路。然后数据流被分割成更小的块,并且根据协议创建一个传输层报头(PDU),将它附加到数据字段的报头中。现在这种数据块就称为数据段。每个数据段要进行排序,以便数据流能够在接收方精确地重现,与它在发送时的顺序完全一样。
图1.28数据封装。
然后,每个数据段被交到网络层,以便通过互联网实现网络寻址和
路由
选择。在网络层,使用逻辑寻址(比如 IP)将每个数据段送到正确的网络中。网络层协议向来自传输层的数据段中添加控制报头,现在所得到数据块就称为数据包或数据报。记住传输层和网络层一起工作,以在接收方主机中重建数据流,但他们并不将他们的PDU放在本地网段上——这时得到由关
路由器
或主机信息的唯一方式。
链路层负责从网络层接收数据包并将它们放到网络介质(有线或无线)上。数据链路层将每个数据包封装成帧,帧的报头中包含了源和目的主机的硬件地址。如果目的设备在以个远程网络中,帧就会被送往路由器,以通过互联网络传送到目的地。一旦它达到了目的网络,就会使用以个新的帧将数据包送往目的主机。在传输过程中,帧会变,但是数据包不会变。
为了将帧送到网络上,它首先必须被转换成数字信号的形式。帧实际上时1和0的逻辑组,物理层负责将这些数值封装为数字信号,在同1个本地网络中就可以直接传输了。接收方设备将使数字信号实现同步(靠时钟频率Clock Rate)并从数字信号中提取出1和0,这是设备就可以构建帧,执行循环冗余效验(CRC),并根据帧的FCS字段中的结果来检验数据是否被正确传送。如果他们匹配,就从阵中提取出数据包,然后丢弃声誉的部分。这个过程就称为解封装。数据包被提交到网络层,在这里对地址进行检查。如果地址匹配,就从数据包中取出数据段。然后丢弃声誉的部分。在传输层对数据段进程处理,这里将重建数据流,并向发送方站点去确认它收到了每个数据块。然后,它将数据流送往高层的应用程序。
在发送方设备中,数据封装过程如下:
1.用户信息转换为数据,以便在网络上传输。
2.数据转换为数据段,并在发送方和接收方主机之间建立以条可靠的连接。
3.数据段转换为数据包或数据报,并且在报头中放上逻辑地址,这样,每以个数据包都可以通过互联网进行传输。
4.数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件(以太网)地址唯一表示每一台主机。
5.帧转换为比特流,并采用数字编码和时钟
方案
。
6.为了详细说明这个过程,用图1.29来详细解释分层寻址的概念。
请记住,数据流是从高层送往传输层的。作为
技术
员,我们确实不用关心数据流时从那里来的,因为那时程序员关心的问题。我们的工作时可靠地重建是数据流,并将它送往接收方设备的高层。
在进一步讨论图1.29之前。我们线讨论
端口
号的概念。传输层使用端口号来等译虚电路和上层进程,如图1.30所示。
传输层接收到数据流,将它们组合成段。并通过创建虚电路来建立可靠的绘画,然后它将每个段排序(编号),并使用确认技术和流量控制。如果你正在使用 TCP,虚电路就由源端口号定义。记住,主机的源端口号时从1024开始分配的(0~1023是为周知端口保留的)。当数据流在接收方主机中可靠的重建时,目的端口号就定义了准备接收数据流的上层进程(应用程序)。
图1.29
既然我们了解了端口号的概念,以及它们时怎样用在传输时的,现在让我们再回到图1.30
图1.30
一旦传输层数据头信息被加到数据片中,它就变成了数据段并交给网络层,一起交付的还由目的IP地址(目的IP地址随数据流一起从上层交给传输层,它时通过位于高层的名字解析方法——可能时DNS来找到的。)
网络层在每个数据段的前面添加报头,病假逻辑地址(IP地址)。一旦在数据段前面添加了报头,PDU就称为数据包。在数据包中由以个协议字段,用来描述数据时从哪里来的(即上层协议的类型,可能时UDP或TCP),当数据包到达接收方主机时,这会使网络层将数据段交给正确的传输协议。
网络层负责找到目的地址和硬件地址,这个硬件地址指示了数据包将被送到本地网络的哪一台主机中。通过使用地址解析协议ARP就可以做到这一点。网络层的IP协议将查看目的 IP地址,并将此地址与它自己的源IP地址和子网掩码进行比较,如果时以个本地网络请求,本机主机的硬件地址就会通过ARP请求来得到:如果数据包时被送往远程主机的,IP协议就查找默认网关(路由器)的IP地址。
然后,数据包就与本地主机或默认网关的目的硬件地址一起被送交给数据链路层。数据链路层将在数据包的前面添加1个报头,并添加其他一些数据,从而将数据包变成了帧(我们称之为帧,时因为在数据包中添加了报头和报尾,这使得数据就像书挡或帧),这一切就如图1.29所示。帧使用Ether类型字段来描述数据包来自网络层的哪一个协议。现在,对帧运行循环冗余效验CRC,运行CRC的结果就放在帧的“帧效验序列FCS”字段中,FCS就是帧的报尾。
现在帧就可以交给物理层了,一次一位,这里将使用位定时规则来对数字信号中的数据进行编码。网段中的每台设备将与时钟同步,并从数字信号中抽取1和0来构建一帧。在重建出以帧之后,就运行CRC,以确保帧时正确无误的。如果一切正常,主机就检查目的地址,看帧时不时给它们的。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/562175
推荐阅读
article
基于
python
计算
生态
的
第三方
库
总结与介绍_
python
第三方
库
功能
概述...
python
第三方
库
整理及总结。_
python
第三方
库
功能
概述
python
第三方
库
功能
概述 摘要...
赞
踩
article
Gitlab
Pipelines
一直无法
通过
的临时
解决办法
...
2019独角兽企业重金招聘Python工程师标准>>> ..._gitlab pipeline ...
赞
踩
article
国密
SM4
算法加密
解密
实现以及与
Spring
Security
集成实现_
sm4
在线加
解密
...
SM4
算法加密
解密
实现以及与
Spring
Security
集成_
sm4
在线加
解密
sm4
在线加
解密
...
赞
踩
article
c#
.
net
core
返回
json
中文字符编码被转换或乱码问题_
c#
json
serializ...
项目场景:.
net
core
3.1、.
net
core
3.0
json
里中文字符被转换成 “\u20EE\u5BB1\...
赞
踩
article
RuntimeError:
DataLoader
worker
(
pid
(s)
xxxx
,
xxxx
...
RuntimeError:
DataLoader
worker
(
pid
(s)
xxxx
,
xxxx
)
exited
u...
赞
踩
article
【
Java
程序设计
】【
C01727
】基于
(
Java
Web)SSM的医药
信息管理系统
(
含论文+开题+P...
运行环境:推荐jdk1.8;开发工具:eclipse以及idea
(
推荐)、maven;操作系统:windows 10 8...
赞
踩
article
【
数据结构
】
集合
与
散
列表
...
本文章介绍
数据结构
中的
集合
和
散
列表
,包括Hash(哈希)表、三种组织查找表的方法、
集合
的运算,且还包含习题(附有解析)。...
赞
踩
article
Redis
分布式
缓存_
分布式
缓存
redis
方案...
基于
Redis
集群解决单机
Redis
存在的问题。_
分布式
缓存
redis
方案
分布式
缓存
redis
方案 ...
赞
踩
article
代码
随想录
:
二分
查找和双
指针
...
如题
代码
随想录
:
二分
查找和双
指针
二分
查找 lc704 题目lc...
赞
踩
article
关于
Vue
和
flask
的
JWT
使用
(实验项目
第四期
)_
flask
jwt
...
关于
JWT
的
学习
使用
遇到
的
一些问题_
flask
jwt
flask
jwt
...
赞
踩
article
自动
驾驶
技术
:现状、
挑战
与前景...
尽管
自动
驾驶
技术
取得了一些进展,但仍然面临着诸多
挑战
。此外,
自动
驾驶
技术
还需要克服法律和伦理等方面的
挑战
,如责任归属、隐...
赞
踩
article
C语言
中
的
字符
数组
清零
方法...
---恢复内容开始---1.利用memset函数void *memset(void *s, int ch, size_t...
赞
踩
article
【
人工智能
】
大
模型
时代,
程序员
需要具备哪些
技能
才能胜任?
_
大
模型
下的
程序员
...
近年来,随着深度学习技术的飞速发展和计算能力的提升,
大
模型
已经成为了
人工智能
领域的一个重要趋势。而在这个趋势中,
程序员
的...
赞
踩
article
第五章:
AI
大
模型
的
性能
评估
5.2
评估
方法...
1.背景介绍1. 背景介绍随着
AI
技术
的
发展,大型
AI
模型
已经成为了研究和实际应用中
的
重要组成部分。为了确保这些
模型
的
性...
赞
踩
article
【百度
Apollo
】探索
自动
驾驶
:
新
版本
Beta
全
新
升级
算法
方向支持
4D
毫米波
,引入
新
模型提供增量...
新
版本的
Apollo
Beta
中引入了
4D
毫米波
技术,并结合增量训练的方法,实现了对
毫米波
雷达
算法
的全
新
升级。【...
赞
踩
article
Django
REST
Framework
完整教程-
REST
ful规范-序列化和反序列数据-数据视图...
Django
REST
framework
(DRF)是基于
Django
实现的一个
REST
ful风格API框架,能够帮助...
赞
踩
article
青马在线线上考试
答案
查找?分享6
个
可以
搜
答案
的
软件
#笔记#微信#经验分享...
作为当代大学生,我们常常面临着繁重
的
学业压力和众多
的
学习任务。在这
个
信息爆炸
的
时代,如何高效地进行
搜
题和学习成了我们迫切...
赞
踩
article
抖音
seo
源码
部署
搭建
--
代码分享_
抖音
seo
源码
开发
部署
详解
saas
服务...
安装必要的软件和工具:需要安装Node.js、NPM、Git等软件和工具,具体安装方法可以参考官方文档。配置环境变量:将...
赞
踩
article
【
HarmonyOS
】【
DevEco
Studio
】
ohpm
、
sdk
安装失败该如何解决?_harmo...
【
HarmonyOS
】【
DevEco
Studio
】
ohpm
、
sdk
安装失败该如何解决?_
harmonyos
sdk
装...
赞
踩
article
Android
中使用WebView
Java
scriptBridge实现
Java
Script和
Java
...
它提供了一种简单的方式让
Java
Script代码和
Java
代码进行通信,使得开发者可以在WebView中的
Java
Scr...
赞
踩
相关标签
python
计算生态
研究方向
第三方库
git
shell
spring
java
数据库
c#
.net
字符串
乱码
json
深度学习
tensorflow
开发语言
毕设
大作业
医药信息管理系统
课程设计
数据结构
散列表
哈希
算法