刘小霞
(巴音郭楞职业技术学院,新疆 库尔勒 841009)
随着计算机通信技术的飞速发展,网络远程控制已成为现代智能化管理的重要手段之一[1]。文章设计并实现一个基于计算机通信技术的网络远程控制系统,可实现设备的远程监控、控制指令的发送与接收以及数据的实时传输等功能,为用户提供便捷、高效的远程控制体验。
客户端作为网络远程控制系统的核心组成之一,需要与用户直接交互,负责接收用户发出的指令并发送到服务器端,同时展示来自服务器端的数据和设备的状态信息[2]。为实现这一功能,客户端可细分为多个层次,每个层次都有各自独特的作用和处理流程。客户端功能模块如图1 所示。首先,用户界面(User Interface,UI)层是用户与系统的交互窗口,负责展示系统的图形界面,包括设备列表、控制按钮以及各种状态指示器等。UI 层的指令传输至业务逻辑层后,可根据预设的逻辑规则进行解析和处理。其次,通信层可以采用传输控制协议(Transmission Control Protocol,TCP)或用户数据报协议(User Datagram Protocol,UDP)进行数据传输,具体选择取决于系统的实时性和可靠性需求。为确保数据安全,通信层采用传输层安全/安全套接字层(Transport Layer Security/Secure Sockets Layer,TLS/SSL)加密技术完成传输数据加密处理,防止数据在传输过程中被窃取或篡改。最后,数据模型层负责定义和管理客户端的数据结构,包括设备信息、用户信息以及其他相关数据的存储格式和访问方式[3]。数据模型层提供相应的接口,以供业务逻辑层在需要访问或修改设备信息时调用。为提高数据的访问效率,数据模型层采用数据缓存机制将部分需频繁访问的数据缓存于本地内存,以减少对服务器端的访问次数,从而提升整个系统的响应速度。
图1 客户端功能模块
服务器端基于多层次架构运行,各个功能模块如图2 所示。通信接口层在特定端口监听并等待客户端发出连接请求,待连接成功后,立即准备接收数据。基于接收的客户端数据包,请求处理层负责解析请求,验证请求类型和请求内容的合法性,并进行必要的身份验证和授权检查。通过验证后,业务逻辑层根据请求类型执行对应的操作。例如,将转发控制指令发送给设备接口层,以控制实际设备;从数据库层检索出最新的设备状态数据,以满足状态查询请求等[4]。在处理过程中,为确保数据的完整性和一致性,服务器端可能需要利用高效的数据访问机制实现与数据库层的交互。处理完成后,服务器端将生成指令执行结果、设备状态数据以及其他信息,并通过通信接口层发送回客户端。
图2 服务器端功能模块
在网络远程控制系统中,通信协议是确保客户端和服务器端之间高效、可靠以及安全传输数据的关键。因此,选择合适的通信协议对于提升系统的整体性能至关重要[5]。基于计算机通信技术的网络远程控制系统主要考虑TCP 和UDP,并根据系统需求进行定制化设计。
TCP通过建立和维护连接来确保数据的可靠传输,是一种面向连接的、可靠的、基于字节流的传输层通信协议。在网络远程控制系统中,TCP 适用于对数据传输可靠性要求较高的场景,如设备控制指令的发送和接收。当客户端发送控制指令时,TCP 会确保指令完整无误地到达服务器端,并在必要时进行重传。当服务器端返回设备的状态信息或执行结果时,TCP 会确保数据的完整性和可靠性。
UDP 无须建立和维护连接,是一种无连接、不可靠的传输层通信协议,具有较低的传输延迟和开销。在网络远程控制系统中,UDP 适用于对实时性要求较高但对数据传输可靠性要求相对较低的场景,如实时视频监控或音频传输。由于UDP 不能保证数据的可靠传输,在设计时需要考虑数据丢失或乱序的可能性,并采取相应的措施。
设计系统的通信协议时,应根据实际需求定制化地选择和设计TCP 和UDP。对于需要保障数据可靠传输的场景,宜选用TCP,进而基于TCP 建立相应的连接,以传输数据和启用连接释放机制。对于实时性要求较高的场景,宜选用UDP,进而基于UDP实现相应数据的封装、发送及接收。同时,为提高系统的安全性,基于计算机通信技术的网络远程控制系统对通信数据进行加密处理,以防止数据在传输过程中被窃取或篡改。
服务器的基本配置为Intel Xeon 处理器、32 GB RAM、1 TB 固态硬盘(Solid State Drives,SSD),需要测试系统的各项功能,以验证其正确性和可用性。客户端设备包括5 台个人计算机(Personal Computer,PC),其中高端配置计算机和低端配置计算机各1 台,以满足不同的性能需求。此外,系统包括5 台智能手机,用于测试移动客户端功能的可用性和兼容性。
2.2.1 用户登录功能测试
用户登录功能测试验证用户能否成功登录系统,并确保登录过程的准确性和稳定性。在测试过程中,首先打开网络远程控制系统的客户端软件,其次在登录界面输入正确的用户名和密码,最后点击登录按钮进行登录操作。如果输入的用户名和密码与系统中存储的用户信息匹配无误,用户可顺利登录。登录成功后,系统将及时转入系统主界面,显示用户的个人信息和相关控制选项。若登录失败,系统将给出相应的错误提示,并指出具体的错误原因,如用户名或密码错误、账户被锁定等。
2.2.2 设备列表显示测试
提前设置3 个已成功连接系统的设备,分别是设备1、设备2 以及设备3,以确保设备功能正常和提升测试效率。在测试过程中,重点关注3 个设备的名称和各自的连接状态能否在设备列表中显示。连接状态可以设置为“Online”或“Offline”。测试的期望结果是设备列表中存在这3 个设备,且连接状态与实际连接状态一致。
2.2.3 远程控制功能测试
验证系统能够远程控制设备的准确度是远程控制功能测试的目标。测试包括通过系统界面发送控制指令和验证设备是否按预期执行相应操作2 个部分。首先,选择目标设备。其次,发送控制指令,如点击交互界面的按钮或手动输入指令。最后,验证设备的执行情况,如检查设备的响应时间、准确性以及执行状态。测试的期望结果是设备能够按照指令正确执行相应的操作,如开启、关闭以及调整参数等。
为评估系统在高负载条件下的响应时间和稳定性,使用性能测试工具JMeter 模拟大量用户请求情况。测试服务器为双核CPU(处理器基本频率为2.33 GHz,缓存为4 MB)、8 GB 内存、SSD(读取速度为180 MB/s,写入速度为133 MB/s)。配置相关参数,使用JMeter 向系统的登录界面发送模拟用户请求。在测试过程中,需要实时监控系统的响应时间和系统资源的利用率,如中央处理器(Central Processing Unit,CPU)利用率等。
为全面验证系统的安全性,安全测试需检验系统在拒绝未授权访问、防结构化查询语言(Structured Query Language,SQL)注入、抵御跨站脚本(Cross-Site Scripting,XSS)攻击以及修复文件上传漏洞等方面的能力。首先,实施未授权访问测试。模拟未经授权的用户对系统各功能模块进行访问尝试,以评估系统的访问控制机制。其次,进行SQL 注入测试。检验系统对输入数据的过滤与处理是否严密,从而确保数据库安全。再次,执行XSS 攻击。通过输入含有潜在恶意脚本的内容,核查系统能否有效过滤并正确转义用户输入,防止执行恶意脚本。最后,进行文件上传漏洞测试。尝试上传携带恶意代码的文件,验证系统对上传文件的检查与过滤机制是否完善。测试的期望结果是系统始终能够拒绝未经授权用户的访问请求,合规处理输入数据,有效遏制恶意脚本的运行,严格把控上传文件的安全性,并在遭遇安全威胁时给出准确且适当的错误提示信息。
对基于计算机通信技术的网络远程控制系统进行测试得到测试数据,将响应时间和吞吐量作为性能指标进行分析。
响应时间指系统从接收到请求再到返回响应所花费的时间,可表示为
式中:RT为响应时间;TT为所有请求的总耗时;NR为请求总数。
吞吐量指在单位时间内系统处理的请求数量,可表示为
式中:TR为吞吐量;TP为测试持续的时间。
开展一次持续30 min 的性能测试,期间共发送1 000 个请求,不同时段的平均响应时间和吞吐量的测试情况如表1 所示。
表1 不同时段的平均响应时间和吞吐量的测试情况
从表1 可以看出,在0 ~10 min 即测试开始时,平均响应时间随请求数量的增加而增加,原因在于系统未充分运行,尚无能力处理更多请求。随着时间的推移,系统逐渐能够应对不断增加的请求数量,平均响应时间不断缩短,吞吐量逐渐增大。从结果上看,在请求数量较大的情况下,系统能够有效维持较低的响应时间和较高的吞吐量,有能力满足大量用户的访问需求。
基于计算机通信技术对网络远程控制系统进行设计,实现了高效、稳定的远程控制功能。通过设计系统架构和测试系统功能,阐述系统在测试用户登录、设备列表显示以及远程控制等方面的具体步骤,提出针对防范未授权访问、SQL 注入、跨站脚本攻击等安全威胁的安全测试流程。响应时间和吞吐量的性能测试结果显示,请求数量较大时,基于计算机通信技术的网络远程控制系统可以维持稳定的响应时间和合理的资源利用率,性能表现良好。