CN1710910A - 基于分层结构的网络系统及其节点的定位方法 - Google Patents
基于分层结构的网络系统及其节点的定位方法 Download PDFInfo
- Publication number
- CN1710910A CN1710910A CN 200510012182 CN200510012182A CN1710910A CN 1710910 A CN1710910 A CN 1710910A CN 200510012182 CN200510012182 CN 200510012182 CN 200510012182 A CN200510012182 A CN 200510012182A CN 1710910 A CN1710910 A CN 1710910A
- Authority
- CN
- China
- Prior art keywords
- node
- transparent proxy
- terminal
- location
- proxy node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
一种基于分层结构的网络系统及其节点的定位方法,所述定位方法包括:所述控制节点建立其与所述定位中心的通信连接,查询所述定位中心维护的透明代理节点列表,获取可用透明代理节点的位置信息及与所述透明代理节点连接的终端节点信息,所述的位置信息为节点的IP地址和端口号;所述控制节点根据目标终端节点的IP地址或ID号确定与所述目标终端节点连接的透明代理节点,并与之建立连接;听述控制节点通过所述透明代理节点与所述目标终端节点建立通信连接,进行通信。本发明减少了企业网络对互联网公网IPv4地址的需求,使企业各子网在处于防火墙的保护之下时,不额外开放端口也能互相访问,提高了企业网的安全性。
Description
技术领域
本发明涉及一种网络应用技术领域的系统和方法,尤其是一种基于分层结构的网络系统及其节点的定位方法。
背景技术
准确定位目标节点是网络系统中各节点进行通信之前首先要解决的问题。从互联网的出现到现在的极度膨胀,网络系统节点的定位方法为了适应互联网的发展也在不断进化。从最初简单地用IP地址和通用端口号的节点定位方法,到现在的多种多样适用于各种特殊网络需求的节点定位方法,可以发现,定位方法都是为了适应互联网的变化需求而变化的。
众所周知,当前互联网公网IPv4地址处于非常稀缺的程度,尤其是进入互联网较晚的国家和地区,如中国、韩国、印度等国家更是短缺。许多企业网中的主机都使用内网IP地址,通过NAT转换再与互联网连接。同时,企业各个子网出于安全考虑,都安装了防火墙,不允许各子网主机对外提供服务,这对在不同子网中的网络节点的通信连接非常不便。目前,网络系统的节点定位方法主要有以下几种:
(1)静态定位:每个节点都确切地知道存在于网络中的其它节点的位置,通过目标节点的合法IP和固定的端口号进行通信。这种定位方法不能适应预知的随机事件和临时变更,比如目标节点随机进入和退出网络的情况。当前许多应用都采用了这种定位方法,例如互联网中通过IP地址和固定端口号访问的文件传送协议(File TransferProtocol,简称FTP)服务、远程连接协议(TELNET)服务、超文本传输协议(HTTP)服务。这种定位方法需要所有节点都有互联网公网IP地址。
(2)动态目录定位;这种定位方法是在网络中部署一台或多台服务器,用于提供目录服务,各节点向目录服务器注册自身信息(如名称、IP地址及对应关系等),系统中的某一节点通过查询目录服务器中的信息来定位其它节点。这种定位方法需要所有节点都有互联网公网IP地址,而且,当目标节点处于防火墙保护的情况下很容易造成注册了信息却不能访问的问题。当前采用这种定位方法的典型应用如通过DNS网络名访问的FTP服务、WEB服务等。
(3)动态网络定位:这种定位方式在网络中没有专门的目录服务器为节点提供定位功能,当一个节点需要定位其他节点的位置时,它就发出一个查询请求并传递给其邻居节点,如果邻居节点不能完全满足这个请求时,就将请求传递给它们的邻居节点,以此类推。这种定位方法可能会让一次定位过程经历相当长的时间,其效率可能会很低。对这种方法加以改进,为每个节点按一定的哈希算法计算其KEY值,将不同KEY值的节点划分在某个区域,当一个节点需要定位其他节点的位置时,可以先找到该节点所在的区域从而定位目标节点。采用这种定位方法需要所有节点都具有互联网公网IP地址。
(4)动态多/广播定位:这种定位方式在网络中也没有专门的目录服务器为节点提供定位功能,各节点使用IP多/广播技术宣布自己的位置,其他节点收到消息后,抽取出该节点的MAC地址和主机IP,并通过MAC地址找寻到该节点,从而建立正常的TCP/IP连接。目前,局域网中的ARP广播寻址就是基于这种方法。但由于互联网对多/广播技术并不友好,子网间的路由多播通信是一项非常复杂的技术,所以这种多/广播定位都应用于局域网中,在广域网中一般不应用这种定位方法。
以上常见的各种网络定位方法,都存在一个共同问题,即,它们都需要目标节点拥有互联网公网IP地址,都需要目标节点对外开放端口来提供服务。但是,当前互联网公网IPv4地址处于非常稀缺的程度,对外开放端口也给企业子网增加了不安全因素。许多企业网中的主机都使用内网IP地址,再通过NAT转换与互联网连接,并且,为了提高网络安全,许多企业网都安装防火墙,不允许内网主机对外提供服务。在这种情况下,当某个企业网由多个异地子网构成,用户希望在异地对远程子网进行访问或执行操作时,以上这些常用的网络定位方法将不能满足用户的这种需求,这就需要一种有效的定位方法来解决这种问题。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于分层结构的网络系统及其节点的定位方法,用于减少企业网络对互联网公网IPv4地址的需求,而且能让企业各子网在处于防火墙的保护之下时,不额外开放端口也能互相访问,提高企业网的安全性。
为解决上述技术问题,本发明提供了一种基于分层结构的网络系统,包括受控网络层、通信代理层、应用层和定位中心,其中,所述受控网络层包括一个或多个终端节点,所述通信代理层包括一个或多个透明代理节点,所述应用层包括一个或多个控制节点,所述受控网络层的节点与所述通信代理层的节点、所述通信代理层的节点与所述应用层的节点分别呈网状连接,并且,每一层中的节点与定位中心连接。
进一步地,上述系统中的所述定位中心包括用于记录所有透明代理节点信息的动态透明代理节点列表。
进一步地,上述系统中的所述透明代理节点包括用于记录所有与其连接的终端节点信息的动态终端节点列表。
本发明还提供了一种基于上述网络系统节点的定位方法,包括以下步骤:
步骤 1、所述控制节点建立其与所述定位中心的通信连接,查询所述定位中心维护的透明代理节点列表,获取可用透明代理节点的位置信息及与所述透明代理节点连接的终端节点信息,所述的位置信息为节点的IP地址和端口号,所述终端节点信息包括节点的IP地址、端口号和/或ID号;
步骤2、所述控制节点根据目标终端节点的IP地址或ID号确定与所述目标终端节点连接的透明代理节点,并与之建立连接;
步骤3、所述控制节点通过所述透明代理节点与所述目标终端节点建立通信连接,进行通信。
上述方法中,所述步骤1进一步包括:所述控制节点按照其与所获得的可用透明代理节点的拓扑距离进行排序,使得所述的透明代理节点按照其与所述控制节点的拓扑距离排列。
上述方法中,所述控制节点对所获得的可用透明代理节点按照所述透明代理节点与其的拓扑距离进行排序的步骤为:
首先,所述控制节点向所述的透明代理节点发送UDP数据包,确定二者之间的TTL(Time to Live)值;
然后,根据所述的TTL值大小对所述透明代理节点进行排序。
上述方法中,在所述步骤1之前还包括:透明代理节点与所述定位中心建立连接,将其ID号和位置信息(包括IP地址和端口号)发送给定位中心;所述定位中心收到所述透明代理节点的位置信息后,将所述透明代理节点的位置信息添加到透明代理节点列表文件中。
上述方法中,在所述步骤1之前还包括:终端节点与所述定位中心建立连接,查询透明代理节点列表文件,从而获取可用透明代理节点列表信息;所述终端节点根据获取的透明代理节点列表信息,向所有可用的透明代理节点发送连接请求;所述透明代理节点接收终端节点发送的连接请求,与之建立连接,所述的连接为SOCKET通道,简称为S1,并将所述终端节点的位置信息插入其维护的终端节点列表文件中。
这种终端节点主动与定位中心建立连接的方法,让终端节点即使处于NAT转换的环境下(终端节点没有互联网公网IP地址),或者处于防火墙的保护下不允许向外提供服务时,也能获取可用透明代理节点列表,这提高了企业网的安全性。
上述方法中,所述终端节点与所有可用的透明代理节点建立连接后,通过定期发送REFRESH刷新命令,使所述连接一直保持活动状态。
这种终端节点主动与透明代理节点建立连接的方法,让终端节点即使处于NAT转换的环境下(终端节点没有互联网公网IP地址),或者处于防火墙的保护下不允许向外提供服务时,也能顺利与透明代理节点建立连接,这提高了企业网的安全性。
上述方法中,所述的透明代理节点对记录在其维护的终端节点列表文件中的终端节点按照其与终端节点的拓扑距离进行排序,使得所述的终端节点按照其与所述的透明代理节点的拓扑距离排列。
上述方法中,所述的透明代理节点按照其与终端节点的拓扑距离进行排序的步骤为:
首先,所述的透明代理节点向与其连接的终端节点发送UDP数据包,确定二者之间的TTL值;
然后,根据所述的TTL值大小对所述终端节点进行排序后记录在所述终端节点列表文件中。
上述方法中,所述透明代理节点接收终端节点发送的连接请求,与之建立连接时,当与所述透明代理节点连接的终端节点数量达到所述透明代理节点的处理最大限时,所述透明代理节点发送信息给后续向其发送连接请求的终端节点;接到该信息的终端节点向下一个可用的透明代理节点发送连接请求。
上述方法中,当所述透明代理节点维护的终端节点列表信息发生改动,所述透明代理节点向定位中心发送刷新请求;所述定位中心同步更新所述透明代理节点的终端节点列表信息。
上述方法中,在步骤3中,所述控制节点通过所述透明代理节点与所述目标终端节点进行通信时,所述透明代理节点开启一个专门的线程实时监听透明代理节点与目标终端节点的连接和透明代理节点与控制节点的连接,为所述两个连接建立直接通信的数据管道。
上述方法中,步骤1中的ID号包括节点主机的MAC地址和节点类型编号。
从上述方案可知,本发明具有以下有益效果:
(1)采用节点主机MAC地址和节点类型给每个节点命名,不仅可以唯一识别每个节点,同时由于采用终端节点和控制节点主动连接的通信方法,在终端节点和/或控制节点使用内网IP地址(非公网IP地址,大多数情况下地址都重复)的情况下,系统也能准确识别各个节点的身份和位置。
(2)采用基于定位中心的多节点定位方法,由定位中心收集并维护终端节点和透明代理节点之间的连通状态,控制节点通过了解这种状态就能快速、准确地定位到目标终端节点。
(3)采用节点定位功能和通信透明转发功能独立开来的机制,让一个专门的节点作为定位中心完成节点定位的关键功能,让多个透明代理节点完成大量数据通信流的转发功能,使整个网络系统的各部分负载均匀合理。
(4)透明代理节点对终端节点进行拓扑距离排序、控制节点对透明代理节点进行拓扑距离排序,最终形成按照网络拓扑距离排序后的定位列表,以此帮助用户选择最佳通信路径,有效地提高系统通信效率。
(5)系统采用基于透明代理节点的三层通信机制,由控制节点、终端节点主动与透明代理节点建立通信连接,可以让控制节点、终端节点均处于NAT转换的网络环境下,在不拥有互联网公网IP地址,或者处于防火墙的保护下不允许向外提供服务时,也能顺利进行通信。从本方法的节点定位方案可以看出,一个企业网如果租用第三方主机作为透明代理节点,那么企业采用本方法进行节点定位就只需要定位中心一台主机拥有对外的互联网公网IP地址,其他子网的主机对外都是内网地址,这也提高了企业网的安全性。
(6)系统由透明代理节点自己确定服务端口并公告自己服务端口,而不是指定唯一的服务端口,可以使透明代理节点在防火墙的保护中,只允许某个端口提供服务的情况下,灵活地确定自己的服务端口,提高了系统对网络环境的适应性。
(7)系统采用多个终端节点对多个透明代理节点、多个透明代理节点对多个控制节点的机制,终端节点与所有可连接的透明代理节点通信,控制节点按拓扑距离最短的规则选择透明代理节点以建立对终端节点实施控制的通信通道,增加了系统的稳定性和容错性。
附图说明
图1为本发明所述网络系统的结构示意图;
图2为本发明所述定位方法的流程图;
图3为本发明所述定位方法的一具体实施例的流程图之一;
图4为本发明所述定位方法的一具体实施例的流程图之二;
图5为本发明另一具体实施例的网络系统的结构示意图;
图6为基于图5所示系统的节点定位方法流程图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细的说明。
参见图1,为本发明所述网络系统的结构示意图,所述网络系统包括:受控网络层1、通信代理层2、应用层3和定位中心4;其中,受控网络层1包括一个或一个以上的终端节点11,所述终端节点11可以向用户提供各种具体的服务;通信代理层2包括一个或一个以上的透明代理节点21;所述应用层3包括一个或一个以上的控制节点31,所述控制节点31用于提供用户接入和控制的交互接口,所述透明代理节点21是终端节点和控制节点之间通信的中转站。不同层次节点之间的连接呈多对多的网状结构,各节点之间可以互相协调,达到最好的资源搭配,并且,每一层中的节点均与定位中心4连接。
图中各类型的节点程序安装在普通主机上,定位中心4安装在高性能服务器上,出于安全考虑,应该位于企业网内。透明代理节点21可安装在租用的第三方主机上,而终端节点11和控制节点31安装在企业各异地子网内的主机上。透明代理节点21和定位中心4应该具有互联网公网IP地址,终端节点11和控制节点31可以位于NAT转换环境和防火墙的保护下,不必具有合法的IP地址,可以不对外提供服务。
其中,定位中心4安装在一台高性能服务器上,收集透明代理节点21和终端节点11的信息,形成一个透明代理节点列表,并动态地维护所述列表的信息。所述的透明代理节点列表包括了所述网络系统中的所有透明代理节点的信息,及每一透明代理节点所连接的终端节点信息,包括ID号、IP地址和端口号。用户通过上述的列表中的信息即可定位目标终端节点位置并获取目标终端节点的通信通道信息。
终端节点11,安装在目标网络各终端节点主机上,向用户提供各种具体的服务。
透明代理节点21,安装在互联网络中的任意节点主机上,可以位于网络中任何位置,其维护一个用于记录与其连接的终端节点11信息的列表,该列表包括与其连接的每一终端节点11的ID号、IP地址和端口号。这里所述的“透明”是指该节点对其接收的数据不做任何处理的转发,透明代理节点接收控制节点31与终端节点11两类节点的通信流,并为之建立数据管道,使得二者能以它为中转站完成通信。
控制节点31,安装在用户主机上,可以位于网络中任何位置,它提供用户访问目标终端节点的人机交互接口。
基于上述网络系统,本发明提供了一种网络系统节点的定位方法,如图2所示,该方法包括以下步骤:
步骤S1、所述控制节点建立其与所述定位中心的通信连接,查询所述定位中心维护的透明代理节点列表,获取可用透明代理节点的位置信息及与所述可用透明代理节点连接的终端节点信息,所述的位置信息为节点的IP地址和端口号或/和ID号,所述终端节点信息包括节点的IP地址、端口和/或ID号;
步骤S2、所述控制节点根据目标终端节点的IP地址或ID号确定与所述目标终端节点连接的透明代理节点,并与之建立连接;
步骤S3、所述控制节点通过所述透明代理节点与所述目标终端节点建立通信连接,进行通信。
本发明通过所述方法,终端节点和控制节点可以位于NAT转换环境和防火墙的保护下,不必具有合法的IP地址,减少了企业网络对互联网公网IPv4地址的需求,而且能让企业各子网在处于防火墙的保护之下时,不额外开放端口也能互相访问,提高了企业网的安全性。
本发明中所涉及到的ID号和通信命令字的数据结构如下:
1、为实现多个节点之间的协调以及控制节点定位到终端节点和透明代理节点,终端节点和透明代理节点必须具有唯一可识别的ID号。在多节点的网络环境下,ID号应该唯一可用,避免冲突;其次,ID号应该包含尽可能多的识别信息。在本发明中,所述ID号的数据结构如表1所示:
表1
LONGID.MAC | LONGID.TYPE |
8字节 | 4字节 |
其中,MAC:为节点主机的MAC地址。
TYPE:为节点类型,1表示透明代理节点、2表示终端节点、3表示控制节点。
2、在本发明中,通信命令字用于各节点之间、采用基于TCP协议的数据流传输进行通信。其数据结构格式如表2所示:
表2
COMMAND.Magic | COMMAND.CommandID | COMMAND.DataSize |
4字节 | 2字节 | 4字节 |
其中,COMMAND.Magic:为通信幻数,为本系统各节点通信的统一标识,如果Magic不正确,则接受方认为通信请求不是来自本系统内的节点。设计Magic的目的是加强系统的安全性,防止来自其他系统的通信连接。
COMMAND.CommandID:命令字,本系统中用到的命令字如表3所示:
表3
序号 | 命令字 | 命令含义 |
1 | FILE_SENDFILE | 接收文件 |
2 | FILE_SAVEFILE | 发送文件 |
3 | FILE_CREATEDIR | 创建目录 |
4 | FILE_DELETEFILE | 删除目录/文件 |
5 | FILE_CREATEFILE | 创建文件 |
6 | COMMUNICATE | 请求通信 |
7 | REFRESH | 刷新 |
8 | OK | 成功 |
9 | ERR | 出错 |
10 | EXIT | 退出 |
COMMAND.DataSize:下一个数据包的长度。
在表3中,序号为1-5的命令字都是对文件进行操作的命令,本发明中采集的信息都以文件的形式进行传输,在进行文件传输时,用一个特殊的结构体来描述文件,所述描述文件的结构体格式如表4所示:
表4
FILEINFO.Magic | FILEINFO.filename | FILEINFO.filesize |
4字节 | 512字节 | 4字节 |
其中,FILEINFO.Magic:对应于COMMAND.Magic;
FILEINFO.filename:待传输的文件名(包含文件在本地的全路径);
FILEINFO.filesize:待传输的文件字节数。
序号为6的命令字COMMUNICATE用于控制节点请求建立与终端节点的通信。下一个数据包中通常是请求建立通信的终端节点的ID号。
序号为7-10的命令字没有后续数据包,所以其COMMAND.DataSize为0。
具体地,本发明所述定位方法的一具体实施例的流程如图3、图4所示:
步骤S100、透明代理节点运行,与定位中心建立连接,发送自己的ID号和位置信息(包括IP地址和端口号),成功后等待终端节点和控制节点与其连接。
步骤S101、定位中心收到透明代理节点的位置信息后,将该透明代理节点的位置信息添加到特定目录下的透明代理节点列表文件中。
文件格式如下:
{
[AgentID1]
IP=192.168.100.20,PORT=1056
(AgentID1.1)
IP=192.168.110.20,PORT=1057
(AgentID1.2)
IP=192.168.120.20,PORT=1058
……
}
{
[AgentID2]
IP=,PORT=
(AgentID2.1)
IP=193.168.110.20,PORT=1065
(AgentID2.2)
IP=193.168.120.20,PORT=1066
}
其中,[AgentID1]表示透明代理节点的ID号;
(AgentID1.1)表示与[AgentID1]连接的终端节点ID号;
IP、PORT分别是该节点的IP地址和端口号。
这种由透明代理节点自己确定服务端口而不是指定唯一服务端口的办法,可以使透明代理节点在防火墙保护中、只允许某个端口提供服务的情况下,灵活地确定自己的服务端口。
步骤S102、终端节点向定位中心发送命令字为FILE_SENDFILE,目标文件名为透明代理节点列表文件的请求,从而获取可用透明代理节点列表信息。
这种终端节点主动与定位中心建立连接的方法,让终端节点即使处于NAT转换的环境下(终端节点没有互联网公网IP地址),或者处于防火墙的保护下不允许向外提供服务时,也能获取可用透明代理节点列表,提高了企业网的安全性。
步骤S103、终端节点根据步骤S102获取的透明代理节点列表信息,与所有可用的透明代理节点建立连接(设该SOCKET通道为S1),并通过定期发送REFRESH命令使该连接一直保持活动状态。
利用这种代表身份的ID号,采用终端节点和控制节点均向透明代理节点主动连接的通信方法,在透明代理节点上依赖于同ID相关联的Socket通道来确立连接,即使终端节点和控制节点都使用内网IP地址(非公网IP地址),也能准确定位他们的位置。并且,这种终端节点主动与透明代理节点建立连接的方法,让终端节点即使处于NAT转换的环境下(终端节点没有互联网公网IP地址),或者处于防火墙的保护下不允许向外提供服务,也能顺利与透明代理节点建立连接,这提高了企业网的安全性。
步骤S104、透明代理节点与终端节点之间的连接成功建立后,透明代理节点将该终端节点位置信息插入终端节点列表文件中。该文件格式如下:
[AgentID1]
IP=192.168.100.20,PORT=1080
[AgentID2]
IP=192.168.100.30,PORT=1081
……
该文件一大特点在于它存在顺序,在该步骤中,利用TCP/IP通信机制将各个终端节点按照拓扑距离进行排序。首先,透明代理节点向终端节点发送UDP数据包,以确定二者之间的TTL值,该值反映了二者中间路由器的跳数,TTL值越小,说明经过的路由器越少,通信速率越快,通过TTL值可以确定二者之间的拓扑距离;然后,根据TTL值对每个终端节点进行排列,即,每个终端节点在文件中的位置由透明代理节点与终端节点之间的拓扑距离来决定。在文件中的位置越靠前的终端节点具有更短的拓扑距离。
当透明代理节点达到设定的终端节点最大处理能力后,向后续终端节点发送出错(ERR)命令,收到该指令的终端节点会尝试连接下一个透明代理节点。
步骤S105、透明代理节点向定位中心发送命令字为FILE_SAVEFILE,目标文件为透明代理节点列表的请求,请求定位中心同步更新与自己连接的终端节点列表信息。
一旦透明代理节点的终端节点列表信息发生任意改动,它都会向定位中心发送同步更新终端节点列表的请求。
步骤S106、控制节点启动后与定位中心建立连接,向定位中心发送命令字为FILE_SENDFILE,目标文件名为透明代理节点列表的请求,从而获取可用透明代理节点列表及与其相连的终端节点信息,显示给用户。控制节点对获得的透明代理节点列表文件中的节点按拓扑距离排序,排序方法与步骤S104中的排序方法相同,在此不再赘述。至此,控制节点获得了按路径最优排序的透明代理节点列表,在列表中位置越靠前的透明代理节点与该控制节点具有更短的拓扑距离,在同一透明代理节点子项中,位置越靠前的终端节点与透明代理节点具有更短的拓扑距离。
这种控制节点主动与定位中心建立连接的方法,让控制节点即使处于NAT转换的环境下(控制节点没有互联网公网IP地址),或者处于防火墙的保护下不允许向外提供服务时,也能顺利获取可用透明代理节点列表及与其相连的终端节点信息,这提高了企业网的安全性。
步骤S107、用户输入想要访问的目标终端节点IP地址信息或目标终端节点的ID号信息,控制节点从步骤S106中获取的排序列表中给出三者通信时总拓扑距离最短的路径选择,并提示用户选择路径。
步骤S108、控制节点与用户指定路径中的透明代理节点建立连接(设该SOCKET通道为S2),成功后,向该透明代理节点发送命令字为COMMUNICATE,目标为用户指定终端ID号的请求,请求与指定目标终端节点通信。
步骤S109、透明代理节点将来自控制节点的通信请求发送到终端节点与自己一直保持的SOCKET通道S1上。
步骤S110、终端节点收到COMMUNICATE指令后,发送OK指令,确定建立通信成功。
步骤S111、透明代理节点将OK指令发送至控制节点与自己的SOCKET通道S2上。
步骤S112、透明代理节点开启一个专门的线程实时监听SOCKET通道S1、SOCKET通道S2,为两个通道建立直接通信的数据管道。当控制节点发送控制指令时,该线程读取SOCKET通道S2中的输出数据流,作为输入传送给SOCKET通道S1;同理,终端节点返回指令执行结果时,该线程读取SOCKET通道S1中的数据流,将其作为输入传送给SOCKET通道S2。
步骤S113、终端节点完成用户指定的控制并将结果返回给控制节点,控制节点向S2发送EXIT指令,取消与终端节点的通信。
步骤S114、透明代理节点把EXIT指令转发给SOCKET通道S1,终端节点断开与控制节点的连接,并定期发送REFRESH刷新命令使SOCKET通道S1一直保持活动状态。
步骤S115、控制节点断开与透明代理节点的连接通道,整个通信过程结束。
本发明中,所述的网络系统采用基于透明代理节点的三层通信机制,由控制节点、终端节点主动与透明代理节点建立通信连接,可以让控制节点、终端节点均处于NAT转换的网络环境下不拥有互联网公网IP地址,或者处于防火墙的保护下不允许向外提供服务时,也能顺利地通信。当采用本发明所述的定位方法时,一个企业网如果租用第三方主机作为透明代理节点,那么企业采用本方法进行节点定位就只需要定位中心一台主机拥有对外的互联网公网IP地址,其他子网的主机对外都是内网地址,这也提高了企业网的安全性。
在本发明中,所述的网络系统由透明代理节点自己确定服务端口并公告自己服务端口,而不是指定唯一的服务端口,可以使透明代理节点在防火墙保护中,在只允许某个端口提供服务的情况下,灵活地确定自己的服务端口,提高了系统对网络环境的适应性。
并且,本发明的网络系统采用多个终端节点对多个透明代理节点、多个透明代理节点对多个控制节点的机制,终端节点与所有可连接的透明代理节点通信,控制节点按拓扑距离最短的规则选择透明代理节点以建立对终端节点实施控制的通信通道,这增加了系统的稳定性和容错性。
本发明采用节点主机MAC地址和节点类型给每个节点命名的办法,不仅可以唯一识别每个节点,而且在终端节点和/或控制节点使用内网IP地址(非公网IP地址,大多数情况下地址都重复)的情况下,系统也能准确识别各个节点的身份和位置。
本发明采用节点定位功能和通信透明转发功能独立分开的机制,一个专门的节点作为定位中心完成节点定位的关键功能,多个透明代理节点完成大量数据通信流的转发功能,使整个网络系统的各部分负载均匀合理。
并且,透明代理节点对终端节点进行拓扑距离排序、控制节点对透明代理节点进行拓扑距离排序,最终形成按照网络拓扑距离排序后的定位列表,以此帮助用户选择最佳通信路径,有效地提高系统通信效率。
本发明所述的系统和方法可以应用于各种具体的网络环境。如:在一种基于透明代理的分布式多节点网络监控系统中,将人工智能研究中多Agent系统,与分布式网络监控系统的结构相适应,其中,Agent指分布式系统中能持续自主发挥作用的计算实体,具有自主性、交互性、反应性和主动性的特征。在网络安全领域借鉴人工智能的成果,每一个终端Agent既具有思考型Agent的特点,能够自动报告自身的存活性,主动完成常规的检测,又具备反应型Agent的灵活性,可以根据控制端的实时指令,快速响应并做出相应的处理。
如图5所示,为本发明一具体实施例的网络结构示意图,本实施例的网络结构为一种基于透明代理的分布式多节点网络监控系统,包括:受控目标网络层100,通信代理层200、应用层300和定位中心400。所述受控目标网络层100包括6个安装在受监控的目标网络节点主机上的终端Agent101-106;所述通信代理层200包括4个安装在网络中的受控节点主机上的透明代理Agent201-204;所述应用层300包括2个安装在网络任何节点主机上的控制端Agent301、302;所述定位中心400位于服务器上,是整个系统的中心数据节点,为系统的初始化、更新和维护提供支撑数据信息,用于维护透明代理Agent列表、终端Agent列表信息及二者之间的连通关系,为用户提供查询和检索的各种Agent的实时信息,查看各种Agent获取的环境信息和监控得到的信息。其中,终端Agent101-103位于子网1中,终端Agent104-106位于子网2中,终端Agent与透明代理Agent呈网状连接,透明代理Agent与控制端Agent呈网状连接,并且,每一个终端Agent、透明代理Agent、控制端Agent分别与定位中心连接。
所述终端Agent,用于获取所监控的网络节点的环境信息以及由控制端Agent指定监控的各种网络状态和主机状态,包括活动进程、运行的服务、文件操作、联网行为等,并形成记录日志,及时向定位中心汇报,以便用户实时查询和检索。
所述透明代理Agent,用于建立和维护终端Agent与控制端Agent之间的通信,并根据网络拓扑距离排序形成列表,以待控制端Agent连接,当控制端Agent与终端Agent通过身份验证,建立有效连接后,透明代理Agent透明地转发信息和指令。
所述控制端Agent,用于指定终端Agent的监控任务,并获取监控结果。因此,用户可以采用控制端Agent查询可用的透明代理Agent,自主选择希望连接的透明代理Agent,并查询可控终端Agent。
所述的透明代理Agent包括一级或一级以上的透明代理Agent,其中,低级透明代理Agent分别与一个高级透明代理Agent连接,用于进行消息的转发。
在本监控网络系统中,终端Agent采用混合型Agent,快速反应,可控性强,又具备自主工作的能力,在无控制端Agent指令的时候,可以自主汇报自己的工作情况,并主动收集情报信息备用。为了监控指定的终端Agent,控制端Agent需要从本系统中找到所述指定的终端Agent,通过获取所述指定的终端Agent所采集的数据,即可知所述指定的终端Agent所在主机的网络运行情况。
定位中心维护透明代理Agent列表及每一透明代理Agent对应的终端Agent的列表信息,每一透明代理Agent维护与其连接的终端Agent的列表信息。当某一控制端Agent欲在该网络系统中定位某一目标终端Agent时,采用如图6所示流程图的步骤完成:
步骤S200、所述控制端Agent建立与所述定位中心的通信连接,查询所述定位中心维护的透明代理Agent列表,获取可用透明代理Agent的位置信息及与其连接的终端Agent信息,所述的位置信息为节点的IP地址和端口号或/和ID号,所述终端Agent信息包括节点的IP地址、端口号和/或ID号,所述的ID号包括Agent节点主机MAC地址和Agent代理类型;
步骤S201、所述控制端Agent根据目标终端Agent的IP地址或ID号确定与所述目标终端Agent连接的透明代理Agent,并与之建立连接;
步骤S202、所述控制端Agent通过所述透明代理Agent与所述目标终端Agent建立通信连接,进行通信。
控制端Agent与目标终端Agent建立起通信连接后,控制端Agent向所述目标终端Agent发送监控指令;所述透明代理Agent作为控制端Agent和所述目标终端Agent之间的通信桥梁,将所述监控指令转发给目标终端Agent;目标终端Agent获取所述监控指令,按照所述监控指令完成监控任务,并通过所述透明代理Agent将监控结果返回给所述控制端Agent。
在本系统中,定位中心维护的所述透明代理Agent列表记录了本系统中所有的透明代理Agent的位置信息,即IP地址、ID号和端口号。每一透明代理Agent维护的终端Agent列表记录了与所述透明代理Agent连接的终端Agent的位置信息,即IP地址、ID号和端口号。上述两个列表是动态刷新的,也就是说,是根据网络连接的变化而变化的,当所述透明代理Agent维护的终端Agent列表信息发生改动时,所述透明代理Agent向定位中心发送刷新请求;所述定位中心同步更新所述透明代理Agent的终端Agent列表信息。同理,当与定位中心连接的所述透明代理Agent发生变化时,其向定位中心发送刷新请求;所述定位中心同步更新所述透明代理Agent列表。这样可以保证上述两种列表的实效性。
其中,为了定位的准确、迅速,上述两种列表中所记录的Agent是有顺序的,以终端Agent列表为例进行说明。所述终端Agent列表中的终端Agent按照其与其连接的透明代理Agent的拓扑距离排序。具体的算法如下所示:
ttli、ttlij:分别表示排序前和排序后第i个终端Agent到所连接的透明代理Agent的拓扑距离;
TTLj:表示排序后各终端Agent到所连接的透明代理Agent的拓扑距离集;
time-on-linei、time-on-lineij:分别表示排序前和排序后第i个终端Agent在线的时间;
TIME-ON-LINEj:表示排序后各终端Agent在线的时间集;
listi、listij:分别表示排序前和排序后列表中的第i项;
li、lij:分别表示排序前和排序后的第i个终端Agent。
TTL0={ttl0,ttl1......ttli......ttln},i∈0,n
TIME-ON-LINE0=
{time-on-line0,time-on-line1......time-on-linei......time-on-linen},
i∈0,n
TTL1={ttl0,ttl1......ttli......ttln}-ttli0,i∈0,n
TIME-ON-LINE1=
{time-on-line0,time-on-line1.....time-on-linei.....time-on-linen}-time-on-linei0,
i∈0,n
TIME-ON-LINEj=
i∈0,n
所述终端Agent列表文件的格式如下所示:
[AgentID1]
IP=192.168.100.20,PORT=80
[AgentID2]
IP=192.168.100.30,PORT=80
……
该文件最大的特点在于它存在顺序,程序利用TCP/IP通信机制将各个终端Agent按照拓扑距离进行排序。透明代理Agent向终端Agent发送UDP数据包,以确定二者之间的TTL值,该值反映了二者中间路由器的跳数,TTL值越小,说明经过的路由器越少,通信速率越快,因此,系统可以通过TTL值确定二者之间的拓扑距离。每个终端Agent在文件中的位置由透明代理Agent与终端Agent之间的拓扑距离来决定,在文件中的位置越靠前的终端Agent具有更短的拓扑距离。
当透明代理Agent达到设定的终端Agent最大处理能力后,向后续终端Agent发送出错(ERR)命令,收到该指令的终端Agent会尝试连接下-个透明代理Agent。
同理,透明代理Agent列表的排序与上述终端Agent列表的排序相同。
所述控制端Agent通过所述透明代理Agent与所述目标终端Agent进行通信时,所述透明代理Agent开启一个专门的线程实时监听透明代理Agent与目标终端Agent的连接和透明代理Agent与控制端Agent的连接,为所述两个连接建立直接通信的数据管道。
另外,上述实施例中的控制端Agent对目标终端Agent的定位是在网络系统的运行时进行的,在所述网络系统运行之初,需要进行初始化,做好监控及定位的必备工作,如:
终端Agent与所述定位中心建立连接,查询透明代理Agent列表文件,从而获取可用透明代理Agent列表信息;
所述终端Agent根据获取的透明代理Agent列表信息,向所有可用的透明代理Agent发送连接请求;
所述透明代理Agent接收终端Agent发送的连接请求,与之建立连接,并将所述终端Agent的位置信息插入其维护的终端Agent列表文件中,并完成对与其连接的终端Agent的排序。
透明代理Agent与所述定位中心建立连接,将其ID号和位置信息发送给定位中心;
所述定位中心收到透明代理Agent的位置信息后,将该透明代理Agent的位置信息添加到透明代理Agent列表文件中,并完成对与其连接的透明代理Agent的排序。
本实施例由定位中心收集并维护终端Agent节点和透明代理Agent节点之间的连通状态,控制端Agent通过了解这种状态就能快速、准确地定位到目标终端Agent节点。
本发明采用节点定位功能和通信透明转发功能独立开来的机制,让一个专门的定位中心节点完成节点定位的关键功能,让多个透明代理Agent节点完成大量数据通信流的转发功能,使整个系统的各部分负载均匀合理。
并且,采用Agent节点主机MAC地址和Agent类型给每个节点Agent命名的办法,不仅可以唯一识别每个节点,而且在终端Agent和/或控制端Agent使用内网IP地址(非公网IP地址,大多数情况下地址都重复)的情况下,系统也能准确识别各个节点的身份和位置。
最后所应说明的是:以上实施例仅用以说明本发明而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1、一种基于分层结构的网络系统,其特征在于,包括受控网络层、通信代理层、应用层和定位中心,其中,所述受控网络层包括一个或多个终端节点,所述通信代理层包括一个或多个透明代理节点,所述应用层包括一个或多个控制节点,所述受控网络层的节点与所述通信代理层的节点、所述通信代理层的节点与所述应用层的节点分别呈网状连接,并且,每一层中的节点与定位中心连接。
2、一种基于权利要求1所述网络系统节点的定位方法,其特征在于,包括以下步骤:
步骤1、所述控制节点建立其与所述定位中心的通信连接,查询所述定位中心维护的透明代理节点列表,获取可用透明代理节点的位置信息及与所述透明代理节点连接的终端节点信息,所述的位置信息为节点的IP地址和端口号,所述终端节点信息包括节点的IP地址、端口号和/或ID号;
步骤2、所述控制节点根据目标终端节点的IP地址或ID号确定与所述目标终端节点连接的透明代理节点,并与之建立连接;
步骤3、所述控制节点通过所述透明代理节点与所述目标终端节点建立通信连接,进行通信。
3、根据权利要求2所述的网络系统节点的定位方法,其特征在于,所述步骤1进一步包括:所述控制节点按照其与所获得的可用透明代理节点的拓扑距离进行排序,使得所述的透明代理节点按照其与控制节点的拓扑距离排列。
4、根据权利要求3所述的网络系统节点的定位方法,其特征在于,所述控制节点对所获得的可用透明代理节点,按照所述透明代理节点与其的拓扑距离进行排序的步骤为:
首先,所述控制节点向所述的透明代理节点发送UDP数据包,确定二者之间的TTL值;
然后,根据所述的TTL值大小对所述透明代理节点进行排序。
5、根据权利要求2所述的网络系统节点的定位方法,其特征在于,在所述步骤1之前还包括:
所述透明代理节点与所述定位中心建立连接,将其ID号和位置信息发送给定位中心;
所述定位中心收到所述透明代理节点的位置信息后,将所述透明代理节点的位置信息添加到所述透明代理节点列表文件中。
6、根据权利要求2-5任一所述的网络系统节点的定位方法,其特征在于,在所述步骤1之前还包括:
所述终端节点与所述定位中心建立连接,查询所述透明代理节点列表文件,获取可用透明代理节点位置信息;
所述终端节点根据获取的透明代理节点位置信息,向所有可用的透明代理节点发送连接请求;
所述透明代理节点接收所述终端节点发送的连接请求,与之建立连接,并将所述终端节点的位置信息插入其维护的终端节点列表文件中。
7、根据权利要求6所述的网络系统节点的定位方法,其特征在于,所述的透明代理节点对记录在其维护的所述终端节点列表文件中的终端节点按照其与所述终端节点的拓扑距离进行排序,使得所述的终端节点按照其与所述的透明代理节点的拓扑距离排列。
8、根据权利要求7所述的网络系统节点的定位方法,其特征在于,所述的透明代理节点对记录在其维护的所述终端节点列表文件中的终端节点按照其与所述终端节点的拓扑距离进行排序的步骤为:
所述的透明代理节点向与其连接的终端节点发送UDP数据包,确定二者之间的TTL值;
根据所述的TTL值大小对所述终端节点进行排序。
9、根据权利要求6、7或8所述的网络系统节点的定位方法,其特征在于,所述透明代理节点接收终端节点发送的连接请求,与之建立连接时,当与所述透明代理节点连接的终端节点数量达到所述透明代理节点的处理最大限时,所述透明代理节点发送信息给后续向其发送连接请求的终端节点;接到该信息终端节点向下一个可用的透明代理节点发送连接请求。
10、根据权利要求6、7或8所述的网络系统节点的定位方法,其特征在于,当所述透明代理节点维护的所述终端节点列表信息发生改动时,所述透明代理节点向定位中心发送刷新请求;所述定位中心同步更新所述透明代理节点的终端节点列表信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100121825A CN100473073C (zh) | 2005-07-14 | 2005-07-14 | 基于分层结构的网络系统及其节点的定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100121825A CN100473073C (zh) | 2005-07-14 | 2005-07-14 | 基于分层结构的网络系统及其节点的定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1710910A true CN1710910A (zh) | 2005-12-21 |
CN100473073C CN100473073C (zh) | 2009-03-25 |
Family
ID=35707082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100121825A Expired - Fee Related CN100473073C (zh) | 2005-07-14 | 2005-07-14 | 基于分层结构的网络系统及其节点的定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100473073C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101595686B (zh) * | 2007-01-24 | 2012-03-14 | 思科技术公司 | 触发中间设备处的流分析 |
CN102439910A (zh) * | 2009-03-26 | 2012-05-02 | 超级计算公司 | 包括分组成单元的节点的层级结构的网络拓扑 |
CN103457746A (zh) * | 2012-06-05 | 2013-12-18 | 中兴通讯股份有限公司 | 会议数据的传输方法及装置 |
CN104023094A (zh) * | 2014-06-13 | 2014-09-03 | 台安科技(无锡)有限公司 | 避免局域网通信模块选择困扰的方法 |
CN104205941A (zh) * | 2012-01-27 | 2014-12-10 | 泰斯康有限公司 | 数据协调同步方法 |
CN104735155A (zh) * | 2015-03-30 | 2015-06-24 | 北京瑞星信息技术有限公司 | 多个终端网络定址、数据传输的管理方法及系统 |
CN104754424A (zh) * | 2013-12-26 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种节点列表访问方法及装置 |
CN111245948A (zh) * | 2020-01-16 | 2020-06-05 | 深圳市网心科技有限公司 | Dht网络连接方法、电子设备及介质 |
-
2005
- 2005-07-14 CN CNB2005100121825A patent/CN100473073C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101595686B (zh) * | 2007-01-24 | 2012-03-14 | 思科技术公司 | 触发中间设备处的流分析 |
CN102439910A (zh) * | 2009-03-26 | 2012-05-02 | 超级计算公司 | 包括分组成单元的节点的层级结构的网络拓扑 |
CN104205941A (zh) * | 2012-01-27 | 2014-12-10 | 泰斯康有限公司 | 数据协调同步方法 |
US9819735B2 (en) | 2012-01-27 | 2017-11-14 | Texecom Limited | Method of concerted data synchronisation across a wireless mesh network |
CN104205941B (zh) * | 2012-01-27 | 2018-07-31 | 泰斯康有限公司 | 数据协调同步方法 |
CN103457746A (zh) * | 2012-06-05 | 2013-12-18 | 中兴通讯股份有限公司 | 会议数据的传输方法及装置 |
CN104754424A (zh) * | 2013-12-26 | 2015-07-01 | 乐视网信息技术(北京)股份有限公司 | 一种节点列表访问方法及装置 |
CN104023094A (zh) * | 2014-06-13 | 2014-09-03 | 台安科技(无锡)有限公司 | 避免局域网通信模块选择困扰的方法 |
CN104735155A (zh) * | 2015-03-30 | 2015-06-24 | 北京瑞星信息技术有限公司 | 多个终端网络定址、数据传输的管理方法及系统 |
CN104735155B (zh) * | 2015-03-30 | 2018-05-08 | 北京瑞星网安技术股份有限公司 | 多个终端网络定址、数据传输的管理方法及系统 |
CN111245948A (zh) * | 2020-01-16 | 2020-06-05 | 深圳市网心科技有限公司 | Dht网络连接方法、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100473073C (zh) | 2009-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1710910A (zh) | 基于分层结构的网络系统及其节点的定位方法 | |
CN1263267C (zh) | 漫游的转换器或路由器 | |
CN1241370C (zh) | 移动终端管理系统 | |
CN1437363A (zh) | 网关装置及其控制方法 | |
CN1242593C (zh) | 源地址选择系统、路由器装置、通信节点和源地址选择方法 | |
CN1531263A (zh) | 通信系统、连接装置、通信方法以及认证方法 | |
CN1486094A (zh) | 用于采用负载均衡的移动通信的方法和装置 | |
CN1957566A (zh) | 为与客户机的连接选择路由的服务器 | |
CN1434611A (zh) | 生成树绕过方法和装置 | |
CN1520123A (zh) | 对地址询问的回答方法、程序、装置和地址通知方法、程序、装置 | |
CN1765081A (zh) | 用于集中分配地址与端口号的方法和系统 | |
CN1353900A (zh) | 桥连HAVi子网络和UPnP子网络的方法及实施所述方法的装置 | |
CN1761233A (zh) | IPv6接入网中的网络服务选择和认证,及无状态自动配置 | |
CN1601993A (zh) | 网络互连设备和方法、名字分辨设备和计算机程序 | |
CN1813454A (zh) | 无线通信网络上的移动单元会话管理的系统和方法 | |
CN1914862A (zh) | 集群系统、集群成员、故障恢复方法及程序 | |
CN1968184A (zh) | 区域网络的链路层通信方法及其应用的网络设备 | |
CN1640074A (zh) | 移动管理方法和移动终端 | |
CN1298592A (zh) | 建立网络中的接续 | |
CN1111425A (zh) | 多网段局域网中为移动工作站确定路由路径的方法和系统 | |
CN1665221A (zh) | 多点发送控制装置及方法 | |
CN1866919A (zh) | 基于虚拟局域网堆叠的业务交换方法 | |
CN1525700A (zh) | 存取点至存取点的范围扩展 | |
CN1901511A (zh) | 包传输装置、通信网和数据包传输方法 | |
CN101061672A (zh) | 通信系统、无线局域网基站控制装置和无线局域网基站装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 Termination date: 20140714 |
|
EXPY | Termination of patent right or utility model |