刘伟 蒋会哲
摘 要:科技不断进步,互联网已经与人们的生活密不可分,传输控制协议(TCP)通信在计算机领域变得更加普及,而且一般是应用在计算机的监控系统中。本文重点对计算的控制系统相应的编码形式和编码的转化技术,校验协议的方式以及收发数据的技术进行了分析,并由此设计出了一个主控机,这个主控机是依据TCP的客户机设计的监控系统的测试软件,可以同时实现自动发送和手动发送两种方式针对受控机展开测试。
关键词:编码;解码;TCP;校验
1 研究背景
21世纪时网络信息时代,互联网进入了千家万户,企业通过网络信息平台与市场直接对接,人们的生活和企业的经营活动走进了方便和快捷的信息时代,人们越来越离不开网络。美国将互联网作为其重要的发展战略,而在我国2010年的两会时期,互联网成为了政府工作的一部分进行报告,互联网成为了中国五大新兴的产业之一。作为将来信息技术发展的重要部分,互联网的发展离不开科学。
互联网基本要素有RFID和传感器(感知),尤其是依据互联网进行信息传输作为互联网的通信形式之一,所有系统的重要核心都是数据的处理。对监控系统与计算机结合是互联网的技术具体应用体现,两者有着相似的技术方面的基础。
有研究者已经研究出了一个可以通用在计算机上的多功能监控系统的测试软件,实现了对串口设备以及系统的测试。在本文中依据TCP的客户机设计的监控系统的测试软件(Test TCP)不仅可对远程的感知系统展开查询,同时也可对其控制系统进行控制命令的发送,其对互联网的整个系统以及计算机的监控系统研发、调试都有着深远的意义。
2 设计中的关键问题
计算机要想让监控系统发挥作用,都需要对三个关键性的问题提出解决的方案,也就是计算机的监控系统通信协议具体的编码形式,校验数据的方式和发送接受数据的可靠性实现。在这一节中对这三个问题进行具体的探讨和解决,希望可以给开发监控系统的人员提供参考。
2.1 编码和解码形式
计算机的监控系统通信协议一般主要有3种不同的编码形式,其一字节数组的编码形式;其二普通的字符串编码形式;其三十六进制的字符串编码形式。需要采集的相关数据来自于不同的领域,所以在通常情况下,监控系统是采取第一种形式进行编码,即十六进制的数组对通信协议进行描述。此编码的形式简单而且高效,虽然来自不同的领域数据,但都可以用采用这一编码形式。然而,缺点也很明显,例如加入或者删掉其中的几个元素会产生诸多不便,并且在字节的数组长度确定的条件下,改变也是不容易的。
第二种编码形式(问号代表不可见的字符)采取的是普通的字符串形式对通信协议进行描述,这种编码形式大部分情况下是用在唯有包含着可见的字符时,也就是当ASCII值在一到一百二十七的范围内时,典型情况例如解调器通信协议调制的时候。在计算机的C语言和VB等类似的编程工具中,0被用作字符串结尾码,但是第二种编码形式却不能让0这个字节出现在字符串当中。
第三种编码形式是选取十六位进制的字符串对通信协议进行描述,其优点在于通用性非常好,可以充分的利用较为高级的语言对应的字符串进行灵活的处理,当加入或者删除一些子字符串时更加方便,同时在追加一些结尾码时也方便了许多。
计算机的监控系统里,一般是选取一个字节用来表示八个开关所处的状态,其中0是说明开关处于打开的状态,即断路;1是说明开关处于闭合的状态,即短路。或者1用来表示断路,0来表示短路,这样也是可以的。作为通信协议的一个重要部分,开关字节可发送数据包或用来检测一下开关的状态。
2.2 校验数据的方式
计算机的监控系统通信协议主要包括以下一个方面,一前导字符;二地址;三读写功能的标志码;四校验码;五结尾码。一般模块的类型如果一样,那前导字符是相同的。区分模块的类型是采用地址或者标识,主要是因为在同一计算机上有时候会连接着多个不同的模块。读功能的标志码是为了读取出模块所处状态或者对应的数据,写功能的标志码是为了将模块所处的工作形式或者控制输出的开关进行设置。校验码是对数据块采取校验措施。如果设备的类型一样,结尾码也是一样的,通常有CR或者CRLF两种结尾码。主控机和受控机间的传输数据要经过校验,若数据是正确的,则进行处理,若错误则丢弃。
2.3 发送和接收数据
在计算机中编程实践是通过TCP的客户机通信的,通常是TCPCLIENT类。选取远程的服务器与端口号,使其成为TCPCLIENT创建实例的CLIENT,之后再把发送的文本消息变换成字节的数组。最终STREAM的写方法进行数据的发送操作。采用的TCPCLIENT的设计上存在一些问题,并且连接的属性也变得不是很可靠,仅仅能够表现出近期的状态,所以试着去发送或者接收消息来确定一下当前所处的状态。此外,TCPCLIENT是没有数据已经到达的提示,也没有数据是错误的提示。
综上,只有对TCP的客户端类进行特别的自定义,启动后台的多线程,读取出远程之外的主机发送过来的数据,才可以有效地进行数据的接收。依据STREAM的可读取标志的指示来观察是不是支持读取。假设可以支持,那么可以定义一个BYTES,去读取出可以被读取的每个字节。
数据的发送很简单,可直接STREAM的写方法,也可以在时间上随意的控制,然而数据的接收会出现麻烦,有可能传输的网络数据过程并不是很顺畅。所以说为了让通信的过程更加的可靠,可以将每个间隔时间中的数据都合并在一起形成一个数据包来处理。
3 主控机的设计
TESTTCP最基本功能为发挥主控机的作用,测试TCP的服务器设备或者系统,从而得到通信的参数数值,为了系统的开发做出了重要的准备工作。
3.1 TESTTCP软件的模拟
TESTTCP软件的模拟具体模型如下所述。当系统在运行时,第一步在系统的设置界面进行操作,设置一下远程的服务器IP具体地址和开放端口号,还有传输数据时的延迟时间,最后在协议设置的界面进行对通信协议相应的校验形式、相应的结尾码以及显示和工作的方式等等。在协议库里面放着的为主控机与受控机间的协议,在错误记录里面放着的是针对受控机测试的相应结果。
3.2 TESTTCP的运作流程
TESTTCP的运作流程为,第一设置服务器的参数;第二设置协议的参数;第三设置具体工作的方式。TESTTCP采用自动发送的方式进行工作时,首先读取协议库里面主控机的协议,根据之前设定的间隔时间,增添校验码与结尾码,发送参数。受控机接到数据后开始响应,并自动开始记录。可保存产生错误的数据包,并附有时间戳,最后可针对通信准确率做统计分析。
采用手动发送的方式,仅仅是单行的文本框里面的数据被自行增添了校验码与结尾码,进而被发送出去。而受控机的响应数据确在单行的和多行的文本框里面都被显示出来。
4 总结
依据TCP的客户机设计的监控系统的测试软件,可以支持多种多样的编码形式以及校验形式,其显示的方式也是可以根据情况进行选择的,在软件中存在通信的协议库和通信的错误数据包记录,此检测软件也可以当作主控机并采用自动的发送方式和手动的发送方式两种方式中的一种对受控机测试。
参考文献
[1] 刘海涛. 物联网技术应用[M]. 北京: 机械工程出版社, 2011.11
[2] 马玉春. 通用多功能计算机监控系统测试软件: 中国, 2011SR025314[P].2011-5-3
[3] 马玉春. 计算机监控系统开发与实战. 北京: 机械工業出版社,2012.4
作者简介
刘伟(1981-),男,汉族,河南商丘人,助教,郑州铁路职业技术学院,通信,研究方向:通信与信号处理。