当前位置:网站首页>认识网络模型数据的封装和解封装
认识网络模型数据的封装和解封装
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地址不会改变。
边栏推荐
- 【深度学习】视频分类技术整理
- 人家这才叫软件测试工程师,你那只是混口饭吃(附HR面试宝典)
- 推荐一款强大的搜索工具Listary
- Introduction to JVs Foundation
- [Alibaba security × ICDM 2022] 200000 bonus pool! The risk commodity inspection competition on the large-scale e-commerce map is in hot registration
- 洋葱集团携手OceanBase实现分布式升级,全球数据首次实现跨云融合
- Xdc 2022 Intel technology special session: Intel Software and hardware technology builds the cornerstone of cloud computing architecture
- Session attack
- JVs basic framework function list
- 用户和权限创建普通用户
猜你喜欢
![[benefit activity] stack a buff for your code! Click](/img/2d/dabf0ad5d7bd553dada5921abf6c06.png)
[benefit activity] stack a buff for your code! Click "tea" to receive the gift

How to optimize the open source community experience through developer metrics
![[design tutorial] yolov7 target detection network interpretation](/img/dc/a795dcbd1163df6d8f33704a129d30.png)
[design tutorial] yolov7 target detection network interpretation

Oracle +JDBC

一个程序员的水平能差到什么程度?
![[dataset display annotation] VOC file structure + dataset annotation visualization + code implementation](/img/09/645ce4de40d18d8dd4532554826c9a.png)
[dataset display annotation] VOC file structure + dataset annotation visualization + code implementation

【程序人生】“阶段总结“-不甘平凡

JVM overview and memory management (to be continued)

面了个腾讯拿38K跳槽出来的,见识到了真正的测试天花板
![[deep learning] video classification technology sorting](/img/bf/422d4ef342199966bbdaae06977699.png)
[deep learning] video classification technology sorting
随机推荐
MySQL基本查询和运算符
【防抖与节流】
如何监控NVIDIA Jetson的的运行状态和使用情况
Using dataX to realize efficient synchronization of MySQL data
antdv: Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key
Knowledge dry goods: basic storage service novice Experience Camp
Huiding Technology: the acquisition of NXP vas business has been completed
Passive income: return to the original and safe two ways to earn
Users and permissions restrict users from using resources
【深度学习】Pytorch Tensor 张量
Interviewer: what is the abstract factory model?
Innovative cases | the growth strategy of digitalization of local life services and upgrading of Gaode brand
金仓数据库 Oracle至KingbaseES迁移最佳实践(2. 概述)
How to optimize the open source community experience through developer metrics
Apple Mobile Bluetooth networking
[rctf2015]easysql-1 | SQL injection
JVs basic framework function list
Ie11 method of downloading doc PDF and other files
JVS基础介绍
MySQL 日志查询日志