二三层网络设备封装与解封装原理

news2024/11/27 11:33:35

1、寻址转发(寻址指的是寻找IP地址)

路由表放在一个公共的地方,比如主控板上,由主控板 的CPU运行路由协议,计算路由,生成和维护路由表。

转发表与路由表:

  • 转发表是根据路由表生成的。路由表中可能包含到达目的地址的多条路由,但是转发表里面只取其中的最优路由。

2、报文的收发与解封装

2.1、报文的接受与发送(PIC接口卡处理)

数据在通信线缆上传输时还只是光/电信号(对应于物理层的比特流)。为了让路由器读懂这些信号,在路由器上插线缆的接口里边有一块物理接口卡——PIC(Physical Interface Controller)卡,能感知这些光/电信号,把信号转换成数据帧(比如以太帧、PPP帧、ATM信元)。

接口卡有两个重要的功能:

①就是完成上述的物理层功能,光/电信号的收、 发;

②进行数据帧的“合法性”检查。数据经过物理线路的传递 后,有可能发生畸变,变成错包,无法被包转发引擎PFE正确解析,因此在接口卡需要 进行一些必要的检查。

以太网标准中规定如下帧为无效帧:

  • 帧的长度不是整数个字节;
  • 用收到的帧检验序列FCS(Frame Check Sequence)查出有错误;
  • 收到的帧的负荷长度不在46~1500字节之间。

对于检查出的无效帧就简单的丢弃,以太网不负责重传丢弃的帧。而这些检查,是在 接口卡上执行的

 

  1. 上行接口卡,PIC卡把光/电信号转换成数据帧,并检查“合法性”之后,把数据帧的内容(不包含帧间隙、前导码、帧开始界定符和FCS)发送给包转发引擎PFE。
  2. 数据包经过PFE转发,经过交换网板交换,从下行接口发送时,下行的对应位置也有接口卡。
  3. 下行接口卡的作用是,用待发送的数据帧内容计算帧检验序列FCS,然后对数据帧加封装帧间隙、前导码、帧开始界定符和FCS,并将数据帧转换成光/电信号,再发送到出接口线路上。

2.2、报文解析

包转发引擎PFE(Packet forwarding engine)从PIC卡收到报文时,PFE首先做的就是解析报文的二层帧头,并根据 配置做一些检查和处理。

如果入接口属性表对应的转发状态与报文解析后的协议不匹配,则报文会被 丢弃。比如某接口并未使能IPv6,则属性表的IPv6转发能力为”未使能“,如果收到的 报文是IPv6报文,则报文会被丢弃。

2.3、报文封装

举例以太网封装:由主机PC-A向主机PC-B发送IP报文,那么该报文的目的IP地址就是PC-B的IP地址,源 IP地址就是主机PC-A的IP地址,目标MAC地址就是其网关路由器Port1的MAC地址,源 MAC地址就是PC-A的MAC地址。

 

路由器转发过程:

1. 路由器收到这个报文,发现其目的MAC为本机Port1端口的,表明需要本机来进行 进一步解析(如果目的MAC不是本机,表明直接进行二层转发,不需要再解析帧 的其他内容了);

2. 路由器进一步解析报文,得知帧所承载的协议类型为IPv4(协议类型值 =0x800),即需要进行IPv4转发;

3. 查转发表(FIB表),得知该报文并不是发给自己的,而是需要送往出端口Port2, 因此,路由器不再继续分析IP头后面的内容。

4. 路由器将目的MAC更换成PC-B的MAC将源MAC更换成出接口Port2的MAC,并 将报文发给PIC卡,PIC卡将报文从Port2发送出去。

在上述过程中,将报文原来的源/目的MAC更换成新值的过程,称为“封装”;往报文 里添加新的字段,也称为“封装”。需要被封装到待发送报文的信息称为“封装信 息”。

2.4、出接口处理

同上行,封装完成后,数据帧送往下行接口卡之前,也要根据出口属性表做出口检查 和处理。例如,检查报文长度是否超出接口的MTU值,如果超出则进行分片或其他处 理。

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

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

相关文章

17- 梯度提升回归树GBDT (集成算法) (算法)

单一KNN算法: # knn近邻算法: K-近邻算法(KNN) from sklearn.neighbors import KNeighborsClassifier knn KNeighborsClassifier() knn.fit(X_train,y_train)KNN集成算法: from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble i…

在浏览器输入URL后发生了什么?

在浏览器输入URL并获取响应的过程,其实就是浏览器和该url对应的服务器的网络通信过程。从封装的角度来讲,浏览器和web服务器执行以下动作:(简单流程)1、浏览器先分析超链接中的URL:分析域名是否规范2、浏览器向DNS请求…

opencv基础知识和绘图图形

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

拥抱ChatGPT,开启结对咨询模式!

ChatGPT刮起了一阵旋风,ChatGPT到底能做什么?做到什么程度?真的会让咨询顾问失业吗?带着这样的疑问,我费尽周折,注册了ChatGPT账号。我先从一个大众化的话题开启了与ChatGPT的对话:如何提高软件…

分享111个HTML电子商务模板,总有一款适合您

分享111个HTML电子商务模板,总有一款适合您 111个HTML电子商务模板下载链接:https://pan.baidu.com/s/1e8Wp1Rl9RaFrcW0bilIatg?pwdc97h 提取码:c97h Python采集代码下载链接:采集代码.zip - 蓝奏云 HTML5家居家具电子商务网…

用到的C++的相关知识-----未完待续

文章目录前言一、vector函数的使用1.1 构造向量二、常用函数2.1 矩阵输出函数2.2 向量输出函数2.3 矩阵的使用2.4三、new的用法3.1 内存的四种分区3.2 new的作用3.33.4四、4.14.24.34.4总结前言 只是为方便学习,不做其他用途 一、vector函数的使用 有关的文章 C v…

十六、基于FPGA的CRC校验设计实现

1,CRC校验循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的…

【情人节用Compose给女神写个爱心动画APP】

情人节用Compose给女神写个爱心动画APP前言涉及知识点实现思路实现过程绘制爱心创建动画效果Preview预览效果完整源码彩蛋前言 前一阵子看电视里的学霸用代码写了个炫酷的爱心,网上有很多js和python的源码,复制粘贴就能拥有,但是Android的好…

重写-linux内存管理-伙伴分配器(一)

文章目录一、伙伴系统的结构二、初始化三、分配内存3.1 prepare_alloc_pages3.2 get_page_from_freelist3.2.1 zone_watermark_fast3.2.2 zone_watermark_ok3.2.3 rmqueue3.2.3.1 rmqueue_pcplist3.2.3.2 __rmqueue3.2.3.2.1 __rmqueue_smallest3.2.3.2.2 __rmqueue_fallback3.…

怎么代理微信小程序创业?

随着微信的兴起,小程序已经成为了人们生活中不可或缺的一部分。如果你想要创业的话,那么代理微信小程序是一个不错的选择。本文将为大家介绍怎么代理微信小程序创业。 一、什么是微信小程序 微信小程序是一款专为移动设备使用者而设计的应用。它通过扫…

javaEE 初阶 — 滑动窗口

文章目录滑动窗口1 滑动窗口下如何处理丢包TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 确认应答机制、超时重传机制、连接管理机制 都是给 TCP 的可靠性提供支持的。 虽然事变的比较可靠了,但是是有牺牲的,那就是传输…

黑马SpringCloud知识点和面试题

目录 一、微服务 1.1、微服务技术栈 1.2、微服务的介绍: 1.3、微服务技术对比 1.4、认识微服务-springcloud 1.4.1、springcloud和springboot的兼容性(左边springcloud右边springboot版本) 1.5、服务拆分,服务远程调用&…

数学建模美赛【LaTeX】公式、表格、图片

数学建模美赛【LaTeX】公式、表格、图片 1 宏包 \package{ } 就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。 每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版&a…

opencv的TrackBar控件

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

HTML预格式化文本pre标签

文章目录参考white-spaceword-breakfont-family参考 https://blog.csdn.net/weixin_44368963/article/details/120054949 https://www.zhangxinxu.com/wordpress/2017/03/css-font-family-chinese-english/ pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留…

UG二次开发装配篇 添加/拖动/删除组件方法的实现

我们在UG装配的过程中,经常会遇到需要调整组件目录位置,在软件设计过程中可以通过在目录树里面拖动组件来完成。 那么,如果要用程序实现组件的移动/拖动,我们要怎么做呢? 本节就完成了添加/拖动/删除组件方法的实现&…

ZooKeeper集群搭建步骤

一、准备虚拟机准备三台虚拟机,对应ip地址和主机名如下:ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname,并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …

分享好玩的h5小游戏制作步骤_怎么做h5微信小游戏

近年来,市面上一直流行各种h5游戏,例如投票、答题、刮刮乐、大转盘等等等等,而且我在各种营销场景下经常看到它们的身影,是做促销,引流和宣传的神器之一!那么,怎么做好玩的h5游戏?还…

网络安全-Nmap

网络安全-Nmap Nmap-号称诸神之眼 这个呢就是用来扫描网络端口的 Namp的工作原理很像一个雷达 做任何攻击之前,得先知道怎么去找破绽,而不是钢铁洪流,那个是不叫渗透了,叫硬钢。 咋用呢? 很简单 直接 nmap 后面跟网址…

Linux内核转储---kdump原理梳理

文章目录Kexec和Kdump设计的区别kexeckdumpKdump的执行流程kexec的实现用户空间kexec内核空间vmcoreKdump的实现可以分为两部分:内核和用户工具。内核提供机制,用户工具在这些机制上实现各种转储策略,内核机制对用户工具的接口是一个系统调用…