基于动态通讯元的TCP客户端新型通讯模型的研究与应用

时间:2022-09-01 09:46:54

基于动态通讯元的TCP客户端新型通讯模型的研究与应用

摘要:该文针对复杂协议的网络通讯,建立了一个全新的TCP (Transmission Control Protocol)客户端的通讯模型。该模型提出了一个网络通讯的最小单位——通讯元,利用解释结构模型分析复杂协议的通讯元图谱,将通讯元动态地添加到处理线程中进行匹配,简化了处理过程并极大提高了运行效率。同时该文利用该模型设计出了一个通用的TCP客户端模块,封装了通讯底层的细节,提供了方便的接口。将该模块应用于城市消防远程监控软件设计中,实际运行表明:该模型具有简单的接口和稳定、高效的运行机制。

关键词: TCP;解析结构模型;动态通讯元

中图分类号:TN915 文献标识码:A 文章编号:1009-3044(2013)04-0702-05

The Research and Application of a New TCP Client Model Based on Dynamic Communication Unit

FANG Jian-jie

(College of Information Science & Technology, Xiamen University, Xiamen 361005, China)

Abstract: In this paper we proposed a new communication model of TCP client (Transmission Control Protocol) to solve the problem of the network communication which has complex protocols. The idea of communication unit which is the smallest unit of a network communication is advanced, so that we can describe the complex protocols by these units. Then analyze the communication units pattern of the complex protocol by means of interpretive structure modeling(ISM). it turns out that it will be a much more effective way to add communication units dynamically into the processing thread, and at the same time the process could be simplified. Based on this model a general TCP client model has been designed with lower-layer-protocol encapsulated inside and convenient interfaces accessible. This module has been applied in the city elevator remote monitoring system, and it has a very good performance because of its simple interfaces, stabilization and high effectiveness.

Key words:TCP; interpretive structural mode; dynamic communication unit

在传统的C/S协议通讯架构设计中,针对一个客户端主体通常存在着数以百千计的协议,其中大部分协议更是存在先后次序和分支以形成众多协议链和交叉协议网。通常CS通讯架构设计采用接收数据后遍历所有协议以获得匹配操作[1]。该种通讯方式在简单协议的CS通讯中较为高效,但是对于协议数量达到成千上万的复杂协议通讯,对于接收的每一次数据都需要遍历一次协议组,对于频繁的协议通讯而言是巨大的系统开销,并导致通讯效率降低。该文提出网络协议通讯中通讯最小单位——通讯元的概念,并通过解释结构模型分析通讯元协议链,将其进行级间分解,利用协议链通讯的次序关系动态加载/卸载通讯元,使得接收数据后需要匹配的协议数量大幅度降低,极大地提高了通讯效率。

1 通讯模型的建立

1.1 通讯元定义

通讯的基本操作有两种:接收数据,记为[R(Xi)];发送数据,记为[S(Xi)]。其中[Xi]表示数据,这里的数据是广义的数据,包括命令、符号等。

通讯的收发操作之间的关系符号记为[->]。例如,一个简单双机通讯,A机向B机发送数据[X1],B机收到[X1]则发送[X2],A机收到[X2]则发送[X3]……上述通讯关系可以表示为A机:[S(X1)->φ]([φ]表示空),[R(X2)->S(X3)]……;B机:[R(X1)->S(X2)],……

通讯协议正是这种你来我往的信息交互规则[2]。该文通过数学符号来描述通讯协议,从协议的普适结构上进行分析。并定义一个最小关系的基本通讯操作为“通讯元”。因此通讯元有四种:

1)仅接收型通讯元,记为[R(Xi)->φ],[φ]为空,表示该通讯元对数据[Xi]进行接收,接收到数据[Xi],做相应处理后,不再向对方主机发送数据。适合作为客户端一次通讯的结束,即客户端收到服务器数据后不再向服务器发送数据请求。

2)仅发送型通讯元,记为[S(Xi)->φ],[φ]为空,表示该通讯元主动向对方主机发送数据[Xi],该数据多为请求(命令)类型的数据。适合作为客户端一次通讯的开始,即客户端向服务器发送数据请求。

3)接收发送型通讯元,记为[R(Xi)->S(Xi')]表示该通讯元若收到数据[Xi]则发送[Xi'],即客户端与服务器交互过程。

4)发送接收型通讯元,记为[S(Xi)->R(Xi')];表示该通讯元在发送数据[Xi]后,等待接收对方主机发送[Xi']。这种类型的通讯元在客户端模型中不常用。因为该类型的通讯元可以通过转化成接收发送型通讯元[R(Xi)->S(Xi')]来描述同样的交互过程。

1.2 建立通讯模型

所有的通讯协议均可用通讯元进行拆分,但通讯元之间的关系并不是独立的,上述简单双机通讯的例子中,[S(X1)->φ]与[R(X2)->S(X3)]就存在着连接关系,于是定义一系列相关通讯元连接成的链式结构为“协议链”。上述简单双机通讯的通讯协议正是由一条“协议链”构成。

实际应用中通讯协议一般由多条“协议链”构成。“协议链”允许存在分支,形成“协议树”,例如上述简单通讯例子B机收到[X1]后发送[X2]或[X4],则A机的“协议链”出现分支,分支一:[R(X2)->S(X3)];分支二:[R(X4)->S(X5)]。“协议链”中通讯元存在递阶层次关系,我们把这种递阶层次关系定义为“协议链”的“层”,“协议链”层数在两层以上的通讯协议,该文称之为复杂协议,也是本文研究的对象之一。

1.3 使用解释结构模型分析复杂协议

在引入通讯元概念的基础上,以通讯元为节点,以通讯元之间的层次关系为边(有向边)。复杂协议则可以通过有向图描述出来,称该有向图为“通讯元图谱”。以一个可划分为12个通讯元的复杂协议为例,其“通讯元图谱”如图2所示。

用解释结构模型(ISM)方面对其进行分析[3],可建立邻阶矩阵如式(1):

计算得到可达矩阵如式 (2):

对其进行区域分解和级间分解,获得最后的递阶有向图,即该复杂协议的解释结构模型如图3所示。

如图3所示,利用解释结构模型将原有的12个通讯元的复杂网络模型分为了5层,接收到协议数据时不必遍历整个通讯元组,只需遍历现有的通讯元队列并卸载匹配通讯元,加载下层通讯元。以上协议可以分为4条平行协议链,当接收到协议数据时,最差情况下只要遍历四个通讯元即可。

2 通讯架构

2.1 传统通讯模型

传统通讯模型在接收到一次协议数据后需要遍历所有协议[4-5],如图4,在协议量巨大的情况下系统效率十分低下。

2.2 基于动态通讯元的通讯模型

基于动态通讯元的通讯模型如图5,定义了一个通讯元队列用以存放活动通讯元,当系统产生新通讯元后就将其加入队列,系统接收到数据后遍历通讯元队列寻找匹配通讯元,完成相应操作并将其移出队列。若此通讯元为协议链末尾,则队列长度减短,若此通讯元存在下层通讯元则队列加载新通讯元等待数据,若该通讯元所在的协议链是即时回复型协议,则将新通讯元插入队列前部以提高遍历效率,因为下次接收数据为此通讯元的概率较高。采用此通讯模型后,接收数据所需遍历通讯队列长度维持在一个很低的水平,大大提高系统运行效率,并降低系统耦合性,利于系统分析设计。

3 效率分析

假设在服务端和客户端之间有[N]条协议;每隔时间[A]生成一个通讯元;遍历一个协议需要消耗时间为[B];协议链平均长度记为[M];通讯成功率记为[R];一次通讯时间记为[C],注意到[C

3.1 传统通讯模型效率

传统通讯模型处理一次数据平均消耗时间如式(3):

[T=B2RN] (3)

3.2 新型通讯模型效率

基于动态协议元的通讯模型处理一次数据平均消耗时间如式(4):

[T=B×NM×M×CR÷A=CAB2RN] (4)

注意到[T]和[M]相互独立,一般来说[C/A

如图6,新模型的斜率[K]远小于传统模型,新模型大约可以承受[AC]倍于传统模型的协议规模,通常[A/C>100]。然而,新模型可以进一步改进以达到更高的效率。在系统中,不同协议元的响应时间不同,对于立即响应型的协议,新的协议元可以插入遍历队列前方,因为当系统接收到新数据时,该协议元有更高的几率得到匹配[6]。同时系统记录协议元出现的概率,对于经常出现的协议元则将其排入队列较前方。改进后的新模型具有更高的系统效率,如图7,可以看到改进的新模型进一步降低了系统消耗。

3.3 系统测试

我们将新模型应用与城市电梯远程监控系统设计中,以解决大规模协议的问题。通过系统测试,我们得到表1的数据。

4 结论

随着系统中通讯协议规模的增长,新模型可以更多地节约系统资源,大大降低系统消耗。对于协议链不长的系统来说,需要扫描的协议链队列始终维持在很短的水平。与传统模型相比,基于动态通讯元的新模型在于处理大规模协议的系统中有着明显的优势。将其应用于城市电梯远程监控系统中,得到了很好的效果。

参考文献:

[1] Richter J. Advanced Windows [M]. 3rd ed.USA: Microsoft Press, 1997.

[2] Beveridge J, Wiener R. Multithreading Applications in Win32: The Complete Guide to Threads (Addison-Wesley Microsoft Technology Series) [M]. USA: Addson-Wesley Professional, 1996.

[3] Wang Y L. Introduction to Systems Engineering [M].Machinery Industry Press, Beijing ,1982.

[4] Anthony Jones, Jim Ohlund. Network Programming for Microsoft Windows [M]. 2nd edition. USA: Microsoft Press, 2002.

[5] Atanasova M, Cleeton L, Flasko M. Get Connected With The .Net Framework 3.5[J].MSDN Magazine, Microsoft Press, 2007:42-49.

[6] Kiely D. Get Closer to the Wire with High-Performance Sockets in .NET[J]. MSDN Magazine, Microsoft Press, 2005.

上一篇:高职院校校园网的组建与应用研究 下一篇:基于协议分析的分布式入侵检测系统的研究