CN101437036B - 支持nat/防火墙穿越的文件传输方法和系统 - Google Patents

支持nat/防火墙穿越的文件传输方法和系统 Download PDF

Info

Publication number
CN101437036B
CN101437036B CN200810240486A CN200810240486A CN101437036B CN 101437036 B CN101437036 B CN 101437036B CN 200810240486 A CN200810240486 A CN 200810240486A CN 200810240486 A CN200810240486 A CN 200810240486A CN 101437036 B CN101437036 B CN 101437036B
Authority
CN
China
Prior art keywords
recipient
point
transmit leg
tcp
relaying
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.)
Expired - Fee Related
Application number
CN200810240486A
Other languages
English (en)
Other versions
CN101437036A (zh
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.)
BEIJING CE OPEN SOURCE SOFTWARE Co Ltd
Original Assignee
BEIJING CE OPEN SOURCE SOFTWARE 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 BEIJING CE OPEN SOURCE SOFTWARE Co Ltd filed Critical BEIJING CE OPEN SOURCE SOFTWARE Co Ltd
Priority to CN200810240486A priority Critical patent/CN101437036B/zh
Publication of CN101437036A publication Critical patent/CN101437036A/zh
Application granted granted Critical
Publication of CN101437036B publication Critical patent/CN101437036B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种支持网络地址转换(NAT)/防火墙穿越的文件传输方法,包括:发送方和接收方尝试建立基于传输控制协议(TCP)连接的点对点传输通道;如果点对点传输通道建立成功,则发送方与接收方通过点对点传输通道执行文件传输;如果点对点传输通道建立失败,则发送方邀请接收方到中继服务器建立中继会话的TCP传输通道,并通过中继会话的TCP传输通道执行文件传输。本发明还公开了一种支持NAT/防火墙穿越的文件传输系统,基于中继会话服务保证了文件传输对NAT/防火墙的完全穿越;基于TCP协议的可靠性,保证了文件传输的完整性和准确性。

Description

支持NAT/防火墙穿越的文件传输方法和系统
技术领域
本发明涉及网络通信中的文件传输技术,尤其涉及一种支持网络地址转换(NAT)/防火墙穿越的文件传输方法和系统。
背景技术
文件传输是现今网络应用中重要的功能之一,也是资源共享的基础。为了解决公网互联网协议(IP,Internet Protocol)地址紧缺以及安全等问题,广域网上通信双方的两个主体常被网络地址转换(NAT,Network AddressTranslation)/防火墙设备或软件隐藏,由处于同一NAT设备后的多台主机共享一个公网IP地址;一个私网内的主机通过NAT设备与公网的其他主机通信,通常都是由私网内的主机主动发起连接,数据包经过网络地址转换后送给公网上的服务器。但是这种通信方式是不允许从公网上主动向位于私网内的主机主动发起连接的,这也就阻隔了用户之间的直接通信。
为了实现广域网的媒体数据传输,需要解决对NAT的穿越问题。中国发明专利于2008年6月11日公开的,公开号为CN101197850A的专利申请中提出了一种面向广域网络的对等通信与文件传输方法,要求对用户网络位置进行判断,如果是同一内网用户间通信、或公网上用户间通信、或内网用户向公网用户发起通信,则采用传输控制协议(TCP,Transmission Control Protocol)方式建立连接并进行通信与文件传输;如果是公网用户向内网用户发起通信、或不同内网用户间通信,则采用基于用户数据报协议(UDP,User Datagram Protocol)的NAT/网络地址端口转换(NAPT,Network Address Port Translation)穿越技术建立连接并进行通信与文件传输。由于基于UDP的通信没有可靠性的保证,因此这种基于UDP穿越NAT的技术不能保证文件传输的完整性和准确性;另外,这种基于UDP穿越NAT的技术也无法穿越对称NAT(Symmetric NAT)进行文件传输。
根据上述分析可知,针对文件传输,可靠性是关键。目前提出的针对NAT穿越的解决方案,按照处理部分所在位置不同,可以分为客户端解决方案、路由边界解决方案和服务器端解决方案;但是这些解决方案大都是依据网络上语音和视频的传输要求设计和实现的,并没有针对文件传输的特定要求给出理想的解决方案;基于UDP实现NAT穿越的解决方案,由于不能很好的满足文件传输对完整性和准确性的较高要求,没有可靠性的保障,因此并不适合进行文件传输。
发明内容
有鉴于此,本发明的主要目的在于提供一种支持NAT/防火墙穿越的文件传输方法和系统,以实现文件穿越NAT/防火墙的可靠性传输。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种支持网络地址转换NAT/防火墙穿越的文件传输方法,该方法包括:
发送方和接收方尝试建立基于传输控制协议TCP连接的点对点传输通道;
如果所述点对点传输通道建立成功,则所述发送方与接收方通过所述基于TCP连接的点对点传输通道执行文件传输;
如果所述点对点传输通道建立失败,则所述发送方邀请接收方到中继服务器建立中继会话的TCP传输通道,并通过所述中继会话的TCP传输通道执行文件传输;
其中,所述发送方和接收方尝试建立基于TCP连接的点对点传输通道,具体包括:
所述发送方收集可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向接收方发送携带所述本地网络接口地址的invite请求,并打开发送方的监听端口;
所述接收方收到所述invite请求后向发送方返回响应,收集所述接收方可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向发送方发送携带所述本地网络接口地址的reinvite请求,并打开接收方的监听端口;
所述发送方收到所述reinvite请求后向接收方返回响应,并与接收方建立所述基于TCP连接的点对点传输通道。
该方法进一步包括:所述发送方和接收方同时发起正向连接和反向连接,尝试建立基于TCP连接的点对点传输通道。
所述发送方邀请接收方建立中继会话的TCP传输通道,具体包括:
所述发送方和中继服务器建立TCP连接,并向所述中继服务器发送创建中继会话请求;
所述中继服务器根据所述发送方的创建中继会话请求,创建中继会话,并将所述中继会话的会话标识返回给所述发送方;
所述发送方向所述接收方发送加入中继会话的邀请;
所述接收方收到邀请后,和中继服务器建立TCP连接,并向所述中继服务器发送加入中继会话请求;
所述中继服务器根据所述接收方的加入中继会话请求,根据所述请求中的会话标识,绑定到所述发送方创建的中继会话,并向所述发送方和接收方分别返回响应,通知中继会话通道建立成功。
该方法进一步包括:如果所述中继会话的TCP传输通道建立失败,则通过回调机制上报网络连接异常。
所述文件传输支持断点续传和多线程传输。
本发明还提供了一种支持NAT/防火墙穿越的文件传输系统,该系统包括:发送方、接收方和中继服务器;其中,
所述发送方,用于尝试与所述接收方建立基于TCP连接的点对点传输通道,并根据建立成功或失败的结果,通过所述点对点传输通道执行与接收方的文件传输,或者请求所述中继服务器建立中继会话的TCP传输通道,提供中继会话服务,并邀请所述接收方加入中继会话;
所述接收方,用于与所述发送方建立基于TCP连接的点对点传输通道,并根据建立成功或失败的结果,通过所述点对点传输通道执行与发送方的文件传输,或者根据所述发送方的邀请,请求所述中继服务器提供与所述发送方的中继会话服务;
所述中继服务器,用于为所述发送方和接收方建立中继会话的TCP传输通道,并为所述发送方和接收方的文件传输提供中继会话服务;
其中,发送方和接收方尝试建立基于TCP连接的点对点传输通道,具体包括:
所述发送方收集可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向接收方发送携带所述本地网络接口地址的invite请求,并打开发送方的监听端口;
所述接收方收到所述invite请求后向发送方返回响应,收集所述接收方可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向发送方发送携带所述本地网络接口地址的reinvite请求,并打开接收方的监听端口;
所述发送方收到所述reinvite请求后向接收方返回响应,并与接收方建立所述基于TCP连接的点对点传输通道。
所述发送方进一步包括:
第一点对点传输模块,用于尝试与所述接收方建立基于TCP连接的点对点传输通道,并在建立成功后,通过所述点对点传输通道执行与所述接收方的文件传输;
第一中继传输模块,用于在所述点对点传输通道建立失败时,请求所述中继服务器建立中继会话的TCP传输通道,提供中继会话服务,并邀请所述接收方加入中继会话;根据所述中继服务器创建的中继会话的TCP传输通道,执行与所述接收方的文件传输。
所述接收方进一步包括:
第二点对点传输模块,用于与所述发送方建立基于TCP连接的点对点传输通道,并在建立成功后,通过所述点对点传输通道执行与所述发送方的文件传输;
第二中继传输模块,用于在所述点对点传输通道建立失败时,根据所述发送方的邀请,请求所述中继服务器提供与所述发送方的中继会话服务,并根据所述中继服务器创建的中继会话的TCP传输通道,执行与所述发送方的文件传输。
所述中继服务器进一步包括:
请求接收模块,用于接收来自所述发送方和接收方的请求;
传输通道建立模块,用于根据所述发送方和接收方的请求,创建中继会话的TCP传输通道,并为所述发送方和接收方的文件传输提供中继会话服务。
本发明所提供的支持NAT/防火墙穿越的文件传输方法和系统,发送方和接收方先尝试建立基于TCP连接的点对点传输通道,如果建立成功,则通过点对点传输通道执行文件传输;如果建立失败,则启用中继服务建立中继会话的TCP传输通道,并利用中继会话的TCP传输通道执行文件传输。
本发明采用发送方和接收方同时发起正向连接和反向连接的交互机制尝试建立点对点传输通道,提高了建立传输通道的成功率;基于中继会话服务,保证了文件传输对NAT/防火墙的完全穿越;基于TCP协议的可靠性,保证了文件传输的完整性和准确性;可以支持断点续传和多线程传输,以提高网络利用率;具有较高的适应性,能支持各种网络环境,实现各种类型NAT/防火墙的穿越;具有较好的扩展性,也适用于音频、视频等媒体数据的传输;可以实现逻辑群组内的文件分发,提高了文件共享效率。
附图说明
图1为本发明一种支持NAT/防火墙穿越的文件传输方法的流程图;
图2为本发明建立中继会话的TCP传输通道的流程图;
图3为本发明一种支持NAT/防火墙穿越的文件传输系统的组成结构示意图。
具体实施方式
下面结合具体实施例对本发明的技术方案进一步详细阐述。
为实现文件穿越NAT/防火墙的可靠性传输,本发明提供的一种支持NAT/防火墙穿越的文件传输方法,如图1所示,主要包括以下步骤:
步骤101,发送方收集可用于通信的所有本地网络接口地址。
在本发明中,发送方采用系统调用应用程序编程接口(API,ApplicationProgramming Interface)函数的方式收集可用于通信的所有本地网络接口地址。
步骤102,发送方调用抽象信令协议栈提供的接口向接收方发送invite请求,并打开发送方的本地监听端口。
invite请求中携带发送方所收集的可用于通信的所有本地网络接口地址。本发明中的抽象信令协议栈可以是会话初始化(SIP,Session Initiation Protocol)协议栈或H.323协议栈等。
步骤103,接收方收到来自发送方的invite请求后,向发送方返回响应,并收集接收方可用于通信的所有本地网络接口地址。
接收方从invite请求中提取发送方可用于通信的所有本地网络接口地址并存储。另外,接收方向发送方返回的响应只是对发送方invite请求的确认,并不携带接收方收集的本地网络接口地址。
步骤104,接收方调用抽象信令协议栈提供的接口向发送方发送reinvite请求,并打开接收方的本地监听端口。
reinvite请求中携带接收方所收集的可用于通信的所有本地网络接口地址。
步骤105,发送方收到来自接收方的reinvite请求后,向接收方返回响应,并与接收方尝试建立基于TCP连接的点对点传输通道。
发送方从invite请求中提取接收方可用于通信的所有本地网络接口地址并存储。需要指出的是,发送方向接收方返回的响应,只是对接收方reinvite请求的确认,并不携带发送方收集的本地网络接口地址。发送方和接收方通过信令协议完成用于传输文件的通信地址交换后,即可以根据这些可用于通信的本地网络接口地址,基于TCP连接,建立发送方与接收方的点对点传输通道。点对点传输通道建立的操作为基于“三次握手”机制的现有技术,此处不再赘述。
本发明也可以采用发送方和接收方同时发起正向连接和反向连接的交互机制尝试建立点对点传输通道,即在建立传输通道之前,发送方和接收方先通过信令协议交换可用于进行文件传输的本地网络接口地址,在此基础上发送方和接收方打开本地监听端口,同时还会主动尝试和对端的所有本地网络接口地址建立连接,采用这种交互机制尝试建立点对点传输通道,可以提高建立点对点传输通道的成功率。
步骤106,发送方判断基于TCP连接的点对点传输通道是否建立成功,如果建立成功,则执行步骤108;如果建立失败,则执行步骤107。
实际应用中,发送方可以从尝试建立点对点传输通道时开始启动定时器,如果在定时器超时前,成功建立点对点传输通道,则认为操作成功;如果定时器超时,仍无法建立完成点对点传输通道,则认为建立失败。
步骤107,基于TCP连接的点对点传输通道建立失败,发送方邀请接收方到中继服务器建立中继会话,并建立中继会话的TCP传输通道。
关于发送方和接收方建立中继会话的TCP传输通道的具体操作,在后续的说明书中进行详细描述。
步骤108,当基于TCP连接的点对点传输通道,或者中继会话的TCP传输通道建立成功时,发送方和接收方通过建立的点对点传输通道或者中继会话的TCP传输通道,调用抽象的文件传输协议栈的相应接口,执行文件传输的操作。文件传输协议栈中封装有用于文件传输的超文本传输协议(HTTP,HypertextTransfer Protocol)。
本发明的文件传输支持断点续传和多线程传输。断点续传的基础是发送方需要支持接收方的随机读取请求,具体为:接收方通过建立一个辅助文件来保存已接收文件的信息,如已经接收的字节数等,接收方在收到文件传输邀请时先检查文件是否存在,如果存在,则获取文件大小,并以此作为已经下载的部分;发送方在开始发送文件之前,从接收方获取已经传输的字节数和开始读取文件的位置,并从该位置开始执行文件的续传。
多线程传输,即发送方在提供传输服务时,根据接收方建立的逻辑连接通道数,将文件分成相应数量的多个部分,为每一部分创建一个线程和接收方进行数据交换;其实质就是将一个任务拆分为多个任务。本发明在进行抽象的文件传输协议栈的接口设计时,可以根据多线程传输的需求,设定传输通道的文件传输起始位置和传输的字节数,这样即可以根据需求启动多线程并行传输文件。
步骤109,在文件传输完成后,发送方发送消息通知接收方,并释放通道资源。
下面结合图2对本发明建立中继会话的TCP传输通道的流程进行详细说明,如图2所示,包括以下步骤:
步骤201,发送方和中继服务器建立TCP连接,然后进行摘要式认证,如果认证失败则断开连接;如果认证成功,则发送方向中继服务器发送创建中继会话请求,请求中包括用户标识和中继会话类型等参数,中继会话类型主要包括文件传输会话、音频/视频多媒体会话等。
步骤202,中继服务器根据发送方的创建中继会话请求,创建中继会话,并用一个唯一的会话标识(SESSION ID)标记该中继会话,将该SESSION ID返回给发送方。
步骤203,发送方向接收方发送加入中继会话的邀请,邀请中携带要加入会话的SESSION ID。
步骤204,接收方收到邀请后和中继服务器建立TCP连接,然后进行摘要式认证,如果认证失败则断开连接;如果认证成功,则发送方向中继服务器发送加入中继会话请求,请求中携带要加入会话的SESSION ID。
步骤205,中继服务器根据接收方的加入中继会话请求,根据SESSION ID验证指定的会话是否存在,在验证通过后,绑定到发送方创建的中继会话。
步骤206,中继服务器向发送方和接收方分别返回响应,通知中继会话通道建立成功。
需要指出的是,如果由于上述操作不成功导致中继会话的TCP传输通道建立失败,则发送方和接收方通过回调机制通知应用层网络连接异常。在中继会话的TCP传输通道建立成功后,发送方和接收方即可以通过该传输通道,执行文件传输的操作。
结合实际情况,在广域网上,根据发送方和接收方所处的网络环境可以归纳为以下四种情况:
a、发送方和接收方均没有被NAT/防火墙隐藏,例如:发送方和接收方位于同一私网内,或者拥有相同的公网IP地址;
b、发送方被NAT/防火墙隐藏,接收方没有被NAT/防火墙隐藏;
c、接收方被NAT/防火墙隐藏,发送方没有被NAT/防火墙隐藏;
d、发送方和接收方均被NAT/防火墙隐藏。
根据本发明前述的文件传输方法可以分析得知,对于a、b、c三种情况,本发明可以通过发送方与接收方正向连接和反向连接建立基于TCP连接的点对点传输通道;对于d的情况,本发明可以利用中继服务器建立的中继会话的TCP传输通道。从而,本发明可以在广域网上的任何两个端点之间建立一个可靠的基于TCP连接的传输通道,利用TCP协议本身的可靠机制保证文件传输的完整性和准确性。
在实际应用中,NAT被分为7种类型,包括静态NAT、动态NAT等,其中,对称NAT的限制是最严格的。由于处于对称NAT后面的两个主机不管采用TCP还是UDP都无法进行直接的点对点通信,而本发明中如果文件收发一方或双方都处于对称NAT后面,则可以通过和中继服务器建立间接的连接通道来完成文件传输,因此本发明能穿越对称NAT。
本发明还可以实现音频、视频等媒体数据的可靠传输,具体实现流程与文件传输的流程类似,在此不再赘述。
另外,本发明在确定发送方和接收方之间无法建立基于TCP连接的点对点传输通道时,再启用中继会话传输的操作,而不是对所有的文件都采用中继会话传输,原因是:如果任何一次文件传输过程都要访问中继服务器,则会增加中继服务器的负荷;通过中继服务器收集可用于通信的所有本地网络接口地址,会导致操作延迟较大,给用户带来不好的体验;实际应用中,无法建立基于TCP连接的点对点传输通道的情况较少,所以对中继会话传输的使用也较少,如果每次文件传输都采用中继会话传输,会增加系统的复杂度。
再有,本发明将NAT/防火墙穿越的实现逻辑在发送方和接收方上进行充分封装,针对特定的应用,只需要收集可用于通信的本地网络接口地址即可,而不必关心发送方和接收方所处的网络环境。本发明将NAT/防火墙穿越的实现逻辑和文件传输的应用逻辑有效隔离,NAT/防火墙穿越并完成传输通道建立后,依据文件传输协议(如HTTP)实现文件传输。
本发明还支持一个逻辑群组内的文件分发,从而可以提高文件共享效率,例如:常用的即时通信工具登录以后有一个好友列表,如果需要发送文件给当前在线的所有好友时,可以针对一个群组发送文件,即只用一次操作即可以完成和所有在线好友的文件共享。
为实现上述本发明的支持NAT/防火墙穿越的文件传输方法,本发明还提供了一种支持NAT/防火墙穿越的文件传输系统,如图3所示,该系统由发送方10、接收方20和中继服务器30组成。
发送方10,用于尝试与接收方20建立基于TCP连接的点对点传输通道,并在建立成功后,通过点对点传输通道执行与接收方20的文件传输;在建立失败后,请求中继服务器30建立中继会话的TCP传输通道,提供中继会话服务,并邀请接收方20加入中继会话。
接收方20,连接发送方10,用于与发送方10建立基于TCP连接的点对点传输通道,并在建立成功后,通过点对点传输通道执行与发送方10的文件传输;在建立失败后,根据发送方10的邀请,请求中继服务器30提供与发送方10的中继会话服务。
中继服务器30,连接发送方10和接收方20,用于为发送方10和接收方20建立中继会话的TCP传输通道,并为发送方10和接收方20的文件传输提供中继会话服务。
其中,发送方10进一步包括:相互连接的第一点对点传输模块11和第一中继传输模块12。第一点对点传输模块11,用于尝试与接收方20建立基于TCP连接的点对点传输通道,并在建立成功后,通过点对点传输通道执行与接收方20的文件传输。第一中继传输模块12,用于在点对点传输通道建立失败时,请求中继服务器30建立中继会话的TCP传输通道,提供中继会话服务,并邀请接收方20加入中继会话;根据中继服务器30创建的中继会话的TCP传输通道,执行与接收方20的文件传输。
接收方20进一步包括:相互连接的第二点对点传输模块21和第二中继传输模块22。第二点对点传输模块21,用于与发送方10建立基于TCP连接的点对点传输通道,并在在建立成功后,通过点对点传输通道执行与发送方10的文件传输。第二中继传输模块22,用于在点对点传输通道建立失败时,根据发送方10的邀请,请求中继服务器30提供与发送方10的中继会话服务,并根据中继服务器30创建的中继会话的TCP传输通道,执行与发送方10的文件传输。
中继服务器30进一步包括:相互连接的请求接收模块31和传输通道建立模块32。请求接收模块31,用于接收来自发送方10和接收方20的请求。传输通道建立模块32,用于根据发送方10和接收方20的请求,创建中继会话的TCP传输通道,并为发送方10和接收方20的文件传输提供中继会话服务。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (9)

1.一种支持网络地址转换NAT/防火墙穿越的文件传输方法,其特征在于,该方法包括:
发送方和接收方尝试建立基于传输控制协议TCP连接的点对点传输通道;
如果所述点对点传输通道建立成功,则所述发送方与接收方通过所述基于TCP连接的点对点传输通道执行文件传输;
如果所述点对点传输通道建立失败,则所述发送方邀请接收方到中继服务器建立中继会话的TCP传输通道,并通过所述中继会话的TCP传输通道执行文件传输;
其中,所述发送方和接收方尝试建立基于TCP连接的点对点传输通道,具体包括:
所述发送方收集可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向接收方发送携带所述本地网络接口地址的invite请求,并打开发送方的监听端口;
所述接收方收到所述invite请求后向发送方返回响应,收集所述接收方可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向发送方发送携带所述本地网络接口地址的reinvite请求,并打开接收方的监听端口;
所述发送方收到所述reinvite请求后向接收方返回响应,并与接收方建立所述基于TCP连接的点对点传输通道。
2.根据权利要求1所述支持NAT/防火墙穿越的文件传输方法,其特征在于,该方法进一步包括:所述发送方和接收方同时发起正向连接和反向连接,尝试建立基于TCP连接的点对点传输通道。
3.根据权利要求1所述支持NAT/防火墙穿越的文件传输方法,其特征在于,所述发送方邀请接收方建立中继会话的TCP传输通道,具体包括:
所述发送方和中继服务器建立TCP连接,并向所述中继服务器发送创建中继会话请求;
所述中继服务器根据所述发送方的创建中继会话请求,创建中继会话,并将所述中继会话的会话标识返回给所述发送方;
所述发送方向所述接收方发送加入中继会话的邀请;
所述接收方收到邀请后,和中继服务器建立TCP连接,并向所述中继服务器发送加入中继会话请求;
所述中继服务器根据所述接收方的加入中继会话请求,根据所述请求中的会话标识,绑定到所述发送方创建的中继会话,并向所述发送方和接收方分别返回响应,通知中继会话通道建立成功。
4.根据权利要求1、或2、或3所述支持NAT/防火墙穿越的文件传输方法,其特征在于,该方法进一步包括:如果所述中继会话的TCP传输通道建立失败,则通过回调机制上报网络连接异常。
5.根据权利要求1、或2、或3所述支持NAT/防火墙穿越的文件传输方法,其特征在于,所述文件传输支持断点续传和多线程传输。
6.一种支持NAT/防火墙穿越的文件传输系统,其特征在于,该系统包括:发送方、接收方和中继服务器;其中,
所述发送方,用于尝试与所述接收方建立基于TCP连接的点对点传输通道,并根据建立成功或失败的结果,通过所述点对点传输通道执行与接收方的文件传输,或者请求所述中继服务器建立中继会话的TCP传输通道,提供中继会话服务,并邀请所述接收方加入中继会话;
所述接收方,用于与所述发送方建立基于TCP连接的点对点传输通道,并根据建立成功或失败的结果,通过所述点对点传输通道执行与发送方的文件传输,或者根据所述发送方的邀请,请求所述中继服务器提供与所述发送方的中继会话服务;
所述中继服务器,用于为所述发送方和接收方建立中继会话的TCP传输通道,并为所述发送方和接收方的文件传输提供中继会话服务;
其中,发送方和接收方尝试建立基于TCP连接的点对点传输通道,具体包括:
所述发送方收集可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向接收方发送携带所述本地网络接口地址的invite请求,并打开发送方的监听端口;
所述接收方收到所述invite请求后向发送方返回响应,收集所述接收方可用于通信的所有本地网络接口地址,调用抽象信令协议栈提供的接口向发送方发送携带所述本地网络接口地址的reinvite请求,并打开接收方的监听端口;
所述发送方收到所述reinvite请求后向接收方返回响应,并与接收方建立所述基于TCP连接的点对点传输通道。
7.根据权利要求6所述支持NAT/防火墙穿越的文件传输系统,其特征在于,所述发送方进一步包括:
第一点对点传输模块,用于尝试与所述接收方建立基于TCP连接的点对点传输通道,并在建立成功后,通过所述点对点传输通道执行与所述接收方的文件传输;
第一中继传输模块,用于在所述点对点传输通道建立失败时,请求所述中继服务器建立中继会话的TCP传输通道,提供中继会话服务,并邀请所述接收方加入中继会话;根据所述中继服务器创建的中继会话的TCP传输通道,执行与所述接收方的文件传输。
8.根据权利要求6所述支持NAT/防火墙穿越的文件传输系统,其特征在于,所述接收方进一步包括:
第二点对点传输模块,用于与所述发送方建立基于TCP连接的点对点传输通道,并在建立成功后,通过所述点对点传输通道执行与所述发送方的文件传输;
第二中继传输模块,用于在所述点对点传输通道建立失败时,根据所述发送方的邀请,请求所述中继服务器提供与所述发送方的中继会话服务,并根据所述中继服务器创建的中继会话的TCP传输通道,执行与所述发送方的文件传输。
9.根据权利要求6所述支持NAT/防火墙穿越的文件传输系统,其特征在于,所述中继服务器进一步包括:
请求接收模块,用于接收来自所述发送方和接收方的请求;
传输通道建立模块,用于根据所述发送方和接收方的请求,创建中继会话的TCP传输通道,并为所述发送方和接收方的文件传输提供中继会话服务。
CN200810240486A 2008-12-22 2008-12-22 支持nat/防火墙穿越的文件传输方法和系统 Expired - Fee Related CN101437036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810240486A CN101437036B (zh) 2008-12-22 2008-12-22 支持nat/防火墙穿越的文件传输方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810240486A CN101437036B (zh) 2008-12-22 2008-12-22 支持nat/防火墙穿越的文件传输方法和系统

Publications (2)

Publication Number Publication Date
CN101437036A CN101437036A (zh) 2009-05-20
CN101437036B true CN101437036B (zh) 2012-08-29

Family

ID=40711258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810240486A Expired - Fee Related CN101437036B (zh) 2008-12-22 2008-12-22 支持nat/防火墙穿越的文件传输方法和系统

Country Status (1)

Country Link
CN (1) CN101437036B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783930A (zh) * 2010-03-25 2010-07-21 青岛海信电器股份有限公司 一种电视机的交互方法、装置和系统
CN101895559B (zh) * 2010-08-09 2013-06-12 北京中创信测科技股份有限公司 一种代理穿越网络及防火墙的方法
CN102457497B (zh) * 2010-10-27 2015-04-29 金蝶软件(中国)有限公司 一种网络通信的方法及装置
CN102857403B (zh) * 2011-06-30 2015-04-22 北京神州泰岳软件股份有限公司 即时通信客户端数据共享方法和系统
EP2725765B1 (en) * 2012-10-29 2016-04-06 BlackBerry Limited Method and system for TCP turn operation behind a restrictive firewall
CN103888500B (zh) * 2012-12-21 2017-11-03 联想(北京)有限公司 一种数据传输方法及电子设备
CN103442305A (zh) * 2013-09-02 2013-12-11 西安诺瓦电子科技有限公司 插播控制方法和集群式播放控制系统及方法
CN104519414B (zh) * 2013-09-27 2018-05-08 北京新媒传信科技有限公司 一种流媒体传输的方法和系统
CN106921630A (zh) * 2015-12-25 2017-07-04 航天信息股份有限公司 数据交换方法及设备
CN105871706A (zh) * 2016-06-13 2016-08-17 珠海佳米科技有限公司 文件传输方法及系统
CN110611692A (zh) * 2018-06-15 2019-12-24 上海宽翼通信科技股份有限公司 一种基于点对点穿越的web访问方法、系统及客户端
CN109714559A (zh) * 2019-01-25 2019-05-03 武汉瑞莱保能源技术有限公司 一种现场协同作业服务支持方法及系统
CN112118273B (zh) * 2019-06-19 2023-04-07 杭州萤石软件有限公司 一种数据交互方法、系统及第一客户端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1578302A (zh) * 2003-07-04 2005-02-09 富士胶片株式会社 对等通信系统
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法
CN1968226A (zh) * 2006-04-18 2007-05-23 华为技术有限公司 点对点通信中穿越网络地址转换的方法
CN101179502A (zh) * 2007-12-12 2008-05-14 中兴通讯股份有限公司 一种流媒体数据的转发系统和转发方法
CN101197850A (zh) * 2007-12-26 2008-06-11 北京航空航天大学 一种面向广域网络的对等通信与文件传输方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1578302A (zh) * 2003-07-04 2005-02-09 富士胶片株式会社 对等通信系统
CN1968226A (zh) * 2006-04-18 2007-05-23 华为技术有限公司 点对点通信中穿越网络地址转换的方法
CN1968194A (zh) * 2006-06-09 2007-05-23 华为技术有限公司 穿越网络地址转换的方法
CN101179502A (zh) * 2007-12-12 2008-05-14 中兴通讯股份有限公司 一种流媒体数据的转发系统和转发方法
CN101197850A (zh) * 2007-12-26 2008-06-11 北京航空航天大学 一种面向广域网络的对等通信与文件传输方法

Also Published As

Publication number Publication date
CN101437036A (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
CN101437036B (zh) 支持nat/防火墙穿越的文件传输方法和系统
CN109274634B (zh) 多媒体通信方法及装置、存储介质
CN114866521B (zh) 会议服务器
US7305546B1 (en) Splicing of TCP/UDP sessions in a firewalled network environment
EP1515508A2 (en) Session control system, communication terminal and servers
CN101414950B (zh) 通过临时使用tcp传输协议实现sip信令消息的地址转换设备穿越的方法
US7996543B2 (en) Client-to-client direct RTP exchange in a managed client-server network
CN106850399B (zh) 一种基于WebRTC技术即时消息的通信方法
US6879593B1 (en) Connections of nodes on different networks
US20090157887A1 (en) Control for the interface for sending an SIP reply message
EP2018756B1 (en) Address translation in a communication system
US20130179521A1 (en) Method and device for implementing a group session
JP2006254402A (ja) マルチメディア会議システム,それを用いた会議方法、およびコンピューターの判読可能メディア
JP2011054178A (ja) インスタントメッセージのための移送システム
CN101964785A (zh) Nat网络中sip终端间文件传输的方法、终端及系统
CN103297445A (zh) 一种基于IP多媒体网络的Web终端通信方法和系统
EP2381617B1 (en) A method for calling a conference when hard terminals have been bound to pc clients, a login server thereof, a conference server thereof and a pc client thereof
CN109995734A (zh) 一种基于SIP协议的WebRTC的通信方法
KR20090058610A (ko) 아이엠에스 기반 인스턴트 메시지 서비스 제공 시스템 및방법
US11637874B2 (en) Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping
US20130077618A1 (en) Expeditious resource reservation protocol
KR20130121936A (ko) 에스아이피 메시지 송수신 시스템 및 방법
CN109120578B (zh) 一种实现链路连接处理的方法及装置
US20080137647A1 (en) VoIP terminal and method for providing multi-call service
KR100660123B1 (ko) Nat 통과를 위한 브이.피.엔 서버 시스템 및 브이.피.엔클라이언트 단말기

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120829

Termination date: 20131222