一种判断网络节点之间能否建立网络连接的方法和系统转让专利

申请号 : CN202110658340.3

文献号 : CN113114541B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 卢国鸣

申请人 : 上海兴容信息技术有限公司

摘要 :

本说明书实施例提供一种判断网络节点之间能否建立网络连接的方法和系统。其中,该方法包括获取多个网络节点的节点数据以及多个网络节点之间的可能连接关系;利用判断模型对多个网络节点的节点数据以及多个网络节点之间的可能连接关系进行处理;其中,节点数据包括设备信息、IP地址信息和网络端口信息;判断模型为图神经网络模型,以多个网络节点为图的顶点,以多个网络节点之间的可能连接关系作为图的边。基于判断模型输出的预测连接类型,确定是否能在多个网络节点之间建立网络连接。

权利要求 :

1.一种判断网络节点之间能否建立网络连接的方法,所述方法包括:获取多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系;其中,所述节点数据包括设备信息、IP地址信息和网络端口信息,所述可能连接关系包括待预测连接、已知连接和随机赋予连接;

利用判断模型对所述多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理;所述处理包括:根据所述节点数据确定端口分配规律和IP地址是否受限,以及根据所述可能连接关系预测分配给所述多个网络节点的端口,基于所述端口确定预测连接类型并输出;其中,所述判断模型为图神经网络模型,以所述多个网络节点为图的顶点,以所述多个网络节点之间的可能连接关系作为所述图的边;其中,所述顶点的特征包括节点数据;

所述边的特征包括连接类型、连接的两个网络节点的网络端口和连接的两个网络节点的IP地址;

基于所述判断模型输出的预测连接类型,确定是否能在所述多个网络节点之间建立网络连接;

其中,所述判断模型通过以下方式训练得到:获取多个携带有标签的训练样本;其中,所述训练样本包括样本网络节点的样本节点数据和所述样本网络节点之间的样本可能连接关系,所述标签用于表征是否能在所述样本网络节点之间建立连接关系;

使用多个训练样本对初始判断模型进行训练,得到训练好的判断模型。

2.根据权利要求1所述的方法,所述节点数据通过设置和/或监测获取。

3.一种判断网络节点之间能否建立网络连接的系统,所述系统包括:获取模块,用于获取多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系;其中,所述节点数据包括设备信息、IP地址信息和网络端口信息,所述可能连接关系包括待预测连接、已知连接和随机赋予连接;

处理模块,用于利用判断模型对多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理;所述处理包括:根据所述节点数据确定端口分配规律和IP地址是否受限,以及根据所述可能连接关系预测分配给所述多个网络节点的端口,基于所述端口确定预测连接类型并输出;其中,所述判断模型为图神经网络模型,以所述多个网络节点为图的顶点,以所述多个网络节点之间的可能连接关系作为所述图的边;其中,所述顶点的特征包括节点数据;所述边的特征包括连接类型、连接的两个网络节点的网络端口和连接的两个网络节点的IP地址;

确定模块,用于基于所述判断模型输出的预测连接类型,确定是否能在所述多个网络节点之间建立网络连接;

训练模块,用于通过以下方式训练得到所述判断模型:获取多个携带有标签的训练样本;其中,所述训练样本包括样本网络节点的样本节点数据和所述样本网络节点之间的样本可能连接关系,所述标签用于表征是否能在所述样本网络节点之间建立连接关系;

使用多个训练样本对初始判断模型进行训练,得到训练好的判断模型。

4.根据权利要求3所述的系统,所述节点数据通过设置和/或监测获取。

5.一种判断网络节点之间能否建立网络连接的装置,包括处理器,所述处理器用于执行权利要求1 2中任一项所述的判断网络节点之间能否建立网络连接的方法。

~

6.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1 2中任一项所述的判断网络节点之间能否建~

立网络连接的方法。

说明书 :

一种判断网络节点之间能否建立网络连接的方法和系统

技术领域

[0001] 本说明书涉及通信领域,特别涉及一种判断网络节点之间能否建立网络连接的方法和系统。

背景技术

[0002] 点对点技术又称对等互联网络技术,是一种网络新技术,广泛应用于各种音频、视频、数据、实时数据(例如,IP电话通信、音视频通信等)等的共享。在点对点网络实际应用
中,由于各个设备所处的网络环境不同,在建立点对点网络连接时存在一些不便。
[0003] 因此,有必要提供一种判断网络节点之间能否建立网络连接的方法和系统,以更好的在网络节点之间建立网络连接。

发明内容

[0004] 本说明书一些实施例提供一种判断网络节点之间能否建立网络连接的方法。所述判断网络节点之间能否建立网络连接的方法包括以下一个或多个操作。可以获取多个网络
节点的节点数据以及所述多个网络节点之间的可能连接关系。可以利用判断模型对多个网
络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理。其中,所述判断
模型为图神经网络模型,以所述多个网络节点为图的顶点,以所述多个网络节点之间的可
能连接关系作为所述图的边。其中,所述顶点的特征包括节点数据,所述节点数据包括设备
信息、IP地址信息和网络端口信息;所述边的特征包括连接类型、连接两个网络节点的网络
端口和连接两个网络节点的IP地址。可以基于所述判断模型输出的预测连接类型,确定是
否能在所述多个网络节点之间建立网络连接。其中,所述判断模型通过以下方式训练得到:
获取多个携带有标签的训练样本;使用所述多个训练样本对初始判断模型进行训练,得到
训练好的判断模型。其中,所述训练样本包括样本网络节点的样本节点数据和所述样本网
络节点之间的样本可能连接关系,所述标签用于表征是否能在所述样本网络节点之间建立
连接关系;所述标签通过发送数据包的方式确定。
[0005] 本说明书另一些实施例提供一种判断网络节点之间能否建立网络连接的系统,所述判断网络节点之间能否建立网络连接的系统包括获取模块,用于获取多个网络节点的节
点数据以及所述多个网络节点之间的可能连接关系;处理模块,用于利用判断模型对多个
网络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理;确定模块,用
于基于所述判断模型输出的预测连接类型,确定是否能在所述多个网络节点之间建立网络
连接;以及训练模块,用于通过以下方式训练得到所述判断模型:获取多个携带有标签的训
练样本;使用所述多个训练样本对初始判断模型进行训练,得到训练好的判断模型。其中,
所述判断模型为图神经网络模型,以所述多个网络节点为图的顶点,以所述多个网络节点
之间的可能连接关系作为所述图的边。所述顶点的特征包括节点数据,所述节点数据包括
设备信息、IP地址信息和网络端口信息;所述边的特征包括连接类型、连接两个网络节点的
网络端口和连接两个网络节点的IP地址。所述训练样本包括样本网络节点的样本节点数据
和所述样本网络节点之间的样本可能连接关系,所述标签用于表征是否能在所述样本网络
节点之间建立连接关系;所述标签通过发送数据包的方式确定。
[0006] 本说明书另一些实施例提供一种判断网络节点之间能否建立网络连接的装置,包括处理器,所述处理器用于执行判断网络节点之间能否建立网络连接的方法。
[0007] 本说明书另一些实施例提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行判断网络节点之间能否建立
网络连接的方法。

附图说明

[0008] 本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其
中:
[0009] 图1是根据本说明书一些实施例所示的判断网络节点之间能否建立网络连接的系统的应用场景示意图;
[0010] 图2是根据本说明书一些实施例所示的判断网络节点之间能否建立网络连接的方法的示例性流程图;
[0011] 图3是根据本说明书一些实施例所示的图神经网络模型的示例性结构图;
[0012] 图4是根据本说明书一些实施例所示的判断模型的训练的示例性流程图;
[0013] 图5是根据本说明书一些实施例所示的对话的系统的示例性模块图。

具体实施方式

[0014] 为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实
施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附
图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标
号代表相同结构或操作。
[0015] 应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,
则可通过其他表达来替换所述词语。
[0016] 如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提
示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者
设备也可能包含其它的步骤或元素。
[0017] 本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时
处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数
步操作。
[0018] NAT(Network Address Translation,网络地址转换),也叫做网络掩蔽或者IP掩蔽。NAT是一种网络地址翻译技术,主要是将内部的私有IP地址转换成可以在公网使用的公
网IP。NAT可以同时让多个计算机同时联网,并隐藏其内网IP,增加了内网的网络安全性;
NAT还可以对来自外部的数据查看其NAT映射记录,对没有相应记录的数据包进行拒绝,提
高网络安全性。
[0019] NAT的实现方式包括静态地址转换和端口多路复用技术。静态地址转换是指一个公网IP对应一个私有IP,即一个IP主机对应一个公网IP地址。静态地址转换只进行了IP转
换,并不涉及端口的转换。端口多路复用技术不仅会对IP地址进行转换,还会对传输层的端
口进行转换,其表现为所有的IP主机对外只有一个公网IP,通过端口来区分不同的IP主机。
[0020] NAT的主要类型包括锥形NAT和对称型NAT。其中,锥形NAT又分为完全锥型、受限锥型和端口受限锥型。对称型NAT是一个请求对应一个端口;锥型NAT(非对称NAT)是多个请求
(外部发向内部)对应一个端口,只要源IP端口不变,无论发往的目的IP是否相同,在NAT上
都映射为同一个端口。
[0021] 完全锥形NAT的特点是IP和端口都不受到限制,只要客户端(也可以是服务器或其他设备),由内到外建立一个映射之后,其他IP的主机或端口都可以使用这个端口给客户端
发送数据,即能建立网络连接。
[0022] 受限锥形NAT的特点是IP受限,端口不受限,当客户端由内到外建立映射后,发起过连接的IP主机就可以使用他的其他端口主动连接该客户端,但其他主机则不允许建立连
接,因为IP受到了限制,但是端口可以随意选择。
[0023] 端口受限型NAT与受限锥形NAT相比更为严格,除具有受限锥形NAT特性,对于外部主机的端口也有要求。其只有当内部主机曾经发送过报文给外部主机(假设外部主机的IP
地址为A且端口为P1)之后,外部主机才能以公网IP中的信息(即,IP地址为A,端口为P1)作
为目标地址和目标端口,向内部主机发送报文。外部主机使用IP地址为A,端口为P2,或者IP
地址为B,端口为P1都将通信失败,无法建立网络连接。
[0024] 对称型NAT的特点是对每个外部主机或端口的会话都会映射为不同的端口。只有来自同一内部IP、且针对同一目标IP的请求才被NAT转换至同一个公网(外部)IP,否则的
话,NAT将为之分配一个新的外部(公网)IP。并且,只有曾经收到过内部主机请求的外部主
机才能向内部主机发送数据包。内部主机用同一IP与同一端口与外部多IP主机通信。例如,
客户端想和服务器A建立网络连接,通过NAT将客户端的IP映射为IPA来进行的,而客户端和
服务器B建立连接,是通过NAT将客户端的IP映射为IPB来进行的。即同一个客户端和不同的
目标IP主机通信,经过NAT映射后的公网IP是不同的。此时,如果服务器B想要和客户端通
信,也只能通过IPB来进行,而不能通过IPA来实现。
[0025] 由此可见,在两个网络节点之间建立网络连接,根据NAT的类型不同,所受到的限制条件也是不同的。目前,判断两个网络节点之间是否能够建立网络连接的方式为在两个
网络节点之间发送特殊的数据包,能发送成功即能建立相应的网络连接,但这种方式效率
较低,花费时间较长,难以高效批量的判断在多个网络节点之间是否能建立网络连接。因
此,本说明书实施例提出一种判断网络节点之间能否建立网络连接的方法和系统,以更好
的判断是否能在网络节点之间建立网络连接。以下通过对附图的描述详细阐述本说明书所
披露的技术方案。
[0026] 图1是根据本说明书一些实施例所示的判断网络节点之间能否建立网络连接的系统的应用场景示意图。
[0027] 如图1所示,应用场景100中可以包括公共网络110、第一计算系统130、第二计算系统160、第一节点170‑1和第二节点170‑2。
[0028] 判断网络节点之间能否建立网络连接的系统可以应用于各种需要在网络节点(例如,客户端、服务器、移动终端等)之间建立网络连接的场景。例如,可以应用于在客户端与
客户端之间建立网络连接的场景、提供互联网服务的线上服务平台等。提互联网服务的线
上服务平台可以是提供诸如网络诊断、网络稳定分析、网络数据传输、网络数据存储等服务
的线上平台。
[0029] 在一些实施例中,第一计算系统130可以基于网络节点的节点数据以及多个网络节点之间的可能连接关系,确定是否能在多个网络节点之间建立网络连接。
[0030] 在一个典型的应用场景中,第一计算系统130可以获取多个网络节点的节点数据以及多个网络节点之间的可能连接关系,并且利用判断模型对多个网络节点的节点数据以
及多个网络节点之间的可能连接关系进行处理并输出处理结果;第一计算系统130可以基
于判断模型的输出,确定是否能在多个网络节点之间建立网络连接。
[0031] 公共网络110可以促进信息和/或数据的交换。在一些实施例中,场景100的一个或以上组件(例如,第一节点170‑1、第二节点170‑2)可以经由公共网络110在彼此之间交换数
据,例如,在第一节点170‑1和第二节点170‑2之间发送音视频数据、信息、数据包等。在一些
实施例中,公共网络110可以是有线网络或无线网络等或其任意组合。仅作为示例,公共网
络110可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络
(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝
牙网络、紫蜂网络、近场通讯(NFC)网络、全球移动通讯系统(GSM)网络、码分多址(CDMA)网
络、时分多址(TDMA)网络、通用分组无线服务(GPRS)网络、增强数据速率GSM演进(EDGE)网
络、宽带码分多址接入(WCDMA)网络、高速下行分组接入(HSDPA)网络、长期演进(LTE)网络、
用户数据报协议(UDP)网络、传输控制协议/互联网协议(TCP/IP)网络、短讯息服务(SMS)网
络、无线应用协议(WAP)网络、超宽带(UWB)网络、红外线等或其任意组合。场景100的一个或
以上组件可以连接到公共网络110以交换数据和/或信息。
[0032] 在一些实施例中,第一节点170‑1可以是具有数据收发和/或数据处理功能的设备。在一些实施例中,第一节点170‑1可以包括工作站、网络设备、个人计算机、移动终端、服
务器和/或其他网络设备的至少一种或其组合。在一些实施例中,工作站可以包括基于RISC
架构的UNIX系统工作站、基于Windows和Intel的PC工作站。在一些实施例中,网络设备可以
包括计算机、集线器、交换机、网桥、路由器、网关、网络接口卡(NIC)、无线接入点(WAP)、打
印机和调制解调器、光纤收发器、光缆等。在一些实施例中,个人计算机可以包括台式机、笔
记本电脑、平板电脑等。
[0033] 在一些实施例中,第二节点170‑2可以是与第一节点170‑1类似或相同的设备。在一些实施例中,第二节点170‑2可以包括工作站、网络设备、个人计算机、网络用户、服务器
和/或其他网络设备的至少一种或其组合。
[0034] 第二计算系统160和第一计算系统130可以相同也可以不同。第二计算系统160和第一计算系统130是指具有计算能力的系统,可以包括各种计算机,如服务器、个人计算机,
也可以是由多台计算机以各种结构连接组成的计算平台。
[0035] 在一些实施例中,第二计算系统160和第一计算系统130可以包括处理器,处理器可以执行程序指令。处理器可以包括各种常见的通用中央处理器(central processing 
unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、微处理器、特殊应用集成电路
(application specific integrated circuit,ASIC)或其他类型的集成电路。
[0036] 第二计算系统160和第一计算系统130中可以包括存储介质,存储介质可以存储指令,也可以存储数据。存储介质可包括大容量存储器、可移动存储器、易失性读写存储器、只
读存储器(ROM)等或其任意组合。
[0037] 第二计算系统160和第一计算系统130还可以包括用于内部连接和与外部连接的网络,也可以包括用于输入或输出的终端。网络可以是有线网络或无线网络中的任意一种
或多种。终端可以包括各类具有信息接收和/或发送功能的设备,如计算机、手机、文字扫描
设备、显示设备、打印机等。
[0038] 第二计算系统160可以获取样本数据150。样本数据150可以是用于训练模型的数据。在一些实施例中,样本数据150可以是训练初始判断模型的数据。样本数据150可以通过
各种常见的方式进入第二计算系统160。
[0039] 在第二计算系统160中可以训练模型162,更新模型162的参数,得到训练好的模型。在一些实施例中,模型162可以是初始判断模型。
[0040] 第一计算系统130可以获取节点数据120,节点数据120可以是用于预测两个网络节点之间是否能建立网络连接的数据。在一些实施例中,节点数据120可以包括设备信息、
IP地址信息和网络端口信息。在一些实施例中,节点数据120可以通过各种常见的方式进入
第一计算系统130。
[0041] 在第一计算系统130中可以包括模型132,模型132的参数可以来自于训练好的模型162。其中,参数可以以任何常见的方式传递。在一些实施例中,模型162与模型132也可以
是相同的。第一计算系统130可以基于模型132,生成判断结果140,判断结果140可以是模型
132对节点数据120的判断结果。在一些实施例中,模型132为判断模型,判断结果140可以是
判断两个网络节点是否能建立网络连接的结果。例如,对能否在第一节点170‑1和第二节点
170‑2之间建立网络连接的判断结果。
[0042] 模型(例如,模型162或/和模型132)可以指基于处理设备而进行的若干方法的集合。这些方法可以包括大量的参数。在执行模型时,所使用的参数可以是被预先设置好的,
也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过
程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。
[0043] 应当注意,以上对判断网络节点之间能否建立网络连接的系统的描述仅仅是为了说明的目的而提供,并不意图限制本说明书的范围。对于本领域的普通技术人员来说,可以
根据本说明书中的描述,做出多种修改或变化。例如,判断网络节点之间能否建立网络连接
的系统还可以包括存储设备。又例如,判断网络节点之间能否建立网络连接的系统可以在
其他设备上实现类似或不同的功能。然而,这些变化和修改不会背离本申请的范围。
[0044] 图2是根据本说明书一些实施例所示的判断网络节点之间能否建立网络连接的方法的示例性流程图。在一些实施例中,流程200可以由处理设备(例如,第一计算系统130)执
行。如图2所示,流程200包括以下步骤。
[0045] 步骤210,获取多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系。在一些实施例中,步骤210可以由获取模块510执行。
[0046] 网络节点是指能够与一个有独立地址和具有传送或接收数据功能的网络相连的一个或多个设备。例如,网络节点可以是工作站、客户、网络用户或个人计算机,还可以是客
户端、服务器、打印机和其他网络连接的设备等。在一些实施例中,网络节点可以拥有自己
唯一的网络地址。
[0047] 节点数据可以是指网络节点所拥有的与建立网络连接有关的信息。节点数据可以包括设备信息、IP地址信息和网络端口信息。设备信息可以包括设备编号、设备媒体介质访
问层地址(MAC,Media Access Control)等。IP地址信息可以包括网络节点的私有IP地址或
经过NAT转换后对公IP地址。网络端口信息可以包括端口类型(比如,TCP端口、UDP端口、周
知端口、注册端口、动态端口等)、端口号等。TCP和UDP两个协议是独立的,因此其各自的端
口号也相互独立,比如TCP有235端口,UDP也可以有235端口。周知端口是众所周知的端口
号,端口号的范围可以是从0到1023;注册端口的端口号可以是从1024到49151,可以分配给
用户进程或应用程序、动态端口的端口号范围可以是是从49152到65535,并且不固定分配
某种服务,而是动态分配。
[0048] 在一些实施例中,处理设备可以通过对网络节点的参数进行设置得到所述设备信息、IP地址信息和网络端口信息。在一些实施例中,处理设备还可以监测网络节点的参数信
息获取得到设备信息、IP地址信息和网络端口信息。在一些实施例中,处理设备可以通过设
置和/或监测的方式获取得到节点数据,例如,部分数据通过设置获取,部分数据通过监测
获取。设置可以包括手动输入或对参数进行调整(例如,参数重置、更新等),监测则可以是
指通过设置监控器收集节点的各类数据。
[0049] 可能连接关系是指网络节点之间可能存在的网络连接。可能连接关系包括待预测连接、已知连接和随机赋予连接。在网络节点之间可以通过不同类型的网络进行连接,例
如,局域网、互联网、专线网络连接等。待预测连接是指预测的两个网络节点之间是否有直
接通过某些网络进行连接。例如,两个网络节点之间可能有直接通过局域网连接,也可能没
有网络连接,也有可能通过路由器等间接连接,比如,A、B两个节点,C、D两个路由器,A节点
连接至C路由器,C路由器连接至D路由器,D路由器再连接至B节点,A、B节点通过路由器实现
的间接连接。已知连接可以是指已知两个节点之间的网络连接,例如,已知两个节点是通过
局域网、互联网,专有网络进行的连接。随机赋予就是在两个网络节点之间赋予一种或多种
网络连接,例如,赋予两个网络节点之间局域网连接,或局域网+互联网连接等,而在这两个
网络节点之间,可能是没有网络连接的,也可能是有网络连接的,随机赋予的网络连接可以
与节点间实际的网络连接相同或不同,本实施例对此不作限定。
[0050] 在一些实施例中,处理设备可以根据网络节点的网络连接记录、网络连接的参数数据中读取得到所述网络节点之间的可能连接关系。
[0051] 步骤220,利用判断模型对多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理。在一些实施例中,步骤220可以由处理模块520执行。
[0052] 在一些实施例中,处理设备可以将所述网络节点的节点数据以及所述多个网络节点之间的可能连接关系输入至判断模型,在判断模型内部对所述网络节点的几点数据和网
络节点之间的可能连接关系进行处理。例如,可以对输入的数据进行向量转换,将输入的数
据通过one‑hot、word2vec、embedding等方式将节点数据和可能连接关系转换成便于模型
处理的特征向量,以进一步地根据特征向量对在两个网络节点之间是否能建立网络连接做
出预测。
[0053] 在一些实施例中,所述判断模型可以是深度学习模型、图神经网络模型等。
[0054] 深度学习模型对于语音、图像、文本等简单的序列或者网格数据,等比较结构化的数据,深度学习模型可以较好的处理。然而并不是所有的事物都可以表示成一个序列或者
一个网格,例如,社交网络、知识图谱、复杂的文件系统、网络节点的分布与连接等,这些都
是非结构化的数据。这类非结构化的数据非常复杂,非结构化的数据一般以图(包括顶点和
连接顶点的边)的形式存在,在处理时有着一系列的难点,例如,图的大小是任意的,图的拓
扑结构复杂,没有像图像一样的空间局部性;图没有固定的节点顺序,或者说没有一个参考
节点;图经常是动态图,而且包含多模态的特征。图神经网络模型在网络数据分析、推荐系
统、物理建模、图数据处理上有着优秀的处理能力,对于非结构化数据,图神经网络模型也
有着优秀的处理能力,因此,在本说明书实施例中,判断模型可以是图神经网络模型,使用
图神经网络模型对节点数据和节点间的可能连接关系进行处理,可以更加准确的对两个网
络节点之间是否能建立网络连接做出预测。
[0055] 在一些实施例中,图神经网络模型以所述多个网络节点为图的顶点,以多个网络节点之间的可能连接关系作为所述图的边。
[0056] 在一些实施例中,图的顶点的特征可以包括所述节点数据,图的边的特征可以包括连接类型、连接的两个网络节点的网络端口和连接的两个网络节点的IP地址。连接类型
包括可连接、不可连接以及未知连接;连接的两个网络节点的网络端口包括端口号、端口类
型(例如,周知端口、动态端口、注册端口等);连接的两个网络节点的IP地址包括IP地址号、
IP地址是否受限制等。
[0057] 在一些实施例中,图神经网络的节点特征和边的特征与网络节点和网络节点间的连接有关。例如,网络节点的节点特征与网络节点对端口、IP地址等的设置有关。而两个网
络节点之间是否能够建立网络连接与网络节点的IP地址是否受限、是否有可用端口、端口
类型等有关。
[0058] 在一些实施例中,所述判断模型还可以包括嵌入层,利用判断模型对所述多个网络节点的节点数据以及多个网络节点之间的可能连接关系进行处理时,可以利用嵌入层对
所述多个网络节点的节点数据以及多个网络节点之间的可能连接关系进行处理,得到节点
数据和可能连接关系的嵌入表示。例如,可以使用嵌入层对判断模型对多个网络节点的节
点数据以及多个网络节点之间的可能连接关系进行处理得到特征向量做进一步地处理,例
如,对特征向量做embedding,得到特征向量的向量表示。
[0059] 在利用嵌入层对特征向量进行处理后,可以对特征向量的进行降维,从而降低后续处理时需要处理的数据量,提高模型的预测效率。
[0060] 步骤230,基于判断模型输出的预测连接类型,确定是否能在所述多个网络节点之间建立网络连接。在一些实施例中,步骤230可以由确定模块530执行。
[0061] 在一些实施例中,判断模型可以基于对所述节点数据和边的处理结果,输出预测连接类型,进而根据预测连接类型确定是否能在所述多个网络节点之间建立网络连接。在
一些实施例中,判断模型可以根据节点数据的IP地址信息和端口信息,以及各个节点之间
的连接关系来找出各个网络节点对于端口分配的规律以及IP地址是否受到限制,例如,A节
点端口号的范围从0到1023,B节点端口号的范围从0到1023,判断模型可以根据输入的节点
数据找出端口分配规律和IP地址是否受到限制,以及根据两个节点之间的连接关系来对预
测两边节点将要分配的端口(例如,还有哪些端口号对应的端口是可以使用的),并根据预
测的端口来预测边的类型(也就是在两个网络节点之间建立网络连接是为可连接、不可连
接还是未知连接),即可达到预测是否能建立网络连接的目的,提高建立网络连接的效率。
[0062] 预测连接类型可以包括可连接、不可连接以及未知连接。可连接是指可以在两个网络节点之间建立网络连接,不可连接则表示不能建立网络连接,未知连接可以表示不确
定是否能建立网络连接。
[0063] 在一些实施例中,判断模型还可以输出对网络节点的端口预测结果。端口预测结果可以是指判断模型预测的两个可建立网络连接的网络节点的端口号。例如,网络节点A有
0‑1023的端口号,判断模型预测端口号为55、88、150的端口可以用于建立网络连接,网络节
点B有0‑1023的端口,判断模型预测端口号为66、52、69的端口可以与网络节点A建立网络连
接。则可以选择这几个端口号对应的端口来建立网络连接。选择方式可以是自动选择,也可
以是手动选择,本实施例对此不作限定。
[0064] 在一些实施例中,处理设备可以基于图神经网络模型的边输出的预测连接类型,确定是否能在所述多个网络节点中间建立网络连接。图神经网络模型可以更好的处理非结
构化的数据,从而得到更加准确的预测结果。在图神经网络模型中,以节点数据为例,在模
型的第0层,即输入层,可以为每个节点根据其节点数据构建初始向量(例如,embedding);
在模型的第1层,可以对每个节点的embedding可以接收其邻居节点的embedding,例如,节
点B的embedding可以接收来自其邻居节点A、C的embedding传播;节点C的embedding可以接
收来自其邻居节点A、B、C、D的embedding传播;在模型的第2层,邻居节点A又可以接收来自
其的邻居节点B、C、D的embedding传播。可以理解的是,在获取embedding的过程中,还可以
获取到连接节点的边的特征。通过传播embedding,各个节点不仅可以获取到相邻节点和边
的特征,还可以获取到多层邻居节点和边的特征,进而根据获取得到的特征,对两个网络节
点之间是否能建立连接做出准确的预测。
[0065] 关于判断模型的训练的说明可以参见图4的相关描述,此处不再赘述。
[0066] 在本说明书实施例中,借助于机器学习的方式,可以通过数据自动学习来形成可预测的模型,可以获得较高的准确性。另一方面,由于涉及的信息特征较多,采取各类标准
的机器学习模型会造成模型参数量过多、对训练数据量要求大、容易出现过拟合等问题。在
本说明书的一些实施例中,采用了自定义模型的方式,通过图神经网络多个网络节点的节
点数据进行综合,并对特征数据利用嵌入层进行处理得到嵌入表示,进而通过特征进行判
断。相对于应用各类标准的机器学习模型的方式,本说明书中提供的方案能够更好地适应
所使用信息的特点和所要解决的问题,避免了模型参数过多从而运行效率低、训练数据需
求过大或者过拟合的问题。
[0067] 本说明书实施例提供的方案能够更充分地处理数据、获取对预测有帮助的信息,并针对这些信息的特点采取了自定义的机器学习模型结构以取得更好的运行效率和预测
效果。
[0068] 应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修
正和改变。然而,这些修正和改变仍在本说明书的范围之内。
[0069] 图3是根据本说明书一些实施例所示的图神经网络模型的示例性结构图。
[0070] 示例性地,以判断模型为图神经网络模型为例,图神经网络模型可以包括节点和边。
[0071] 节点可以包括具备联网功能的设备。节点可以用于与其他设备建立网络连接,以在设备之间交换数据和/或信息。
[0072] 边可以是各个节点之间的可能连接关系。边可以用于表示是否能在两个节点之间建立网络连接,以及建立的网络连接的类型。边可以用于预测是否能在边所连接的两个节
点之间建立网络连接。
[0073] 关于节点、边以及其各自的特征的更多描述可以参见图2相关部分的描述,此处不再赘述。
[0074] 在一些实施例中,判断模型300可以包括输入层310、卷积层320、激活函数层330以及输出层340。
[0075] 输入层可以用于输入待预测数据。例如,可以将所述网络节点的节点数据和节点将的可能连接关系通过输入层输入至判断模型。
[0076] 卷积层可以用于对输入的图数据进行卷积运算。例如,卷积层可以学习一个函数映射,通过该函数映射,通过该函数映射可以映射图数据中的节点来聚合节点本身以及该
节点的邻居节点的特征来生成节点的特征向量。即,卷积层可以提取输入的节点数据和可
能连接关系的特征。
[0077] 激活函数层可以用于在根据提取到的特征进行预测时引入非线性因素,以更好的解决较为复杂的问题。例如,可以更好的基于卷积层输出的特征向量对是否能在网络节点
之间建立网络连接做出预测。
[0078] 输出层可以用于输出判断模型的预测连接类型。在一些实施例中,输出层中可以包多层感知器结构,以对是否能在网络节点之间建立网络连接进行分类,得到预测连接类
型。在一些实施例中,输出层还可以输出预测的预测端口信息。
[0079] 在一些实施例中,判断模型还可以包括嵌入(embedding)层(图未示)。嵌入层可以对判断模型处理得到的特征向量做embedding,以使得数据的特征可以更加集中而便于模
型做出预测,以及减少数据量,提高模型的处理速度。
[0080] 需要说明的是,图3所示为图神经网络结构的判断模型,在其他一些实施例中,判断模型也可以是其他类型的模型等,本实施例对此不作限定。
[0081] 图4是根据本说明书一些实施例所示的判断模型的训练的示例性流程图。在一些实施例中,流程400可以由训练模块540执行。如图4所示,流程400包括以下步骤。
[0082] 步骤410,获取多个携带有标签的训练样本。
[0083] 所述训练样本包括样本网络节点的样本节点数据和所述样本网络节点之间的样本可能连接关系。
[0084] 样本节点数据是指用于进行模型训练的已知数据。样本节点数据可以包括样本设备信息、样本IP地址信息和样本网络端口信息。样本可能连接关系则是指样本网络节点之
间已知的可能连接关系。
[0085] 标签可以用于表征是否能在所述样本网络节点之间建立连接关系。
[0086] 在一些实施例中,所述标签可以通过发送数据包的方式确定。例如,在两个网络节点之间发送数据包,若能成功发送则生成标签1,表示能在该两个网络节点之间建立网络连
接;若不能发送成功则生成标签0,表示不能在该两个网络节点之间建立网络连接;若数据
包发送不顺畅,有时能成功,有时不能成功,则可以生成标签2,表示能不能在该两个网络节
点之间建立网络连接未知。
[0087] 步骤420,使用所述多个训练样本对初始判断模型进行训练,得到训练好的判断模型。
[0088] 在一些实施中,可以使用常见的模型训练方法对初始判断模型进行训练,例如,梯度下降法,或其他常见模型训练方法,本说明书对此不作限定。在对模型训练达到一定次
数,或模型预测的精度达到预设目标时,完成对模型的训练。
[0089] 图5是根据本说明书一些实施例所示的对话的系统的示例性模块图。如图5所示,系统500可以包括获取模块510、处理模块520、确定模块530和训练模块540。
[0090] 获取模块510可以用于获取多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系。
[0091] 网络节点是指能够与一个有独立地址和具有传送或接收数据功能的网络相连的一个或多个设备。节点数据可以是指网络节点所拥有的与建立网络连接有关的信息。节点
数据可以包括设备信息、IP地址信息和网络端口信息。可能连接关系是指网络节点之间可
能存在的网络连接。可能连接关系包括待预测连接、已知连接和随机赋予连接。
[0092] 在一些实施例中,获取模块510可以通过设置和/或监测的方式获取得到所述网络节点的几点数据以及多个网络节点之间的可能连接关系。
[0093] 处理模块520可以用于利用判断模型对多个网络节点的节点数据以及所述多个网络节点之间的可能连接关系进行处理。
[0094] 在一些实施例中,处理模块520可以将网络节点数据以及所述多个网络节点之间的可能连接关系输入至判断模型,在判断模型内部对其进行处理。
[0095] 在一些实施例中,所述判断模型为图神经网络模型,以所述多个网络节点为图的顶点,以所述多个网络节点之间的可能连接关系作为所述图的边。其中,所述顶点的特征包
括所述节点数据,所述边的特征包括连接类型、连接两个网络节点的网络端口和连接两个
网络节点的IP地址。
[0096] 确定模块530可以用于基于所述图神经网络模型的边输出的预测连接类型,确定是否能在所述多个网络节点之间建立网络连接。
[0097] 训练模块540可以用于通过以下方式训练得到所述判断模型:可以获取多个携带有标签的训练样本。
[0098] 在一些实施例中,所述训练样本包括样本网络节点的样本节点数据和所述样本网络节点之间的样本可能连接关系,所述标签用于表征是否能在所述样本网络节点之间建立
连接关系。所述标签通过发送数据包的方式确定。可以使用所述多个训练样本对初始判断
模型进行训练,得到训练好的判断模型
[0099] 关于以上所述系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2至图4的相关说明。
[0100] 应当理解,图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以
利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处
理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算
机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD‑ROM的载
体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载
体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门
阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等
的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实
现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
[0101] 需要注意的是,以上对于图4所示的系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该
系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系
统与其他模块连接。在一些实施例中,图5中披露的获取模块510、处理模块520可以是一个
系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个
模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,
均在本说明书的保护范围之内。
[0102] 本说明书实施例可能带来的有益效果包括但不限于:(1)利用机器学习模型来预测是否能在网络节点之间能否建立网络连接,可以获得较高的准确性;(2)采用图神经网络
模型的方式,通过图神经网络多个网络节点的节点数据进行综合,可以更好地适应所使用
信息的特点和所要解决的问题,可以获得更加准确的预测结果;(3)在一些实施例中,采用
自定义的模型结构,能够更好地适应所使用信息的特点和所要解决的问题,避免了模型参
数过多从而运行效率低、训练数据需求过大或者过拟合的问题。
[0103] 需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效
果。
[0104] 上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能
会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所
以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0105] 同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特
点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一
个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个
实施例中的某些特征、结构或特点可以进行适当的组合。
[0106] 此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通
过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说
明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本
说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过
硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设
备上安装所描述的系统。
[0107] 同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附
图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要
求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0108] 一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说
明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例
中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点
可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的
方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体
实施例中,此类数值的设定在可行范围内尽可能精确。
[0109] 针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容
不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当
前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、
定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、
定义和/或术语的使用为准。
[0110] 最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代
配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介
绍和描述的实施例。