时间:2023-03-02 14:56:28
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇通信协议范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
中图分类号:TN918 文献标识码:A 文章编号:1009-914X(2016)09-0128-01
引言
随着科学技术的飞速发展,量子信息学逐渐得到人们的关注与重视,在近代物理学、计算机科学等领域都有所涉及。通过量子力学的基础,不断的发展与延伸。量子信息学,是量子力学与信息科学相结合的产物,是以量子力学的态叠加原理为基础,研究信息处理的一门新兴前沿科学。包括量子密码术、量子通信、量子计算机等几个方面。我们在这里,着重的了解一些量子通信。
一、 量子通信协议概念
1,量子通信协议定义
量子通信系统的基本部件包括量子态发生器、量子通道和量子测量装置。按其所传输的信息是经典还是量子而分为两类。前者主要用于量子密钥的传输,后者则可用于量子隐形传态和量子纠缠的分发。其中隐形传送是指脱离实物的一种“完全”的信息传送。可以想象:先提取原物的所有信息,然后将这些信息传送到接收地点,接收者依据这些信息,选取与构成原物完全相同的基本单元,制造出原物完美的复制品。实际上是一种对于通信地保密性的传输。是一种在理论上可以保证通信绝对安全的一种通信方式。由于量子力学中的不确定性原理,是不允许精确地提取原物的全部信息,因此长期以来,隐形传送不过是一种幻想而已。
2,量子通信与光通信的区别
量子通信与光通信的区别,在于在通信中用的光的强度是不同的。光通信一般采用是强光,包括无线电、微波、光缆、电缆等具体形式。通过偏振或相位等的调制方式来实现。量子通信讨论的是光子级别的很弱的光,通过对光子态的调制,但是主要利用了光子的特性,量子态不可克隆原理和海森堡不确定性关系。这也是区别于光通信的重点。
二、量子通信基本方式
量子通信在量子力学原理的基础上,通过量子态编码和携带信息进行加工处理,将信息进行传递。只要包括:量子隐形传态、量子密钥分发等,下面主要介绍这两个组成部分:
1,量子隐形传态
量子隐形传态,又称量子遥传、量子隐形传输。经由经典通道和EPR 通道传送未知量子态。利用分散量子缠结与一些物理讯息的转换来传送量子态至任意距离的位置的技术。它传输是量子态携带的量子信息。想要实现量子隐形传态,要求接收方和发送方拥有一对共享的EPR对,即BELL态(贝尔态)。发送方对他的一半EPR对与发送的信息所在的粒子进行结合,而接收方所有的另一半EPR对将在瞬间坍缩为另一状态。根据这条信息,接收方对自己所拥有的另一半EPR对做相应幺正变换即可恢复原本信息。到乙地,根据这些信息,在乙地构造出原量子态的全貌。量子隐形传态大致可以这样描述:准备一对纠缠光子对,一个光子发送给有原始量子态(即第三个光子)的甲方,另一个光子发送给要复制第三光子的量子态的乙方。甲方让收到的一个光子与第三光子相互干涉(“再纠缠”),再随机选取偏振片的方向测量干涉的结果,将测量方向与结果通过普通信道告诉乙方;乙方据此选择相应的测量方向测量他收到的光子,就能使该光子处于第三光子的量子态。
量子隐形传态作为量子通信中最简单的一种,是实现全球量子通信网络的可行性的前提研究。它的存在与应用,可以完全的保证用户的信息安全,通信保密,同时如果出现有人窃听的现象,将会及时的进行信息的改变,保证内容的“独一无二”。
2,量子密钥分发
量子密钥分发以量子物理与信息学为基础,是量子密码研究方向中不可缺少的重要部分。被认为是安全性最高的加密方式,实现绝对安全的密码体制。当然这只是理论上的内容,在现实生活中还是有一定的差距。只是理论上具有无条件的安全性。1969年提出用量子力学的理论知识进行加密信息处理。到了1984年,第一次提出量子密钥分发协议,即BB84协议。随后又提出B92协议。2007年,中国科学技术大学院士潘建伟小组在国际上首次实现百公里量级的诱骗态量子密钥分发,解决了非理想单光子源带来的安全漏洞。后又与美国斯坦福大学联合开发了国际上迄今为止最先进的室温通信波段单光子探测器――基于周期极化铌酸锂波导的上转换探测器。解决了现实环境中单光子探测系统易被黑客攻击的安全隐患。保证了非理想光源系统的安全性。生成量子密钥大致为:准备一批纠缠光子对,一个光子发送给发信方,另一个光子发送给收信方。测量光子极化方向的偏振片的方位约定好两种。两人每次测量一个光子时选择的方向都是随机的,但要记录下每次选择的方向,当然也要记录下每次测量的结果,有光子通过偏振片就记1,无光子通过则记0。通过普通信道两人交换测量方向的记录,那些测量方向不一致的测量结果的记录都舍去不要,剩下的那些测量方向相同所对应的测量结果,两人应一致,这一致的记录就可作为两人共同的密钥。
总结
经典通信较光量子通信相比,量子通信具有传统通信方式所不具备的绝对安全特性。具有保密性强、大容量、远距离传输等特点。量子通信不仅在军事、国防等领域具有重要的作用,而且会极大地促进国民经济的发展。逐渐走进人们的日常生活。为了让量子通信从理论走到现实,从上世纪90年代开始,国内外科学家做了大量的研究工作。自1993年美国IBM的研究人员提出量子通信理论以来,美国国家科学基金会和国防高级研究计划局都对此项目进行了深入的研究,欧盟在1999年集中国际力量致力于量子通信的研究,研究项目多达12个,日本邮政省把量子通信作为21世纪的战略项目。我国从上世纪80年代开始从事量子光学领域的研究,近几年来,中国科学技术大学的量子研究小组在量子通信方面取得了突出的成绩。
参考文献
[1]莫玲 - 基于专利分析的欧盟量子通信技术发展现状研究《淮北师范大学学报:自然科学版》 - 2015.
[2]徐兵杰,刘文林,毛钧庆,量子通信技术发展现状及面临的问题研究《通信技术》 - 2014.
[3]胡广军,王建 -量子通信技术发展现状及发展趋势研究 《中国新通信》 - 2014.
[4]肖玲玲,金成城 - 基于专利分析的量子通信技术发展研究《全球科技经济t望》 - 2015.
不同的网络协议都有其存在的必要,每一种协议都有它所主要依靠的操作系统和工作环境。在一个网络上运行得很好的通信协议,在另一个看起来很相似的网络上可能完全不适合。因此,组建网络时通信协议的选择尤为重要。
无论是几台机器组成的Windows95/98对等网,还是规模较大的WindowsNT、Novell或Unix/Xenix局域网,凡是亲自组建或管理过网络的人,都碰到过如何选择和配置网络通信协议的新问题。由于许多用户对网络中的协议及其功能特征不是很清楚,所以在组网中经常选用了不符合自身网络特征的通信协议。其结果就造成了网络无法接通,或者是速度太慢,工作不稳定等现象而影响了网络的可靠性。下面我就分析一下各个协议的特征和性能借以说明我配置协议的理论和立场。
一、通信协议
组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议(Protocol)是网络设备用来通信的一套规则,这套规则可以理解为一种彼此都能听得懂的公用语言。有关网络中的协议可以概括为两类摘要:“内部协议”和“外部协议”下面分别予以介绍。
1.内部协议
1978年,国际标准化组织(ISO)为网络通信制定了一个标准模式,称为OSI/RM(OpenSystemInterconnect/ReferenceModel,开放系统互联参考模型)体系结构。该结构共分七层,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,任何一个网络设备的上下层之间都有其特定的协议形式,同时两个设备(如工作站和服务器)的同层之间也有其使用的协议约定。在这里,我们将这种上下层之间和同层之间的协议全部定义为“内部协议”。内部协议在组网中一般很少涉及到,它主要提供给网络开发人员使用。假如你只是为了组建一个网络,可不去理会内部协议。
2.外部协议
外部协议即我们组网时所必须选择的协议。由于它直接负责计算机之间的相互通信,所以通常称为网络通信协议。自从网络问世以来,有许多公司投入到了通信协议的开发中,如IBM、Banyan、Novell、Microsoft等。每家公司开发的协议,最初一般是为了满足自己的网络通信,但随着网络应用的普及,不同网络之间进行互联的要求越来越迫切,因此通信协议就成为解决网络之间互联的关键技术。就像使用不同母语的人和人之间需要一种通用语言才能交谈一样,网络之间的通信也需要一种通用语言,这种通用语言就是通信协议。目前,局域网中常用的通信协议(外部协议)主要有NetBEUI、IPX/SPX及其兼容协议和TCP/IP三类。
3.选择网络通信协议的原则
我们在选择通信协议时一般应遵循以下的原则摘要:
第
一、所选协议要和网络结构和功能相一致。如你的网络存在多个网段或要通过路由器相连时,就不能使用不具备路由和跨网段操作功能的NetBEUI协议,而必须选择IPX/SPX或TCP/IP等协议。另外,假如你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择协议时应选择占用内存小和带宽利用率高的协议,如NetBEUI。当你的网络规模较大,且网络结构复杂时,应选择可管理性和可扩充性较好的协议,如TCP/IP。
第
二、除非凡情况外,一个网络尽量只选择一种通信协议。现实中许多人的做法是一次选择多个协议,或选择系统所提供的所有协议,其实这样做是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。一方面影响了计算机的运行速度,另一方面不利于网络的管理。事实上一个网络中一般一种通信协议就可以满足需要。
第
三、注重协议的版本。每个协议都有它的发展和完善过程,因而出现了不同的版本,每个版本的协议都有它最为合适的网络环境。从整体来看,高版本协议的功能和性能要比低版本好。所以在选择时,在满足网络功能要求的前提下,应尽量选择高版本的通信协议。
第
四、协议的一致性。假如要让两台实现互联的计算机间进行对话,它们两者使用的通信协议必须相同。否则中间还需要一个“翻译”进行不同协议的转换,这样不仅影响通信速度,同时也不利于网络的平安和稳定运行。
二、局域网中常用的三种通信协议
BEUI协议
NetBEUI通信协议的特征。NetBEUI(NetBIOSExtendedUserInterface,用户扩展接口)由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。NetBEUI也是微软最钟爱的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品,如DOS、LANManager、Windows3.x和WindowsforWorkgroup中主要选择NetBEUI作为自己的通信协议。在微软如今的主流产品,如Windows95/98和WindowsNT中,NetBEUI已成为其固有的缺省协议。有人将WinNT定位为低端网络服务器操作系统,这和微软的产品过于依靠NetBEUI有直接的关系。NetBEUI是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即NetBEUI不具备路由功能。假如你在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,将不能使用NetBEUI通信协议。否则,和不同网卡(每一块网卡连接一个网段)相连的设备之间,以及不同的局域网之间将无法进行通信。
虽然NetBEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在三种通信协议中,NetBEUI占用内存最少,在网络中基本不需要任何配置。尤其在微软产品几乎独占PC操作系统的今天,它很适合于广大的网络初学者使用。
NetBEUI和NetBIOS之间的关系。细心的读者可能已经发现,NetBEUI中包含一个网络接口标准NetBIOS。NetBIOS(NetworkBasicInput/OutputSystem,网络基本输入/输出系统)是IBM在1983年开发的一套用于实现PC间相互通信的标准,其目的是开发一种仅仅在小型局域网上使用的通信规范。该网络由PC组成,最大用户数不超过30个,其特征是突出一个“小”字。后来,IBM发现NetBIOS存在的许多缺陷,所以于1985年对其进行了改进,推出了NetBEUI通信协议。随即,微软将NetBEUI作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在NetBEUI中增加了叫做SMB(ServerMessageBlocks,服务器消息块)的组成部分,以降低网络的通信堵塞。为此,有时将NetBEUI协议也称为“SMB协议”。
人们常将NetBIOS和NetBEUI混淆起来,其实NetBIOS只能算是一个网络应用程序的接口规范,是NetBEUI的基础,它不具有严格的通信协议功能。而NetBEUI是建立在NetBIOS基础之上的一个网络传输协议。
2.IPX/SPX及其兼容协议
IPX/SPX通信协议的特征。IPX/SPX(InternetworkPacketeXchange/SequencesPacketeXchange,网际包交换/顺序包交换)是Novell公司的通信协议集。和NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有很强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的新问题,具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在WindowsNT网络和由Windows95/98组成的对等网中,无法直接使用IPX/SPX通信协议。
IPX/SPX协议的工作方式。IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。Novell网络中的网络地址由两部分组成摘要:标明物理网段的“网络ID”和标明非凡设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有的网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的唯一性,才使IPX/SPX具有较强的路由功能。
在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,假如接收节点在同一网段内,就直接按该节点的ID将数据传给它;假如接收节点是远程的(不在同一网段内,或位于不同的局域网中),数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以我们将IPX/SPX也叫做“Novell的协议集”。
NWLink通信协议。WindowsNT中提供了两个IPX/SPX的兼容协议摘要:“NWLinkSPX/SPX兼容协议”和“NWLinkNetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继续IPX/SPX协议优点的同时,更适应了微软的操作系统和网络环境。WindowsNT网络和Windows95/98的用户,可以利用NWLink协议获得NetWare服务器的服务。假如你的网络从Novell环境转向微软平台,或两种平台共存时,NWLink通信协议是最好的选择。不过在使用NWLink协议时,其中“NWLinkIPX/SPX兼容协议”类似于Windows95/98中的“IPX/SPX兼容协议”,它只能作为客户端的协议实现对NetWare服务器的访问,离开了NetWare服务器,此兼容协议将失去功能;而“NWLinkNetBIOS”协议不但可在NetWare服务器和WindowsNT之间传递信息,而且能够用于WindowsNT、Windows95/98相互之间任意通信。
3.TCP/IP协议
TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/网际协议)是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP最早出现在Unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,TCP/IP也是Internet的基础协议。
TCP/IP通信协议的特征。TCP/IP具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为它的使用带来了许多不便,在使用NetBEUI和IPX/SPX及其兼容协议时都不需要进行配置,而TCP/IP协议在使用时首先要进行复杂的设置。每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。如此复杂的设置,对于一些初识网络的用户来说的确带来了不便。不过,在WindowsNT中提供了一个称为动态主机配置协议(DHCP)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作上的负担,并避免了出错。当然,DHCP所拥有的功能必须要有DHCP服务器才能实现。
同IPX/SPX及其兼容协议一样,TCP/IP也是一种可路由的协议。但是,两者存在着一些差别。TCP/IP的地址是分级的,这使得它很轻易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行TCP/IP协议的服务器(如WindowsNT服务器)还可以被配置成TCP/IP路由器。和TCP/IP不同的是,IPX/SPX协议中的IPX使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。
Windows95/98中的TCP/IP协议。Windows95/98的用户不但可以使用TCP/IP组建对等网,而且可以方便地接入其它的服务器。值得注重的是,假如Windows95/98工作站只安装了TCP/IP协议,它是不能直接加入WindowsNT域的。虽然该工作站可通过运行在WindowsNT服务器上的服务器(如ProxyServer)来访问Internet,但却不能通过它登录WindowsNT服务器的域。假如要让只安装TCP/IP协议的Windows95/98用户加入到WindowsNT域,还必须在Windows95/98上安装NetBEUI协议。
TCP/IP协议在局域网中的配置。在提到TCP/IP协议时,有许多用户便被其复杂的描述和配置所困扰,而不敢放心地去使用。其实就局域网用户来说,只要你把握了一些有关TCP/IP方面的知识,使用起来也非常方便。
IP地址基础知识。前面在谈到IPX/SPX协议时就已知道,IPX的地址由“网络ID”(NetWorkID)和“节点ID”(NodeID)两部分组成,IPX/SPX协议是靠IPX地址来进行网上用户的识别的。同样,TCP/IP协议也是靠自己的IP地址来识别在网上的位置和身份的,IP地址同样由“网络ID”和“节点ID”(或称HOSTID,主机地址)两部分组成。一个完整的IP地址用32位(bit)二进制数组成,每8位(1个字节)为一个段(Segment),共4段(Segment1~Segment4),段和段之间用“.”号隔开。为了便于应用,IP地址在实际使用时并不直接用二进制,而是用大家熟悉的十进制数表示,如192.168.0.1等。IP地址的完整组成摘要:“网络ID”和“节点ID”都包含在32位二进制数中。目前,IP地址主要分为A、B、C三类(除此之外,还存在D和E两类地址,现在局域网中这两类地址基本不用,故本文暂且不涉及),A类用于大型网络,B类用于中型网络,C类一般用于局域网等小型网络中。其中,A类地址中的最前面一段Segment1用来表示“网络ID”,且Segment1的8位二进制数中的第一位必须是“0”。其余3段表示“节点ID”;B类地址中,前两段用来表示“网络ID”,且Segment1的8位二进制数中的前二位必须是“10”。后两段用来表示“节点ID”;在C类地址中,前三段表示“网络ID”,且Segment1的8位二进制数中的前三位必须是“110”。最后一段Segment4用来表示“节点ID”。
值得一提的是,IP地址中的所有“网络ID”都要向一个名为InterNIC(InternetNetworkInformationCenter,互联网络信息中心)申请,而“节点ID”可以自由分配。目前可供使用的IP地址只有C类,A类和B类的资源均已用尽。不过在选用IP地址时,总的原则是摘要:网络中每个设备的IP地址必须唯一,在不同的设备上不答应出现相同的IP地址。表1列出了IP地址中的“网络ID”的有关属性,“节点ID”在互不重复的情况下由用户自由分配。其实,将IP地址进行分类,主要是为了满足网络的互联。假如你的网络是一个封闭式的网络,只要在保证每个设备的IP地址唯一的前提下,三类地址中的任意一个都可以直接使用(为以防万一,你还是老老实实地使用C类IP地址为好)。
子网掩码。对IP地址的解释称之为子网掩码。从名称可以看出,子网掩码是用于对子网的管理,主要是在多网段环境中对IP地址中的“网络ID”进行扩展。举个例子来说明摘要:例如某个节点的IP地址为192.168.0.1,它是一个C类网。其中前面三段共24位用来表示“网络ID”,是非常珍贵的资源;而最后一段共8位可以作为“节点ID”自由分配。但是,假如公司的局域网是分段管理的,或者该网络是由多个局域网互联而成,是否要给每个网段或每个局域网都申请分配一个“网络ID”呢?这显然是不合理的。此时,我们可以使用子网掩码的功能,将其中一个或几个节点的IP地址全部充当成“网络ID”来使用,用来扩展“网络ID”不足的困难。
当我们将某一节点的IP地址如192.168.0.1已设置成一个“网络ID”时,网络上的其它设备又怎样知道它是一个“网络ID”,而不是一个节点IP地址呢?这就要靠子网掩码来告知。子网掩码是这样做的摘要:假如某一位的二进制数是“1”,它就知道是“网络ID”的一部分;假如是“0”便认作是“节点ID”的一部分。如将192.168.0.1当做“网络ID”时,其子网掩码就是11111111.11111111.11111111.00000001,对应的十进制数表示为255.255.255.1。否则它的子网掩码就是11111111.11111111.11111111.00000000,对应的十进制数表示应为255.255.255.0。有了子网掩码,便可方便地实现用户跨网段或跨网络操作。不过,为了让子网掩码能够正常工作,同一子网中的所有设备都必须支持子网掩码,且子网掩码相同。表2列出了A、B、C三类网络的缺省子网掩码。
网关。网关(Gateway)是用来连接异种网络的设置。它充当了一个翻译的身份,负责对不同的通信协议进行翻译,使运行不同协议的两种网络之间可以实现相互通信。如运行TCP/IP协议的WindowsNT用户要访问运行IPX/SPX协议的Novell网络资源时,则必须由网关作为中介。假如两个运行TCP/IP协议的网络之间进行互联,则可以使用WindowsNT所提供的“默认网关”(DefaultGateway)来完成。网关的地址该如何分配呢?可举一个例子往返答摘要:假如A网络的用户要访问B网络上的资源,必须在A网络中设置一个网关,该网关的地址应为B网络的“网络ID”(一般可理解为B网络服务器的IP地址)。当A网络的用户同时还要访问C网络的资源时又该怎么呢?你只需将C网络的“网络ID”添加到A网络的网关中即可。依次类推……网关连多少个网络,就拥有多少个IP地址。
主机名。网络中唯一能够代表用户或设备身份的只有IP地址。但一般情况下,众多的IP地址不轻易记忆,操作起来也不方便。为了改善这种状况,我们可给予每个用户或设备一个有意义的名称,如“WANGQUN”。至于在网络中用到“WANGQUN”时,怎样知道其对应的IP地址呢?这完全由操作系统自己完成,我们大可不必考虑。
三、通信协议的安装、设置和测试
局域网中的一些协议,在安装操作系统时会自动安装。如在安装WindowsNT或Windows95/98时,系统会自动安装NetBEUI通信协议。在安装NetWare时,系统会自动安装IPX/SPX通信协议。其中三种协议中,NetBEUI和IPX/SPX在安装后不需要进行设置就可以直接使用,但TCP/IP要经过必要的设置。所以下文主要以WindowsNT环境下的TCP/IP协议为主,介绍其安装、设置和测试方法,其他操作系统中协议的有关操作和WindowsNT基本相同,甚至更为简单。
TCP/IP通信协议的安装。在WindowsNT中,假如未安装有TCP/IP通信协议,可选择“开始/设置/控制面板/网络”,将出现“网络”对话框,选择对话框中的“协议/添加”,选取其中的TCP/IP协议,然后单击“确定”按钮。系统会询问你是否要进行“DHCP服务器”的设置?假如你的IP地址是固定的(一般是这样),可选择“否”。随后,系统开始从安装盘中复制所需的文件。
TCP/IP通信协议的设置。在“网络”对话框中选择已安装的TCP/IP协议,打开其“属性”,在指定的位置输入已分配好的“IP地址”和“子网掩码”。假如该用户还要访问其它WidnowsNT网络的资源,还可以在“默认网关”处输入网关的地址。
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)19-4412-03
即时通信系统自从1996年第一个实现ICQ出现以来,经过了迅猛的发展,当前已经不止是用于网络上的文字讯息传递,而是包括了文字,多媒体,文件传输等多项功能的复合型的通信工具。即时通信系统不止是在用户通信领域发挥作用,在工业领域,如电力,工业制造,电话通信等各行各业中都出现了专门的即时通信系统。由于即时通信系统在各行各业的发展,往往面对不同的网络环境(局域网或广域网,电缆、光缆、Wifi等不同的网络连接),不同的通信要求(文字,多媒体,文件),即时通信系统数据的传输往往受到不同的带宽(bandwidth)、时延(delay)等方面的影响,同时当前的Internet网络没有提供服务质量保证,在这样的网络中进行即时通信还要很多问题可以研究。
该论文讨论即时通信系统即时传输的技术选择,分析了TCP、UDP协议的不同点。对于一些最常用的即时通信系统进行了分析,探讨了提供博弈游戏功能的即时通信系统的解决方案。
该论文主要完成如下内容:
1) 通过对即时通信系统的研究,根据不同的业务需求,提出了对即时通信系统传输数据性能的要求。
2) 通过对不同网络协议的分析,确定不同协议的主要优缺点及使用范围
3) 结合以上两点,提出一个在Internet下提供实时文字通信、简单博弈游戏、视频与语音通信、文件传输的即时通信系统实现方案。
1 网络分析
目前常用的网络主要是局域网和广域网。局域网一般限定在较小的区域内,小于10km的范围,通常采用有线的方式连接起来。广域网是将分步在不同地区的局域网或计算机系统互连起来的。Internet就是我们日常最经常接触到的广域网。
局域网通常比广域网具有高得多的传输速率,例如,LAN的传输速率为10Mb/s,FDDI的传输速率为100Mb/s。广域网的典型速率是从56kbps到155Mbps。
从传播延迟上来看局域网内往往是在相对独立的局部范围内联,使用专门的传输介质进行联网,延迟很低,往往在几毫秒内。而广域网由于覆盖的空间广大,连接的局域网众多,传输介质不一,传输延迟可以从几毫秒到几百毫秒。
2 业务分析
即时通信是指能够即时发送和接收互联网消息等的业务。即时通信系统就是一个能够完整的完成发送和接收互联网消息的软件系统。自1998年面世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。
常用的即时通信软件如QQ,微信,skype,MSN(即将整合到skype)等都支持文字聊天,语音对话,视频会议,文件发送等即时交流,还可以查看联系人的联机状态。Skype提供了拨打手机,固话的功能。而qq也提供了即时的在线游戏功能。
为了实现一个Internet下提供实时文字通信、简单博弈游戏、文件传输的即时通信系统。必须考虑到文字聊天,语音对话,视频对话,文件传输,在线游戏,连接电话网络等功能。
1) 文字聊天功能业务分析
对于网络传输速率和延迟的要求并不高。一般的文字聊天几乎都是在两个用户单独聊天或者多个用户群聊天中发生的。至今中文打字最快的专业打字员,每分钟能输入340个中文字符左右,而英文的最高速度可达每分钟400个字母左右。以一个中文字符占4个字节(UTF-8),一个英文字符占1个字节来计算。两个用户单独聊天,如果使用中文每分钟最多需要传输2720字节,而使用英文聊天则只需要传输800字节。如果是在一个百人群中进行文字聊天,每分钟最多需要传输的字符也只有136k字节,平均为2.27kb/s。由此可见文字聊天对网络传输中的带宽、时延要求并不高。
2) 博弈游戏功能业务分析
博弈游戏是对即时通信系统的一个特殊应用。在线的博弈游戏就是通信双方发送,接收一些包含游戏信息的数据包。而博弈游戏的特性使得游戏节奏比较慢,对于网络的时延要求不是很高,因此从网络传输上,与文字聊天信息的传输相差不大(事实上,早期的在线游戏都是通过文字聊天的方式实现的。)。
3) 语音对话业务分析
语音对话是近年来对文字聊天功能的扩展,语音对话是采用语音编码的方式将用户即时的语音信号进行编码转化成数字信号,从而降低传输码率并进行数字传输,传输后解析成语音信号播放,从而达到用户即时聊天功能的过程。/*语音编码的基本方法可分为波形编码、参量编码(音源编码)和混合编码。波形编码的编码速率为64-16kb/s,语音质量好。参量编码的编码速率低,大约为2.4-1.2kb/s,自然度低,对环境噪声敏感。混合编码是将波形编码与参数编码相结合,在2.4-1.2kb/s速率上能够得到高质量的合成语音。*/目前使用最多的语音文件格式还是WMA格式(通常码率 64 Kbps),的语音文件,以两个用户单独使用语音聊天计算,需要保证至少128kb/s的速率,而如果是在一个20人的群内进行聊天,如果在服务器端不进行混音,而到客户端混音的话则需要保证1280kb/s的速率,如果在服务器端混音的话,则仍只需要128kb/s的速率。一般来说语音对话功能对网络传输中的带宽、时延提出了一定的要求
4) 视频对话功能业务分析
视频对话功能则是对语音对话的进一步扩充,提供了用户直接面对面对话的功能。目前最主要的视频技术就是H.264/MPEG-4 AVC(H.264)。H264与其它现有的视频编码标准相比,在相同的带宽下能够提供更加优秀的图象质量,和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3,提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。在实际生活中,人们一般用于网络视频聊天时的分辨率为320×240甚至更低,传输的帧数为每秒24帧,此时视频传输速率将不到300kbps。使用H264技术,可以将传输速率降低到100kbps不到。因此在视频对话中,至少需要200kbps的带宽。在实现视频会议时,可以适当的降低图形质量,但是往往随着参与用户的增多,对带宽的要求往往呈线性增长。
一般情况下,即时通信系统都会提供给用户一定的文件发送功能,文件发送需要尽快的完成,应该是尽可能的利用现有的带宽,传输速率越快越好。
3 网络协议分析
即时通信系统为了在网络上传输,必须选择合适的传输方式。根据网络七层模型,在网络上传输数据主要是选择传输层协议TCP和UDP 。
TCP是Transmission Control Protocol 传输控制协议的简称。TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。由于TCP采用三次握手,四次挥手,超时重传等机制,保证了传输的可靠性,但同时也导致了TCP传输数据的效率相对而言并不高。而且在网络拥堵的情况下,TCP由于有滑动窗口机制,就会降低自己的传输速率,导致传输效率更低。
UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它是一种无连接的协议,在网络质量令人不十分满意的环境下,数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,传输效率比TCP高。一般来说,在使用UDP的情况下,都需要在应用层实现验证,超时重传等功能,但是对比于TCP来说,还是要快很多的。而且UDP在网络拥挤的情况下,不会降低自己的传输速率,虽然对网络造成了一定负担,但是更容易抢占到带宽,保证自身用户的通信。由于NAT技术的使用,在网络中外网的计算机比较难以访问内网的计算机,因此需要使用技术手段对NAT进行穿透。
作为一个即时通信系统,需要实现文字聊天,语音对话,视频会议,文件传输等功能,根据我们之前的分析,不同的功能对于网络传输的要求是不同的。
文字聊天功能对于网络的带宽和延迟要求并不高,但是必须保证绝对不丢失聊天信息。因此在协议的选择上应该尽量倾向于可靠地连接。
在线博弈游戏功能对于网络的要求与文字聊天功能近似,在协议的选择上也应该尽量倾向于可靠地连接。
语音聊天功能,出于通话质量的要求,需要至少128kbps的带宽,同时还必须保证不丢包。在协议上应该兼顾可靠性与传输速率。
视频聊天功能除了要发送语音信息外,还要发送视频信息。视频信息即使是使用了最新的压缩技术,对于网络带宽的要求任然很高。同时视频信息也有它的特点,就是对网络传输时发生的丢包现象不是很敏感,即使发生了少量的丢包,很快就会有新的视频信息发送到客户端,刷新丢包的信息。因此视频聊天功能在协议的选择上应该以传输速率优先,兼顾可靠性。
文件传输功能则是要求在尽可能快的时间内,将文件完整的发送到另一方。一般来说文件总是会被拆分成几个数据包进行发送,在接收端组成一个完整的文件。文件传输如果是选择可靠性较高的TCP协议的话,传输速度必然比较慢。如果选择传输速度快的UDP协议,则必须解决可靠性的问题。
4 即时通信系统中对于协议的选择
当前我国的网络基础建设情况还不尽如人意。相关报告指出,国内超半数用户实际宽带下载速率低于运营商提供的名义宽带速率。因此在即时通信系统中,如何有效的利用带宽就成了一个比较敏感的问题。
文字聊天功能与即时游戏功能对于网络速率的要求不高,但是对于可靠性比较高,因此应当使用TCP协议进行传输。使用TCP协议既能满足文字聊天的功能需求,同时传输的可靠性由TCP协议负责,便于设计。
语音聊天功能对于网络的传输速率和时延要求都比较高,在带宽允许的情况下,应该采用TCP协议进行传输,但是当网络比较拥堵的情况下,应该转而使用UDP协议进行传输,同时在应用层采取校验和超时重传的功能进行可靠性保证。一个比较好的设计应该是根据网络情况,语音聊天系统自动的选择TCP协议或者是UDP协议。当TCP协议能够满足传输要求时,使用TCP协议进行传输。当网络拥堵,TCP协议传输速率下降到不能保证语音质量的情况下,则应该自动从使用TCP协议切换到UDP协议。
视频聊天功能由于对网络的传输速率要求比较高,同时能够忍受一定的丢包,因此UDP协议是比较好的选择。同时从减少服务器载荷的角度来说,也可以利用P2P技术来让聊天的对象之间直接进行视频信息的传输,使用UDP协议更加容易实现对NAT的穿透。
文件传输功能对网络的传输速率要求很高,应当尽可能的将所有带宽利用上,在应用层添加数据包校验与重传功能后,UDP就是最好的选择。
5 结束语
以上协议的选择是符合当前国内的Internet网络现状和通信技术并能够提供比较好的即时通信功能的。笔者相信在不太远的将来,随着国内网络基础建设的进一步发展,云技术的普及,新的音频、视频协议的出现,实时通信系统必将为网络用户提供更好的通信功能。
参考文献:
[1] Gary R.Wright W.Richard Stevens. TCP/IP详解 卷1:协议[M]. 范建华,胥光辉,张涛,等,译.北京:机械工业出版社,2001.
[2] Gary R.Wright W.Richard Stevens. [M].陆雪莹,蒋慧,等,译. TCP/IP详解 卷2:实现北京:机械工业出版社,2001.
网络通信协议作用是为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。
网络是一个信息交换的场所,所有接入网络的计算机都可以通过彼此之间的物理连设备进行信息交换,这种物理设备包括最常见的电缆、光缆、无线WAP和微波等,但是单纯拥有这些物理设备并不能实现信息的交换,这就好像人类的身体不能缺少大脑的支配一样,信息交换还要具备软件环境,这种“软件环境”是人类事先规定好的一些规则,被称作“协议”,有了协议,不同的电脑可以遵照相同的协议使用物理设备,并且不会造成相互之间的“不理解”。网络协议通常由语法,语义和定时关系3部分组成。网络传输协议或简称为传送协议(CommunicationsProtocol),是指计算机通信的共同语言。现在最普及的计算机通信为网络通信,所以“传送协议”一般都指计算机通信的传送协议,如:TCP/IP、NetBEUI等。然而,传送协议也存在于计算机的其他形式通信,例如:面向对象编程里面对象之间的通信;操作系统内不同程序之间的消息,都需要有一个传送协议,以确保传信双方能够沟通无间。
(来源:文章屋网 )
随着计算机技术的普及,网络信息化得到了新的发展。在这个过程中计算机网络通信协议成为该行业讨论的焦点问题。因此,本文将从通信协议的概念、原则和常见协议几个方面进行分析,力求提供新的思路。
1网络通信协议的概念
在计算机通信的过程中,两台计算机之间必须使用通信协议。网络通信协议主要是指通过信道和设备将多个不同位置的数据进行连接的通信系统,是计算机之间实现会话的必要基础。通信协议具有可靠性、有效性和层次性的特点。其本质是一种规则的体现,即计算机网络硬件和软件必须共同遵守的规则。与此同时,我们认为网络协议并不是单独存在的,常常存在于其他软件中。其中,基础型协议主要用来提供网络连接的服务,是通信服务中最基础的层面;应用型协议需要针对具体的网络服务来进行选择,不属于必备协议。从组成方面来看,网络协议主要包含三个要素,即语义、语法和时序。语义主要是对协议元素进行必要的解释,而不同的协议元素对语义的规定有所差别。语法主要是将各个协议的元素进行组合,通过计算机语言表达出相对完整的内容,是对信息数据处理的结构形式。时序则是对事件发生的顺序进行调整和说明。
2网络通信协议的原则
在计算机网络通信协议中进行信息和数据传递需要坚持三大原则。即所选协议的一致性、选择高版本协议和通信协议的单一性。所选协议的一致性是指协议需要和网络结构、功能相一致。在计算机网络通信协议中,网络通信协议需要对网络规模、兼容性和管理进行综合考虑。具体而言,当网络规模较小时,对网络的要求也随之较低。因此在网络配置的选择上重心在于网络速度。故,在协议的选择上以占用内存小和宽带利用率高的协议为主,常见的有:NetBEUI。反之,当网络规模较大时,网络结构也变得复杂,此时可以选择扩充性和管理性较强的协议,常见的有:TCP/IP。通信协议的单一性主要是指计算机之间的通信离不开通信协议,常规模式下每一个网络只能选择一种通信协议。这是因为,每一个网络通信协议均会占用计算机内存,当选择协议较多时,无疑会造成内存资源的不足和浪费,从而直接影响到计算机的运行速度,加大了网络管理的难度。选择高版本协议主要原因是:高版本协议的功能和性能相对较好。值得一提的是每个通信协议都有其最合适的网络环境。因此,使用者需要根据网络计算机的环境选择与之匹配的网络通信协议。
3常见的网络通信协议
3.1TCP/IP协议
TCP/IP协议是TCP协议和IP协议的结合体,是最重要的两种协议。最早使用该协议的是Unix系统,并且得到了市场上大多数计算机厂商和操作系统的大力支持。在互联网的使用过程中,TCP/IP协议能够提供有效地端字节传输服务。首先,传给IP层的数据流可以通过TCP分割成长度较为合适的数据段后再进行二次传输,然后根据接收端主机从IP层接收的数据包进行上传。常见的IP协议主要为IPV4协议和IPV6协议,该协议规定了在互联网传输过程中准确的数据格式,因此,在TCP/IP协议中的传输是相对严格的一个过程。与此同时,IPV6协议优于IPV4协议,具体表现在三个方面。即IPV6协议拥有更为广阔的地址空间,将IP地址长度从32位上升到128位;拥有更小的路由表,即IPV6协议遵循聚类原则,路由器可以在路由表中选择一条记录来代表一片子网,因此缩短了路由表的长度,进而提高了路由器转发数据包的速度。最后,IPV6协议协议增加了自动配置的支持功能,该功能能够使网络管理更为便利和安全,同时可以对网络层提供加密数据处理,提高了互联网安全。除此之外,TCP/IP协议本身具有较强的灵活性,可以支持不同规模的网络,连接所有的服务器和工作站。但是,在这个过程中也存在一些麻烦和问题。即在使用其他协议的过程中不需要进行配置,可以自动的分配网络所需的必要信息,减少人工操作。而TCP/IP协议需要完成相对复杂的设置过程,即每一个节点都需要IP地址、子网掩码、默认网关和主机名。此外,对于Windows中的TCP/IP协议而言,想要直接加入WindowsNT域只安装TCP/IP协议是无法登陆的,还需要在Windows系统上安装NetBEUI协议,从而顺利的访问其服务器的域中。
3.2IPX/SPX及其兼容协议
IPX/SPX及其兼容协议是由Novell公司开发的一种网络通信协议集,与NetBEUI通信协议不同的地方在于该协议较为庞大,在复杂的网络环境下依旧有强大的适应性。因此,非常适合大型网络使用。与此同时,IPX/SPX及其兼容协议可以通过网络地址信息来辨别身份,不需要任何其他配置,是其最大的优点。此外,IPX/SPX及其兼容协议所有的网络IP和节点IP都有内部的一个IPX地址,具有唯一性。然而,IPX属于NetWare自带的最底层的网络协议,其功能主要是对网络中传输的数据负责,即仅保证传输的成功,不保证传输的正确性。而SPX主要是针对数据的正确性进行核查与处理。因此,当两种协议合并在一起的时候能够具备较强的功能,弥补其劣势。因此,使用Windows的用户可以获得NetWare服务器的相关服务,当Novell环境开始转向微软平台的时候,这两种平台将实现共存。
3.3NetBEUI协议
NetBEUI协议最大的优点在于速度快、体积小和效率高,且NetBEUI协议是微软主流产品的缺省协议。该协议主要应用于小型局域网环境中,且局域网中可以实现几百台PC机的互联。NetBIOS是NetBEUI通信协议中的一个网络接口标准,其功能是加强PC机之间的通信,而内网PC机一般不超过30个。
4结语
随着局域网的组建和发展,网络兼容性和网络规则将直接影响到网络通信协议的选择。与此同时,TCP/IP协议主要用于效率高且扩展性能较强的网络,而NetBEUI通信协议比较适合小型网络。IPX/SPX及其兼容协议协议主要适用于两种平台共存的计算机网络系统。因此,在网络通信协议的选择上需要根据实际需要进行科学的、合理的选择,提高计算机的使用效率。
参考文献:
[1]刘芳基.于通信顺序进程的计算机网络通信协议形式化描述[J].信息系统工程,2016(2).
[2]吉逸,吴国新.计算机网络体系结构及通信协议[J].江苏机械制造与自动化,2011(5).
引言
随着通信技术和嵌入式计算机技术迅速发展,传感器技术也有了一定的发展,无线传感器网络是由大量的成本低、耗能低,并且具备感知能力、计算能力以及无线通信能力的微型传感器节点,通过自组织的方式构成的网络。这些由微型传感器节点构成的传感器网络,能够协作地实时监测或感知网络分布区域内的相关信息,并对这些信息进行处理,从而获得详细而准确的信息,并将其传送给需要信息的用户。无线传感器网络作为一个研究的热点,仍然存在着很多的问题,最重要的就是无线传感器网络通信协议问题,只有设计合适的协议,才能够有效的延长节点和网络的使用寿命。
1.无线传感器网络概况
无线传感器网络是集数据采集、综合处理和通信功能为一体的分布式的自组织网络,集合了传感器、控制器、计算能力以及通信能力于一身的嵌入式设备,具有众多类型的传感器,可以探测包括地震、温度、噪声等周围环境中多样的现象[1]。传感器网络实现了数据的采集、处理以及传播这三种功能,并且和通信技术、计算机技术共同构成信息技术的三大支柱,无线传感器具有网络规模大、自组织、网络动态性以及可靠性等特点[2]。无线传感器网络是一种基于特定应用的系统,对于不同的应用有不同的系统设计,目前实用的无线传感器网络系统比较少,并没有一种统一的标准来定义无线传感器网络的架构,无线传感器网络作为目前信息领域新的研究热点,涉及多学科交叉的研究领域,网络传感器网络的关键技术有网络拓扑控制、网络协议以及无线通信技术等,一般主要应用于军事、环境监测以及民用等方面,并且引起了各界的广泛关注。
2.无线传感器网络通信协议研究
无线传感器网络自身比较脆弱,容易受到强大攻击点的破坏,由于体积比较小,所带的电磁量也有限,传感器各层通信协议涉及应把节能和性能放在同等的位置,可以给传感器硬件限制加密机制,以保护无线传感器的安全性能。无线传感器网络的安全和一般网络是一样的,都需要解决机密性、完整性以及安全管理等问题,这些安全问题在网络协议的各个层次中都应该充分的考虑,可以进行加密管理或者是身份认证,要加强研究防攻击术,全面保证无线传感器的安全。我们将从物理层协议、数据链路层协议以及传输层协议和应用层协议对无线传感器网络通信协议进行研究。物理层协议研究涉及无线传感器网络采用的传输媒体[3]、频段选择和调制方式,目前主要采用的传输媒体有无线电和红外线等,无线电传输是目前的主流方式,但是需要解决频段选择、节能的编码以及调制算法设计这三个方面的问题,和无线电传输相比,红外线传输不需要复杂的调制和解调机制,接收器电路也比较简单,并且单位传输功耗较小,但是这种传输方式不能够穿透非透明物体,所以智能在一些特殊的DSN系统中使用。
数据链路层协议可以分为拓扑生成和信道接入方式这两种,拓扑生成分为平面结构和层次结构,在平面结构中所有的网络节点都是处于相同的平等地位,是不存在任何等级和层次差异的,所以也可以称为对等式结构,这种结构比较简单,不用进行任何结构的维护工作,也不容易产生瓶颈效应,具有较好的健壮性[4]。层次结构和平面结构是相互对应的,层次结构的拓展性比较好,并且便于管理。信道接入方式有三类,固定分配类和随机竞争类以及混合类。由于DSN自身在通信可靠性方面存在着一定的弱点,导致在实现传输层协议的传输控制时面临着较大的困难,目前对于传输控制主要集中在错误恢复机制,并且对于这方面的研究也比较少,如何在拓扑结构和信道质量动态变化下进行数据传输服务,将成为这一行业研究的重点。
应用层协议和具体的应用场合环境密切相关,在具体的设计中使不可以通用的,也就是说必须要针对具体的应用需求进行设计,但是应用层的主要任务就是获取数据并且进行初步的处理,这是所有场合中应用层的共同点。网络节点实现数据采集计算或着是传输功能,都是需要消耗能量的,如果在短时间内不对产生的数据量进行处理而直接传输,将会造成网络堵塞,建设网络的寿命,也就是说在考虑采用高能效网络通信协议和数据局部处理方法,是难以实现的。
3.结语
无线传感器网络很好的将传感器技术、嵌入式计算机技术和分布式信息处理技术以及无线通信技术综合在一起,并且能够协调实时地进行检测,感知和采集各种所需信息。由于无线传感器网络具有灵活、可扩展和快速部署等特点,在军事、医疗以及环境等领域有较高的应用价值,应该要加强对这一技术的研究,并广泛的应用到实际生活中。
参考文献
[1]陈得民,张威,周浩南,沈唯真.基于MEMS力传感器的智能绑带装置研制[J].自动化与仪表,2014(02).
1 网络通信协议概念
网络通信协议(network communication protocol),通常简称为网络协议(network protocol),就是对计算机之间通信的信息格式、能被收/发双方接受的传送信息内容的一组定义[1]。
组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议是网络设备用来通信的一套规则,这套规则可以理解为一种彼此能听得懂的公用语言。国际标准化组织为网络通信制定了一个标准模式,称为osi/rm体系结构。该结构分为七层,从低到高分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。其中,任何一个网络设备的上下层之间的有其特定的协议形式,同时两个设备的同层之间也有其使用的协议约定。
2 计算机网络通信协议的本文由收集整理分类与作用
2.1 网络协议的分类
网络协议遍及osi通信模型的各个层次,从我们非常熟悉tcp/ip、http、ftp协议,到ospf、igp等高级路由协议都可以认为是网络协议,有上千种之多。在所有常用的网络协议中,又可以分常用的基础型协议和常用的应用型协议。tcp/ip、ipx/spx、netbeui属于常用的基础型协议;而http、ppp、ftp则属于常用的应用型协议。基础型协议用来提供网络连接服务,它在网络连接和通信活动中必不可少;应用型协议对于网络来说不是必需的,而是在具体应用到网络服务时才需要。
2.2 网络协议的作用与组成
网络协议所起的主要作用和所适用的应用环境各不相同,有的是专用的,如ipx/spx就专用于novell公司的netware操作系统,而netbeui协议则专用于微软公司的windows系统;有的则是通用的(当然是相对的),如tcp/ip协议就适用于几乎所有的系统和应用环境。在这么多的网络协议中,一般网络用户只需要着重掌握几种常用和主要的协议即可。网络协议包括语义、语法和时序三个组成部分。语义是对协议元素的含义进行解释,不同类型的协议元素所规定的语义是不同的。
3 局域网中常用的3种通信协议
3.1 netbeui协议
netbeui通信协议的特点。netbeui(netbios extended ser ixperface,用户扩展接口),它是一种体积小、效率高、速度快的通信协议。但它不具有跨网段工作的功能,不同的局域网之间将无法进行通信。
3.2 ipx/spx及其兼容协议
ipx/spx通信协议的特点。ipx/spx(internetwork packet exchange/sequences packet exchange,网际包交换/顺序包交换)是novell公司的通信协议集。与netbeui的明显区别是,ipx/spx显得比较庞大,在复杂环境下具有很强的适应性。在ipx/spx协议中,ipx是netware最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。spx在整个协议中负责对所传输的数据进行无差错处理,所以我们将ipx/spx也叫做“novell的协议集”[2]。
3.3 tcp/ip协议
tcp/ip(transmission control protocol/internet protocol,传输控制协议/网际协议)是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,tcp/ip最早出现在unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,tcp/ip也是internet的基础协议。
tcp/ip通信协议的特点。tcp/ip具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为其使用带来了许多不便,在使用netbeui和ipx/spx及其兼容协议时都不需要进行配置,而tcp/ip协议在使用时首先要进行复杂的设置。每个节点至少需要一个“ip地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。在windows xp中提供了一个称为动态主机配置协议(dhcp)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作的负担,避免了出错。
4 通信协议的安装、设置和测试
局域网中的一些协议,在安装windows xp操作系统时会自动安装tcp/ip。netbeui和ipx/spx在需要时安装,安装后不需要进行设置就可以直接使用,但tcp/ip要经过必要的设置。所以下文主要以windows xp环境下的tcp/ip协议为主,介绍其安装、设置和测试方法。tcp/ip通信协议的设置。在“网络”对话框中选择已安装的tcp/ip协议,打开其“属性”,在指定的位置输入已分配好的“ip地址”和“子网掩码”。如果该用户还要访问其它windows xp网络的资源,还可以在“默认网关”处输入网关的地址。tcp/ip通信协议的测试。当tcp/ip协议安装并设置结束后,为了保证其能够正常工作,在使用前一定要进行测试。如服务器的ip地址为192.168.0.1,如要测试你的机器是否与服务器接通时,只需切换到dos提示符下,并键入命令“ping192.168.0.1”即可。如果出现类似于“reply from 192.168.0.1的回应,说明tcp/ip协议工作正常;如果显
网络通信协议简称为网络协议,它是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持。
2 常见的网络通信协议
局域网中常用的通信协议主要有:tcp/ip协议、ipx/spx兼容协议以及netbeui协议。
2.1 tcp/ip协议
tcp/ip协议实际上是tcp协议与ip协议的集合,是最基础也是最重要的两个协议。unix系统中最早使用它,得到目前市场上的绝大多数的厂商和操作系统的支持。在不可靠的互联网上,tcp/ip可以提供可靠的端到端字节流传输服务。首先传给ip层的数据流通过tcp分割成长度适当的数据段后再进行传送,然后接收端主机接收来自ip层传送过来的数据包,最后数据被一步一步上传到制定的接收端实体。目前ip协议有ipv4协议和ipv6两种,其中现阶段采用最为普遍的依旧是ipv4协议,该协议是一种无连接、可靠性较差的协议,他规定了互联网中传输数据的准确格式,在整个tcp/ip协议的网络中数据传输都是具有严格的要求。同时ip软件可以实现路由选择的功能,将一组数据选择好发送的路径,通过不可靠分组传输的思想,将数据在网络中进行传输。再加上ip协议是tcp/ip在互联网设计中最为基础的部分,那么协议的不断发展和更新也是时代进步的标志。然后相对于ipv4来说,随着互联网发展的不断深入,有限的地址空间必定阻碍互联网的进一步发展,于是被称为互联网协议第6版的新一代协议,即ipv6早在1995年底就已经诞生,但被广泛应用和重视的程度,却是近几年才被突显其优势的。
所以相对于ipv4来说,ipv6的优势具体有3点:(1)拥有更大的地址空间,也就是ip地址长度从32位扩大到128位。(2)拥有更小的路由表,即ipv6的地址分配遵循聚类原则,这就使得路由器可以在路由表中用一条记录表示一片子网,从而大大减小了路由表的长度,提高了路由器转发数据包的速度。(3)增加了自动配置的支持功能,这就使得网络在管理上更加便捷、安全,而ipv6网络中用户还可以对网络层的数据进行加密,并对ip进行校验,这就更增强了网络的安全效益。
然而对于windows中的tcp/ip协议来说,用户不但可以通过tcp/ip来组建对等网,还可以很便捷的接入其他的服务器。如果当用户想直接加入windows nt域的话,那么工作站只安装了tcp/ip协议,是不可以登录和访问的。即使工作站能够通过windows nt服务器上的服务器来访问网络,但却无法通过windows nt服务器来登录到它的域,所以只安装了tcp/ip协议的windows用户,需要加入到windows nt域,就必须在windows上还要安装netbeui协议,才能顺利访问到其服务器的域中去。
同时由于tcp/ip本身就具有很高的灵活性,可以支持不同规模的网络,连接所以的服务器和工作站,但这些灵活性的特点也为其带来许多的麻烦,比如在使用netbeui和ipx/spx及其兼容协议时,通常都不需要进行配置,但tcp/ip协议在使用时却要进行复杂的一个设置过程,且每个节点都需要一个ip地址、一个子网掩码、一个默认网关及一个主机名。而在windows nt中,啊可以自动为客户机分配接入网络所需的信息,减轻互联网在工作上的压力,避免错误机会的产生。再加上ipx/spx及兼容协议、tcp/ip都是一种可路由的协议,且tcp/ip的地址是分级的,那么找到网上的用户更容易确定其位置,这样也大大提高了网络宽带的有效利用率。所以当有需要时,运行tcp/ip协议中windows nt的服务器,就可以将其配置成tcp/ip路由器,但与tcp/ip不同的是,ipx/spx协议中的ipx在使用过程中采用的是一种广播协议,经常会出现广播包堵塞等现象,这就使得网络在船传输使用过程中无法获得最佳的带宽。
2.2 ipx/spx及其兼容协议
ipx/spx是novell公司为了适应网络的发展而开发的一种通信协议集,与netbeui的明显区别就是ipx/spx比较庞大,在复杂环境下也依然具有很强的适应性。正因为这个特点ipx/spx在最初的设计中就考虑到多网段的问题,所以具有超强的路由功能,非常适合大型网络的使用;另外,由于ipx/spx及其兼容协议可以通过网络地址来辨别各自的身份,且不需要任何的配置,这也是他的优势所在。同时目前的novell的网络地址由两部分组成,即标明物理网段的‘网络id’和标明特殊设备的‘节点id’。其中网络id主要集中在netware服务器或路由器中,而节点id也就是用户使用不同网卡的id号。因为所有的网络id和节点id都是独有的内部ipx地址,也正是具有网络地址的唯一性,才给ipx/spx带来了如此强大的路由功能。
然而在ipx/spx协议中,ipx是netware自带的最底层的网络协议,它的功能就是负责数据在网络中的传输,但不保证数据是否传输成功,更不提供纠错服务。所以当ipx在负责数据传输时,如果接收节点处在同一网段内,就直接按该节点的id将数据传给它;如果接收节点是远程的,数据将交给netware服务器或路由器中的网络id,继续数据的下一步传输。而spx就是只针对整个协议中传输的数据进行无差错处理,所以将两个协议合并在
转贴于
一起,就是ipx/spx即‘novell的协议集’。综上所述, windows?nt网络和windows的用户,可以利用nwlink协议获得netware服务器的服务,然而当novell环境开始转向微软平台时,就会出现两种平台共存的局面,这时nwlink通信协议便是最好的选择。
2.3 netbeui协议
netbeui协议具有速度快、效率高、体积小的特点。netbeui早已经成为微软主流产品的缺省协议,如windows系统系列中。netbeui的设计主要服务与单网段部门级小型局域网,局域网中互联几台至上百台的pc机。netbios是netbeui中的一个网络接口标准,主要作用是实现pc机之间的互相通信,专门应用于小型局域网,网内pc机数不超过30个。
3 网络通信协议的选择原则
3.1 所选协议要与网络结构和功能相一致
当用户的网络存在多个网段时,就需要使用具备路由和跨网断操作功能的netbeui协议,那么这时就必须选择ipx/spx或tcp/ip等协议。此外,如果你所在的网络规模不大,只是为了简单的设备共文件享的话,这个时候你应该最为关心的是网速问题,所以在此时你应该选择占用内存较小且贷款利用率较高的协议,即netbeui协议。但如果你的网络规模较大且网络结构复杂的时候,就应该选择管理性和扩充性良好的协议,即tcp/ip协议。
3.2 注意协议的版本
由于发展和完善过程的不同,每个的协议都有它合适的网络环境,那么从整体上来看,版本越高功能和性能相对就要好些,所以用户在选择时,尽量在满足网络需求的前提下,选择高版本的通信协议。
3.3 协议的一致性
中图分类号:TP311.52 文献标识码:B
文章编号:1004-373X(2008)11-026-03オ
Communication Protocol Development Platform Based on SDL
SHUI Quan1,2,SONG Bo1,NI Xiaoqing2
(1.Hefei University of Technology,Hefei,230009,China;2.No.38 Institute of China Electronic Technology Corporation,Hefei,230088,China)
オ
Abstract:SDL language has been applied in communication protocol development widely.This paper inroduces a common platform based on SDL and the way of realization,by using the platform,the maintance capacity from SDL to development efficiency is improved in communication protocol development.
Keywords:SDL;communicaiton protocol;process;FSM
1 引 言
SDL是一种用来说明和描述系统的国际通用的标准化语言。它将直观的图形和固定的格式结合起来,使开发人员可以简洁高效地将规范和协议描述出来,SDL的应用可以缩短开发周期,降低系统的差错率,提高软件质量。现在越来越多的电信设备开发商开始使用SDL进行协议软件开发。
但SDL并非编程语言,用SDL描述系统以后最终需要将SDL系统映射成实际程序才有意义,而目前一般是借助于国外的一些开发工具如SDT提供的SDL和C语言的转换工具来完成,开发人员通过编写SDL系统和环境的接口函数来实现所生成的代码和RTOS的集成。这种方法提高了协议开发的效率,但也有一些缺点:设计依赖于工具,脱离工具则代码难以维护、SDL生成的代码非常复杂,不便于修改和阅读,所以在实际应用中这些工具往往用于协议验证。
为了提高协议开发效率,我们在无线通信系统开发中建立一套自主的基于SDL的通信协议开发平台,通过这个平台可以实现SDL基本元素进程以及进程之间的通信和RTOS任务之间的通信,并集成了协议中常用的定时器管理功能、内存管理功能。
2 SDL介绍
SDL(Specification and Description Language) 是1976年至1992年由ITU-T发展和标准化的一种描述系统行为的语言,SDL的数学模型是扩展有限状态机(EFSM),是一种高层泛用型的用于事件驱动、实时和通信系统的描述语言,电信系统和协议是它主要应用领域之一。SDL有图形和文本两种表示形式,SDL/GR和SDL/PR。它既可以用来对系统的功能进行说明,也可以描述系统的内部结构和行为,因而应用范围很广,可以用于协议工程的各个阶段。SDL采用一种层次结构来对系统进行描述和说明,结构和功能被清楚地划分。系统可以分为多个功能块,功能块表示系统内部功能相对独立的几个模块,它们之间通过信道相连。根据系统规模的大小,每个功能块还可以分为子功能块或进程。与传统FSM 类似,SDL进程具有有限数量的被有限数量跃迁连接着的宏控制状态。通过一个输入信号(也可称使能条件)的接收、事先设置的定时器的定时或当前状态变量(连续信号)值所指定条件的确认,跃迁能够被触发。在SDL中,定义了一些基本的数据类型和操作,以及构造新类型的机制,使得SDL拥有和C/C++语言一样的数据操作能力,因此它可以用于系统的设计和实现。
3 SDL通信协议开发平台构成和实现
SDL通信协议开发平台建立在嵌入式实时操作系统上,主要包括4个模块:进程管理、消息管理、定时器管理、缓存管理,如图1所示。其中进程管理模块提供了SDL进程的创建、删除等库函数,并提供了SDL功能块和进程的描述表,通过这张表格可以确定任务块和进程的从属关系。在消息管理模块提供了进程间、进程和功能块间、进程和外部任务间的消息通信函数;定时器管理和缓冲管理模块则提供了定时器的创建、删除函数以及缓冲的创建和释放函数。
3.1.1 功能块实现
采用SDL描述的系统包含若干个功能块(block),每个功能块内至少有一个进程(process),功能块是用RTOS的任务直接实现的不需要开发者单独创建,只需在功能块中预先定义包含哪些进程,SDL系统在初始化时直接可以创建功能块。每个功能块内进程的并发调度是由功能块的一个调度函数实现,而功能块之间的调度则由操作系统完成。功能块任务内除了完成个进程状态机的轮询调度外,还负责接收外部环境的消息并分发消息到各个进程状态机中;除此外功能块任务还负责本功能块内所有进程的定时器管理工作。功能块内部工作流程图如图2所示。
3.1.2 进程状态机的实现
进程是并行执行的扩展的有限状态机,它规定一个系统的动态行为,进程基本上是处于等待信号的状态,收到信号则立刻进行状态之间的转移,进程的这一概念非常类似于操作系统中进程或者任务的概念。进程之间,进程与系统环境之间通过异步信号进行通信,这些信号可携带不同类型的参数。虽然进程的特点和RTOS中任务有点相似,但实际开发中一个SDL的进程会同时存在上百个甚至上千个,这显然不能用任务去直接实现SDL进程。
在SDL平台上采用一个C函数对应一个SDL的进程,该进程所在的功能块负责调度该进程的运行。在SDL语言中进程可以看作是一个有限状态机,状态机的状态跃迁是由一系列信号触发的,在进程的入口函数采用swicht-case架构的实现状态机。在平台规定了一个标准的进程状态机函数模板,协议开发中每个进程按照这个模板编写SDL进程的代码。
3.1.3 进程并发性的实现
进程并发性是通过在功能块任务内的进程调度函数实现的,在调度函数内按照消息的触发次序轮流调用进程的状态机函数。在实际应用中还会碰到一个状态机函数,需要并发调用的情况,比如在WiMAX系统中每个用户站入网过程都是一样的,包含下行同步参数获取、上行参数获取、初始测距、能力协商、注册等状态跃迁过程,所以对基站来说只要一个进程状态机就可以完成一个用户站的入网接入过程,但对基站来说又需要同时接入多个用户,这就需要进程状态机函数允许被重用,就像面向对象就是类和对象的关系,我们把这种需要被重用的进程称做进程类型,而每个实际使用的进程称作进程实例,在协议开发过程中开发者调用平台提供接口函数就可以创建一个或者多个进程实例。在程序中要实现状态机函数的重用就需要解决函数的重入问题,我们采用在每个状态机函数中保留一个私有存储区方法解决函数重入过程中私有变量的保存问题,如图3所示。
3.2 通信机制的实现
在SDL中系统通过信道与环境连接。系统由许多用信道连接起来的功能块组成,每个功能块相对于其他功能块而言是独立的。在两个不同功能块中的进程之间,通信的惟一手段是靠发送信号,信号通过信道来传递。信号是系统的不同功能块之间或功能块和环境之间进行通信的手段。
根据信号发送的目的采用两种不同方式实现SDL的通信:
(1) 同一功能块内部的进程通讯,这种情况下进程之间的通信是由功能块内部的消息分发机制实现的;
(2) 不同功能块之间进程的通信,在这种情况下先通过调用操作系统的消息发送机制将消息发送给目标进程所在功能块,由功能块再分发给进程。
这种两种方式不管是哪种方式都使用了统一消息发送接口函数,对开发者来说是透明的。
3.3 定时器管理
定时器是SDL语言中一个重要元素在通信协议开发中被大量应用,比如在WiMAX系统开发中周期测距需要一个定时器周期触发周期测距进程进行信号质量的检测,在网口地址过滤中需要周期进行地址老化。在SDL协议开发平台中,我们将定时器绑定在进程状态机上,通过静态分配的方法将在平台初始化时分配定时器给每个进程,定时器的定时功能由进程所在的功能块任务维护,这种方法避免了采用一个任务管理所有定时器带来任务负荷过大的问题。另外为了降低功能块的任务负荷,在功能任务内没有采用传统的在一个固定tick周期内检查是否有定时器超时的方法,而是利用功能块任务已经有的等待外部任务消息超时来实现定时器的定时检查。具体说就是在SDL的功能任务内采用差值定时的方法维护定时器,在每个功能块任务内维护一个定时器链表,当定时器启动时就插入到这个定时器链表中并根据时间进行排序。在功能块任务等待外部消息超时后就检查是否链表中有定时器超时,如果有则向相应的进程发送超时消息并删除该定时器,然后更新下一个定时器超时周期并把这个周期设置成等待外部消息超时的时间。采用这种定时器管理机制的好处是定时器管理任务只在下一个定时器超时的时候被激活,而不需要每隔一个固定周期就需要激活去检查定时器链表,大大节省了任务的切换时间。
4 结 语
基于SDL协议开发平台提供一套将SDL语言直接映射成协议代码的高效方法,使通信协议软件开发人员在协议开发过程中将主要精力集中在前期的SDL对系统的描述阶段,而无需关心系统底层的实现,较好地提高了协议开发的效率和代码的可维护性、可移植性,这些优点已经在基于IEEE802.16d的固定宽带无线接入系统的开发中得到了充分的体现。目前SDL协议开发平台还只是实现了基本的SDL进程、功能块、定时器等元素,对SDL中通信只实现了消息的交互,没有实现远端过程(Remote Procedure)调用和远端变量(Remote Variable),这会限制SDL平台在一些复杂通信协议开发中的使用,针对这些问题我们将在后续的工作逐步完善。
参 考 文 献
[1]Sridhar T.Designing Embedded Communications Software[M].US.:CMP Book,2003.
[2]ITU2T Z.100.Specification and Description Language SDL[Z].1999.
[3]宋瑾钰,魏仰苏.SDL语言动态语义模型的研究[J].计算机应用,2004,24(11):50-51.
[4]刘宇红,白伟.SDL语言及其在通信系统中的应用[J].通信技术,2002(12):82-83.
随着楼宇智能化应用越来越普及, 产生了许多楼宇智能化通信协议,其中knx/eib(konnex/electrical installation bus)通信协议应用最为广泛。knx/eib通信协议是唯一一个开放式并经过认证的标准, 2006年成为国际标准iso/iec 145433,并于2007年正式成为中国国家标准gb/z 20965—2007[1]。
在家庭或者楼宇智能环境中,对通信协议实时性传输的要求非常高。每个数据命令的发送执行都有一个期限,如果超过这个期限,将会有新的随机数据命令产生,前一条命令可能就已经失效了。换句话说,一条数据命令必须在要求的时间内得到执行,同时还要求每条数据命令的传输时延要稳定。knx/eib通信协议采用了无线通信常采用的带冲突避免的载波侦听多路存取(carrier sense multiple access/collision avoidance, csma/ca)[2]防冲突机制来解决knx/eib网络的冲突问题,但csma/ca机制导致数据命令帧传输时延抖动非常大。比如调光命令,调光命令由两条数据命令组成,两条数据命令的产生是随机的,采用csma/cs算法机制可能会使这两条数据命令发送的延迟时间不同,造成调光无法准确执行;再比如,在总线不繁忙时,一个开灯数据命令或许可以很快地得到发送执行,但是当总线繁忙时,数据命令可能为了避免冲突,回避高优先级或者同优先级优势数据命令的发送,造成很长的传输时延。这种情况在楼宇智能环境下是不能容忍的,而且可能会因此造成严重的误操作。这也使网络的实时性降低。
本文针对knx/eib通信协议在双绞线(twisted pair, tp1)中传输的实时性问题,提出一个改进方法knx/eiba。在不改变原有的通信协议栈的基础上,将一个调度程序应用于knx/eib通信协议的应用层与用户应用程序之间。将原有的分布式平等结构划分为分级主从结构,对数据命令帧的发送进行调度。最后通过对knx/eiba进行分析及原型实现证明了该方法通过有效地减轻传输时延的抖动从而改进了协议的实时性。
在不改变原有knx/eib协议的基础上,将knx/eib各模块分为主从结构来调度数据帧的发送,减少了传输时延抖动,从而在一定程度上解决了knx/eib通信协议实时性问题。
1 knx/eib通信协议
1.1 knx/eib通信协议概述
knx/eib通信网络是一种倾向于网络管理的应用型网络。每个总线连接单元(bus coupling unit, bcu)在链路层之上具有相同的通信内核。knx/eib通信协议包含7层osi标准的通信模型。
图1为tp1下的网络拓扑结构。逻辑拓扑结构允许256个bcu安装在一条支线(line)上, 15条支线通过支线耦合器(line coupler)连接到一条总线(main line)上构成一个域(area),15个域又通过域耦合器(area coupler)连接到骨干线(backbone line)上组成整个网络[3]。
转贴于
一般情况下,每个bcu被安装进系统时被分配一个独一无二的独立地址(individual address, iadrs)。knx可以通过组地址(group address, gadrs)对bcu进行无限制分组。所有bcu可以通过发送组播式数据命令帧来进行参数共享,甚至可以进行按位读写。
knx/eib数据帧格式如图2所示。octet 0中包含了数据命令帧控制信息,其中数据命令帧优先级就包含在其中。octet 1和octet 2 为数据命令帧发送源地址,其为bcu的iadrs。
1.2 knx/eib防冲突机制分析及其对实时性的影响
根据knx/eib标准(knx/eibs),若一个bcu已经开
始发送信号,则系统禁止其他bcu占用信道。当多个bcu
同时向总线上发送数据时,根据csma/ca算法,bcu要检查
每个比特, 如果物理层显示总线繁忙或者正在发生碰撞,则低优先级数据命令帧需要立刻停止传送,高优先权数据命令帧开始传送数据,高优先级数据命令帧传送完成后,低优先级数据命令帧重新开始传输判定。knx/eib通信协议中,传输数据的优先级分为四级:系统最高级(system priority)、报警级别(urgent priority)、普通级别(normal priority)和低级(low priority)。相同优先级数据命令帧将按照数据帧中包含“1”的情况来进行退让,其中“1”状态称为劣态(inferior state),“0”状态为优态(superior)。
虽然knx/eib通信协议优先级的引入,在一定程度上解决了knx/eib数据传输的实时性问题,例如高优先级报警信号可以以最快的速度传输出去,得到最有效的执行。但是在knx/eib网络中,大部分数据命令帧的优先级别都是低级,而且数据命令帧优先级别是在现场安装时通过现场安装调试软件(engineering tool software, ets)固定设置的。根据knx/eib数据帧的格式及防冲突机制,iadrs造成了bcu之间不平等关系,高iadrs数据命令帧将一直是劣势的,无法及时获得通信信道分配,低iadrs数据命令帧将一直是优势的,可以以最快的速度发送出去,甚至可以多次让同一劣势数据命令帧为自己退让,这样就造成控制命令传输时延确定性。从系统整体来看,数据命令帧传输时延的抖动非常厉害,传输时延的剧烈抖动降低了系统的实时性传输。knx/eib通信协议没有减轻传输时延抖动的措施,没有保证实时性传输的机制。
2 相关通信协议的实时性保证机制
文献[4-10]曾经对控制器局域网络(controller area network, can)、过程现场总线(profibus)、pnet和worldfip等现场总线的实时性做过分析评估。can总线通过动态改变节点的优先级,使优先级较低的节点动态提高优先级,保证各个站点有均等的机会获得总线控制权;在arcnet网络中, acrnet总线采用令牌总线(tokenbus)[11-13]方式来管理数据的传输,传输延迟根据网络节点数以及负载变化,它为网络中的各个设备提供了平等使用网络带宽的机会,acrnet总线的传输延迟抖动非常小。knx/eib可以通过类似的方式来确保每一个低级别的数据命令帧具有确定的最长延迟时间,使每个低级别数据命令帧具有均等的机会获得信道分配,减轻系统的传输时延抖动,最终达到实时性改善的目的。
3 改进knx/eib通信协议的实时性机制
为了解决knx/eib通信协议在tp1下通信实时性差的问题, knx/eiba在不改变原有knx/eib通信协议栈的基础上,通过建立调度程序,解决knx/eib实时性传输。这个调度程序运行于knx/eib应用层与用户定义的应用程序之间,在应用层之上利用knx/eib应用层提供的a_propertyvalue_write应用层服务来调度数据命令帧的发送。同时,网络结构也由原来的分布式结构,自动转换为分级主从结构。在一条支线上,支线耦合器为主模块,其他的bcu为从模块;在域结构上,域耦合器成为了主模块而支线耦合器则成为了域结构上的从模块;在骨干线上,域耦合器又成为了骨干线上的从模块;在支线上,网桥(bridge)将支线结构再次分解为多级结构,则网桥即为上一级结构的从模块,又是下一级结构的主模块。从模块不能主动发起低优先级别的数据命令帧传输,只能主动发送具有普通优先级别的通信请求帧给自己主从结构中的主模块;主模块会收集从模块发送来的通信请求,然后调用一个合适的排序算法,来决定从模块依次进行数据命令帧的传输。
3.1 调度程序的数据结构
从模块参数translation_au用来表示是否获得主模块的传输授权,当从模块中的translation_au参数为有效值时,从模块开始发送数据;否则,从模块发送请求通信的数据命令帧,向主模块申请通信授权。而主模块参数translation_dt用来判定是否需要进行信道分配。
在主模块中定义一个存储列表panding_req_list用来存储从模块的通信请求。存储列表结构体如下:
程序前
struct panding_req_list
{ … 转贴于
unsigned short addr;
unsigned char priority_tr;
…}
程序后
其中addr参数是用来存储申请通信授权的从模块的iadrs;而priority_tr是用来调度从模块的通信申请并进行排序,其初始值为256。
主模块与从模块都需要一个定时器,用来解决总线出现故障时的程序死锁。
3.2 调度程序的调度算法
调度算法的目的是对主模块中存储列表panding_req_list上的i(i=1,2,…)个通信申请进行排序,使得各个从模块获取通信信道的机会均等,使最大通信延迟时间得到确定。
调度程序的伪代码如下:
程序前
if i≤1 then
按照先入先出原则,进行调度
elseif i≥2 then
按照panding_req_list中参数priority_tr,由小到大进行调度
if panding_req_list中参数priority_tr 存在相等的 then
按照panding_req_list中参数adrr, 由大到小进行调度
endif
endif
程序后
设置iadrs值大的bcu的优先级高是为了减少劣势数据命令帧的等待时间,以及减少劣势数据帧在总线与优势数据帧发生竞争的几率,使各个从模块之间的传输延迟尽量平均。
当有一个申请被执行,该申请会从存储列表中被删除,同时调度程序将其他与执行申请addr不同的priority_tr值减1,这样做的目的是保证每一从模块在每一轮通信申请中都有机会获得通信授权。
3.3 从模块调度程序
从模块通过knx/eib通信协议中应用层a_propertyvalue_write服务向主模块申请通信信道。
a_propertyvalue_write是knx/eib通信协议中的应用层服务,属于点对点无连接通信服务。a_propertyvalue_write服务可以直接对bcu的存储空间进行精确到位的操作。在knx/eiba中,此项服务的通信优先级别被设置为普通级别。
转贴于
从模块伪代码如下:
程序前
if 有通信需求 then
if translation_au参数有效 then
向总线发送数据
translation_au参数设置为无效;
elseif translation_au参数无效 then
向主模块用a_propertyvalue_write服务发送通信请求;
启动定时器
endif
while 定时器在运行 do
if translation_au参数有效 then
向总线发送数据
translation_au参数设置为无效;
终止定时器
break;
endif
endwhile
if 如果数据还没有发出 then
强制向总线发送数据
endif
elseif 无通信请求 then
if translation_au参数有效 then
置 translation_au参数无效;
调用a_propertyvalue_write对主模块translation_dt参数设置为有效;
endif
endif
程序后
3.4 主模块调度程序
主模块调度程序的主要任务是通过knx/eib通信协议中的a_propertyvalue_write应用层服务来响应从模块的通信请求,管理translation_au参数,达到分配从模块通信信道的作用。
主模块的调度程序的伪代码如下所示:
程序前
while(1)
发送作为网桥或者路由功能的数据命令帧;
if panding_req_list列表中不为空 then
if translation_dt 有效 then
终止定时器;
调用排序算法从panding_req_list选出第一个从模块;
调用a_propertyvalue_write对从模块translation_au 参数设置为有效;
对panding_req_list其他从模块的非零priority_tr值减1;
重新启动定时器;
开启总线监听程序
endif
end if
if translation_au 无效 then
if 定时器运行终止 then
设置translation_au 有效
endif
endif
end while
程序后
总线监听程序伪代码;
程序前
while 定时器在运行 then
if 选定从模块有数据命令帧发出 do
设置translation_au 有效
计时器终止;
endif
end while
程序后
主模块收到从模块发送的通信请求后,在接受数据命令帧的过程中,确认此数据命令帧为非过滤数据命令时,立刻向上一级主模块请求通信,尽量减少数据命令帧在主模块等待时间。
3.5 网桥的设计
网桥借用原有的连接方式,将原有的支线分割成多个物理段,分割方式是可以多种多样的,如图3所示,其中的b模块就是网桥。 转贴于
网桥不具有自己的iadrs,而是映射其他bcu的iadrs。作为从模块时,映射下一级请求通信的从模块的iadrs;作为主模块时,映射支线耦合器的iadrs。网桥具有过滤功能,对于不需要传输给本级或者从级的数据命令帧予以过滤,使得通信信道利用率增加。主模块接收到作为从模块的网桥的通信请求时,存储在panding_req_list中相应请求的priority_tr初始值为255,使其有较高优先级发送数据命令帧,目的是减少跨越网桥的数据命令帧在网桥的等待时间。
4 knx/eiba的分析与实现
4.1 knx/eiba的理论分析
按照knx/eiba,一条低优先级的数据命令帧从一条支线上传送到骨干网上的最大延迟时间为
tmax=tl+ta+tbb
(1)
其中tl为数据命令帧在支线上发送以及等待发送许可所需要的最大延迟时间,当支线上的所有模块同时多次发送数据,且该bcu的iadrs最大时,就产生了如下的最大延迟时间,其值为
tl=((trq+trp+ttr)×n+trq×(n-1))×m
(2)
其中:
trq为申请通信帧发送所需要的时间,trp为主模块发送通信许可帧所需要的时间,ttr为数据命令帧发送所需的时间,n为网桥分割的物理段中的bcu的数量,m为网桥分割物理段的级数。
【不通顺】ta为在域结构上数据帧所要花费的最大延长时间,为域结构上所有的支线耦合器同时多次向总线发送数据产生的延迟时间,且该数据帧的优先级最低的情况下,所产生的最大延迟时间,
ta为数据帧在域结构上传输的最大延迟时间,即域结构上所有的支线耦合器同时向总线发送数据且该数据帧的优先级最低时产生的延迟时间,其值为
ta=(trq+trp+ttr)×am+trq×(am-1)
(3)
其中am的值为域结构上所连接支线的数量。
tbb为在骨干上数据命令帧发送所需要的时间,其值为
tbb=(trq+trp+ttr)×bbm+(bbm-1)×trq
(4)
其中bbm为骨干结构上所连接域的数量。则低优先级的数据命令帧从一条支线传送到骨干网上的最大延迟时间为
tmax=(2bbm+2am+2n×m-m-2)trq+
(bbm+am+n×m)trp+(bbm+am+n×m)ttr
(5)
则此情况下系统的最大延迟时间将与接入网络的bcu数量和分级的数量有关。
knx/eibs中所有的bcu同时多次发送数据的情况下,低优势数据帧需要对高优势数据帧退让,低优势数据帧会一直无法发送,只有当高优势数据帧停止发送,低优势数据帧才可以发送,则低优势数据帧的传输延迟时间将是最大传输延迟时间,而低优势数据帧的传输延迟时间将是无法确定的。
knx/eiba的最小延迟时间为线路上只有一个bcu发送数据,没有其他数据帧进行竞争,其值为
由上面的分析可知,knx/eiba虽然牺牲了最小延迟时间,但是在最大延迟时间上要少于knx/eibs;knx/eiba的最大延迟时间与分级的数量和模块的数量有关,其最大延迟时间是确定的,而knx/eibs的最大延迟时间是不确定的;knx/eiba使数据命令帧的传输延迟的抖动范围缩小,减小了系统的传输延迟抖动。
4.2 knx/eiba的实测
通过构建knx/eib网络环境,实现knx/eiba的硬件及软件设备,分别测试了knx/eiba及knx/eibs下的数据命令帧的延迟时间。硬件方面,主模块控制芯片选用基于arm cortexm3内核的lm3s8962微控制器,从模块分别选用nec公司的upd78f0537d和ti公司的msp430两种微控制器,控制器通过uart模块连接tp_uart芯片[9]与knx/eib总线进行通信。软件方面,upd78f0537d与lm3s8962微控制器使用bim130型knx/eib通信协议内核,msp430微控制器使用bim113型knx/eib通信协议内核。同时,在knx/eib网络上加装西门子公司的usb接口模块与windows xp环境下的ets监控软件相连接。
ets监控软件用于监控统计分别在knx/eibs和knx/eiba两种方法下255个模块的数据命令帧的传输延迟时间。
4.3 对监控数据的分析
分别对采用knx/eiba与knx/eibs两种方法的系统进行监测。分别测得的5000个数据命令帧的延迟时间的分布情况如图4所示,纵轴为采集到的数据命令帧延迟时间,横轴为采集到的数据命令帧的序号。