一种基于TCP/IP协议的通讯平台及其通讯方法与流程

文档序号:17211559发布日期:2019-03-27 10:50阅读:215来源:国知局
一种基于TCP/IP协议的通讯平台及其通讯方法与流程
本发明涉及计算机
技术领域
,具体涉及一种基于tcp/ip协议的通讯平台。
背景技术
:网络通信技术是整个分布式设备数据交换核心,既是传输实时控制信息的基础,也是进行全系统的信息综合管理的关键。网络通信主要研究数据在局域网内多个设备之间进行传输的方式以及数据的准确度、实时性和可靠性等内容。分布式通讯平台虽采用分布式结构,分散了服务器压力,但服务器仍运行在平台中,无法做到完全的无中心化;传统通讯平台采用固定时间将全部动态数据向平台发送的方式,虽然应用普遍,但通讯速度慢,平台容量小,平台数据流量大,这都严重阻碍了实时高效分布式设备的发展。技术实现要素:本发明提供了一种基于tcp/ip协议的通讯平台,通过分布式拓步结构中互相独立且对等的节点实现点对点通讯,取消服务器转发数据。本发明建立分布式参数表,采用通过参数类型管理参数数据收发的机制,降低了通讯量,提高通讯效率。为了达到上述目的,本发明提供了一种基于tcp/ip协议的通讯平台,包含:若干台带有以太网卡的计算机,每台计算机设有一个或多个节点;所述节点相互独立,在通讯过程中具有相同的地位,任意两个节点的节点号不相同;平台中每个节点任选一个其他节点作为对应的公开节点;节点采用分布式拓扑结构构建通讯网络,每个节点均通讯连接其他节点,节点之间点对点通讯,无需服务器转发;新节点可把任一在线节点作为公开节点,对公开节点进行注册加入通讯平台;第一软件程序,安装在所述计算机上,第一软件程序通过生成控制信息包进行节点注册和节点在线管理;第一软件程序通过生成数据信息包,实现节点间数据交互;第一软件程序将控制信息包和数据信息包封装在udp数据帧中发送;参数表,包含多个参数的参数数据和参数类型;所述参数表存储在计算机内,一个节点对应一个参数表;不同节点的参数表可包含相同的参数;相同的参数在不同的参数表中可以是不同的参数类型;节点根据参数类型及参数数据是否发生变化,判断是否发送参数数据;节点的参数表包含其他节点发送的参数数据所对应的参数,节点接收该参数的参数数据并更新参数表;第一字典和第二字典,存储在计算机内,用于保存平台内的节点信息;一个节点对应一个第一字典和一个第二字典。所述节点信息为节点的节点号、ip地址和端口信息;所述第一字典保存对应节点、对应节点的公开节点的节点信息;第二字典保存对应节点以外的所有其他节点的节点信息;新节点注册加入平台前,新节点的第二字典为空。所述参数类型包含in、inout、outcheck、outnocheck四种类型;当参数的参数类型为in时,节点接收该参数的参数数据;当参数的参数类型为inout时,节点接收和发送该参数的参数数据;当参数的参数类型为outcheck时,节点在该参数的参数数据改变时,发送该参数的参数数据;当参数的参数类型为outnocheck时,节点不检查该参数的参数数据是否改变,发送该参数的参数数据。当参数在一个节点的参数表中参数类型为outnocheck或outcheck,该参数在所有其他节点的参数表中参数类型为in;当参数在一个节点的参数表中参数类型为inout,该参数在所有其他节点的参数表中参数类型为in或inout。所述控制信息包,具体包含依次发送的:1个字节的起始符21h、2个字节表示的数据长度、4个字节表示的校验码、4个字节表示的节点号、1个字节表示的控制标识、0~500字节的控制文本、1个字节的固定数据帧结束符0dh。所述控制标识为bool型数值true;控制文本包含控制号和控制信息;所述控制号为0~5的数字;节点上线、节点下线、节点心跳检测、节点在线时分别发送控制号为0、1、2、3的控制信息包,控制信息为0字节;新节点注册加入平台时,向对应的公开节点发送控制号为4的控制信息包,控制信息包含新节点的节点信息;新节点的公开节点向新注册节反馈信息时,发送控制号为5的控制信息包,控制信息包含平台内除新节点、新节点的公开节点以外,其他所有节点的节点信息。所述数据信息包,具体包含依次发送的1个字节的起始符21h、2个字节表示的数据长度、4个字节表示的校验码、4个字节表示的节点号、1个字节表示的数据标识、0~500字节的数据文本、1个字节的结束符0dh;所述数据标识为bool型数值false;所述数据文本包含参数数据。一种通讯方法,采用本发明所述的通讯平台实现的,包含步骤:h1、人工为平台内每个节点配置对应的第一字典、第二字典、参数表;节点上线时,进入h2;节点下线时,进入h3;新节点注册时,进入h4;节点间数据传输时,进入h5;h2、平台内任一节点读取对应的第二字典获取其他节点信息,通过向其他节点发送控制号为0的控制信息包,通知其他节点已上线;节点上线后,定时向其他节点发送控制号为2的控制信息包;h3、节点下线时,读取对应的第二字典获取其他节点信息,向平台内所有其他节点发送控制号为0的控制信息包,通知其他节点已下线;平台内其他节点在预先设定的时间间隔内没有收到该节点控制号为2的控制信息包,判定该节点下线;h4、人工为新节点配置对应的第一字典、第二字典、参数表;新节点读取对应的第一字典,获取对应公开节点的信息,向对应的公开节点进行注册;注册成功,新节点和平台内节点建立通讯连接;h5、节点根据参数表中参数类型及参数数据是否发生变化,进行发送或接收参数数据。所述步骤h4具体包含:s1、人工为新节点选取任一在线节点为公开节点,将新节点和新节点对应的公开节点的节点号、ip地址、端口号写入新节点的第一字典;新节点的第二字典为空;配置新节点的参数表;s2、新节点读取对应的第一字典,获取对应的公开节点信息,并向对应的公开节点发送控制号为4、控制信息中包含新节点的节点号、ip地址及端口号的控制信息包,告知对应的公开节点要进行注册;s2、新节点的公开节点验证新节点身份;当验证合格,新节点的公开节点读取对应的第二字典,向新节点发送控制号为5的控制信息包,控制信息中包含平台内除新节点、新节点的公开节点以外,其他所有节点的节点号、ip地址、端口号;s3、新节点对应的公开节点,向新节点以外的平台内所有其他节点发送控制号为5的控制信息包,控制信息中包含新注册节点的节点号、ip地址、端口号;s4、平台内所有在线节点更新对应的第二字典;s5、新节点向平台内所有其他节点发送控制号为0的控制信息包和控制号为2的控制信息包,通知其他节点已上线;平台内所有其他在线节点向新节点发送控制号为3的控制信息包和控制号为2的控制信息包,新节点得知平台内哪些节点在线。所述步骤h5具体包含:f1、发送参数数据进入f2;接收参数数据进入f3;f2、对于节点的参数表中,参数类型为inout或outnocheck的参数,节点将参数数据封装在数据信息包中,发送给平台内所有其他节点;参数类型为outcheck的参数,只有参数数据发生变化,节点才将参数数据封装在数据信息包中,发送参数数据给平台内所有其他节点;f3、节点对应的参数表包含其他节点发送的参数数据所对应的参数,节点接收此参数数据并更新参数表。与现有技术相比,本发明具有以下优点。(1)本平台建立了一种分布式拓扑结构,平台中所有节点都是对等的,具有相同的地位,实现相同的功能。节点间数据传输取消了服务器转发,实现了点对点的直接通讯,使通讯更为快速;(2)本平台的节点通过各自对应的参数表管理参数数据的收发,大大降低了数据通讯量,提高了通讯效率。(3)本平台中,新节点注册和节点在线管理无需额外的服务器,均能够自主实现。附图说明为了更清楚地说明本发明技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:图1是本发明的实施例中,通讯平台中计算机连接示意图;图2是本发明的实施例中,通讯平台中节点的分布式拓步结构示意图;图3是本发明的通讯平台中新节点注册过程示意图;图4是本发明的实施例中,通讯平台中数据信息交互示意图;图中:1、计算机;2、节点、3、参数表;4、第一字典;5、第二字典。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供了一种基于tcp/ip协议的通讯平台,如图1所示,包含:若干台带有以太网卡的计算机1,计算机1之间通讯连接;每台计算机1安装有第一软件程序,且每台计算机1设有一个或多个节点2。计算机1为每个节点2设有对应的参数表3、第一字典4和第二字典5。本应用实施例中,第一字典4和第二字典5分别是名为localnode.xml和reotnodes.xml的两个xml文件。所述节点2相互独立,在通讯过程中具有相同的地位;节点2采用分布式拓扑结构构建通讯网络,任意两个节点2的节点号不同,每个节点2均通讯连接其他节点2,节点2之间点对点通讯,无需服务器转发;平台中每个节点2任选一个其他节点2作为对应的公开节点;新节点可把任一在线节点2作为公开节点,对公开节点进行注册加入通讯平台;如图3所示,第一节点、第二节点2、第三节点……第n节点都是对等的通信节点2,具有相同的地位,具有相同的功能。所述参数表3为xml文档的参数数据库,本应用实施例中,参数表3是名为parameter.xml的xml文件。参数表3包含多个参数的参数数据和参数类型;节点2之间数据的交换也即是参数表3内参数数据的交换。所述参数表3存储在计算机1内,如图2所示,一个节点2对应一个参数表3;不同节点2的参数表3可包含相同的参数;相同的参数在不同的参数表3中可以是不同的参数类型;节点2根据参数类型及参数数据是否发生变化,判断是否发送参数数据;节点2的参数表3包含其他节点2发送的参数数据所对应的参数,节点2接收该参数的参数数据并更新参数表3。所述参数数据的具体格式如表1所示。不同的参数表3中相同参数的参数号相同、数据类型相同。项目数据类型数据长度偏移量说明参数号uint412按照系统本身固有的特点分区域设置编号数据类型枚举416bool、int、float、byte数据值视情况4或120可以是bool、int、float、byte型表1参数数据格式如表2所示,所述参数类型包含in、inout、outcheck、outnocheck四种类型;当参数的参数类型为in时,节点2接收该参数的参数数据;当参数的参数类型为inout时,节点2接收和发送该参数的参数数据;当参数的参数类型为outcheck时,节点2在该参数的参数数据改变时,发送该参数的参数数据;当参数的参数类型为outnocheck时,节点2不检查该参数的参数数据是否改变,发送该参数的参数数据。当参数在一个节点2的参数表3中参数类型为outnocheck或outcheck,该参数在所有其他节点2的参数表3中参数类型为in;当参数在一个节点2的参数表3中参数类型为inout,该参数在所有其他节点2的参数表3中参数类型为in或inout。参数类型参数说明in接受参数数据inout可从网络接受参数数据也可发送参数数据到网络outcheck表示发送到网络,检查值是否改变,当改变时向网络发送outnocheck发送到网络,不检查值是否改变,直接发送表2参数类型各节点2的参数可以不同,参数的数量可以不同。如图4所示,在本发明的实施例中,参数编号为50的参数,在第一、第二、第三节点上参数编号均是50,数据类型相同;第四节点不包含此参数。当第一节点编号为50的参数,参数类型为outcheck时,第二、第三参数号为50的参数,其参数类型只能为值为in。因此,参数编号为50的参数在第一节点,参数类型为输出型,在第二、第三节点参数类型为输入型。当第一节点中参数号为50、参数类型为outcheck的参数数据发生变化时,第一节点会将该参数的参数数据发送到第二、第三、第四节点,第四节点中没有编号为50的参数,因此不会接收第一节点发送的该参数的参数数据。本发明的通讯平台通过参数表3管理信息交互,使数据通讯量大大减少,降低了通讯压力。第一字典4和第二字典5,存储在计算机1内,一个节点2对应一个第一字典4和一个第二字典5;所述第一字典4保存对应节点2、对应节点2的公开节点的节点信息;第二字典5保存对应节点2以外的所有其他节点2的节点信息;新节点注册加入平台前,新节点的第二字典5为空。每个节点2均有发送、接收两个端口。第一软件程序安装在所述计算机1上,第一软件程序通过生成控制信息包进行节点注册和节点在线管理;第一软件程序通过生成数据信息包,实现节点间数据交互;所述控制信息包和数据信息包均封装在udp数据帧中发送,节点2间的通讯以udp协议为基础协议。所述控制信息包用于各节点2之间的信息交换,将节点2的参数数据告知到平台中所有节点2,具体包含依次发送的:1个字节的起始符21h、2个字节表示的数据长度、4个字节表示的校验码、4个字节表示的节点号、1个字节表示的控制标识、0~500字节的控制文本、1个字节的固定数据帧结束符0dh。控制信息包格式如表3所示。起始符数据长度校验码节点号控制标识控制文本结束符21h2字节4字节4字节1字节0-500字节0dh表3控制信息包格式所述控制标识为bool型数值true;根据此字节判断发送的是控制信息包。控制文本包含控制号和控制信息;所述控制号为0~5的数字;节点上线、节点下线、节点心跳检测、节点在线时分别发送控制号为0、1、2、3,且控制信息为0字节的控制信息包;新节点向公开节点注册加入平台时,发送控制号为4,控制信息中包含新节点的ip地址和端口号的控制信息包;公开节点向新注册节反馈信息时,发送控制号为5,控制信息包含平台内所有节点2的ip地址、端口号的控制信息包。控制文本中的控制号和控制信息具体如表4所示。类别控制号控制信息说明上线0无数据节点上线下线1无数据节点下线心跳2无数据心跳检测在线3无数据新节点上线时,在线节点发送已在线指令注册4新节点的节点信息新加入节点进行注册反馈5平台内节点信息新节点加入时平台信息的获取表4控制文本说明所述数据信息包,具体包含依次发送的1个字节的起始符21h、2个字节表示的数据长度、4个字节表示的校验码、4个字节表示的节点号、1个字节表示的数据标识、0~500字节的数据文本、1个字节的结束符0dh;所述数据文本中包含参数数据。数据信息包具体格式如表5所示。所述数据标识为bool型数值false,根据此标识判断发送的是数据信息包。数据文本为具体要传输的参数数据,可根据设备的实际情况自行定义。在本应用实施例中可实现bool、int、float、byte四种类型的数据交换,满足绝大多数通讯需求。起始符数据长度校验码节点号数据标识数据文本结束符21h2字节4字节4字节1字节0-500字节0dh表5数据信息包格式一种通讯方法,采用本发明所述的通讯平台实现的,包含步骤:h1、人工为平台内每个节点2配置对应的第一字典4、第二字典5、参数表3;节点上线时,进入h2;节点下线时,进入h3;新节点注册时,进入h4;节点间数据传输时,进入h5;h2、平台内任一节点2读取对应的第二字典5获取其他节点2信息,通过向其他节点2发送控制号为0的控制信息包,通知其他节点2已上线;节点上线后,定时向其他节点2发送控制号为2的控制信息包;h3、节点下线时,读取对应的第二字典5获取其他节点信息,向平台内所有其他节点2发送控制号为0的控制信息包,通知其他节点2已下线;平台内其他节点2在预先设定的时间间隔内没有收到该节点2控制号为2的控制信息包,判定该节点2下线;h4、人工为新节点配置对应的第一字典4、第二字典5、参数表3;新节点读取对应的第一字典4,获取对应公开节点的信息,向对应的公开节点进行注册;注册成功,新节点和平台内节点2建立通讯连接;h5、节点2根据参数表3中参数类型及参数数据是否发生变化,进行发送或接收参数数据。如图3所示,在本应用实施例中,所述步骤h4具体包含:s1、人工为新节点选取任一在线节点为公开节点,本应用实施例中第一节点为新节点的公开节点;将新节点和新节点对应的公开节点(第一节点)的节点号、ip地址、端口号写入新节点的第一字典4;新节点的第二字典5为空;配置新节点的参数表3;s2、新节点读取对应的第一字典4,获取对应的公开节点信息,并向对应的公开节点(第一节点)发送控制号为4、控制信息中包含新节点的节点号、ip地址及端口号的控制信息包,告知对应的公开节点要进行注册;s2、新节点的公开节点验证新节点身份;当验证合格,新节点的公开节点(第一节点)读取对应的第二字典5,向新节点发送控制号为5的控制信息包,控制信息中包含平台内除新节点、新节点的公开节点以外,其他所有节点2(第二节点)的节点号、ip地址、端口号;s3、新节点对应的公开节点,向新节点以外的平台内所有其他节点2(第二节点)发送控制号为5的控制信息包,控制信息中包含新节点的节点号、ip地址、端口号;s4、平台内所有在线节点2(新节点、第一节点、第二节点)更新对应的第二字典5;s5、新节点向平台内所有其他节点2(第一节点、第二节点)发送控制号为0的控制信息包和控制号为2的控制信息包,通知其他节点2(第一节点、第二节点)已上线;平台内所有其他在线节点2(第一节点、第二节点)向新节点发送控制号为3的控制信息包和控制号为2的控制信息包,新节点得知平台内哪些节点在线。所述步骤h5具体包含:f1、发送参数数据进入f2;接收参数数据进入f3;f2、对于节点2的参数表3中,参数类型为inout或outnocheck的参数,节点2将参数数据封装在数据信息包中,发送给平台内所有其他节点2;参数类型为outcheck的参数,只有参数数据发生变化,节点2才将参数数据封装在数据信息包中,发送参数数据给平台内所有其他节点2;f3、节点2对应的参数表3包含其他节点2发送的参数数据所对应的参数,节点2接收此参数数据并更新参数表3。与现有技术相比,本发明具有以下优点。(1)本平台建立了一种分布式拓扑结构,平台中所有节点2都是对等的,具有相同的地位,实现相同的功能。节点2间数据传输取消了服务器转发,实现了点对点的直接通讯,使通讯更为快速;(2)本平台的节点2通过各自对应的参数表3管理参数数据的收发,大大降低了数据通讯量,提高了通讯效率。(3)本平台中,新节点注册和节点2在线管理无需额外的服务器,均能够自主实现。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1