CN111193794A - 文件传输方法、装置、计算机设备及存储介质 - Google Patents

文件传输方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111193794A
CN111193794A CN201911395943.8A CN201911395943A CN111193794A CN 111193794 A CN111193794 A CN 111193794A CN 201911395943 A CN201911395943 A CN 201911395943A CN 111193794 A CN111193794 A CN 111193794A
Authority
CN
China
Prior art keywords
target node
file
node
address
external network
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.)
Pending
Application number
CN201911395943.8A
Other languages
English (en)
Inventor
祁朋祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Onething Technology Co Ltd
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201911395943.8A priority Critical patent/CN111193794A/zh
Publication of CN111193794A publication Critical patent/CN111193794A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种文件传输方法,应用于源节点中,所述源节点位于NAT设备之后,所述方法包括:选取待部署文件的目标节点;判断所述目标节点是否有外网IP地址;响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点;响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。本发明还提供了一种文件传输装置、计算机设备及存储介质。本发明能够在源节点位于NAT设备之后时采取不同的方式将本地存储的文件传输给其他节点,提高了文件传输效率。

Description

文件传输方法、装置、计算机设备及存储介质
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种文件传输方法、装置、计算机设备及存储介质。
背景技术
作为去中心化的存储系统来说,提高文件可用性的一个重要方法是采用文件备份的方法,也就是一个文件多个副本,用空间冗余的方法提高文件存储的安全性,当某些节点掉线时不至于无法下载文件。
目前的方案一般是有数据的节点充当数据源供其他节点下载,这就要求其他节点首先必须跟该节点建立连接。然而,当该数据源位于NAT设备之后时,由于NAT设备难以让处于不同内部私有网络中的节点进行直接通信,从而导致文件无法传输。
因此,有必要提供一种文件传输方案,以解决数据源位于NAT设备之后时的文件传输问题。
发明内容
本发明的主要目的在于提供一种文件传输方法、装置、计算机设备及存储介质,旨在解决当数据源位于网络转换设备之后时如何传输文件以提高文件传输效率的技术问题。
为实现上述目的,本发明的第一方面提供一种文件传输方法,应用于源节点中,所述源节点位于网络转换设备之后,所述方法包括:
选取待部署文件的目标节点;
判断所述目标节点是否有外网IP地址;
响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点;
响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
根据本发明的一个可选实施例,所述推送所述文件至所述目标节点包括:
与所述目标节点建立推流连接通道;
通过所述推流连接通道推送所述文件至所述目标节点。
根据本发明的一个可选实施例,所述通知所述目标节点从所述源节点中拉取所述文件包括:
通知所述目标节点与所述源节点建立打洞连接通道;
判断所述打洞连接通道是否成功建立;
当所述打洞连接通道成功建立时,接收所述目标节点的文件请求;
响应于所述文件请求,发送所述文件至所述目标节点。
根据本发明的一个可选实施例,所述选取待部署文件的目标节点包括:
获取路由表中存储的节点信息;
从所述节点信息中获取满足文件存储条件的目标节点信息;
确定所述目标节点信息对应的节点为待部署文件的目标节点。
根据本发明的一个可选实施例,所述判断所述目标节点是否有外网IP地址包括:
通过网络地址转换设备向所述目标节点发送探测包;
侦测是否接收到所述目标节点的响应包;
当接收到所述目标节点的响应包时,判断所述响应包中是否有源IP地址;
当所述响应包中有源IP地址时,确定所述目标节点有外网IP地址;
当所述响应包中没有源IP地址时,确定所述目标节点没有外网IP地址。
根据本发明的一个可选实施例,所述判断所述打洞连接通道是否成功建立包括:
通过所述网络转换设备发送PING数据包至所述目标节点;
侦测是否接收到所述目标节点的PING响应包;
当接收到所述目标节点的PING响应包时,确定所述打洞连接通道成功建立;
当没有接收到所述目标节点的PING响应包时,确定所述打洞连接通道没有成功建立。
根据本发明的一个可选实施例,所述方法还包括:
实时获取所述文件的副本数量;
判断所述副本数量是否小于预设数量阈值;
响应于所述副本数量小于所述预设数量阈值,再次选取待部署文件的目标节点以传输所述文件。
为实现上述目的,本发明的第二方面提供一种文件传输装置,运行于源节点中,所述源节点位于网络转换设备之后,所述装置包括:
选取模块,用于选取待部署文件的目标节点;
判断模块,用于判断所述目标节点是否有外网IP地址;
推送模块,用于响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点;
拉取模块,用于响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
为实现上述目的,本发明的第三方面提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的文件传输方法的下载程序,所述文件传输方法的下载程序被所述处理器执行时实现所述的文件传输方法。
为实现上述目的,本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有文件传输方法的下载程序,所述文件传输方法的下载程序可被一个或者多个处理器执行以实现所述的文件传输方法。
本发明实施例所述的文件传输方法、装置、计算机设备及存储介质,位于NAT设备之后的源节点若要将存储在本地的文件传输给其他节点,则首先获取待部署文件的目标节点,通过判断所述目标节点有外网IP地址时,采用推送的方式将所述文件传输至所述目标节点,所述目标节点没有外网IP地址时,采用拉取的方式将所述文件传输至所述目标节点。本实施例中源节点根据目标节点是否有外网能力,决定采用推送或者拉取的方式传输文件,结合“推+拉”提高了文件传输的效率;另外,当目标节点无外网能力时,通过建立打洞连接,实现了不同NAT设备之后的节点间的通信连接,为文件传输提供了保障;而当目标节点有外网能力时,无需建立打洞连接,在一定程度上降低打洞数量,提高了分布式存储系统目标节点的资源利用率。
附图说明
图1为本发明第一实施例的文件传输方法的流程示意图;
图2为本发明第二实施例的文件传输装置的功能模块示意图;
图3为本发明第三实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
参阅图1所示,为本发明第一实施例揭露的文件传输方法的流程图。
所述文件传输方法可以应用于源节点中。所述文件传输方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,选取待部署文件的目标节点。
其中,所述源节点是指存储有文件的节点,所述源节点作为数据源为其他节点提供文件服务。
所述源节点可以为分布式存储系统中的小节点,例如,客户端设备等。本实施例中,所述源节点位于网络地址转换(Network Address Translation,NAT)设备之后。即,所述源节点为内网节点。所述NAT设备是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。所述NAT设备可以包括,但不限于:运营商电信、联通网络出口设备。
由于所述源节点位于NAT设备之后,当所述源节点需要分享本地存储的文件至其他节点时,首先需要确定至少一个部署文件的目标节点,以确定采取何种传输方式传输文件。
在一个可选的实施例中,所述选取待部署文件的目标节点包括:
获取路由表中存储的节点信息;
从所述节点信息中获取满足文件存储条件的目标节点信息;
确定所述目标节点信息对应的节点为待部署文件的目标节点。
在该可选的实施例中,初始化状态时,节点会向NAT设备发送注册请求以与所述NAT设备建立通信连接,所述NAT设备记录已连接的节点信息。所述节点信息可以包括以下一种或多种的组合:节点ID、IP地址、UDP端口号及NAT类型等。
具体地,从所述节点信息中获取满足文件存储条件的目标节点信息包括:
从所述节点信息中筛选出全锥型NAT的节点信息作为第一候选节点信息;
从所述第一候选节点信息中筛选出IP受限锥型NAT的节点信息作为第二候选节点信息;
从所述第二候选节点信息中筛选出端口受限锥型NAT的节点信息作为第三候选节点信息;
从所述第二候选节点信息中筛选出对称型NAT的节点信息作为目标节点信息。
S 12,判断所述目标节点是否有外网IP地址。
对于有外网IP地址的节点,可以通过直连的方式被别的节点连接,通过TCP传输的方式发送数据。但是对于没有外网IP地址的节点,即内网节点,由于内网节点位于NAT设备之后,无法通过直连的方式被别的节点连接,不可以通过TCP传输的方式发送数据。因此,所述源节点要向分享或者传输文件至目标节点,需判断所述目标节点是否有外网IP地址。
在一个可选的实施例中,所述判断所述目标节点是否有外网IP地址包括:
通过网络地址转换设备向所述目标节点发送探测包;
侦测是否接收到所述目标节点的响应包;
当接收到所述目标节点的响应包时,判断所述响应包中是否有源IP地址;
当所述响应包中有源IP地址时,确定所述目标节点有外网IP地址;
当所述响应包中没有源IP地址时,确定所述目标节点没有外网IP地址。
在该可选的实施例中,所述源节点可以通过NAT设备向目标节点发送一个探测包,来探测所述目标节点是否有外网IP地址。目标节点接收到探测包,按照预先设置的格式反馈一个响应包,并通过NAT设备发送给所述源节点。
当所述目标节点有外网能力时,所述响应包中会携带所述目标节点的源IP地址。当所述目标节点无外网能力时,所述响应包中无法携带目标节点的源IP地址。所述源节点接收到响应包,根据所述响应包中是否携带有源IP地址即可确定所述目标节点是否有外网能力。所述源IP地址即为所述目标节点的外网地址。
S 13,响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点。
所述目标节点有外网IP地址,表明所述目标节点有外网能力,则所述源节点与所述目标节点可以直连通信,可以采用推送的方式将所述文件主动推送至所述目标节点进行存储。
在一个可选的实施例中,所述推送所述文件至所述目标节点包括:
与所述目标节点建立推流连接通道;
通过所述推流连接通道推送所述文件至所述目标节点。
在该可选的实施例中,所述源节点可以与所述目标节点建立推流连接通道,例如TCP连接通道。当TCP连接成功时,通过TCP连接通道下发或者推送文件至所述目标节点。
S14,响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
所述目标节点没有外网IP地址,表明所述目标节点位于NAT设备之后,则所述源节点与所述目标节点无法直连通信,所述源节点只能通知所述目标节点从所述源节点中拉取所述文件。
在一个可选的实施例中,所述通知所述目标节点从所述源节点中拉取所述文件包括:
通知所述目标节点与所述源节点建立打洞连接通道;
判断所述打洞连接通道是否成功建立;
当所述打洞连接通道成功建立时,接收所述目标节点的文件请求;
响应于所述文件请求,发送所述文件至所述目标节点。
在该可选的实施例中,所述目标节点可以采用打洞技术与所述源节点建立打洞连接通道。所述打洞技术就是通过采用一定的技术措施而使得处于不同内网的目标节点和源节点之间可以实现互联的技术。所述打洞技术可以包括:网络地址转换会话穿越应用程序(Session Traversal Utilities for Network Address Translators,STUN)协议、用户数据报协议(User Datagram Protocol,UDP)等。
当打洞连接通道成功建立后,所述目标节点主动向所述源节点发送文件请求以请求下载文件。所述目标节点接收到所述文件请求后进行响应,从所述源节点的本地存储中拉取文件并通过所述打洞连接通道发送所述文件至所述目标节点,从而完成文件的传输。
在一个可选的实施例中,所述判断所述打洞连接通道是否成功建立包括:
通过所述网络转换设备发送PING数据包至所述目标节点;
侦测是否接收到所述目标节点的PING响应包;
当接收到所述目标节点的PING响应包时,确定所述打洞连接通道成功建立;
当没有接收到所述目标节点的PING响应包时,确定所述打洞连接通道没有成功建立。
示例性的,假设所述目标节点使用UDP打洞技术与所述源节点建立打洞连接通道,则所述目标节点给所述NAT设备发送打洞请求报文,请求通信源节点进行UDP打洞;NAT设备接收到打洞请求报文后,查找所述目标节点和所述源节点的IP地址和端口号,并给双方节点均发送打洞命令报文,所述打洞命令报文中携带有对方的IP地址和端口号;所述目标节点和所述源节点收到打洞命令报文后,发送PING数据包给NAT设备;若所述目标节点收到所述源节点发来的PING数据包后,进行PING回复,发送一个PING响应包给所述源节点;所述源节点收到所述PING响应包,打洞连接通道成功建立。
应当理解的是,所述打洞命令报文中携带的IP地址和端口号是节点对外的IP地址和端口号。若节点处于外网,则此IP地址和端口号就是节点本身的IP地址和端口号;若节点处于NAT内,则此IP地址是NAT设备对外的IP地址和端口号。对于本实施例中的目标节点和源节点,则所述打洞命令报文中携带的IP地址和端口号是指NAT设备出口的对外的IP地址和端口号,例如,目标节点的IP地址为10.21.5.20,端口号为6877,NAT设备对外的IP地址为202.206.5.65,NAT分配给目标节点的端口号为6550,则NAT设备发送给源节点的打洞命令报文中携带的目标节点IP地址为202.206.5.65,端口是6550。
在一个可选的实施例中,所述方法还包括:
实时获取所述文件的副本数量;
判断所述副本数量是否小于预设数量阈值;
响应于所述副本数量小于所述预设数量阈值,再次选取待部署文件的目标节点以传输所述文件。
在该可选的实施例中,为了保证去中心化的存储系统中文件的安全性,需要保证去中心化的存储系统中文件的副本有多个,当副本数量小于预设数量阈值时,需要所述源节点主动发起文件传输,以将所述文件部署到目标节点中,以提高文件的副本数量。
需要说的是,本实施例所述的文件传输方法,仅适用于目标节点是由源节点决定的情况,即在去中心化的分布式存储系统中,部署文件的目标节点应当是由源节点(存储有文件的数据源)确定的,并由源节点采取何种传输方式。
综上所述,本实施例所述的文件传输方法,位于NAT设备之后的源节点若要将存储在本地的文件传输给其他节点,则首先获取待部署文件的目标节点,通过判断所述目标节点有外网IP地址时,采用推送的方式将所述文件传输至所述目标节点,所述目标节点没有外网IP地址时,采用拉取的方式将所述文件传输至所述目标节点。本实施例中源节点根据目标节点是否有外网能力,决定采用推送或者拉取的方式传输文件,结合“推+拉”提高了文件传输的效率;另外,当目标节点无外网能力时,通过建立打洞连接,实现了不同NAT设备之后的节点间的通信连接,为文件传输提供了保障;而当目标节点有外网能力时,无需建立打洞连接,在一定程度上降低打洞数量,提高了分布式存储系统目标节点的资源利用率。
实施例二
参阅图2所示,为本发明实施例四揭露的文件传输装置的功能模块示意图。
在一些实施例中,所述文件传输装置20运行于计算机设备中。所述文件传输装置20可以包括多个由下载程序所组成的功能模块。所述文件传输装置20中的各个程序段的下载程序可以存储于计算机设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)文件的传输。
本实施例中,所述文件传输装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:节点选取模块201、第一判断模块202、文件推送模块203、文件拉取模块204、副本获取模块205及第二判断模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述节点选取模块201,用于选取待部署文件的目标节点。
其中,所述源节点是指存储有文件的节点,所述源节点作为数据源为其他节点提供文件服务。
所述源节点可以为分布式存储系统中的小节点,例如,客户端设备等。本实施例中,所述源节点位于网络地址转换(Network Address Translation,NAT)设备之后。即,所述源节点为内网节点。所述NAT设备是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。所述NAT设备可以包括,但不限于:运营商电信、联通网络出口设备。
由于所述源节点位于NAT设备之后,当所述源节点需要分享本地存储的文件至其他节点时,首先需要确定至少一个部署文件的目标节点,以确定采取何种传输方式传输文件。
在一个可选的实施例中,所述节点选取模块201选取待部署文件的目标节点包括:
获取路由表中存储的节点信息;
从所述节点信息中获取满足文件存储条件的目标节点信息;
确定所述目标节点信息对应的节点为待部署文件的目标节点。
在该可选的实施例中,初始化状态时,节点会向NAT设备发送注册请求以与所述NAT设备建立通信连接,所述NAT设备记录已连接的节点信息。所述节点信息可以包括以下一种或多种的组合:节点ID、IP地址、UDP端口号及NAT类型等。
具体地,从所述节点信息中获取满足文件存储条件的目标节点信息包括:
从所述节点信息中筛选出全锥型NAT的节点信息作为第一候选节点信息;
从所述第一候选节点信息中筛选出IP受限锥型NAT的节点信息作为第二候选节点信息;
从所述第二候选节点信息中筛选出端口受限锥型NAT的节点信息作为第三候选节点信息;
从所述第二候选节点信息中筛选出对称型NAT的节点信息作为目标节点信息。
所述第一判断模块202,用于判断所述目标节点是否有外网IP地址。
对于有外网IP地址的节点,可以通过直连的方式被别的节点连接,通过TCP传输的方式发送数据。但是对于没有外网IP地址的节点,即内网节点,由于内网节点位于NAT设备之后,无法通过直连的方式被别的节点连接,不可以通过TCP传输的方式发送数据。因此,所述源节点要向分享或者传输文件至目标节点,需判断所述目标节点是否有外网IP地址。
在一个可选的实施例中,所述第一判断模块202判断所述目标节点是否有外网IP地址包括:
通过网络地址转换设备向所述目标节点发送探测包;
侦测是否接收到所述目标节点的响应包;
当接收到所述目标节点的响应包时,判断所述响应包中是否有源IP地址;
当所述响应包中有源IP地址时,确定所述目标节点有外网IP地址;
当所述响应包中没有源IP地址时,确定所述目标节点没有外网IP地址。
在该可选的实施例中,所述源节点可以通过NAT设备向目标节点发送一个探测包,来探测所述目标节点是否有外网IP地址。目标节点接收到探测包,按照预先设置的格式反馈一个响应包,并通过NAT设备发送给所述源节点。
当所述目标节点有外网能力时,所述响应包中会携带所述目标节点的源IP地址。当所述目标节点无外网能力时,所述响应包中无法携带目标节点的源IP地址。所述源节点接收到响应包,根据所述响应包中是否携带有源IP地址即可确定所述目标节点是否有外网能力。所述源IP地址即为所述目标节点的外网地址。
所述文件推送模块203,用于响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点。
所述目标节点有外网IP地址,表明所述目标节点有外网能力,则所述源节点与所述目标节点可以直连通信,可以采用推送的方式将所述文件主动推送至所述目标节点进行存储。
在一个可选的实施例中,所述文件推送模块203推送所述文件至所述目标节点包括:
与所述目标节点建立推流连接通道;
通过所述推流连接通道推送所述文件至所述目标节点。
在该可选的实施例中,所述源节点可以与所述目标节点建立推流连接通道,例如TCP连接通道。当TCP连接成功时,通过TCP连接通道下发或者推送文件至所述目标节点。
所述文件拉取模块204,用于响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
所述目标节点没有外网IP地址,表明所述目标节点位于NAT设备之后,则所述源节点与所述目标节点无法直连通信,所述源节点只能通知所述目标节点从所述源节点中拉取所述文件。
在一个可选的实施例中,所述文件拉取模块204通知所述目标节点从所述源节点中拉取所述文件包括:
通知所述目标节点与所述源节点建立打洞连接通道;
判断所述打洞连接通道是否成功建立;
当所述打洞连接通道成功建立时,接收所述目标节点的文件请求;
响应于所述文件请求,发送所述文件至所述目标节点。
在该可选的实施例中,所述目标节点可以采用打洞技术与所述源节点建立打洞连接通道。所述打洞技术就是通过采用一定的技术措施而使得处于不同内网的目标节点和源节点之间可以实现互联的技术。所述打洞技术可以包括:网络地址转换会话穿越应用程序(Session Traversal Utilities for Network Address Translators,STUN)协议、用户数据报协议(User Datagram Protocol,UDP)等。
当打洞连接通道成功建立后,所述目标节点主动向所述源节点发送文件请求以请求下载文件。所述目标节点接收到所述文件请求后进行响应,从所述源节点的本地存储中拉取文件并发送所述文件至所述目标节点,从而完成文件的传输。
在一个可选的实施例中,所述判断所述打洞连接通道是否成功建立包括:
通过所述网络转换设备发送PING数据包至所述目标节点;
侦测是否接收到所述目标节点的PING响应包;
当接收到所述目标节点的PING响应包时,确定所述打洞连接通道成功建立;
当没有接收到所述目标节点的PING响应包时,确定所述打洞连接通道没有成功建立。
示例性的,假设所述目标节点使用UDP打洞技术与所述源节点建立打洞连接通道,则所述目标节点给所述NAT设备发送打洞请求报文,请求通信源节点进行UDP打洞;NAT设备接收到打洞请求报文后,查找所述目标节点和所述源节点的IP地址和端口号,并给双方节点均发送打洞命令报文,所述打洞命令报文中携带有对方的IP地址和端口号;所述目标节点和所述源节点收到打洞命令报文后,发送PING数据包给NAT设备;若所述目标节点收到所述源节点发来的PING数据包后,进行PING回复,发送一个PING响应包给所述源节点;所述源节点收到所述PING响应包,打洞连接通道成功建立。
应当理解的是,所述打洞命令报文中携带的IP地址和端口号是节点对外的IP地址和端口号。若节点处于外网,则此IP地址和端口号就是节点本身的IP地址和端口号;若节点处于NAT内,则此IP地址是NAT设备对外的IP地址和端口号。对于本实施例中的目标节点和源节点,则所述打洞命令报文中携带的IP地址和端口号是指NAT设备出口的对外的IP地址和端口号,例如,目标节点的IP地址为10.21.5.20,端口号为6877,NAT设备对外的IP地址为202.206.5.65,NAT分配给目标节点的端口号为6550,则NAT设备发送给源节点的打洞命令报文中携带的目标节点IP地址为202.206.5.65,端口是6550。
所述副本获取模块205,用于实时获取所述文件的副本数量。
所述第二判断模块206,用于判断所述副本数量是否小于预设数量阈值。
所述节点选取模块201,还用于响应于所述副本数量小于所述预设数量阈值,再次选取待部署文件的目标节点以传输所述文件。
在该可选的实施例中,为了保证去中心化的存储系统中文件的安全性,需要保证去中心化的存储系统中文件的副本有多个,当副本数量小于预设数量阈值时,需要所述源节点主动发起文件传输,以将所述文件部署到目标节点中,以提高文件的副本数量。
需要说的是,本实施例所述的文件传输装置,仅适用于目标节点是由源节点决定的情况,即在去中心化的分布式存储系统中,部署文件的目标节点应当是由源节点(存储有文件的数据源)确定的,并由源节点采取何种传输方式。
综上所述,本实施例所述的文件传输装置,位于NAT设备之后的源节点若要将存储在本地的文件传输给其他节点,则首先获取待部署文件的目标节点,通过判断所述目标节点有外网IP地址时,采用推送的方式将所述文件传输至所述目标节点,所述目标节点没有外网IP地址时,采用拉取的方式将所述文件传输至所述目标节点。本实施例中源节点根据目标节点是否有外网能力,决定采用推送或者拉取的方式传输文件,结合“推+拉”提高了文件传输的效率;另外,当目标节点无外网能力时,通过建立打洞连接,实现了不同NAT设备之后的节点间的通信连接,为文件传输提供了保障;而当目标节点有外网能力时,无需建立打洞连接,在一定程度上降低打洞数量,提高了分布式存储系统目标节点的资源利用率。
实施例三
图3为本发明实施例揭露的计算机设备的内部结构示意图。
在本实施例中,所述计算机设备3可以包括存储器31、处理器32和总线33及收发器34。所述计算机设备3用于执行实施例一所述的文件传输方法的全部或者部分步骤,或者用于实现实施例二所述的文件传输装置的全部或者部分功能。
其中,存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器31在一些实施例中可以是所述计算机设备3的内部存储单元,例如所述计算机设备3的硬盘。存储器31在另一些实施例中也可以是所述计算机设备3的外部存储设备,例如所述计算机设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器31还可以既包括所述计算机设备3的内部存储单元,也包括外部存储设备。存储器31不仅可以用于存储安装于所述计算机设备3的应用程序及各类数据,例如文件传输装置20及各个模块的下载程序等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器32在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他文件传输芯片,用于运行存储器31中存储的下载程序或处理数据。
该总线33可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述计算机设备3还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备3与其他计算机设备之间建立通信连接。
可选地,该计算机设备3还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元,比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以称为显示屏或显示单元,用于显示在所述计算机设备中处理的消息以及用于显示可视化的用户界面。
图3仅示出了具有组件31-34的所述计算机设备3,本领域技术人员可以理解的是,图3示出的结构并不构成对所述计算机设备3的限定,既可以是总线型结构,也可以是星形结构,所述计算机设备3还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过应用程序、硬件、固件或者其任意组合来实现。当使用应用程序实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线)或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储下载程序的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种文件传输方法,应用于源节点中,其特征在于,所述源节点位于网络转换设备之后,所述方法包括:
选取待部署文件的目标节点;
判断所述目标节点是否有外网IP地址;
响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点;
响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
2.如权利要求1所述的文件传输方法,其特征在于,所述推送所述文件至所述目标节点包括:
与所述目标节点建立推流连接通道;
通过所述推流连接通道推送所述文件至所述目标节点。
3.如权利要求1所述的文件传输方法,其特征在于,所述通知所述目标节点从所述源节点中拉取所述文件包括:
通知所述目标节点与所述源节点建立打洞连接通道;
判断所述打洞连接通道是否成功建立;
当所述打洞连接通道成功建立时,接收所述目标节点的文件请求;
响应于所述文件请求,发送所述文件至所述目标节点。
4.如权利要求1所述的文件传输方法,其特征在于,所述选取待部署文件的目标节点包括:
获取路由表中存储的节点信息;
从所述节点信息中获取满足文件存储条件的目标节点信息;
确定所述目标节点信息对应的节点为待部署文件的目标节点。
5.如权利要求1至4中任意一项所述的文件传输方法,其特征在于,所述判断所述目标节点是否有外网IP地址包括:
通过网络地址转换设备向所述目标节点发送探测包;
侦测是否接收到所述目标节点的响应包;
当接收到所述目标节点的响应包时,判断所述响应包中是否有源IP地址;
当所述响应包中有源IP地址时,确定所述目标节点有外网IP地址;
当所述响应包中没有源IP地址时,确定所述目标节点没有外网IP地址。
6.如权利要求1至4中任意一项所述的文件传输方法,其特征在于,所述判断所述打洞连接通道是否成功建立包括:
通过所述网络转换设备发送PING数据包至所述目标节点;
侦测是否接收到所述目标节点的PING响应包;
当接收到所述目标节点的PING响应包时,确定所述打洞连接通道成功建立;
当没有接收到所述目标节点的PING响应包时,确定所述打洞连接通道没有成功建立。
7.如权利要求1至4中任意一项所述的文件传输方法,其特征在于,所述方法还包括:
实时获取所述文件的副本数量;
判断所述副本数量是否小于预设数量阈值;
响应于所述副本数量小于所述预设数量阈值,再次选取待部署文件的目标节点以传输所述文件。
8.一种文件传输装置,运行于源节点中,其特征在于,所述源节点位于网络转换设备之后,所述装置包括:
选取模块,用于选取待部署文件的目标节点;
判断模块,用于判断所述目标节点是否有外网IP地址;
推送模块,用于响应于所述目标节点有外网IP地址,推送所述文件至所述目标节点;
拉取模块,用于响应于所述目标节点没有外网IP地址,通知所述目标节点从所述源节点中拉取所述文件。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的文件传输方法的下载程序,所述文件传输方法的下载程序被所述处理器执行时实现如权利要求1至7中任意一项所述的文件传输方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有文件传输方法的下载程序,所述文件传输方法的下载程序可被一个或者多个处理器执行以实现如权利要求1至7中任意一项所述的文件传输方法。
CN201911395943.8A 2019-12-30 2019-12-30 文件传输方法、装置、计算机设备及存储介质 Pending CN111193794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911395943.8A CN111193794A (zh) 2019-12-30 2019-12-30 文件传输方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911395943.8A CN111193794A (zh) 2019-12-30 2019-12-30 文件传输方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN111193794A true CN111193794A (zh) 2020-05-22

Family

ID=70709491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911395943.8A Pending CN111193794A (zh) 2019-12-30 2019-12-30 文件传输方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111193794A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102946A (zh) * 2022-06-16 2022-09-23 平安银行股份有限公司 一种基于文件传输的配置方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017166808A1 (zh) * 2016-03-30 2017-10-05 上海斐讯数据通信技术有限公司 一种通过穿透nat实现p2p通信的方法、设备、服务器及系统
CN107317869A (zh) * 2017-07-06 2017-11-03 深圳市斑点猫信息技术有限公司 一种节点nat类型探测方法、装置以及系统
CN110347648A (zh) * 2019-07-18 2019-10-18 深圳市网心科技有限公司 文件部署方法及装置、计算机装置及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017166808A1 (zh) * 2016-03-30 2017-10-05 上海斐讯数据通信技术有限公司 一种通过穿透nat实现p2p通信的方法、设备、服务器及系统
CN107317869A (zh) * 2017-07-06 2017-11-03 深圳市斑点猫信息技术有限公司 一种节点nat类型探测方法、装置以及系统
CN110347648A (zh) * 2019-07-18 2019-10-18 深圳市网心科技有限公司 文件部署方法及装置、计算机装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102946A (zh) * 2022-06-16 2022-09-23 平安银行股份有限公司 一种基于文件传输的配置方法及系统
CN115102946B (zh) * 2022-06-16 2023-10-24 平安银行股份有限公司 一种基于文件传输的配置方法及系统

Similar Documents

Publication Publication Date Title
CN108650182B (zh) 网络通信方法、系统、装置、设备及存储介质
CN107171885B (zh) 一种检测服务器运行状态的方法、装置和系统
EP3123667B1 (en) Method for monitoring a status in form of presence and/or absence of a network entity
CN110012083B (zh) 一种数据传输方法、服务器及数据传输装置
US9942195B2 (en) NAT traversal method, computer-readable medium, and system for mediating connection
US20150127837A1 (en) Relay apparatus and data transfer method
CN106936935B (zh) 一种远程控制方法及装置
EP3133798A1 (en) Management device, control device, and managment method
CN107613023B (zh) 设备连接方法及装置
CN110012107B (zh) 一种数据通信方法、设备、装置、系统及存储介质
CN111193794A (zh) 文件传输方法、装置、计算机设备及存储介质
CN110535959B (zh) 一种传输数据的方法、装置和计算机可读存储介质
CN104737499B (zh) 终端、消息分发系统、消息分发方法、计算机可读介质
CN111416851A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN111385324A (zh) 一种数据通信方法、装置、设备和存储介质
CN107071038B (zh) 一种传输多媒体数据的方法及装置
CN106231003A (zh) 一种地址分配方法及装置
CN110943975B (zh) 服务注册的方法、装置、计算机设备和存储介质
CN111641664B (zh) 一种爬虫设备业务请求方法、装置、系统和存储介质
US8140888B1 (en) High availability network processing system
CN111970358A (zh) 去中心化云计算平台,服务部署、访问方法及组件
WO2017041667A1 (zh) 安检终端设备、安检网络系统和安检数据传输方法
CN116302618B (zh) 一种会话信息处理方法及装置
CN108769151B (zh) 一种业务处理方法和装置
CN110493292B (zh) 能力通告方法及装置、系统、存储介质、电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210915

Address after: 518057 floors 21-23, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, Keji South Road, community, high tech Zone, Yuehai street, Nanshan District, Shenzhen, Guangdong

Applicant after: Xunlei Networking Technologies, Ltd.

Applicant after: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

Address before: 5 / F, building 5, Weixin Software Park, No. 9, Gaoxin South ninth Road, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200522