CAPL脚本数组问题:在数组中查找某一个值或者查找子数组 函数原型: int CompareTwoArrary(byte target[] ,byte source[])为方便阅读,上面已经贴出来的代码,就不再下面贴出来,全部源码到博客开头的git 链接去下载。两数组形同返回值为 0,否则返回值为 -1。
UDP_Padding_02: 验证IUT生成的UDP数据报具有偶数大小的有效载荷,并且在末尾没有填充 本测试旨在确保当DUT被请求生成一个具有偶数大小有效载荷的UDP数据包时,DUT能够生成一个不包含任何填充字节的UDP数据包,且数据包中的数据正确反映了接收到的偶数大小有效载荷值。验证IUT(被测设备)能够生成具有偶数大小有效载荷的UDP数据报,并且在数据报的末尾没有填充字节。RFC 768, “User Datagram Protocol”, “Fields” 部分。1、测试仪:向DUT发送请求,要求生成一个具有偶数的UDP数据包。2、DUT:生成一个没有填充的UDP数据包。
UDP_DatagramLength_01 : 验证IUT是否丢弃了一个截断的UDP数据报 确保当被测设备接收到一个长度字段小于以太网帧实际数据大小的UDP数据包时,该设备将丢弃该UDP数据包。验证被测设备(IUT)是否会丢弃一个截断的UDP数据报。RFC768,格式部分以及关于帧完整性的汽车特定要求。2.DUT:丢弃UDP数据包并且不发送任何指示。1.测试仪:发送一个截断的UDP数据包。DUT丢弃了UDP数据包。
UDP_MessageFormat_02:验证IUT接受包含格式正确的UDP头部的UDP数据包 本测试用例旨在确保当DUT接收到一个包含格式正确UDP头部的UDP数据包时,它能够正确处理该数据包。UDP头部应包含源端口字段、目的端口字段(其值等于DUT的UDP端口)、长度字段(其值等于发送数据报的大小)以及校验和字段(其值等于由DUT计算出的)。验证IUT(被测设备)是否接受包含格式正确的UDP头部的UDP数据包。2、DUT:发送<指示>,包含接收到的UDP数据包的相同内容。1、测试者:发送一个包含格式正确的UDP头部的UDP数据包。RFC768,第4节“格式”。DUT接受UDP数据包。
OMEIP_ETS_175: SD_Unreferenced_option 验证DUT能够处理包含所有必需端点选项以及一个不必要的配置端点选项的SubscribeEventgroup消息,并以SubscribeEventgroupAck作为响应。本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个包含不必要配置端点选项的SubscribeEventgroup消息时,能够正确地处理该消息并确认订阅。1、测试者:发送包含所有所需端点选项的subscribeEventgroup,包括一个不需要的配置端点选项。2、DUT:发送subscribeEventgroupAck。
TCP_RETRANSMISSION_TO_05:指数退避RTO SYN 如果在预定的RTO时间内未收到对方的SYN,ACK响应,发送方会重传SYN段。根据TCP协议,每次重传后的RTO值应该按照指数退避算法增加,以指数速率增长,而不是线性增长。本测试用例旨在验证DUT(被测试设备)在TCP连接建立过程中,对于发送SYN(同步)段的重传行为是否遵循指数退避算法。这确保了DUT能够在没有收到SYN,ACK响应时,适当地增加重传定时器(RTO)的值,从而适应网络条件的变化并避免过度重传。5、TESTER: 不发送SYN,ACK并验证RTO重传间隔以快速(至少超过线性)速率增加。
TCP_RETRANSMISSION_TO_04:指数退避RTO数据 指数退避算法是TCP协议中用于处理数据段重传的一种机制。当一个数据段发送后,如果在预定的RTO时间内没有收到对应的ACK,发送方会重传该数据段,并将RTO的值加倍。本测试用例的目的是验证DUT(被测试设备)是否正确实现了TCP的指数退避算法。在TCP连接中,当发送的数据段未被确认时,发送方需要根据指数退避算法来增加重传定时器(RTO)的值,以便在保证传输效率的同时减少网络拥塞。6、TESTER: 不发送ACK并验证RTO重传间隔以快速(至少超过线性)速率增加。5、DUT: 超时后重传数据段。
TCP_RETRANSMISSION_TO_03:Karn算法 如果在定时器到期之前没有收到对应的ACK,发送方会重传该数据段,并且将重传定时器的值加倍(指数退避)。本测试用例将验证DUT是否按照Karn’s算法进行重传,并正确调整重传定时器的值。本测试用例的目的是验证DUT(被测试设备)是否正确实现了Karn’s算法,这是一种TCP协议中用于处理数据段重传的算法。12. TESTER: 验证重传计时器的值是之前记录的RTO值的两倍(仅指数退避)12、TESTER: 验证重传计时器的值是之前记录的RTO值的两倍(仅指数退避)11、DUT: 重传数据段。
TCP_OUT_OF_ORDER_05: Stream of full-sized segments 在高效率的数据传输中,尤其是在接收窗口完全打开的情况下,发送方可能会连续发送多个满大小的数据段。根据TCP协议的行为,接收方应该至少对每个第二个数据段发送一个ACK,即使采用了延迟ACK的优化机制。特别是在接收到每个第二个数据段后,DUT应该发送一个ACK,以确保数据传输的可靠性和效率。4. TESTER: 验证对于每个偶数个数据段发送,接收到的ACK数量至少是该数的一半。4、TESTER: 验证对于每个偶数个数据段发送,接收到的ACK数量至少是该数的一半。3、DUT: 为所有数据段发送ACK。
TCP_OUT_OF_ORDER_03:排队乱序段 接收方需要能够识别这些乱序的数据段,并将它们存储在缓冲区中,直到所有先前的数据段都已接收完毕。一旦缺失的数据被接收,接收方应该发送一个确认,确认所有排队的数据段。TCP协议要求接收方能够对乱序的数据段进行排队,直到所有缺失的数据被接收,然后一并发送确认。4、TESTER: 发送个数据段,在SEQ号码的开头留有间隙(好像跳过了一个段)7. DUT: 发送所有排队数据段的ACK,包括最新的一个。7、DUT: 发送所有排队数据段的ACK,包括最新的一个。3、DUT: 发送该数据段的ACK。
TCP_OUT_OF_ORDER_02:计时延迟ACK 延迟ACK是TCP协议中的一种优化机制,它允许接收方延迟发送ACK段,以便能够合并对多个接收到的数据段的确认。然而,延迟ACK必须在一定的时间内发送,以避免发送方超时并重传数据。本测试用例将验证DUT是否实现了延迟ACK机制,并且延迟时间是否符合TCP规范的要求。本测试用例旨在验证DUT(被测试设备)是否实现了延迟确认(delayed ACK)机制,并确保该机制的延迟时间不超过0.5秒。这有助于提高网络的效率,因为它允许接收方合并多个确认,减少网络上的ACK段数量。
TCP_OUT_OF_ORDER_01:Timing full-sized segment 在TCP连接中,接收方收到数据段后,必须及时发送ACK段以确认接收。这是为了告知发送方数据已成功接收,并且可以继续发送后续的数据段。如果ACK段没有在预定时间内到达,发送方可能会认为数据段丢失,并进行重传。本测试用例将验证DUT在接收到满大小的数据段后,是否能够在0.5秒内发送ACK段。本测试用例的目的是验证DUT(被测试设备)在接收到一个满大小的数据段后,是否能够在规定的时间内发送ACK(确认)段。4、TESTER: 验证接收ACK的延迟(减去平均往返时间)小于0.5秒。
TCP_PROBING_WINDOWS_04:开放连接探测ACK 然而,根据TCP协议,即使在这种情况下,发送方也应该保持连接打开,并定期发送探测包(即包含ACK的段,但不含数据),以检测连接状态。特别是当接收窗口长时间为零时,发送方TCP必须能够保持连接打开状态,并且能够继续发送探测包,只要这些探测包得到确认。8. DUT: 只要测试器在每次接收时都确认每一个探测,就继续发送零窗口探测,保持在ESTABLISHED状态。8、DUT: 只要测试器在每次接收时都确认每一个探测,就继续发送零窗口探测,保持在ESTABLISHED状态。6、DUT: 发送零窗口探测。
TCP_PROBING_WINDOWS_03:窗口收缩 如果接收方的缓冲区已满,它可能会发送一个窗口大小为零的ACK段,以通知发送方暂停发送数据。一个健壮的TCP发送方应该能够正确处理这种情况,并在“可用窗口”为负值时停止发送新的数据段。特别是当接收方的窗口大小更新为零时,发送方TCP必须能够健壮地处理这种情况,避免发送数据,以免造成“可用窗口”变为负值。8、TESTER: 导致DUT端的一个应用程序发出一个数据段的SEND请求。7、TESTER: 为第一个段发送带有更新后的窗口值(为零)的ACK。9、DUT: 不发送该段,因为“可用窗口”是负数。
TCP_OUT_OF_ORDER_02:计时延迟ACK 延迟ACK是TCP协议中的一种优化机制,它允许接收方延迟发送ACK段,以便能够合并对多个接收到的数据段的确认。然而,延迟ACK必须在一定的时间内发送,以避免发送方超时并重传数据。本测试用例将验证DUT是否实现了延迟ACK机制,并且延迟时间是否符合TCP规范的要求。本测试用例旨在验证DUT(被测试设备)是否实现了延迟确认(delayed ACK)机制,并确保该机制的延迟时间不超过0.5秒。这有助于提高网络的效率,因为它允许接收方合并多个确认,减少网络上的ACK段数量。
TCP_OUT_OF_ORDER_03:排队乱序段 接收方需要能够识别这些乱序的数据段,并将它们存储在缓冲区中,直到所有先前的数据段都已接收完毕。一旦缺失的数据被接收,接收方应该发送一个确认,确认所有排队的数据段。TCP协议要求接收方能够对乱序的数据段进行排队,直到所有缺失的数据被接收,然后一并发送确认。4、TESTER: 发送个数据段,在SEQ号码的开头留有间隙(好像跳过了一个段)7. DUT: 发送所有排队数据段的ACK,包括最新的一个。7、DUT: 发送所有排队数据段的ACK,包括最新的一个。3、DUT: 发送该数据段的ACK。
TCP_OUT_OF_ORDER_05: Stream of full-sized segments 在高效率的数据传输中,尤其是在接收窗口完全打开的情况下,发送方可能会连续发送多个满大小的数据段。根据TCP协议的行为,接收方应该至少对每个第二个数据段发送一个ACK,即使采用了延迟ACK的优化机制。特别是在接收到每个第二个数据段后,DUT应该发送一个ACK,以确保数据传输的可靠性和效率。4. TESTER: 验证对于每个偶数个数据段发送,接收到的ACK数量至少是该数的一半。4、TESTER: 验证对于每个偶数个数据段发送,接收到的ACK数量至少是该数的一半。3、DUT: 为所有数据段发送ACK。
TCP_RETRANSMISSION_TO_03:Karn算法 如果在定时器到期之前没有收到对应的ACK,发送方会重传该数据段,并且将重传定时器的值加倍(指数退避)。本测试用例将验证DUT是否按照Karn’s算法进行重传,并正确调整重传定时器的值。本测试用例的目的是验证DUT(被测试设备)是否正确实现了Karn’s算法,这是一种TCP协议中用于处理数据段重传的算法。12. TESTER: 验证重传计时器的值是之前记录的RTO值的两倍(仅指数退避)12、TESTER: 验证重传计时器的值是之前记录的RTO值的两倍(仅指数退避)11、DUT: 重传数据段。
TCP_RETRANSMISSION_TO_04:指数退避RTO数据 当一个数据段发送后,如果在预定的RTO时间内没有收到对应的ACK,发送方会重传该数据段,并将RTO的值加倍。本测试用例的目的是验证DUT(被测试设备)是否正确实现了TCP的指数退避算法。在TCP连接中,当发送的数据段未被确认时,发送方需要根据指数退避算法来增加重传定时器(RTO)的值,以便在保证传输效率的同时减少网络拥塞。TESTER: 不发送ACK并验证RTO重传间隔以快速(至少超过线性)速率增加。5. TESTER: 验证RTO重传间隔以快速(至少超过线性)速率增加。DUT: 超时后重传数据段。
TCP_RETRANSMISSION_TO_05:指数退避RTO SYN 如果在预定的RTO时间内未收到对方的SYN,ACK响应,发送方会重传SYN段。根据TCP协议,每次重传后的RTO值应该按照指数退避算法增加,以指数速率增长,而不是线性增长。本测试用例旨在验证DUT(被测试设备)在TCP连接建立过程中,对于发送SYN(同步)段的重传行为是否遵循指数退避算法。这确保了DUT能够在没有收到SYN,ACK响应时,适当地增加重传定时器(RTO)的值,从而适应网络条件的变化并避免过度重传。5、TESTER: 不发送SYN,ACK并验证RTO重传间隔以快速(至少超过线性)速率增加。