当前位置: 首页> 房产> 建筑 > 海外推广都有哪些渠道_外贸网站推广平台排名_怎么建网站详细步骤_寻找客户的12种方法

海外推广都有哪些渠道_外贸网站推广平台排名_怎么建网站详细步骤_寻找客户的12种方法

时间:2025/7/11 1:15:21来源:https://blog.csdn.net/m0_65827944/article/details/146915492 浏览次数:0次
海外推广都有哪些渠道_外贸网站推广平台排名_怎么建网站详细步骤_寻找客户的12种方法

CheckSum Method Validations

测试目标

验证 IUT(被测设备)的 ICMPv4 Echo Reply(Ping 回复)计算的 IP 和 ICMP 校验和是否正确

开发思路

1.发送 Ping 请求(ICMPv4 Echo Request)

  • 构造并发送 ICMPv4 Echo Request
  • 设置 源 MAC / 目标 MAC
  • 填充 IPv4 头部 并 正确计算 IP 头部校验和
  • 填充 ICMPv4 头部 并 正确计算 ICMP 校验和
  • 发送 ICMPv4 Echo Request

2.监听 IUT 发送的 Ping 回复(ICMPv4 Echo Reply)

  • 检查 IUT 是否有正确的 ICMPv4 Echo Reply
  • 确保 IUT 发送了 Echo Reply
  • 检查 IP 头部校验和 是否正确
  • 检查 ICMP 头部校验和 是否正确
  • 确保 ICMP 负载数据完整(不能丢失或被篡改)

3.判断测试结果

  1. 通过:IUT 正确回复 Echo Reply,并且IP 校验和正确,并且CMP 校验和正确

  2. 失败:IUT 没有回复 Echo Reply(超时)。

  3. IP 头部校验和错误:

    1. ICMP 头部校验和错误

    2. 数据负载不一致

4.代码实现与关键点

  1. sendICMPEchoRequest() —— 发送 ICMPv4 Echo Request,并确保校验和正确。
  2. on ethernetPacket —— 监听 IUT 回复的 ICMPv4 Echo Reply,并校验 IP 和 ICMP 头部。
  3. on timer testTimer —— 处理超时情况,如果 IUT 没有回复,则测试失败。

5.测试用例设计简要

步骤

操作

预期结果

1

发送 ICMPv4 Echo Request

IUT 接收请求

2

IUT 回复 ICMPv4 Echo Reply

Tester 接收回复

3

校验 IP 头部校验和

计算正确

4

校验 ICMP 头部校验和

计算正确

5

校验 ICMP 数据负载

数据完整

6

输出测试结果

PASS 或 FAIL

CAPL代码展示

/*@!Encoding:65001*/variables{ const dword iutIP = 0xC0A8B239; // IUT IP: 192.168.178.57const dword testerIP = 0xC0A8B201; // Tester IP: 192.168.178.1ethernetPacket txPacket; dword gLastSequenceNumber; dword SPECIAL_IDENTIFIER = 0x1234; timer testTimer; byte testFailed = 0; }on start{write("Starting ATS_IPv4_00374 Checksum Validation Test...");testFailed = 0; // Reset test statussendICMPEchoRequest();setTimer(testTimer, 5000); }void sendICMPEchoRequest(){ethernetPacket txPacket; txPacket.msgChannel = 1; txPacket.source = EthGetMacAddressAsNumber("00:11:22:33:44:55"); // Tester MACtxPacket.destination = EthGetMacAddressAsNumber("AA:BB:CC:DD:00:39"); // IUT MACtxPacket.type = 0x0800; // IPv4// Init IPv4 headertxPacket.IPv4.Init();txPacket.IPv4.Source = testerIP;txPacket.IPv4.Destination = iutIP;txPacket.IPv4.Protocol = 0x01; // ICMP//  txPacket.IPv4.ComputeChecksum();txPacket.ipv4.checksum;// Init ICMPv4 Echo RequesttxPacket.ICMPv4.Init();txPacket.ICMPv4.Echo.Init();gLastSequenceNumber++;txPacket.ICMPv4.Echo.Identifier = SPECIAL_IDENTIFIER;txPacket.ICMPv4.Echo.Sequence = gLastSequenceNumber;txPacket.ICMPv4.checksum;// Send packettxPacket.CompletePacket();output(txPacket);write("Sent ICMPv4 Echo Request to IUT.");}// Listen for ICMP Echo Replyon ethernetPacket msgChannel1.*{if(this.type == 0x0800 && this.Length >= 28) // IPv4 Packet{if(this.Byte(9) == 0x01 && this.Byte(34) == 0x00) // ICMP Echo Reply{if(this.source == EthGetMacAddressAsNumber("AA:BB:CC:DD:00:39")) // From IUT{write("ICMPv4 Echo Reply received from IUT.");// Validate IP header checksumif(this.IPv4.Checksum != 0x0000){write("Test Failed: Incorrect IP header checksum.");testFailed = 1;}// Validate ICMP checksumif(this.ICMPv4.Checksum != 0x0000){write("Test Failed: Incorrect ICMP checksum.");testFailed = 1;}cancelTimer(testTimer);if (testFailed == 0){write("Test Passed: Correct ICMP and IP checksums.");}}}}}on timer testTimer{write("Test Failed: No ICMPv4 Echo Reply received from IUT.");}

总结

  1. 本质就是测试 Ping(ICMPv4 Echo Request/Reply)是否正确。

  2. 关键点是校验 IP 和 ICMP 头部的校验和是否符合协议标准。

  3. 如果 IUT 计算错误的校验和,或者数据丢失/损坏,测试就失败。

  4. 超时无响应也是失败的情况。

关键字:海外推广都有哪些渠道_外贸网站推广平台排名_怎么建网站详细步骤_寻找客户的12种方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: