当前位置:网站首页>认识网络模型数据的封装和解封装
认识网络模型数据的封装和解封装
2022-07-27 18:13:00 【华为云】
摘自:《深入理解计算机网络》 王达著 机械工业出版社
IPv4数据报格式请点击这里
IPv4数据报的封装与解封装
IPv4数据报的封装
发送端网络层生成的IP数据报还要继续往下传输,到达数据链路层后就要封装成数据帧了。IP数据报的“帧封装”原理很简单,只需要把来自网络层的整个IP数据报(包括包头部分和数据部分)当做数据链路层的数据部分,然后再前面加上与数据链路层对应的协议头即可。以太局域网中,由于数据链路层分成了LLC子层和MAC子层的协议头封装,最终形成数据链路层的以太网MAC帧,如下图所示。在帧头中我们一般要加上源和目的节点的MAC地址,因为数据链路层是通过MAC地址进行寻址的。

IPv4数据报的封装和解封装流程

以上所述是经过一个网络的情形,如果一个IP数据报在整个传输过程中要经过几个网络时,怎么办呢?这是其实又涉及到一个解封装的过程。解封装就是由数据链路层的帧格式解封成原始的数据报格式。当源主机发送一个IP数据报经过两个路由器连接的三个网络时的封装和解封过程如下(流程图见上图):
1. 当源主机发送一个IP数据报时,在内网网络1中传输是以帧形式进行的,所以首先需要把元素的IP数据报封装成帧,在网络1中的链路上进行传输。此时把原来的IP数据报作为整个MAC帧的“数据”部分,然后加上网络1链路层协议的头部信息,作为帧头,即帧头1。
2. 当帧传输到路由器1连接网络1的接口时,相当于要把帧从数据链路层上传到网络层,于是要对原来的帧进行解封装,去掉帧头和帧尾信息(在有帧尾的情况下),还原出原来的IP数据报,以识别包中的目的地址信息,然后根据路由器中的路由表信息进行路由转发。此时IP数据报的内容都没有改变,包括IP包头部分中的源和目的地址信息等。
3. 当IP数据报在路由器1中从网络1路由到网络2后,又需要在网络2的链路层进行传输,所以又要重新封装成帧,仍把原来的整个IP数据报作为数据部分,不过此时加上的是网络2链路层的协议头信息作为帧头部,即帧头2。
4. 当帧传输到路由器2连接网络2的接口时,又相当于从数据链路层到了网络层,所以又要对帧进行解封装,仍旧还原出原来的IP数据报,使路由器2可以识别包中的目的地址信息,只有这样路由器2才能根据其路由表信息进行正确的数据报路由、转发。
5. 当IP数据报在路由器2从网络2到网络3后,又需要在网络3的链路层进行传输,所以又要重新封装和解封,仍把原来的整个IP数据报作为数据部分,不过此时加上的是网络3链路层的协议头信息作为帧头部,即帧头3。
6. 当从网络3的数据链路层把帧传输到目的主机时,在目的主机上又会对帧进行解封装,去掉帧头和帧尾,还原出原来的IP数据报,以获取IP数据报中的真正数据。
从以上的过程可以看出,IP数据报无论经过了多少个网络,整个数据报内容都是不会改变的,包括包头部分的源和目的地址信息。变化的只是在不同网络数据链路上传输的帧头信息,即在不同网络链路上传输的帧源MAC地址会改变,目的MAC地址不会改变。
边栏推荐
- 【Dart】一门为跨端开发而生的编程语言
- 2022.07.11
- One week activity express | in simple terms, issue 8; Meetup Chengdu station registration in progress
- Introduction to JVs Foundation
- 浅析即时通讯移动端 IM 开发中登录请求的优化
- It is said that Intel will stop the nervana chip manufactured by TSMC at 16nm
- Recognized by international authorities! Oceanbase was selected into the Forrester translational data platform report
- 金仓数据库 Oracle至KingbaseES迁移最佳实践(2. 概述)
- After working for bytek for two years, he got 15 offers at one go
- [rctf2015]easysql-1 | SQL injection
猜你喜欢

一个程序员的水平能差到什么程度?

One week activity express | in simple terms, issue 8; Meetup Chengdu station registration in progress

创新案例 | 本地生活服务数字化,高德品牌升级的增长战略

Management of user organization structure

Why does Alibaba prohibit more than three forms from joining?

2022.07.11

【深度学习】Pytorch torch.autograd 自动差分引擎

After working for bytek for two years, he got 15 offers at one go
![Leetcode:1498. Number of subsequences that meet the conditions [sort + bisection + power hash table]](/img/a9/de68e8affcb6b84e82cf344e7254e3.png)
Leetcode:1498. Number of subsequences that meet the conditions [sort + bisection + power hash table]
![[deep learning] video classification technology sorting](/img/bf/422d4ef342199966bbdaae06977699.png)
[deep learning] video classification technology sorting
随机推荐
LabVIEW学习笔记五:按钮按下后无法返回原状
【阿里安全 × ICDM 2022】20万奖金池!大规模电商图上的风险商品检测赛火热报名中!...
MySQL learning record (III) multi table query, sub query, paging query, case statement, single line function
Introduction to JVs Foundation
在字节干了两年离职后,一口气拿到15家Offer
Unity fairygui play video (Lua)
Flask Mdict builds online MDICT Dictionary Service
Understand the wonderful use of dowanward API, and easily grasp kubernetes environment variables
一周活动速递|深入浅出第8期;Meetup成都站报名进行中
How to improve the picture transmission speed and success rate in the development of IM instant messaging under the mobile network
Jetpack Compose 性能优化指南——编译指标
Jetpack compose performance optimization guide - compilation metrics
[Alibaba security × ICDM 2022] 200000 bonus pool! The risk commodity inspection competition on the large-scale e-commerce map is in hot registration
Software test interview question: how to output "0001" when a number is known to be 1
Scrollintoview realizes simple anchor location (example: select city list)
【深度学习】Pytorch Tensor 张量
说透缓存一致性与内存屏障
2022.07.11
adb shell ls /system/bin(索引表)
Is it safe for CICC fortune to open an account? What is the use of opening an account