一、TCP协议解析
1.1协议原理
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。
TCP的主要工作是建立连接,然后从应用层程序中接收数据数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前需要在发送方和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出的一个确认性的应答,否则发送发将认为次数据丢失,并重新发送此数据。
TCP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。TCP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。TCP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用TCP协议。
1.2 TCP协议特点
TCP协议有如下的特点:
1、面向连接:在传输数据之前,TCP需要先建立连接。这个连接称为“虚连接”,它使得网络层IP协议能够可靠地传递数据报。
2、可靠传输:TCP通过重传机制确保数据的可靠传输。如果数据包在传输过程中丢失,TCP将会重新发送这些数据包。此外,TCP还具备流量控制和拥塞控制机制,以避免网络拥堵和数据包的丢失。
3、全双工通信:TCP允许两个应用进程之间建立全双工通信。通信双方可以同时发送和接收数据。
4、字节流:TCP将数据看作字节流,不关心数据的内容或意义。这种字节流视角对于实现可靠传输非常重要。
1.3协议用途
1、文件传送:TCP经常用于文件传输,例如FTP和HTTP协议。这些协议利用TCP的可靠传输机制,确保文件的完整性和准确性。
2、远程登录:TCP也经常用于远程登录,如Telnet和SSH。在这些应用中,TCP提供了一种安全和可靠的方法来远程访问和管理计算机。
3、电子邮件:TCP也被用于电子邮件传输,例如SMTP和POP3协议。这些协议利用TCP的可靠传输功能,确保邮件的准确和安全传输。
4、实时音视频通话:TCP还广泛应用于实时音视频通话,如VoIP(Voice over IP)和视频会议。这些应用需要一种可靠且实时的数据传输机制,TCP能够满足这些需求。
二、TCP在supernova测试仪中可应用的场景
2.1 网关模式
测试仪同时模拟TCP客户端和服务端,客户端发起TCP连接请求,测试流量经过网关设备转发到服务端,服务端收到请求后,发送确认消息给客户端。通过统计TCP连接数量、流量发送/接收速率等信息,得到受测网关设备的TCP新建、吞吐性能。
2.2代理模式
测试仪同时模拟TCP客户端和服务端,测试流量经过代理设备转发。通过统计TCP连接数量、流量发送/接收速率等信息,得到受测代理设备的TCP新建、吞吐性能。
2.3应用服务模式
测试仪只模拟TCP客户端,向服务器发起TCP连接请求,服务器收到连接请求后,发送确认连接包给Supernova测试仪客户端。测试仪进行TCP连接数量等结果统计,得到服务器的TCP性能。
2.4 客户终端模式
测试仪只模拟TCP服务端,收到连接请求后,发送确认连接包给受测客户终端。测试仪进行TCP连接数量等结果统计,得到受测客户终端的TCP性能。
三、TCP用例功能介绍
3.1.分配cpu核
用例的运行需要分配cpu核数,TCP的最高性能需要分配一定的核数。
3.2限速配置
TCP用例支持多种流量模型,包括固定速率:设置一个限速数值,运行过程中速率将一直保持该数值,上下浮动不超过1%;
随机速率:限速方式为随机速率时,设置最小、最大限速数值,速率将按每秒从最小速率和最大速率之间随机速率值运行直到运行结束;
梯形速率:限速方式为梯形速率时,设置一个限速数值,运行开始阶段速率将按时间或者百分比递增到该数值,中间过程将一直保持设置的限速数值,运行结束前速率按时间或者百分比递减至0,中间过程上下浮动不超过1%;
雪崩速率:限速方式为雪崩速率时,设置最大、最小速率和保持时长,测试过程中速率将以最大速率保持一段时长,再以最小速率保持一段时长,交替进行;
正弦速率:限速方式为正弦速率时,设置最大、最小速率和渐变时长,测试过程中速率会在每一个渐变时长内完成一次正弦变化;
楼梯速率:限速方式为楼梯速率时,设置初始、最大、递增速率和保持时长,测试过程中速率将以初始速率保持一段时长,按递增速率每次递增并保持一段时长,最后按最大速率一直运行结束,形状类似楼梯。
支持链路层和应用层的限速,限速单位支持最低为bps,最高为Gbps,默认为Mbps。
3.3抓包设置
可以设置需要抓的协议类型,指定IP地址、端口、文件大小或者包数。可在运行前或运行中设置抓包。
3.4 DPDK大页内存占比
DPDK大页内存占用例运行内存的百分比。
3.5虚拟用户数量
类似于并发数,可同时存在TCP的数量,如设置了256个用户,应建立256条TCP连接。
3.19 发送免费ARP
发送ARP报文,获取网关或受测设备的MAC地址之前,IPv4是否发送免费ARP报文。
3.20 ping连通性检查
在测试开始之前,是否发送ping报文,检查客户端和服务端之间的连通性。
3.21协议栈选项
各种协议栈选项,所有参数含义与Linux内核相同。
3.22 IP变换算法
网络套接字源和目的IP的更换策略,可以选择增加或随机。
3.23 端口变换算法
网络套接字源和目的端口的更换策略,可以选择增加或随机。
3.24 二层字节统计
是否对报文进行收发字节数统计。
3.25 四层报文统计
是否对TCP/TCP报文进行收发数量的统计。
3.26 测试老化时长
测试到时或者被用户强行终止后,等待报文传输或会话完成,也可以用来关闭TCP连接,单位为秒,范围为2-600。
四、TCP测试案例
4.1 TCP用例拓扑图
网关设备测试拓扑图:
说明:Supernova测试仪同时模拟TCP客户端和服务端,客户端发起TCP连接请求,测试流量经过网关设备转发到服务端,服务端收到请求后,发送确认消息给客户端。通过统计TCP连接数量、流量发送/接收速率等信息,得到受测网关设备的TCP新建、吞吐性能。。
4.2 TCP新建用例目的
本次案例测试网关模式下,获取受测网关设备(防火墙)处理器的能力,在单位时间内能够建立的连接数越多,说明受测设备处理器的能力越强。
4.3 TCP吞吐用例目的
本次案例测试网关模式下,进行TCP吞吐协议仿真及性能测试,可以获取受测设备最大TCP吞吐量。
本次案例测试网关模式下,
4.4 TCP测试预计结果
4.4.1 网关模式过防火墙,TCP每秒新建率可以达到50000/秒速率。
4.4.2 网关模式过防火墙,TCP吞吐量可以达到1000M。
五、测试步骤
5.1创建TCP新建用例,配置参数
(1)在网关模式中,创建TCP新建用例,由于过的是防火墙,需要配置网关,
选择网关模式。
(2)分配CPU核数
(3)抓包设置。
(4)参数设置
5.1.1启动用例,查看监控,结果,报告
(1)点击启动用例
(2)在监控中查看运行界面
(3)生成报告
用例手动终止或者到时后,可在报告页面生成报告。
5.2创建TCP吞吐用例,配置参数
(1)在网关模式中,创建TCP吞吐用例,由于过的是防火墙,需要配置网关,选择网关模式。
(2)分配CPU核数
(3)抓包设置。
(4)参数设置
5.1.1启动用例,查看监控,结果,报告
(1)点击启动用例
(2)在监控中查看运行界面
(3)生成报告
用例手动终止或者到时后,可在报告页面生成报告。
六、对预期结果进行验证
6.1网关模式过防火墙,TCP每秒新建率可以达到50000/秒速率。
结论:符合4.3.1的预期结果
6.2网关模式过防火墙,TCP吞吐量可以达到1000M。
结论:符合4.3.2的预期结果