CN101262487A - 点对点客户端的数据传输处理方法及装置 - Google Patents

点对点客户端的数据传输处理方法及装置 Download PDF

Info

Publication number
CN101262487A
CN101262487A CNA2008101050252A CN200810105025A CN101262487A CN 101262487 A CN101262487 A CN 101262487A CN A2008101050252 A CNA2008101050252 A CN A2008101050252A CN 200810105025 A CN200810105025 A CN 200810105025A CN 101262487 A CN101262487 A CN 101262487A
Authority
CN
China
Prior art keywords
network interface
node
client
data
neighbours
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.)
Granted
Application number
CNA2008101050252A
Other languages
English (en)
Other versions
CN101262487B (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.)
Digital Star Technology Development (Beijing) 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 CN2008101050252A priority Critical patent/CN101262487B/zh
Publication of CN101262487A publication Critical patent/CN101262487A/zh
Application granted granted Critical
Publication of CN101262487B publication Critical patent/CN101262487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种点对点(P2P)客户端的数据传输处理方法及装置,所述装置包括网络接口确定模块和网络接口调配与选择模块;所述方法包括:由网络接口确定模块确定一个以上的本地网络接口供P2P客户端选用;由网络接口调配与选择模块从所确定的网络接口中,选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。利用本发明,可以充分利用本地的多个网络接口同时与P2P文件分发系统中的其它结点进行数据传输,提高数据下载和上传速度。

Description

点对点客户端的数据传输处理方法及装置
技术领域
本发明涉及网络数据传输技术,尤其涉及一种点对点(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文件分发系统中各结点的注册过程,tracker服务器可以维护所有结点的地址信息,帮助各个结点找到对方。当一个结点新注册下载某一个源文件时,会从tracker服务器获得一部分具有该源文件全部或部分数据的其他结点作为备选的邻居结点,该结点可以向这些邻居结点发起连接请求,建立连接并传输数据;同时该结点也接收其他远程结点的连接请求,建立连接并传输数据。
结点之间传输数据的过程在BT协议当中都有详细规定,此处只作简要描述:首先一个结点会向目标结点发送连接请求,当目标结点接受连接请求后,发起结点会发送握手信息,目标结点接收握手信息后回送一个握手信息;然后发起结点与目标结点互相发送数据片段信息,表明自己具有的数据片段。然后相互之间发送数据片段请求和数据片段响应,直到其中一方结束数据传输。
从上面的部分可以看到,结点之间的数据传输是BT文件分发系统的主要部分,而实现该功能则是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中所述选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据的过程具体包括:b1、P2P客户端从步骤A所确定的网络接口中选择至少一个网络接口监听远程结点发起的连接请求,并向服务器上报所述用于监听的网络接口信息,由服务器将该网络接口的信息发布给远程结点;在后续过程中,如果P2P客户端监听到远程结点的连接请求则建立连接并与该远程结点进行数据传输。
优选的,步骤B中所述选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据的过程具体包括:b2、P2P客户端从服务器请求得到与源文件相关的邻居结点信息,从步骤A所确定的网络接口中选择至少一个网络接口向所述一个或一个以上邻居结点发起连接请求、建立连接、并与对应的邻居结点进行数据传输。
优选的,所述步骤b2中,当需要与新的邻居结点进行连接时,从步骤A所确定的网络接口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该连接与该新的邻居结点进行数据传输。
优选的,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,先确定步骤A所述各个网络接口的负荷情况,然后从中选择负荷最小的一个网络接口。
优选的,所述确定网络接口的负荷情况具体为:记录每个网络接口的已建立连接的邻居结点数,根据所记录的邻居结点数的大小确定网络接口的负荷大小。
优选的,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,采用轮询方式每次按顺序选择步骤A所述网络接口中的一个。
优选的,步骤A具体包括:a1、调用P2P客户端本地操作系统的对应接口函数获取本地的所有网络接口信息。
优选的,步骤A中,在步骤a1之后进一步包括:a2、提供配置选项接口,将步骤a1获取的网络接口信息显示给用户供用户选择;a3、将用户所选择的网络接口作为最终供P2P客户端选用的网络接口。
优选的,步骤A具体包括:A1、提供配置接口供用户输入网络接口的标识信息;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、与当前已经建立连接的邻居结点进行数据传输,此处具体的数据传输过程可以采用现有的技术,例如可以采用现有的BitTorrent协议进行传输。在通信过程中如果P2P客户端与某个邻居结点的连接意外中断则将该邻居结点从结点列表当中删除,同时在IP列表当中将该连接对应网络接口的connection_number也将减1,表示本网络接口的负荷减小了。
步骤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秒,速度提升较为显著。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (18)

1、一种点对点P2P客户端的数据传输处理方法,其特征在于,该方法包括:
A、确定一个以上的本地网络接口供P2P客户端选用;
B、P2P客户端从所确定的网络接口中,选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
2、根据权利要求1所述的方法,其特征在于,步骤B中所述选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据的过程具体包括:
b1、P2P客户端从步骤A所确定的网络接口中选择至少一个网络接口监听远程结点发起的连接请求,并向服务器上报所述用于监听的网络接口信息,由服务器将该网络接口的信息发布给远程结点;在后续过程中,如果P2P客户端监听到远程结点的连接请求则建立连接并与该远程结点进行数据传输。
3、根据权利要求1所述的方法,其特征在于,步骤B中所述选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据的过程具体包括:
b2、P2P客户端从服务器请求得到与源文件相关的邻居结点信息,从步骤A所确定的网络接口中选择至少一个网络接口向所述一个或一个以上邻居结点发起连接请求、建立连接、并与对应的邻居结点进行数据传输。
4、根据权利要求3所述的方法,其特征在于,所述步骤b2中,当需要与新的邻居结点进行连接时,从步骤A所确定的网络接口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该连接与该新的邻居结点进行数据传输。
5、根据权利要求4所述的方法,其特征在于,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,先确定步骤A所述各个网络接口的负荷情况,然后从中选择负荷最小的一个网络接口。
6、根据权利要求5所述的方法,其特征在于,所述确定网络接口的负荷情况具体为:记录每个网络接口的已建立连接的邻居结点数,根据所记录的邻居结点数的大小确定网络接口的负荷大小。
7、根据权利要求4所述的方法,其特征在于,每次从步骤A所述的网络接口中选择用于向邻居结点发起连接请求的网络接口时,采用轮询方式每次按顺序选择步骤A所述网络接口中的一个。
8、根据权利要求1所述的方法,其特征在于,步骤A具体包括:
a1、调用P2P客户端本地操作系统的对应接口函数获取本地的所有网络接口信息。
9、根据权利要求8所述的方法,其特征在于,步骤A中,在步骤a1之后进一步包括:
a2、提供配置选项接口,将步骤a1获取的网络接口信息显示给用户供用户选择;
a3、将用户所选择的网络接口作为最终供P2P客户端选用的网络接口。
10、根据权利要求1所述的方法,其特征在于,步骤A具体包括:
A1、提供配置接口供用户输入网络接口的标识信息;
A2、将用户输入的网络接口标识对应的网络接口作为最终供P2P客户端选用的网络接口。
11、根据权利要求1至10任一项所述的方法,其特征在于,所述网络接口通过IP地址进行标识。
12、一种P2P客户端的数据传输处理装置,其特征在于,包括:
网络接口确定模块,用于确定一个以上的本地网络接口供P2P客户端选用;
网络接口调配与选择模块,用于从所确定的网络接口中,选择至少一个网络接口监听远程结点发起的连接请求以建立连接并传输数据、并且选择至少一个网络接口向邻居结点发起连接请求以建立连接并传输数据。
13、根据权利要求12所述的装置,其特征在于,所述网络接口调配与选择模块具体包括:
监听连接及数据传输模块,用于从网络接口确定模块所确定的网络接口中选择至少一个网络接口监听远程结点发起的连接请求,如果监听到远程结点的连接请求则建立连接并与该远程结点进行数据传输;
发起连接及数据传输模块,用于从网络接口确定模块所确定的网络接口中选择至少一个网络接口向所述服务器返回的一个或一个以上邻居结点发起连接请求、建立连接、并与对应的邻居结点进行数据传输。
14、根据权利要求13所述的装置,其特征在于,所述发起连接及数据传输模块具体包括:
数据连接状态监测模块,用于实时监测判断当前的数据连接状态是否符合指定的数据传输要求,如果符合则继续利用当前的连接传输数据;否则触发发起新连接及数据传输模块;
发起新连接及数据传输模块,用于从网络接口确定模块所确定的网络接口中新选择一个网络接口向新的邻居结点发起连接请求,建立连接,通过该连接与该新的邻居结点进行数据传输。
15、根据权利要求14所述的装置,其特征在于,所述发起新连接及数据传输模块中进一步包括:用于确定各个网络接口负荷情况的模块,所述发起新连接及数据传输模块在每次选择网络接口时,选择负荷最小的一个网络接口。
16、根据权利要求12所述的装置,其特征在于,所述网络接口确定模块中包括网络接口自动获取模块,用于调用客户端本地操作系统的对应接口函数获取本地的所有网络接口信息。
17、根据权利要求16所述的装置,其特征在于,所述网络接口确定模块中进一步包括配置选项接口,用于将所述自动获取的网络接口信息显示给用户供用户选择;并将用户所选择的网络接口作为最终供P2P客户端选用的网络接口。
18、根据权利要求12所述的装置,其特征在于,所述网络接口确定模块中包括配置接口,用于供用户输入网络接口的标识信息,并将用户输入的网络接口标识对应的网络接口作为最终供P2P客户端选用的网络接口。
CN2008101050252A 2008-04-25 2008-04-25 点对点客户端的数据传输处理方法及装置 Active CN101262487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101050252A CN101262487B (zh) 2008-04-25 2008-04-25 点对点客户端的数据传输处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101050252A CN101262487B (zh) 2008-04-25 2008-04-25 点对点客户端的数据传输处理方法及装置

Publications (2)

Publication Number Publication Date
CN101262487A true CN101262487A (zh) 2008-09-10
CN101262487B CN101262487B (zh) 2011-06-08

Family

ID=39962688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101050252A Active CN101262487B (zh) 2008-04-25 2008-04-25 点对点客户端的数据传输处理方法及装置

Country Status (1)

Country Link
CN (1) CN101262487B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010121528A1 (zh) * 2009-04-21 2010-10-28 青岛海信移动通信技术股份有限公司 一种移动终端及其基于p2p模式的数据传输方法
CN102469030A (zh) * 2010-11-17 2012-05-23 汤姆森特许公司 确定一个或多个通信路径的装置和方法
CN102780569A (zh) * 2011-05-09 2012-11-14 中兴通讯股份有限公司 远程管理方法及网元设备
CN102835183A (zh) * 2010-01-08 2012-12-19 交互数字专利控股公司 用于收集和传送数据的方法和装置
CN102907065A (zh) * 2010-05-20 2013-01-30 瑞典爱立信有限公司 用于管理对等网络中的数据传递的系统和方法
CN103458011A (zh) * 2013-08-20 2013-12-18 厦门亿联网络技术股份有限公司 远程控制中多网卡计算机间的网卡绑定方法
CN102035866B (zh) * 2009-09-24 2014-06-04 腾讯科技(深圳)有限公司 一种p2p下载数据的方法和装置
CN108337277A (zh) * 2017-01-19 2018-07-27 贵州白山云科技有限公司 一种下载更新文件的方法和系统
CN108337276A (zh) * 2017-01-19 2018-07-27 贵州白山云科技有限公司 一种文件分发方法和系统
CN108540505A (zh) * 2017-03-01 2018-09-14 贵州白山云科技有限公司 一种内容更新方法及装置
CN110012042A (zh) * 2018-01-05 2019-07-12 武汉斗鱼网络科技有限公司 一种通信方式的优化方法及电子设备
CN113612972A (zh) * 2021-08-09 2021-11-05 深圳市猿人创新科技有限公司 一种终端监控设备通信方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10331305A1 (de) * 2003-07-10 2005-02-17 Siemens Ag Kommunikationssystem, Peer-to-Peer-Nachrichten-Filter-Rechner und Verfahren zum Verarbeiten einer Peer-to-Peer-Nachricht
EP1816827B1 (de) * 2006-02-07 2015-04-15 Unify GmbH & Co. KG Aktor-Sensoreinrichtung zur Kommunikation über ein paketorientiertes Netzwerk
CN101072321A (zh) * 2006-06-22 2007-11-14 腾讯科技(深圳)有限公司 一种p2p流媒体发布装置
CN101072397A (zh) * 2006-06-23 2007-11-14 腾讯科技(深圳)有限公司 一种手机及手机处理p2p流媒体的方法

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010121528A1 (zh) * 2009-04-21 2010-10-28 青岛海信移动通信技术股份有限公司 一种移动终端及其基于p2p模式的数据传输方法
GB2482268A (en) * 2009-04-21 2012-01-25 Hisense Mobile Comm Technology Mobile terminal and peer-to-peer mode based data transmission method thereof
GB2482268B (en) * 2009-04-21 2015-07-01 Hisense Mobile Comm Technology Mobile terminal and peer-to-peer mode based data transmission method thereof
CN102035866B (zh) * 2009-09-24 2014-06-04 腾讯科技(深圳)有限公司 一种p2p下载数据的方法和装置
US11503561B2 (en) 2010-01-08 2022-11-15 Interdigital Patent Holdings, Inc. Method and a wireless device for collecting sensor data from a remote device having a limited range wireless communication capability
CN102835183A (zh) * 2010-01-08 2012-12-19 交互数字专利控股公司 用于收集和传送数据的方法和装置
CN102835183B (zh) * 2010-01-08 2016-08-17 交互数字专利控股公司 用于收集和传送数据的方法和装置
US10743278B2 (en) 2010-01-08 2020-08-11 Interdigital Patent Holdings, Inc. Method and a wireless device for collecting sensor data from a remote device having a limited range wireless communication capability
US9462630B2 (en) 2010-01-08 2016-10-04 Interdigital Patent Holdings, Inc. Method and a wireless device for collecting sensor data from a remote device having a limited range wireless communication capability
CN102907065A (zh) * 2010-05-20 2013-01-30 瑞典爱立信有限公司 用于管理对等网络中的数据传递的系统和方法
US9635107B2 (en) 2010-05-20 2017-04-25 Telefonaktiebolaget Lm Ericsson (Publ) System and method for managing data delivery in a peer-to-peer network
CN102907065B (zh) * 2010-05-20 2017-04-26 瑞典爱立信有限公司 用于管理对等网络中的数据传递的系统和方法
CN102469030A (zh) * 2010-11-17 2012-05-23 汤姆森特许公司 确定一个或多个通信路径的装置和方法
WO2012152131A1 (zh) * 2011-05-09 2012-11-15 中兴通讯股份有限公司 远程管理方法及网元设备
CN102780569A (zh) * 2011-05-09 2012-11-14 中兴通讯股份有限公司 远程管理方法及网元设备
CN102780569B (zh) * 2011-05-09 2015-08-26 中兴通讯股份有限公司 远程管理方法及网元设备
CN103458011A (zh) * 2013-08-20 2013-12-18 厦门亿联网络技术股份有限公司 远程控制中多网卡计算机间的网卡绑定方法
CN103458011B (zh) * 2013-08-20 2016-09-14 厦门亿联网络技术股份有限公司 远程控制中多网卡计算机间的网卡绑定方法
CN108337276A (zh) * 2017-01-19 2018-07-27 贵州白山云科技有限公司 一种文件分发方法和系统
CN108337277A (zh) * 2017-01-19 2018-07-27 贵州白山云科技有限公司 一种下载更新文件的方法和系统
CN108540505A (zh) * 2017-03-01 2018-09-14 贵州白山云科技有限公司 一种内容更新方法及装置
CN111064780A (zh) * 2017-03-01 2020-04-24 贵州白山云科技股份有限公司 一种多任务内容更新方法、装置、设备及介质
CN108540505B (zh) * 2017-03-01 2020-04-28 贵州白山云科技股份有限公司 一种内容更新方法及装置
CN111064780B (zh) * 2017-03-01 2023-04-18 贵州白山云科技股份有限公司 一种多任务内容更新方法、装置、设备及介质
CN110012042A (zh) * 2018-01-05 2019-07-12 武汉斗鱼网络科技有限公司 一种通信方式的优化方法及电子设备
CN110012042B (zh) * 2018-01-05 2022-01-04 武汉斗鱼网络科技有限公司 一种通信方式的优化方法及电子设备
CN113612972A (zh) * 2021-08-09 2021-11-05 深圳市猿人创新科技有限公司 一种终端监控设备通信方法、装置、电子设备及存储介质
CN113612972B (zh) * 2021-08-09 2023-12-05 深圳市猿人创新科技有限公司 一种终端监控设备通信方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN101262487B (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
CN101262487B (zh) 点对点客户端的数据传输处理方法及装置
CN101617518B (zh) 用于在通信网络中实现用户群服务的方法和装置
CN101039309B (zh) 链路共享服务装置以及通信方法
CN101635737B (zh) 下载方法、系统、p2p服务器、客户端
CN1897588B (zh) 一种混合模式的网络文件传输方法及系统
CN101150465B (zh) 一种获取种子信息的方法及p2p网络中的超级节点和普通节点
US20050060370A1 (en) Version based content distribution and synchronization system and method
CN102067102A (zh) 通过对等网络实现已安装的游戏软件的共享
CN103731487A (zh) 一种资源文件的下载方法、装置、系统及路由器
CN101247316A (zh) 一种通信终端的数据共享方法
WO2012151994A1 (zh) 资源下载方法、装置及系统
WO2022242361A1 (zh) 数据下载方法、装置、计算机设备和存储介质
JP4098723B2 (ja) サーバシステムの再構成(reconfiguring)方法及び装置
US7075895B1 (en) System and method for facilitating discovery of network addresses and selected charateristics of computer systems and the like which are connected in digital data networks
CN112202877A (zh) 网关联动方法、网关、云服务器及用户终端
CN111385325B (zh) 基于p2p的文件分发系统和方法
CN110418092B (zh) 视频录制管理系统、方法、控制管理节点以及录制节点
CN112637351B (zh) 一种文件下载方法及装置
CN101369915B (zh) 可运营p2p网络资源管理系统
SG178407A1 (en) Method and apparatus for constructing seed group in peer-to-peer application and method for using seed group
CN112925946A (zh) 一种业务数据存储方法、装置及电子设备
CN113055444A (zh) 一种文件共享方法及其相关装置
Nagy et al. Enhancing opportunistic networks with legacy nodes
CN113747252A (zh) 一种多媒体资源的传输方法、装置和系统
CN102098339A (zh) 一种音频文件传输方法及其系统

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
ASS Succession or assignment of patent right

Owner name: DADI ORISTAR TECHNOLOGY DEVELOPMENT (BEIJING) CO.,

Free format text: FORMER OWNER: BEIJING CE OPEN SOURCE INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20110720

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100176 BUILDING 2, AREA A, NO. 1, DISHENG NORTH STREET, BEIJING ECONOMIC AND TECHNOLOGICAL DEVELOPMENT ZONE, BEIJING TO: 100176 ROOM 404, BUILDING 2, AREA A, NO. 1, DISHENG NORTH STREET, BEIJING ECONOMIC AND TECHNOLOGICAL DEVELOPMENT ZONE, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20110720

Address after: 404, room 2, building 1, A District, 100176 North Sheng Bei street, Beijing economic and Technological Development Zone, Beijing, China

Patentee after: Oristar Technology Development (Beijing)Co., Ltd.

Address before: 100176, No. 2, building A, 1 North st, Sheng Bei street, Beijing economic and Technological Development Zone, Beijing

Patentee before: Beijing CE Open Source Software Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: DIGITAL DATA ORISTAR TECHNOLOGY DEVELOPMENT (BEIJI

Free format text: FORMER NAME: DADI ORISTAR TECHNOLOGY DEVELOPMENT (BEIJING) CO., LTD.

CP03 Change of name, title or address

Address after: 100176, 1 floor, B District, No. 1 West Sheng Road, Beijing economic and Technological Development Zone, Beijing,, China, room 1

Patentee after: Digital Star Technology Development (Beijing) Co., Ltd.

Address before: 404, room 2, building 1, A District, 100176 North Sheng Bei street, Beijing economic and Technological Development Zone, Beijing, China

Patentee before: Oristar Technology Development (Beijing)Co., Ltd.