专利名称:点对点客户端的数据传输处理方法及装置的制作方法
技术领域:
本发明涉及网络数据传输技术,尤其涉及一种点对点(P2P)客户端的 数据传输处理方法及装置。
背景技术:
P2P文件分发技术是一种目前被广泛釆用的网络数据下载技术,这种技 术通过连接在网络当中的安装有P2P客户端的计算机结点(本文中简称结 点)直接的相互合作,使数据的传输不依赖与单个的服务器,而是分散给各 个结点,从而提高了数据传输的效率和整个系统的健壮性。目前应用较普遍的P2P文件分发系统主要包括BT文件分发系统和 Emule文件分发系统,其原理基本相似,下面以BT文件分发系统为例进行 说明。图1为BT文件分发系统的整体构架图。参见图1,所述BT文件分 发系统由两个部分组成,分别是服务层和分发层。服务层主要包括跟踪 (tracker )服务器和种子服务器两个部分,服务层用于提供 一些基础性服务, 并不参与真正的数据传输。分发层主要是参与文件分发共享的各个联网的计 算机结点,这些结点上安装有P2P客户端,通过P2P客户端提供真正的数 据上传下载。参与数据传输的结点可以分为两类,即种子结点(也可以称为 上传结点)和下载结点。种子结点是拥有源文件(即拥有全部数据)的结点, 下载结点是数据不完全并且正在进行下载的结点。当下载结点下载完成后, 即具备成为种子结点的条件。整个系统最开始一般是一个或几个种子结点, 最终目标就是将文件从种子结点分发到所有需要数据的结点。在下载的过程中, 一个源文件首先被种子结点分成若干等长的数据片 段,每个片段被分别编号,这些数据片段编号信息会写入种子文件(torrent文件),需要下载数据的结点首先要获取该torrent文件,然后通过其中的 数据片段编号信息向其他结点请求数据。在P2P文件分发系统中,各个结点的P2P客户端在下载的过程中都会 向一个或多个tracker服务器注册,P2P客户端向tracker服务器发送的注册 请求中包括如表1所示的内容名称用途Info—hash用于标识源文件的字符串,20字节长。Peer—id结点的id, 一个20字节长的字符串。每个结点在开始一次新 的下载之前,需要随机创建这个id。IP一个可选的参数,表示结点上用于监听的网络接口 IP地址。Port结点所监听的端口。下载结点通常在在6881端口上监听,假 如该端口被占用,那么会一直尝试到6889,假如都被占用, 那么就放弃监听。Uploaded已上载的数据大小,十进制表示。Downloaded已下载的数据大小,十进制表示。Left该结点还有多少数据没有下载完,十进制表示。Event一个可选的关键字,值是started、 compted或stopped之一 (也 能够为空,不做处理)。假如不出现该关键字,。在一次下载 刚开始的时候,该值被配置为started,在下载完成之后,配置 为completed。假如下载者停止了下载,那么该值配置为 stopped 。表1通过P2P文件分发系统中各结点的注册过程,tmcker服务器可以维护所 有结点的地址信息,帮助各个结点找到对方。当一个结点新注册下载某一个 源文件时,会从tracker服务器获得一部分具有该源文件全部或部分数据的 其他结点作为备选的邻居结点,该结点可以向这些邻居结点发起连接请求,建立连接并传输数据;同时该结点也接收其他远程结点的连接请求,建立连 接并传输数据。结点之间传输数据的过程在BT协议当中都有详细规定,此处只作简要描述首先一个结点会向目标结点发送连接请求,当目标结点接受连接请求后,发起结点会发送握手信息,目标结点接收握手信息后回送一个握手信息;然后发起结点与目标结点互相发送数据片段信息,表明自己具有的数据片 段。然后相互之间发送数据片段请求和数据片段响应,直到其中一方结束数 据传输。从上面的部分可以看到,结点之间的数据传输是B T文件分发系统的主 要部分,而实现该功能则是P2P客户端软件与传统客户端/服务器(CS)结 构软件不同的地方,P2P客户端软件既连接远程主机获取数据,又作为服务 器监听请求,为其他主机提供数据。目前随着共享数据文件(源文件)大小的迅速增加,形成明显对比的是 网络带宽的增加远远落后,所以如何在现有网络带宽的情况下提高带宽的利 用效率就成了目前P2P文件共享软件需要解决的核心问题之一,目前的P2P 客户端大都针对单网络接口的情况,极少考虑多网络接口的用户。而随着非 对称数字用户线路(ADSL)的普及,同一计算机租用多条线路的情况已经 很平常,因此一个计算机中可以具有多个网络接口。而现有的P2P客户端软 件在设计上大都没有考虑这种多网络接口的情形,因而不能充分利用多网络 接口提供的带宽。图2为现有技术中的网络接口使用情况示意图。参见图2, 在现有技术中,即使客户端所在的计算机中具有多个网络接口,用户启动 PTP客户端后,该客户端会选择并绑定其中一个网络接口用于监听,例如图 2中所示的网络接口 2。此后无论是由P2P客户端发起的连接还是由远程客 户端发起的连接都使用此网络接口 2,后面所进行的数据传输也全都通过此 网络接口,这就造成了其他网络接口(如图2中的网络接口 1和网络接口 3) 的闲置,不能充分利用多网络接口提供的带宽,数据传输的速度非常慢。发明内容有鉴于此,本发明所要解决的技术问题在于提供一种P2P客户端的数据 传输处理方法,以充分利用多个网络接口提供的带宽,提高P2P文件分发系 统的数据传输速度。本发明所要解决的另一技术问题在于提供一种P2P客户端的数据传输处理装置,以充分利用多个网络接口提供的带宽,提高P2P文件分发系统的数据传输速度。为了实现上述发明目的,本发明的主要技术方案为 一种点对点P2P客户端的数据传输处理方法,该方法包括A、 确定一个以上的本地网络接口供P2P客户端选用;B、 P2P客户端从所确定的网络接口中,选择至少一个网络接口监听远 程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口 向邻居结点发起连接请求以建立连接并传输数据。优选的,步骤B中所述选择至少一个网络接口监听远程结点发起的连接 请求以建立连接并传输数据的过程具体包括bl、 P2P客户端从步骤A所确 定的网络接口中选择至少一个网络接口监听远程结点发起的连接请求,并向 服务器上报所述用于监听的网络接口信息,由服务器将该网络接口的信息发 布给远程结点;在后续过程中,如果P2P客户端监听到远程结点的连接请求则建立连接并与该远程结点进行数据传输。优选的,步骤B中所述选择至少一个网络接口向邻居结点发起连接请求 以建立连接并传输数据的过程具体包括b2、 P2P客户端从服务器请求得到 与源文件相关的邻居结点信息,从步骤A所确定的网络接口中选择至少一 个网络接口向所述一个或一个以上邻居结点发起连接请求、建立连接、并与 对应的邻居结点进行数据传输。优选的,所述步骤b2中,当需要与新的邻居结点进行连接时,从步骤 A所确定的网络接口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该连接与该新的邻居结点进行数据传输。优选的,每次从步骤A所述的网络接口中选择用于向邻居结点发起连 接请求的网络接口时,先确定步骤A所述各个网络接口的负荷情况,然后 从中选择负荷最小的一个网络接口。优选的,所述确定网络接口的负荷情况具体为记录每个网络接口的已建立连接的邻居结点数,根据所记录的邻居结点数的大小确定网络接口的负 荷大小。优选的,每次从步骤A所述的网络接口中选择用于向邻居结点发起连 接请求的网络接口时,釆用轮询方式每次按顺序选择步骤A所述网络接口 中的一个。优选的,步骤A具体包括al、调用P2P客户端本地操作系统的对应 接口函数获取本地的所有网络接口信息。优选的,步骤A中,在步骤al之后进一步包括a2、提供配置选项接 口,将步骤al获取的网络接口信息显示给用户供用户选择;a3、将用户所 选择的网络接口作为最终供P2P客户端选用的网络接口 。优选的,步骤A具体包括Al、提供配置接口供用户输入网络接口的 标识信息;A2、将用户输入的网络接口标识对应的网络接口作为最终供P2P 客户端选用的网络接口。优选的,所述网络接口通过IP地址进行标识。一种P2P客户端的数据传输处理装置,包括网络接口确定模块,用于确定一个以上的本地网络接口供P2P客户端选用;网络接口调配与选择模块,用于从所确定的网络接口中,选择至少一个 网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至 少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。优选的,所述网络接口调配与选择模块具体包括监听连接及数据传输模块,用于从网络接口确定模块所确定的网络接口中选择至少一个网络接口监听远程结点发起的连接请求,如果监听到远程结 点的连接请求则建立连接并与该远程结点进行数据传输;发起连接及数据传输模块,用于从网络接口确定模块所确定的网络接口 中选择至少一个网络接口向所述服务器返回的一个或一个以上邻居结点发 起连接请求、建立连接、并与对应的邻居结点进行数据传输。优选的,所述发起连接及数据传输模块具体包括数据连接状态监测模块,用于实时监测判断当前的数据连接状态是否符 合指定的数据传输要求,如果符合则继续利用当前的连接传输数据;否则触发发起新连接及数据传输模块;发起新连接及数据传输模块,用于从网络接口确定模块所确定的网络接 口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该 连接与该新的邻居结点进行数据传输。优选的,所述发起新连接及数据传输模块中进一步包括用于确定各个网络接口负荷情况的模块,所述发起新连接及数据传输模块在每次选择网络接口时,选择负荷最小的一个网络接口。优选的,所述网络接口确定模块中包括网络接口自动获取模块,用于调 用客户端本地操作系统的对应接口函数获取本地的所有网络接口信息。优选的,所述网络接口确定模块中进一步包括配置选项接口,用于将所述自动获取的网络接口信息显示给用户供用户选择;并将用户所选择的网络 接口作为最终供P2P客户端选用的网络接口 。优选的,所述网络接口确定模块中包括配置接口,用于供用户输入网络 接口的标识信息,并将用户输入的网络接口标识对应的网络接口作为最终供P2P客户端选用的网络接口。本发明的数据传输处理方法实质上是一种多网络接口的数据加速方法,相对于现有技术,本发明在P2P客户端所在的计算机上确定一个以上的本地 网络接口供P2P客户端选用,P2P客户端从所述一个以上网络接口中选择至 少一个监听远程结点的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点(即正在下载同一源文件的远程结点)发起连接请求以 建立连接并传输数据,通过这种方式可以充分利用本地的多个网络接口同时 与P2P文件分发系统中的其它结点进行数据传输,提高数据下载和上传速 度。为了进一步精确地均衡利用本地网络接口 ,本发明还可以进一步根据网 络接口的负荷情况(例如使用该网络接口建立连接的邻居结点数),对多个 网络接口进行均衡分配,当连接状态不能满足预定要求时,选择当前负荷最 小的一个网络接口发起建立新的连接以传输数据,从而均衡地分配了多个网 络接口的带宽,进一步提高了数据的下载和上传速度。本发明所述的方案对于通过租用多条线路提高P2P数据传输性能的个 人用户或企业用户带来了极大地帮助,无论用户租用的是两条或多条线路, 也不管每条线路的带宽情况是否一致,本发明都能更充分的利用各线路网络 接口的传输能力,提供更快的数据下载与上传速度。
图1为BT文件分发系统的整体构架图;图2为现有技术中的网络接口使用情况示意图;图3为本发明所述P2P客户端数据传输处理方法的主要流程图;图4为应用本发明所述方法后网络接口的使用情况示意图;图5为本发明所述方法的 一种具体实施例的流程图;图6为本发明所述数据传输处理装置的组成示意图;图7a为网络接口确定模块的第一种组成示意图;图7b为网络接口确定模块的第二种组成示意图。
具体实施方式
下面通过具体实施例和附图对本发明做进一步详细说明。 本发明的核心思想为如果P2P客户端所在的计算机具有一个以上的网络接口,则利用P2P客户端在相互连接时既有本地发起连接,又有远程发起
的连接特点,在进行发起连接的时候选择一个或一个以上不同的网络接口, 尤其是在进行本地发起连接的时候选择一个或一个以上不同的网络接口 ,这
样就可以在对现有P2P客户端软件仅做很小改动的情况下使其兼容多网络 接口。
图3为本发明所述P2P客户端数据传输处理方法的主要流程图。参见图 2,本发明的方法主要包括两部分
步骤301、确定一个以上的本地网络接口供P2P客户端选用。
本步骤主要是使P2P客户端在启动前察觉到本地计算机有哪些网络接 口,哪些可以被用作P2P数据传输。具体的实现方法可以有以下两种
第一种是由用户指定,P2P客户端一般都可以通过配置选项让用户对软 件的具体行为进行调整,此处可以提供专门的配置接口供用户输入网络接口 的标识信息,例如可以在配置选项里面加入一个"网络接口"项目,让用户在 该项目中输入若干本地网络接口的标识(例如网络接口的IP地址),并将 用户输入的网络接口标识对应的网络接口作为最终供P2P客户端选用的网 络接口。
第二种是P2P客户端在启动后调用本地操作系统的对应接口函数自动 获取本地系统的所有网络接口信息(例如网络接口的IP地址信息),目前 无论是windows操作系统还是linux操作系统都提供了系统级别的接口函数 来获取本地网络接口信息,本发明可以直接利用这些接口函数获取网络接口 信息。作为进一步的优选方式,还可以提供一个让用户选择希望使用的网络 接口的配置选项接口,将上述操作系统自动获取的网络接口信息显示给用户 供用户选择,然后将用户所选择的网络接口作为最终供P2P客户端选用的网 络接口。通过这种方式,如果用户不希望P2P客户端使用本地主机的全部网 络接口就可以通过该配置选项接口来实现。
在明确了系统当中可供利用的网络接口后,P2P客户端软件就可以在数 据传输过程中使用这些网络接口 了,具体执行以下步骤302。步骤302、 P2P客户端从步骤301所确定的网络接口中,选择至少一个
网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至 少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
图4为应用本发明所述方法后网络接口的使用情况示意图。参见图4, P2P客户端启动时仍然选择其中一个网络接口 (例如图4中的网络接口 2) 作为监听,由远程P2P客户端软件发起的连接仍然会使用该网络接口 2进行 监听、建立连接并进行数据传输,但是由P2P客户端发起的连接则会选择其 他的网络接口 (例如图4中的网络接口 1和网络接口 2),这样闲置的网络 接口就被利用起来了 。由于发起连接的步骤在现有P2P客户端软件当中已经 存在,所以本发明不必对现有的P2P客户端做过多改动,仅仅在P2P客户 端建立连接前增加网络接口的选择步骤即可。
在网络接口的选择上可以使用多种方案,最简单的可以使用轮询算法, 即将步骤301所确定的网络接口排成一队,每次按顺序选择其中的一个,这 样可以保证每个网络接口都得到相等的被使用的机会。为了进一步精细地均 衡利用各个网络接口,本发明还尽量将数据传输连接平均分配到每个网络接 口上面,根据网络接口的负荷情况(例如使用该网络接口建立连接的邻居结
点数)对多个网络接口进行均衡分配,当连接状态不能满足预定要求时,选 择当前负荷最小的一个网络接口发起建立新的连接以传输数据,从而均衡地
分配了多个网络接口的带宽,进一步提高了数据的下载和上传速度。
图5为本发明所述方法的一种具体实施例的流程图。参见图5,该流程 主要包括
步骤501、 P2P客户端软件启动后,获取并检查本地可用的所有网络接 口,从而确定一个以上的本地网络接口供P2P客户端选用,具体如何确定的 实现方法参见步骤301的实现方法,此处不再赘述。为了根据网络接口的负 荷情况均衡选择网络接口 ,此处还将确定的供P2P客户端选用的网络接口的 标识信息初始化到一个列表中。此处的标识信息为各个网络接口对应的IP 地址,P2P客户端将初始化一个可用的IP列表(IPList)用于后面的连接与数据传输。该IP列表的数据结构为字典式,包括两项IP地址(字符串形
式)和当前使用该IP地址连接的结点数(整数形式,初始值为0)。该IP 列表中的IP地址在整个列表中不能有重复。该数据结构表示如下 IPList: <IP, connection—number>
步骤502、 P2P客户端从步骤501所确定的网络接口中选择开启一个用 于监听远程结点发起连接请求的网络接口 ,此时P2P客户端会从所述IP列 表当中随机选择一个网络接口的IP地址。本步骤的其它实施方式中,如果 有实际需要,也可以选择开启一个以上用于监听远程结点发起连接请求的网 络接口。然后在一个全局变量当中记录下所选的IP地址,在后续过程中如 果有远程结点连接本机P2P客户端并完成握手建立了连接,则将所记录的IP 地址所对应的connection—number加1,在建立连接后P2P客户端和发起连
接的所述远程结点进行数据传输。
步骤503、 P2P客户端软件连接tracker服务器进行注册,报告自已用于
监听的网络接口以及需要下载的源文件标识等信息,注册请求中的具体内容 请参见表1所述的内容。在服务层,tracker服务器将P2P客户端上报的网络 接口信息发布给正在下载同样源文件的其它远程结点。
步骤504、 P2P客户端从tracker服务器获取正在下载同一源文件的邻居
结点的列表用于建立连接。
步骤505、 P2P客户端判断当前数据传输的连接状态是否满足指定的数
据传输要求,即是否需要连接更多的邻居结点,例如具体的判断依据为是否 已经达到了期望的下载和上传速度,如果符合指定的数据传输要求,则执行 步骤510继续与当前已经建立连接的邻居结点进行数据传输;否则,需要连 接更多的邻居结点,执行步骤506。
步骤506、 P2P客户端从步骤501确定的网络接口种选择一个可用的网 络接口用于向新的邻居结点发起连接请求。具体为从所述网络接口 IP列 表当中选择一个负荷最小的可用网络接口的IP地址,选择的方法是遍历所 有的列表项,选择其中connecton—number最小的。步骤507、 P2P客户端通过所选的网络接口向 一个新的邻居结点发起连 接请求并尝试握手,也就是说绑定步骤506所选的网络接口 IP地址向一个 新的邻居结点发起连接请求并尝试握手。步骤508、 P2P客户端与所述新的邻居结点之间握手是否成功,成功则 说明成功建立了连接,执行步骤509;否则返回步骤506重新选择一个可用 的网络接口并尝试与新的邻居结点握手,选择的方式还是基于负荷最小的原 则或者轮询原则。步骤509、将步骤508所述与本P2P客户端成功建立连接的邻居结点加 入邻居结点列表。同时将所述网络接口 IP列表当中的对应IP地址项的 connection—number力口 1,表示使用该IP地址的邻居结点数增加了 一个,即 该网络接口的负荷又增加了。步骤510、与当前已经建立连接的邻居结点进行数据传输,此处具体的 数据传输过程可以釆用现有的技术,例如可以釆用现有的B itTorrent协议进 行传输。在通信过程中如果P2P客户端与某个邻居结点的连接意外中断则将 该邻居结点从结点列表当中删除,同时在IP列表当中将该连接对应网络接 口的connection—number也将减l,表示本网络接口的负荷减小了。步骤511、 P2P客户端判断是否完成了数据传输,例如是否将源文件完 全下载或者收到用户结東本次下载任务的指令,如果没有完成则返回步骤 505;否则执行步骤512。步骤512、向tracker服务器报告任务结東的信息,然后结束该任务,关 闭所有相关网络接口的使用。在上述的数据传输过程中,P2P客户端会不断判断目前的连接状态是否 满足指定要求,如果不满足,就会尝试新的连接,而每次进行新的连接都会 通过IP列表进行网络接口的IP地址选择,这样就保证了系统当中的多个网 络接口都得到利用,并且由于每次都选择负荷最小的网络接口,因此多个网 络接口都会得到均衡的使用,实现了多网络接口情况下下载速度的优化。图6为本发明所述数据传输处理装置的组成示意图。参见图6,该装置设置在P2P客户端中,其中包括
网络接口确定模块600,用于确定一个以上的本地网络接口供P2P客户 端选用。
网络接口调配与选择模块610,用于从所确定的网络接口中,选择至少 一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选 择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
参见图6,所述网络接口调配与选择模块610具体包括
监听连接及数据传输模块601 ,用于从网络接口确定模块600所确定的 网络接口中选择至少一个网络接口监听远程结点发起的连接请求,如果监听 到远程结点的连接请求则建立连接并与该远程结点进行数据传输。
发起连接及数据传输模块602,用于从网络接口确定模块600所确定的 网络接口中选择至少一个网络接口向所述服务器返回的一个或一个以上邻 居结点发起连接请求、建立连接、并与对应的邻居结点进行数据传输。
参见图6,所述发起连接及数据传输模块602中具体包括
数据连接状态监测模块621,用于实时监测判断当前的数据连接状态是 否符合指定的数据传输要求,如果符合则继续利用当前的连接传输数据;否 则触发发起新连接及数据传输模块622。
发起新连接及数据传输模块622,用于从网络接口确定模块600所确定 的网络接口中新选择一个网络接口向新的邻居结点发起连接请求,建立连
接,通过该连接与该新的邻居结点进行数据传输。
在一种具体实施方式
中,为了更为精确地均衡选择所述网络接口,所述 发起新连接及数据传输模块中还可以进一步包括用于确定各个网络接口负 荷情况的模块,所述发起新连接及数据传输模块在每次选择网络接口时,选 择负荷最小的一个网络接口。
所述网络接口确定模块600可以有两种具体方式,图7a为网络接口确 定模块的第一种组成示意图。参见图7a,网络接口确定模块600中包括网络 接口自动获取模块701,用于调用P2P客户端本地操作系统的对应接口函获取本地的所有网络接口信息。进一步的,该网络接口确定模块600中还进一步包括配置选项接口 702,用于将所述自动获取的网络接口信息显示给用户供用户选择;并将用户所选择的网络接口作为最终供P2P客户端选用的网络接口。图7b为网络接口确定模块的第二种组成示意图。参见图7b,所述 网络接口确定模块600中主要包括配置接口 703,用于供用户输入网络接口 的标识信息,并将用户输入的网络接口标识对应的网络接口作为最终供P2P 客户端选用的网络接口。下面通过一个具体的应用实验进一步说明本发明的有益效果。对基于命 令行的BT客户端,在命令行启动软件时通过一个特殊参数"-N"来指定希望 使用的网络接口,该参数后面是一个文本文件的名称,文本文件当中列出了 希望使用的每个网络接口的IP地址。例如有一台两个网卡的主机,获取的 两个网络接口的IP地址分别是172.16.32.88和172.16.32.66,如果希望这两 个接口全部被使用,则编辑一个名为netconf的配置文档,里面写入172.16.32.88 172.16.32.66然后保存,在启动BT客户端的时候加入参数"-N netconf',则BT客 户端就可以使用这两个网络接口 了。在局域网中的测试表明,在单独使用第 一个网络接口的时候下载某文件5次,平均用时7分39秒,单独使用第二 个网络接口的时候下载该文件5次,平均用时8分42秒,使用两个网络接 口时下载某文件5次,平均用时3分55秒,速度提升较为显著。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1. 一种点对点P2P客户端的数据传输处理方法,其特征在于,该方法包括A、确定一个以上的本地网络接口供P2P客户端选用;B、P2P客户端从所确定的网络接口中,选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
2、 根据权利要求l所述的方法,其特征在于,步骤B中所述选择至少 一个网络接口监听远程结点发起的连接请求以建立连接并传输数据的过程 具体包括bl、P2P客户端从步骤A所确定的网络接口中选择至少一个网络接口监 听远程结点发起的连接请求,并向服务器上报所述用于监听的网络接口信 息,由服务器将该网络接口的信息发布给远程结点;在后续过程中,如果 P2P客户端监听到远程结点的连接请求则建立连接并与该远程结点进行数
3、 根据权利要求l所述的方法,其特征在于,步骤B中所述选择至少 一个网络接口向邻居结点发起连接请求以建立连接并传输数据的过程具体 包括b2、 P2P客户端从服务器请求得到与源文件相关的邻居结点信息,从步 骤A所确定的网络接口中选择至少一个网络接口向所述一个或一个以上邻 居结点发起连接请求、建立连接、并与对应的邻居结点进行数据传输。
4、 根据权利要求3所述的方法,其特征在于,所述步骤b2中,当需要 与新的邻居结点进行连接时,从步骤A所确定的网络接口中新选择一个网 络接口向新的邻居结点发起连接请求,建立连接,通过该连接与该新的邻居 结点进行数据传输。
5、 根据权利要求4所述的方法,其特征在于,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,先确定步骤A 所述各个网络接口的负荷情况,然后从中选择负荷最小的一个网络接口。
6、 根据权利要求5所述的方法,其特征在于,所述确定网络接口的负荷情况具体为记录每个网络接口的已建立连接的邻居结点数,根据所记录 的邻居结点数的大小确定网络接口的负荷大小。
7、 根据权利要求4所述的方法,其特征在于,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,采用轮询方式每 次按顺序选择步骤A所述网络接口中的 一个。
8、 根据权利要求1所述的方法,其特征在于,步骤A具体包括al 、调用P2P客户端本地操作系统的对应接口函数获取本地的所有网络 接口信息。
9、 根据权利要求8所述的方法,其特征在于,步骤A中,在步骤al 之后进一步包括a2、提供配置选项接口,将步骤al获取的网络接口信息显示给用户供 用户选择;a3、将用户所选择的网络接口作为最终供P2P客户端选用的网络接口 。
10、 根据权利要求l所述的方法,其特征在于,步骤A具体包括 Al、提供配置接口供用户输入网络接口的标识信息;A2、将用户输入的网络接口标识对应的网络接口作为最终供P2P客户 端选用的网络接口。
11、 根据权利要求1至IO任一项所述的方法,其特征在于,所述网络 接口通过IP地址进行标识。
12、 一种P2P客户端的数据传输处理装置,其特征在于,包括 网络接口确定模块,用于确定一个以上的本地网络接口供P2P客户端选用;网络接口调配与选择模块,用于从所确定的网络接口中,选择至少一个 网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
13、 根据权利要求12所述的装置,其特征在于,所述网络接口调配与选择模块具体包括监听连接及数据传输模块,用于从网络接口确定模块所确定的网络接口 中选择至少一个网络接口监听远程结点发起的连接请求,如果监听到远程结 点的连接请求则建立连接并与该远程结点进行数据传输;发起连接及数据传输模块,用于从网络接口确定模块所确定的网络接口 中选择至少一个网络接口向所述服务器返回的一个或一个以上邻居结点发 起连接请求、建立连接、并与对应的邻居结点进行数据传输。
14、 根据权利要求13所述的装置,其特征在于,所述发起连接及数据 传输模块具体包括数据连接状态监测模块,用于实时监测判断当前的数据连接状态是否符 合指定的数据传输要求,如果符合则继续利用当前的连接传输数据;否则触 发发起新连接及数据传输模块;发起新连接及数据传输模块,用于从网络接口确定模块所确定的网络接 口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该 连接与该新的邻居结点进行数据传输。
15、 根据权利要求14所述的装置,其特征在于,所述发起新连接及数 据传输模块中进一步包括用于确定各个网络接口负荷情况的模块,所述发 起新连接及数据传输模块在每次选择网络接口时,选择负荷最小的一个网络 接口。
16、 根据权利要求12所述的装置,其特征在于,所述网络接口确定模 块中包括网络接口自动获取模块,用于调用客户端本地操作系统的对应接口 函数获取本地的所有网络接口信息。
17、 根据权利要求16所述的装置,其特征在于,所述网络接口确定模 块中进一步包括配置选项接口,用于将所述自动获取的网络接口信息显示给 用户供用户选择;并将用户所选择的网络接口作为最终供P2P客户端选用的网络接口。
18、根据权利要求12所述的装置,其特征在于,所述网络接口确定模 块中包括配置接口,用于供用户输入网络接口的标识信息,并将用户输入的 网络接口标识对应的网络接口作为最终供P2P客户端选用的网络接口 。
全文摘要
本发明公开了一种点对点(P2P)客户端的数据传输处理方法及装置,所述装置包括网络接口确定模块和网络接口调配与选择模块;所述方法包括由网络接口确定模块确定一个以上的本地网络接口供P2P客户端选用;由网络接口调配与选择模块从所确定的网络接口中,选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。利用本发明,可以充分利用本地的多个网络接口同时与P2P文件分发系统中的其它结点进行数据传输,提高数据下载和上传速度。
文档编号H04L29/06GK101262487SQ20081010502
公开日2008年9月10日 申请日期2008年4月25日 优先权日2008年4月25日
发明者孙晓斌, 垚 王, 旭 马 申请人:北京中企开源信息技术有限公司