一种互联网点对点数据传输方法

文档序号:7703531阅读:247来源:国知局
专利名称:一种互联网点对点数据传输方法
技术领域
本发明涉及互联网通讯技术领域,具体涉及一种互联网点对点数据 传输方法。
背景技术
在当今的网络应用中,文件的传送是不可缺少的功能之一,也是网
络共享的基础。 一些成熟的协议如HTTP, FTP等都支持文件传输。尤 其是FTP,它是文件传输协议的简称,用于Internet上的控制文件的双 向传输,它应用广泛,以其稳定高速的性能一直保持着强大的生命力, 与大多数Internet服务一样,FTP是一个客户机/服务器系统,用户通过 一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程 序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户 所发出的命令,并将执行的结果返回到客户机。这种只适用于单一的客 户机/服务器系统模式中传输模式,难以在较复杂的网络环境中发挥作 用。
P2P文件传输是以P2P技术平台为基础的文件传输,可以在各种复 杂的网络环境中相互通信,各点之间相互平等,不再区分客户机/服务器。 P2P是"peer-to-peer"(点对点)的缩写,它最直接的功能就是让用户可以直 接连接到网络上的其他计算机,进行文件共享与交换。
P2P包含的是把控制权重新归还到用户手里的思想本质。 一直以来, 人们习惯的互联网是以服务器为中心,人们向服务器发送请求,然后浏览服务器回馈的信息,而P2P则以用户为中心,所有的用户都是平等的 关系,即使相隔万里也可以通过P2P共享我们认为最有价值的东西。这 将使互联网上信息的含金量得到极大的提升。
如图l所示,A、 B、 C三点处在同一网络中,三点可以直接相互通 信,C点与INTERNER网络相连接,A、 B两点通过C点访问外部 INTERNER;同理,E点、F点、G点也是处在相同的另外一个网络中, F点、G点也是通过E点访问INTERNET; D点运行于拥有公网IP的网 络环境中。A点可以直接与B、 C、 D、 E进行连接通信,同理F点也可 以直接与C、 D、 E、 G通信,但A、 F分别在各自的网关C、 E背后, 无法直接取得对方的IP地址,所以无法进行点对点通信。

发明内容
本发明要解决的技术问题是提供一种互联网点对点数据传输方法, 克服现有技术的互联网点对点数据传输方法当通讯结点通过网关与互 联网公网连接时,相互间不能进行点对点通讯的缺陷。
本发明为解决上述技术问题所采用的技术方案为
一种互联网点对点数据传输方法,包括步骤
Al、在互联网公网内选取一个通讯结点并在所述通讯结点上设置服
务程序;
A2、通过网关与互联网公网连接的第一通讯结点和第二通讯结点向
所述通讯结点注册自己的IP地址; A3 、第 一通讯结点通过所述通讯结点的所述服务程序获取第二通讯
结点的IP地址;
A4、第一通讯结点向第二通讯结点发送连"t矣请求,第二通讯结点响
应所述连接请求,双方建立连接; A5、第一通讯结点向第二通讯结点发送传输数据请求;A6、第二通讯结点根据所述传输数据请求的内容,向第一通讯结点 发送相应的数据。
所述的互联网点对点数据传输方法,其中所述通讯结点、第一通讯
结点和第二通讯结点按照IPV4协议规范进行通讯。
所述的互联网点对点数据传输方法,其中第一通讯结点和第二通讯 结点按照udp协议M^范进行数据传输。
所述的互联网点对点数据传输方法,其中第一通讯结点和第二通讯 结点通过注册请求命令中的结构体向所述通讯结点发送自己的IP地址。
所述的互联网点对点数据传输方法,其中第二通讯结点在响应所述 连接请求时向第 一通讯结点发送确认信息包。
所述的互联网点对点数据传输方法,其中第二通讯结点通过发送命 令中的结构体携带发送给第 一通讯结点的数据块。
本发明的有益效果本发明互联网点对点数据传输方法在互联网公 网内通讯结点上设置服务程序,在不同网关背后的通讯结点向其注册自 己的IP地址;在不同网关背后的通讯结点通过互耳关网/>网内通讯结点 获取对方的IP地址,从而可以连接正常连接,进行稳定、高效的数据传 输,是点对点数据传输方法的重大进步。


本发明包括如下附图
图1为现有^t支术互^:网组网通讯结点示意图2为本发明通讯结点组网示意图3为本发明通讯结点注册IP地址的流程图4为本发明通讯结点注册IP地址的具体实施例流程6数据传输的流程图6为本发明通讯结点进行数据传输的具体实施例流程图。
具体实施例方式
下面根据附图和实施例对本发明作进一步详细说明 如图2所示,有A, B, C三个通讯结点,其中A、 B端为客户端, 分别运行在不同的局域网内,A、 B都通过各自的网关连接外网;而C 端直接与Internet连接,有固定的公网IP,为使A、 B端能进行点对点 通讯,在C端设置服务程序,用于记录A端、B端的IP地址。假设B 端发文件给A端,那么就要搭建A端、B端之间直接互连的通信平台。 搭建A端、B端通信平台的流程如图3和图4所示。图中A, B, C 三个通讯结点按照IPV4协议规范进行通讯,图中C端记录A、 B两端 各自的IP信息并为另外一方提供对方IP信息的服务,主要起到桥梁中 介的作用。
在A端、B端发送注册信息给C端的协议主要为 CMD( 100)+DATA(Strucht Register Pack) 命令头(CMD)为100
发送数据(DATA)为Strucht Register_Pack结构体,该结构体定义如 下
Strucht Register—Pack {
char* name; 〃peer的名称,在此为A (B )端
int ip; //IP地址,如202.34.22.XX
int port; 〃端口 如8001;
int param; 〃状态参数,默认为0
7A端、B端把包含Register—Pack结构体的信息发送给C端进行注册, C端收到后,会保存该结构信息,并返回该结构体给发送方,以告诉对 方是否注册成功,当A端、B端收到返回信息时,若结构体Strucht Register—Pack的参凄t param为非(H直,则表示注册成功。
在发起端向另 一端发起请求时,会首先从C端获取对方的IP地址, 如A端想获取B端的IP信息时,发给C端一个请求,请求协议 为:CMD(101)+DATA(Strucht GetIP—Pack) 命令头(CMD)为101,
发送数据(DATA)为Strucht GetIP—Pack结构体,该结构体定义如下 Strucht GetIP—Pack {
char* name; 〃peer的名称,B端
int param; 〃状态参数,默认为0
C端收到请求后,给A端返回B端的IP信息,协议为 C励(101 )+DATA(Strucht QueryIP一Pack) 命令头(CMD)为101
发送数据(DATA)为Strucht QueryH^Pack结构体,该结构体定义如 下
Strucht QueryIP—Pack{
char* name; 〃peer的名称,B端
int ip; //IP;也址,如202.34.22.XX
int port; 〃端口 々o8001;
int param; 〃状态参凄史,默i人为0
若参数param为非0值,则表示获取B端IP信息成功。 A获取到B端的IP信息后,开始给B端发送连接请求,请求协议为
8CMD( 102)+DATA(Strucht Request—Pack) 命令头(CMD)为102
发送数据(DATA)为Strucht Request—Pack结构体,该结构体定义如 下
Strucht Request—Pack^
char* name; 〃peer的名4尔,A端 int param;〃状态参数,默认为0
若B端收到A端的:清求信息后,返回一个确认信息包,协议为 CMD( 103)+DATA(Strucht Request—Result—Pack) 命令头(CMD)为103
发送数据(DATA)为Strucht Request—Result—Pack结构体,该结构体 定义如下
Strucht Request—Result—Pack {
char* name; 〃peer的名称,A端 int param; 〃状态参数, 为1
若参数pamm为非O值,则表示B端同意A端的请求。
A端收到B端的确iU言息后,A端与B端之间就可以互发信息了 , 至此A端和B端之间的P2P连"f矣就纟荅建完毕。
如图5和图6所示,A端与B端之间的P2P传输平台搭建成功后, A端、B端按照udp协议规范进行数据传输,B端会给A端发送文件请 求信息,A端收到B端的文件传输请求时,给B端一个确认信息。双 方握手成功后,B端就开始主动向A端请求文件块信息。〗艮如A端要 求发送的文件大小为8K, B端会把文件分割为8块,每块的大小为1K。 每块按顺序编码为0、 1、 2...7,每块格式为 Strucht Block_Pack{Int id; 〃文件块的顺序
int size; 〃块的大小,此为IK
char* data; 〃块数据
B向A端发出发送文件请求,命令才各式为CMD(401)+DATA(Strucht File_Request—Pack) 命令头(CMD)为401,
发送数据(DATA)为Strucht File一Request一Pack结构体,该结构体定义 如下
Strucht File—Request—Pack {
char* filename; 〃文件名称
int size; 〃文件大小
int count 〃文4牛块的大小,这里为8
int param;〃状态参凄史,默i^为0
A端收到发送文件请求后,返回确认信息 CMD(402)+DATA(Strucht File—Request—Result—Pack) 命令头(CMD)为402,
发送数据(DATA)为Strucht File—Request—Result—Pack结构体,该结 构体定义如下
Strucht File—Request—Result—Pack{
int param; 〃状态参数
B收到A端的返回信息,param为非O值表示A同意接收文件。 A端在同意接收文件后,开始主动向B请求文件块信息,请求格式

CMD(5 01 )+DATA(Strucht Block—Index_Pack)命令头(CMD)为501,
发送数据(DATA)为Strucht Block—Index—Pack结构体,该结构体定 义如下
Strucht Block—Index—Pack{
Int id; 〃文件块的顺序 Char* filename 〃文件名称
B端收到A端的文件请求块后,给A端发送相应的块数据,格式为 CMD(502)+DATA(StruchtBlock—Data—Pack) 命令头(CMD)为502,
发送数据(DATA)为StruchtBlock—Data—Pack结构体,该结构体定义 如下
Strucht Block—Data—Pack {
Int id; 〃文件块的顺序
int size; 〃块的大小,此为IK
char* data; 〃块数据
A端收到B端的数据块后,再请求下一数据块,往复循环直到所有 的数据块接收完毕,A端就开始把所有块组装为完整的文件,至此整个 文件发送结束。
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案 实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局 限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构 变化,均包含于本发明的权利范围之内。
li
权利要求
1、一种互联网点对点数据传输方法,其特征在于,包括步骤A1、在互联网公网内选取一个通讯结点并在所述通讯结点上设置服务程序;A2、通过网关与互联网公网连接的第一通讯结点和第二通讯结点向所述通讯结点注册自己的IP地址;A3、第一通讯结点通过所述通讯结点的所述服务程序获取第二通讯结点的IP地址;A4、第一通讯结点向第二通讯结点发送连接请求,第二通讯结点响应所述连接请求,双方建立连接;A5、第一通讯结点向第二通讯结点发送传输数据请求;A6、第二通讯结点根据所述传输数据请求的内容,向第一通讯结点发送相应的数据。
2、 根据权利要求1所述的互联网点对点数据传输方法,其特征在 于所述通讯结点、第一通讯结点和第二通讯结点按照IPV4协议规范 进行通讯。
3、 根据权利要求2所述的互联网点对点数据传输方法,其特征在 于第一通讯结点和第二通讯结点按照udp协议规范进行数据传输。
4、 根据权利要求3所述的互联网点对点数据传输方法,其特征在 于第一通讯结点和第二通讯结点通过注册请求命令中的结构体向所述 通讯结点发送自己的IP地址。
5、 根据权利要求4所述的互联网点对点数据传输方法,其特征在 于第二通讯结点在响应所述连接请求时向第一通讯结点发送确认信息 包。
6、根据权利要求5所述的互联网点对点数据传输方法,其特征在 于第二通讯结点通过发送命令中的结构体携带发送给第一通讯结点的 数据块。
全文摘要
本发明公开了一种互联网点对点数据传输方法,包括步骤A1.在互联网公网内选取一个通讯结点并在所述通讯结点上设置服务程序;A2.通过网关与互联网公网连接的第一通讯结点和第二通讯结点向所述通讯结点注册自己的IP地址;A3.第一通讯结点通过所述通讯结点的所述服务程序获取第二通讯结点的IP地址;A4.第一通讯结点向第二通讯结点发送连接请求,第二通讯结点响应所述连接请求,双方建立连接;A5.第一通讯结点向第二通讯结点发送传输数据请求;A6.第二通讯结点根据所述传输数据请求的内容,向第一通讯结点发送相应的数据。
文档编号H04L29/08GK101478573SQ200910104939
公开日2009年7月8日 申请日期2009年1月16日 优先权日2009年1月16日
发明者张代军, 苏伙强 申请人:深圳市汇海科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1