协议一致性测试主要是验证被测件(DUT)的协议是否与协议标准一致。其测试方法是通过给 DUT 注入不同的命令,判断 DUT 响应是否与预期的一致来判断DUT 的协议一致性。
就目前接触的而言,测试的主要包括TCP一致性测试、IPv4协议一致性测试。下面来简单梳理一下测试项目。
TCP测试
TCP测试主要TCP 建立和断开连接测试,TCP报文格式测试和 TCP可靠性和流量控制功能测试。
TCP建立和断开测试
TCP 连接的建立、断开测试主要测试 TCP 有限状态机,主要包括以下内容:
TCP 连接建立测试:DUT 应能通过“三次握手”与测试系统建立连接,生成一对套接字,使 TCP有限状态机进入 ESTABLISHED 状态。
▲图1 三次握手(来源csdn)
TCP 断开连接测试:DUT应能通过主动关闭过程或者被动关闭过程使 TCP 有限状态机进入CLOSED状态,断开的流程如图2所示。
▲图2 四次挥手(来源csdn)
TCP可靠性和流量控制功能测试
这一项主要测试报文重传机制、Nagle 算法测试、慢启动与拥塞避免算法等。
1. 报文重传机制测试:在TCP中,当发送端的数据到达接收端之后,接收端主机会返回一个确认应答消息,表示已经接收到消息。
在发送端发出报文后,会启动重传计时器。在计时器设置的超时时间内,Wie收到主机发送的ACK,则会出现重传超时且报文段会自动重传。DUT 接收到3个重复的 ACK 之后将执行丢失段重传,不等待重传定时器超时。
2. Nagle 算法测试
Nagle算法基本思路就是,在发送缓冲区中的数据长度小于一个MSS时,要求TCP连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组。数据在发送端被缓存并超过MSS,此时使用连续ARQ协议,意思就是可以连续发出若干个分组然后等待确认,而不是发送一个分组就停止并等待该分组的确认。其目的就是减少报文数量,充分利用网络资源,提高了传输效率。
对于测试来说,DUT发送数据时,只要连接上没有未确认的数据,DUT 可以立即发送希望发送的数据,当连接上有未确认的数据时,后续需要发送的数据要留在发送缓冲区,直到所有未确认数据得到确认后才发送出去。
3. 慢启动与拥塞避免算法测试:在 DUT 与测试系统建立连接后,DUT应逐渐增加发送数据的数量直到达到完整窗口大小或检测到链路上出现拥塞。当 DUT 检测到潜在拥塞时,DUT会采用一个特殊的算法允许 DUT快速降低报文段的发送速度,然后再次使用慢启动算法来逐渐增加传输速度。
IPv4协议一致性测试
IPv4 协议一致性测试主要包括 IPv4 协议的报文格 式和 IPv4协议报文传输。
报文格式测试
IPv4协议报文格式测试:
这一项主要测试DUT发送的IPv4报文应符合 IPv4 协议,包括报文头、校验和、版本号、地址和选项等。同时DUT 能接收格式正确的报文,丢弃格式错误的报文
报文传输测试
IPv4协议报文传输测试:当 DUT 接收一些较大无序 IPv4 数据段时,DUT可以接收数据段并重新打包;当DUT收到一些包括复制数据段的较大数据段时,DUT可以丢弃复制数据段,接收并重新打包数据段;当 DUT 在接收数据段过程中丢失部分数据段时,DUT不会接收并重新打包数据。
推荐阅读
国内主机整车EEA架构汇总
谈谈整车控制器对油门信号处理的理解
浅谈电机控制器及其功能
谈谈电池管理系统的功能
谈谈整车控制器的功能
谈谈整车OTA系统的理解
五千字说清汽车基础软件及国产现状
带不带功能安全(IS26262)的区别,功能安全要做啥?
谈谈simulink自动代码生成
浅谈电机控制器及其功能
谈谈Bootloader自更新
电子电气架构设计需要考虑哪些方面?
汽车E/E架构的网络安全分析
深度解读汽车域控制器
自动驾驶域控制器信息梳理
深度分析整车控制域现状与发展
分享不易,恳请点个【👍】和【在看】