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

CAPL如何对以太网报文的长度字段和校验和字段设置错误值

当我们使用CAPL中的关键字ethernetPacket组装一条以太网报文并发送时,除了一些必要的字段(ip地址、mac地址、payload数据)需要单独设置外,其他字段会根据你初始化的协议使用默认值。比如你初始化一条icmpv4 echo request报文,那么icmpv4协议中的type字段默认值是8,code值是0,这个值用来表示协议,属于固定值。还有一些字段使用的默认值,属于可变值,你可以设置也可以不用设置,对报文类型不会有什么影响,比如icmpv4协议中的identifier和sequence number。另外还有一些字段值是根据报文数据必须设置正确的,比如length字段或checksum字段。

这三种字段中,第一种是在对ethernetPacket的协议初始化时就会设置好的,第二种需要对字段单独进行设置,否则使用默认值,一般是0。第三种可以通过调用函数CompletePacket()自动计算协议中的length字段和checksum字段的正确值。

我们先看一个正确组装报文的例子:

on key 'a'
{
  ethernetPacket            pkt;
  
  pkt.icmpv4.echo.Init();
  
  pkt.ipv4.source.ParseAddress("192.168.1.1");
  pkt.ipv4.destination.ParseAddress("192.168.1.2");
  
  pkt.source.ParseAddress("02:00:00:00:00:01");
  pkt.destination.ParseAddress("02:00:00:00:00:02");
  
  pkt.CompletePacket();
  
  output(pkt);
}

http://www.kler.cn/a/131937.html

相关文章:

  • 【数据结构】快速排序算法你会写几种?
  • OpenCV快速入门:像素操作和图像变换
  • The import xxx.xxx.xxxx is never used
  • hash 哈希表
  • 【洛谷 P2678】[NOIP2015 提高组] 跳石头 题解(二分答案+循环)
  • C# String转DateTime
  • 云课五分钟-08安装Opera成功-仓库中查找对应版本
  • 分发糖果(贪心算法)
  • python pip
  • 系列一、JVM概述
  • vue将base64编码转为pdf方法
  • 学习指南:如何快速上手媒体生态一致体验开发
  • vue3使用西瓜播放器播放flv、hls、mp4视频
  • C#,数值计算——插值和外推,双线性插值(Bilin_interp)的计算方法与源程序
  • 助力水泥基建裂痕自动化巡检,基于yolov5融合ASPP开发构建多尺度融合目标检测识别系统
  • TableUtilCache:针对CSV表格进行的缓存
  • Jupyter Notebook的下载安装与使用教程_Python数据分析与可视化
  • 20231117在ubuntu20.04下使用ZIP命令压缩文件夹
  • 服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2
  • 什么是BT种子!磁力链接又是如何工作的?