当前位置: 首页 > news >正文

【CAPL实战:以太网】对IPv4报文的Payload部分进行分片并创建分片包

As we know,TCP/IP协议栈网络层接收到来自上层的数据时,并不是简单地添加报头发送出去,而是会受到来自网卡配置参数MTU的约束。也就是从网卡上发送出去的以太网帧报文的数据部分的长度不能大于MTU值。即网络层头部 + 有效载荷不能大于MTU。

所以网络层在发送上层的数据时,要判断这个数据加上网络层头部的总长度是否大于MTU?如果是,则要把数据部分分成多段,分别添加IP头部后发送到链路层。最终的目的是要确保所有的分段 + IP头部的总长度小于等于MTU。

我们今天要编写一个自定义函数,不是对网络层的数据部分分段,而是对一条给定的IPv4报文(我们姑且称之为源报文)的Payload部分,按照我们的需求,把想要的部分取出,封装成一条分片包。其中IPv4 Header和Eth Header的字段尽量保证和源报文的相同。比如说source mac/destination mac/eth type/source ip/destination ip/ttl/identification等。

而像total length/flags/checksum等必须要根据分片包的实际设置或填写!

比如一条ICMPv4 Echo Request报文:

相关文章:

  • Vue 的单文件组件(.vue 文件)script 标签的使用说明
  • AI赋能安全调度系统:智能升级与功能跃迁
  • KMS工作原理及其安全性分析
  • Leetcode19(亚马逊真题):删除链表的倒是第N个节点
  • 特征存储的好处:特征存储在机器学习开发中的优势
  • dumpsys activity activities中的Task和ActivityRecord信息解读
  • 【Linux网络】应用层自定义协议与序列化及Socket模拟封装
  • 2025上海车展|紫光展锐发布新一代旗舰级智能座舱芯片平台A888
  • Trae 编程工具 Cline 插件安装与 Claude 3.7 API Key 自定义配置详解
  • 济南国网数字化培训班学习笔记-第二组-6-输电线路现场教学
  • 热度大幅度下降,25西电经济与管理学院(考研录取情况)
  • html单页业务介绍源码
  • RuntimeError: “unfolded2d_copy“ not implemented for ‘Half‘
  • 从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践
  • 跑MPS产生委外采购申请(成品)
  • 线程同步与互斥(互斥)
  • Vue.js 的组件化开发指南
  • 【k8s】KubeProxy 的三种工作模式——Userspace、iptables 、 IPVS
  • 如何应对客户提出的不合理需求
  • 第四章: 服务集成抽象
  • 双拥主题歌曲MV:爱我人民,爱我军
  • “茉上茶田”傍大牌诱导加盟续:违规从事特许经营被罚没670余万元
  • “80后”阿伯丁大学法学硕士朱江已任四川泸州市副市长
  • 继续免费通行!五一假期全国高速公路日均流量约6200万辆
  • “2025未来地球:科学与应用大会”在江西景德镇开幕
  • 美股反弹,纳斯达克中国金龙指数大涨3.69%