基于Canoe实现以太网UDP协议转CANFD协议优化版

这篇文章主要是改进了由于以太网IP层MTU的限制导致分片报文的产生,导致转发异常的问题。算是填上一次文章的留下来的坑。

首先我们先来介绍一下什么是以太网的报文分片

1.MTU的含义

MTU(Maximum Transmission Unit)是最大传输单元的缩写,指的是在网络通信中一次传输的数据包的最大长度。MTU的单位是字节(byte)。

在网络通信中,数据被分割成一个个的数据包进行传输。每个数据包都有一个包头和一个包体,包头包含了一些元数据,如源地址、目标地址、数据包大小等信息。MTU定义了一个数据包的最大长度,超过这个长度的数据将被分割成多个数据包进行传输。

在MTU为1500字节的以太网中,TCP报文的最大荷载是1460字节。这是因为在以太网中,每个TCP报文段会添加一个20字节的TCP报文头和一个20字节的IP报文头,以及可能的选项和填充字节。因此,最大载荷为1500字节减去40字节的报文头,得到1460字节。

因此一但总线上出现监测目标报文出现分片是就会导致以上UDP端口函数报错

2.分片报文在trace上的体现

解决这个实际也很简单,我们只需要把分片的报文全部抓取过来进行排序组包,之后再对组包完后的数据进行处理就可以解决。

首先我们需要判别哪些是分片报文,分片的报文标位置位是啥?

下面有两张截图上面就描述了分片的一些标志位及其对应的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值