毕业设计论文BitTorrent流量检测识别技术研究.doc

上传人:sccc 文档编号:4857362 上传时间:2023-05-20 格式:DOC 页数:45 大小:3.52MB
返回 下载 相关 举报
毕业设计论文BitTorrent流量检测识别技术研究.doc_第1页
第1页 / 共45页
毕业设计论文BitTorrent流量检测识别技术研究.doc_第2页
第2页 / 共45页
毕业设计论文BitTorrent流量检测识别技术研究.doc_第3页
第3页 / 共45页
毕业设计论文BitTorrent流量检测识别技术研究.doc_第4页
第4页 / 共45页
毕业设计论文BitTorrent流量检测识别技术研究.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《毕业设计论文BitTorrent流量检测识别技术研究.doc》由会员分享,可在线阅读,更多相关《毕业设计论文BitTorrent流量检测识别技术研究.doc(45页珍藏版)》请在三一办公上搜索。

1、苏州大学本科生毕业设计(论文)本科毕业设计(论文)学院(部)计算机科学与技术学院题目BitTorrent流量检测识别技术研究年级2006专业计算机科学与技术班级计科(1)班学号姓名指导教师职称讲 师论文提交日期20XX-X-XX苏州大学本科生毕业设计(论文)目 录前 言1第一章绪 论21.1研究背景及意义21.2BitTorrent概述31.3本文的主要工作及创新点51.4本文的组织结构5第二章P2P流量检测识别技术72.1P2P流量识别的难点72.2研究现状分析72.2.1基于端口的检测技术72.2.2深度数据包检测技术82.2.3基于传输层特征的检测技术92.3本章小结10第三章BitTo

2、rrent明文流量识别方法113.1BitTorrent协议及其应用层签名113.1.1Peer wire协议113.1.2TCP-Tracker协议123.1.3UDP-Tracker协议133.1.4DHT协议153.2BT流量检测识别软件Porpoise163.3实验与分析183.3.1Vuze哑客户端183.3.2网络拓扑与实验环境183.3.3Trace数据集193.3.4指标定义203.3.5实验数据分析203.4本章小结21第四章基于MSE协议特征的BT加密流量识别方法224.1P2P加密流量检测识别技术224.2MSE协议224.2.1MSE协议握手过程234.2.2MSE协议

3、特征234.3BT加密流量识别方法244.4实验与分析254.4.1网络拓扑与实验环境254.4.2Trace数据集254.4.3实验数据分析264.5本章小结27第五章基于节点列表的BT流量预识别方法285.1节点信息来源285.1.1Tracker服务器285.1.2DHT网络285.2BT流量预识别295.2.1预识别表的建立295.2.2预识别过程295.3实验与分析305.3.1Trace数据集305.3.2M1+M3 vs. M1305.3.3M2+M3 vs. M2325.4本章小结34第六章 总结与展望366.1本文总结366.2后续工作展望36参考文献38致 谢40摘 要近年

4、来,P2P(Peer-to-Peer)系统在内容共享、协同计算、即时通信、流媒体等领域获得了广泛应用。据统计,截至2009年,在全球不同国家和地区,P2P流量已经占据了ISP业务总量的43%70%不等,消耗了大部分网络带宽,使网络性能降低,服务质量下降,导致传统的Web、Email等关键应用受到影响。另一方面,P2P应用带来了知识产权和安全问题。因此,如何实现对P2P流量的有效识别和管理是当前亟需解决的问题。BitTorrent是一种重要且具有代表性的P2P应用。据统计,2009年,BT流量已经占据全部P2P流量的30%81%不等。因此,本文主要以BT为研究对象,分析了现有的各种P2P流量检测

5、识别技术,对比各种检测识别技术的优缺点,深入分析了BT协议和源码,并对传统的BT流量检测识别技术进行改进,除了采用串匹配方法对BT明文流量进行识别外,还提出了利用BT加密协议特征,对BT加密流量进行有效识别的方法,以及基于节点列表的BT流量识别方法。将上述方法的检测结果与BT哑客户端Vuze所收集的真实BT流量信息进行对比,结果表明,本文所提出的两种方法都能有效识别BT流量。尤其是基于节点列表的BT流量识别方法,在提高识别准确性和降低开销方面,都有明显的优势。关键词:对等网络;流量识别;消息流加密;预识别AbstractIn recent years, P2P systems have bee

6、n widely used in file sharing, cooperative computing, instant messaging and video streaming. In the year 2009, P2P traffic had a percentage of 43%70% of all Internet traffic in different countries and regions around the world. It has occupied most of the network bandwidth, affected network performan

7、ce and quality of Internet applications, such as Web and Email. On the other hand, P2P applications have brought intellectual property and security issues. Therefore, identification and management of P2P traffic has become necessary.BitTorrent is one of the most important and representative P2P appl

8、ications. In the year 2009, BT traffic had a percentage of 30%81% of all P2P traffic. This dissertation mainly discusses the BT protocol. We analyze the existing P2P traffic identification methods, contrast the advantages and disadvantages of them, and do inside analysis of the BT protocol with the

9、source code. Then we propose an enhancement of the traditional BT traffic identification methods. Besides the identification method of stream matching, a method to identify the encrypted BT traffic based on the characteristics of MSE protocol and a pre-identification method of BT traffic is proposed

10、. We compare their identified results with real BT traffic information collected by a dump Vuze client. The results indicate that our methods can identify the BT traffic efficiently. Especially with the peer-list-based BT traffic pre-identification method, we can improve the accuracy and decrease th

11、e computing complexity.Keywords: Peer-to-Peer; Traffic Identification; Message Stream Encryption; Pre-identification40前 言P2P(Peer-to-Peer,对等网络)是目前计算机网络领域的研究热点。P2P系统基于分布式模型,能极大地提高网络中信息、带宽和计算资源的利用率,为大规模数据交换提供了一种充分使用网络资源的方法。由于在数据分发、容错等方面,与传统的C/S模型相比有明显的优势,近年来,P2P系统在内容共享、协同计算、即时通信、流媒体等领域获得了广泛应用。由于大部分P2P

12、应用对带宽是一种侵占式的占用,造成网络拥塞,甚至影响到传统的Web、Email等应用。因此,网络运营商、内容提供商及校园网都有对P2P流量进行管理的强烈要求。而要实现对P2P流量的管理,首先要解决的问题是实现对P2P流量的检测。按照技术发展历程,P2P流量检测技术分为基于端口的检测技术、深度数据包检测技术(DPI,Deep Packet Inspection)和基于流量特征的检测技术。但由于部分P2P协议不公开,对数据流进行加密等原因,很难有通用的检测技术对其进行有效检测。上述各种检测技术均有其适用的场合和网络环境。目前最为成熟的P2P流量检测技术仍为DPI技术,但存在无法识别未知P2P协议或

13、加密流量的问题。基于传输层特征的检测技术虽能检测加密流量,但无法达到实时性的要求,且准确率相比DPI技术较低。本文主要以BitTorrent(简称BT)协议为研究对象,分析现有的各种P2P流量检测识别技术,对比各种检测识别技术的优缺点。在深入分析BT协议和源码的基础上,实现了对BT流量的有效识别,并进行了实验验证。本文完成的主要工作及创新点有:(1)利用BT协议的特征字符串,通过串匹配方法对BT明文流量进行识别。(2)分析了BT加密协议MSE(Message Stream Encryption,消息流加密)协议的特征,并基于此进行BT加密流量的识别。(3)通过捕获BT节点获取的节点列表,有效实

14、现对BT流量的预识别。(4)利用BT哑客户端Vuze,收集真实的BT流量信息,以此作为标准的对比数据。通过充分的实验数据分析,验证了本文所提出的第(2)和第(3)种方法的正确性。尤其是第(3)种方法在提高准确性和降低开销方法,都有明显的优势。第一章绪 论本章首先介绍了P2P流量识别技术的研究背景和意义,其次简单介绍了BitTorrent系统的各个组成部分及其作用,并概述了本文所做的主要工作和贡献以及创新点,在本章的最后介绍了论文的组织结构。1.1研究背景及意义P2P(Peer-to-Peer,对等网络)是目前计算机网络领域的研究热点。P2P系统基于分布式模型,能极大地提高网络中信息、带宽和计算

15、资源的利用率,为大规模数据交换提供了一种充分使用网络资源的方法。由于在数据分发、容错等方面,与传统的C/S模型相比有明显的优势,近年来,P2P系统在内容共享、协同计算、即时通信、流媒体等领域获得了广泛应用。自1999-2000年P2P诞生以来,呈现出快速、持续增长的势头。根据IPOQUE的一项全球性统计数据,截至2009年,在全球各个地区P2P流量已经占据当地ISP业务总量的43%70%不等1,如图1.1所示。而在中国固网运营商的网络中,P2P流量白天大约占据了全部带宽的35%60%,晚上则能占到50%90%2。图1.1 网络协议流量比例由于P2P应用的特点,给互联网业务带来了极大的挑战,主要

16、存在以下问题:(1)侵犯知识产权:在P2P网络中,所有信息分散存储在各个节点中,在目前缺乏有效的监管机制情况下,对知识产权的侵犯也是必然的。(2)抢占网络带宽:P2P的贪婪性导致网络带宽越高占用得越多。P2P流量长时间占用ISP的Internet链路,对网络业务的正常开展产生很大的影响。(3)运营商经营成本上升:通常的网络设计成上下行不对称即下行大于上行,但是P2P的出现使得上行流量大大增加,另一方面,P2P使得夜间下载流量增加,这两方面都增加了网络负载的压力。P2P减少了服务提供商的利润,同时还增加了结算成本。(4)传播网络病毒:病毒或木马伪装成可用资源供人们下载,借助P2P的强大传播能力,

17、比一般的网络传播危害大得多。(5)分发不健康内容:在P2P共享中提供了搜索功能,而搜索出来的内容中色情内容仍占据了较大比例。由于法律监管手段的缺乏,P2P使用者可以将不健康资源任意共享出来而不会受到法律的监管。由于P2P应用给网络带来了很多的负面影响,网络运营商正在积极地寻找解决对策,其中最主要也是能够最快见效的方法就是识别P2P流量,并限制在用户以及运营商可接受的范围内。因此,P2P流量识别技术正逐步成为研究热点。1.2BitTorrent概述在P2P的各种应用中,BitTorrent(以下简称BT)是一种重要且具有代表性的内容共享类应用,由Bram Cohen于2002年提出,此后在全球受

18、到热捧。据统计,2008年,在全球范围内,BT流量占全部P2P流量的30%81%1,如表1.1所示。表1.1 主要P2P协议比例(单位)协议南非南美东欧北非德国南欧中东西南欧全部P2P65.7765.2169.9542.5152.7955.244.7754.46Ares0.2942.630.002.240.840.160.111.80BT48.3430.0280.8374.5170.7748.9478.8558.20DirectConnect0.010.0017.870.080.850.000.120.30eDonkey2.4825.991.167.7024.2247.1715.3735.99

19、Gnutella18.600.360.1414.211.751.665.002.75iMesh13.600.020.000.470.000.030.000.14Thunder14.040.800.000.690.771.640.520.62Other2.640.190.000.100.680.410.030.21BT是一个典型的用于内容分发和共享下载的P2P协议,从2002年首次公开发表以来,已经发展成为最重要的P2P应用之一3。BT下载的客户端也有数十种之多,常见的如:BitComet、BitSpirit、Torrent、迅雷等,这些客户端通常都支持标准的BT协议。BT的设计目的是在网络上高

20、效地传输大型文件。当需要分发大型文件时,将之分解为文件块(piece),并由多个节点提供下载,以此减轻网络中单个节点的成本和负载。当使用BT协议下载文件时,节点将同时上传文件块。一个典型的BT系统由以下五个实体组成:元信息(metainfo)文件、Web服务器、Tracker服务器、Peer和Node,如图1.2所示。图1.2 典型的BT系统 元信息文件在使用BT协议共享某个文件之前,必须先创建一个元信息文件,也称为种子文件(torrent文件)。这个种子文件包含了需要下载的共享文件中各个文件块的信息,包括Tracker信息、共享的文件块总数、所有文件块的哈希值等基本信息4。当下载完成后,可以

21、利用这些哈希值来验证文件的完整性。此外,文件中还包含一个用其它部分的元数据计算得到的哈希值InfoHash。InfoHash值是种子文件的唯一标识(指纹)。 Web服务器种子文件通常保存于Web服务器,用户通过HTTP或HTTPS等方式从Web服务器上下载种子文件。 Tracker服务器种子文件下载完成后,BT客户端根据文件中包含的Tracker服务器信息,使用TCP-Tracker协议4或UDP-Tracker协议5与Tracker服务器联系并获取正在为此文件做种的节点列表。 PeerPeer是指在TCP端口监听并实现了BitTorrent协议的客户端。从Tracker服务器获得节点列表后,

22、客户端使用Peer wire协议4连接其他节点,在经过BitTorrent握手、文件块资源查询等信令交互后,即可开始下载和上传相关文件块。 NodeNode是指在UDP端口监听并实现了DHT协议6的客户端。DHT协议用于node之间查询共享文件对应的peer位置信息和邻居节点信息。1.3本文的主要工作及创新点本文主要以BT为研究对象,分析现有的各种P2P流量检测识别技术,对比各种检测识别技术的优缺点。在深入分析BT协议和源码的基础上,提出了基于MSE协议特征的BT加密流量检测方法和基于节点列表的BT流量预识别技术,并进行了实验验证。本文主要工作及创新点如下:(1)对BT及相关应用层协议的研究。

23、通过对Peer wire协议、TCP-Tracker协议、UDP-Tracker协议、DHT(Distributed Hash Table,分布式哈希表)协议和实际网络流量的分析,找出各协议中的特征字符串,从而利用特征字符串匹配对BT明文流量进行识别。(2)提出了对BT加密流量进行有效识别的技术,这是本文的创新点之一。本文通过对MSE协议、Diffie-Hellman密钥交换协议的研究,在分析MSE协议在握手阶段前三个消息具有的传输层特征的基础上,对TCP流进行重组,进一步还原为应用层消息流,并基于此进行加密流量识别。实验结果表明,这种方法对标准的BT加密流量的识别率较高。(3)提出了基于TC

24、P-Tracker、UDP-Tracker、DHT协议获取的节点列表,对BT流量进行预识别方法,这是本文的创新点之二。本文通过对上述三种协议的深入分析,分别利用HTTP response、announce response、DHT response报文中返回的节点列表,建立BT流量预处理表,对于此后出现的BT流量,仅需通过传输层解析进行识别。实验表明,此方法能大幅提高对BT流量识别的准确度,而且可以有效减少特征串匹配和MSE消息流还原的时空复杂度,该方法有着明显优势。(4)利用了BT哑客户端Vuze获取可靠的标准数据集,这是本文在实验方法上的创新。本文通过一个修改过的BT客户端,使其能够报告其

25、连接的其它节点的IP地址等信息,并与本文完成的BT流量检测识别软件Porpoise,所得出的流量检测结果进行对比,可以充分验证本文所提出的上述方法的正确性。1.4本文的组织结构本文共分为六章,各章内容安排如下:第一章:绪论。本章介绍了课题的研究背景及意义、BitTorrent协议及典型的BitTorrent系统的组成、本文的主要工作及主要创新点,最后介绍了本文的组织结构。第二章:P2P流量检测识别技术概述。本章详细阐述了现有的P2P流量检测识别技术及其原理,对比分析了各种检测技术的优缺点和适用的网络环境。第三章:主要介绍了BitTorrent明文流量检测识别技术,深入分析了Peer wire、

26、TCP-Tracker、UDP-Tracker、DHT四种BT协议及各自特征,利用DPI技术实现对BitTorrent明文流量检测识别。实现了BT流量检测识别软件Porpoise,并完成了BT明文流量检测实验。第四章:主要介绍了BitTorrent加密流量检测识别技术,深入分析了MSE协议及握手过程、协议特征,回顾了传统的P2P加密流量检测识别技术,提出了利用MSE消息流还原实现对BitTorrent加密流量识别的方法,并完成了BT加密流量检测实验。第五章:通过分析TCP-Tracker、UDP-Tracker、DHT三种协议及节点信息来源,论述了基于节点列表的BT流量预识别方法,并完成了与第

27、三章、第四章所述方法的对比实验。第六章:总结全文,提出未来工作的设想与展望。第二章P2P流量检测识别技术本章详细阐述了现有的几种P2P流量检测识别技术的原理,继而对各种现有技术进行分析对比,论述了各自适用的网络环境以及在实际的P2P流量识别过程中存在的问题。2.1P2P流量识别的难点P2P流量与传统的Web等应用流量不同,有着难以识别、控制的特点。主要原因如下:(1)P2P应用快速变化近年来,随着P2P流量的快速增长,各种新的P2P应用不断涌现。从最初的Napster,到后来的BitTorrent、eDonkey、Skype,出现了越来越多的P2P应用,而各种P2P应用有各自遵循的协议,且大部

28、分是不公开的私有协议,因此很难通过传统的防火墙技术识别P2P流量。(2)P2P应用的伪装、加密技术随着P2P技术的发展,各种P2P应用的伪装、加密技术开始不断涌现。各种P2P应用从采用固定端口、随机端口进行数据传输,到占用80、21等常用端口以躲避检测,甚至对数据流进行加密。这些技术也加大了对P2P流量检测的难度。2.2研究现状分析按照技术发展历程,P2P流量识别技术一般分为有以下三类:基于端口的识别技术、深度数据包检测技术(DPI,Deep Packet Inspection)和基于流量特征的检测技术(TLI,Transport Layer Identification)。2.2.1基于端口

29、的检测技术表2.1 常见P2P应用的默认端口及承载协议P2P应用默认端口承载协议Gnutella6346-6348TCPBitTorrent6881-6889TCPeDonkey4661-4665TCPTencent QQ8000/8001UDPPPLive7100/7101UDP基于端口的检测技术是所有P2P流量检测技术最早提出的一种,具有算法简单、时空复杂度低等优点。在P2P发展初期,由于P2P应用都有各自的默认端口,表2.1列出了常见P2P应用的默认端口及承载协议。利用基于端口的检测技术,只需要对数据包传输层进行解析,提取其使用的端口及传输层协议,即可判定其是否属于P2P应用。基于端口的

30、检测技术非常有效,且具有算法简单、时空复杂度低等优点。但是,现有的大部分P2P应用采用随机端口技术或者允许用户选择非默认端口,许多新出现的P2P应用甚至开始使用端口伪装技术,占用80、21等熟知端口。大量近期研究表明,基于端口的检测技术已经不再有效7-9。2.2.2深度数据包检测技术深度数据包检测技术通过检查数据包有效载荷内容,利用字符串匹配或正则表达式匹配的方法,判定其是否含有已知P2P协议的应用层签名9,10,表2.2列出了常见的P2P协议应用层签名。表2.2 常见P2P协议的应用层签名P2P协议应用层签名Gnutella“GNUT”BitTorrent0x13“BitTorrent pr

31、otocol”KaZaA“X-Kazaa”eDonkey0xe3Fasttrack“Get/.hash”DirectConnect“$MyN”P2P协议的应用层签名一般通过以下两种方式获取:(1)通过抓取相关数据包,并对数据包有效载荷进行分析。此方法的优点是简单直观,通过观察数据包载荷内容,分析具体P2P协议特征字符串。(2)通过研究具体的P2P协议标准,总结归纳其与其他应用层协议不同的特征字符串。其优点是提取的特征字符串一般较为准确,缺点是需要持续跟踪协议的最新变化,并保持与此前特征字符串的兼容性。深度数据包检测技术对数据包有效载荷内容进行匹配,因此能够检测使用动态端口的P2P应用并识别具体

32、的P2P协议,且具有较高的准确率和较低的误报率,是目前公认的成熟技术,已经应用于各种商业化的流量检测产品,例如Cisco公司的PDML(Packet Details Markup Language)等。但方法的主要不足在于11:第一,检查用户数据将涉及用户隐私。第二,无法识别未知类型的P2P流量。第三,使用DPI技术需要较强的计算和存储能力。第四,需要保持应用层签名库更新。第五,当P2P应用开始采用数据加密时,DPI技术就无法识别任何加密流量。2.2.3基于传输层特征的检测技术(1)基于行为模式的检测技术在P2P网络中,节点的行为模式与其他应用存在着明显差异,因此,可以通过行为模式分析来达到检

33、测P2P流量的目的。这类方法的主要优点是:能识别大多数P2P流量包括加密流量。 网络直径分析法此方法由Constantinou、Mavrommatis等人提出,利用P2P系统组成的逻辑网络直径大的特点,通过P2P网络的逻辑拓扑结构图,计算其网络直径12。如果网络直径大于阈值,则认定相应的流量为P2P流量。此方法的主要缺点是:a)需要较强的计算和存储能力;b)无法做到实时检测与识别。 协议对分析法此方法由Thomas Karagiannes等人于2004年提出7。大多数P2P应用使用UDP协议进行信令交互,使用TCP协议进行数据传输,利用这一特征能将P2P应用与其他应用区别开来。虽然DNS等应用

34、也存在上述情况,但是很容易通过端口将它们区别开来。此方法的主要缺点是:存在一定的误报(false positive)现象。 地址端口对分析法此方法亦由Thomas Karagiannes等人于2004年提出7。由于大多数P2P应用使用监听端口发送大量UDP广播包,其它节点收到消息后将随机选择一个端口并与该节点发起连接。因此,与该节点连接的IP地址数量与端口数量大致相等。而其它应用,例如Web,通常使用多个端口进行数据传输,这样,端口数量将明显大于IP地址数量。地址端口对分析法基于上述情况对P2P流量进行检测。虽然Email等应用也存在上述情况,但是很容易通过端口将它们区别开来。此方法的主要缺点

35、是:存在一定的误报现象。 主动测量法2002年,Saroiu等人首次对P2P流量进行了主动测量。他们对当时最为流行的Gnutella和Napster进行了网络拓扑测量。研究表明,Gnutella的节点连通度符合幂律分布13。随后,研究者又对KaZaA等进行了拓扑测量14。此方法的主要缺点是:需要了解具体的P2P协议,而大部分P2P协议都是私有协议。(2)基于机器学习的检测技术2005年,研究人员首次将机器学习的方法应用到流分类问题中。机器学习可以通过观测数据改善自身性能,通过演绎和归纳发现规律。基于机器学习的检测技术认为,不同的应用有着不同的流特征与传输模式,可以根据上述特征实现流的分类。Mo

36、ore采用Native Bayes分类方法实现对流的分类15。通过手工构造数据集,修正了Native Bayes分类器中关于“属性满足正态分布”的假设。研究表明,该方法具有流级66%、字节级83.5%的准确率。McGregor等分析了不同应用的数据包长度、时间间隔等特征,提出了EM(Expectation-Maximisation,期望值最大化)聚类方法,并采用流的字节数、流持续时间、平均数据包长度作为分类特征16。基于传输层特征的检测技术分析P2P网络中节点的行为模型,对网络直径、协议对使用、地址端口对使用等相关参数进行大量的统计,通过统计特性进行P2P流量的识别,能够识别未知P2P应用和加

37、密流量,但其缺点也十分明显:a)无法确保实时性;b)无法应用于高速链路;c)需要很强的计算和存储能力。2.3本章小结P2P应用由于协议不公开,对数据流进行加密等原因,很难有通用的检测技术对其进行有效检测。上述各种检测技术均有其适用的场合和网络环境。表2.3列出了上述各种P2P流量检测技术之间的对比及各自的优缺点。表2.3 现有P2P流量检测识别技术对比P2P流量识别技术优点缺点基于端口的检测技术算法简单、时空复杂度低采用随机端口时失效深度数据包检测技术识别率高、技术成熟无法识别加密流量无法识别未知P2P应用基于流量特征的检测技术能够识别加密和未知P2P应用无法识别具体P2P协议实时性差需要较强

38、的计算和存储能力可以看出,没有任何一类检测技术可以解决所有的P2P流量检测问题。目前最为成熟的P2P流量检测技术仍为DPI技术,但存在无法识别未知P2P协议或加密流量的问题。基于传输层特征的检测技术虽能检测加密流量,但无法达到实时性的要求,且准确率相比DPI技术较低。第三章BitTorrent明文流量识别方法随着P2P技术的发展,基于端口的检测技术已经不再有效。目前最为成熟的P2P流量检测技术是DPI技术,具有误报率低、识别准确等优点,已经被产业界和学术界广泛应用。虽然它对P2P加密流量的识别能力有限,但目前仍有73%以上的BT流量未加密1。因此,本章详细介绍并分析了BT各种协议及其应用层签名

39、,以此实现对BT明文流量的识别。3.1BitTorrent协议及其应用层签名3.1.1Peer wire协议由于BT流量主要由Peer wire协议产生,因此,现有的大多数BT流量检测技术均主要针对此协议。文献9首次给出了Peer wire协议的应用层签名。Peer wire协议通过TCP协议承载,主要用于节点间进行数据传输,包括BT handshake、Bitfield、Interest、Choke/Unchoke、Request等消息交互过程,如图3.1所示。图3.1 Peer wire协议交互过程(1)BT handshake消息在TCP三次握手完成之后,节点间交换BT握手消息。握手消息

40、有(49+PStr)字节长度,依次由以下域组成4: PStrLen:1字节。表示PStr域的长度。 PStr:PStrLen字节。表示协议标识符,对BT协议,为“BitTorrent protocol”且PStrLen=19。 Reserved:8字节。初始值为全零。 InfoHash:20字节。种子文件中info部分的SHA1哈希值,是种子文件的唯一标识。 PeerID:20字节。客户端唯一的字符串标识。实际应用中,用两个字节表示客户端软件,四个字节表示其版本,其余为随机值。(2)Bitfield消息BT握手完成之后,节点间交换Bitfield消息。Bitfield消息表示双方节点各自完成下

41、载的文件部分。消息数据中,下载者已有块的索引序号的数位值设为1,其他文件块设为0。首字节高位到低位对应索引序号0-7,第二字节对应索引序号8-15,以此类推。尾部剩余的比特位设为0。在此消息中,双方节点交换了完成下载的文件块信息,表示允许对方下载这些已完成的文件块。(3)Interest消息Bitfield消息交换完成之后,如果节点B中含有节点A没有的数据,则节点A将向节点B发送Interest消息,表示对节点B的某些数据感兴趣。(4)Choke/Unchoke消息节点B收到来自节点A的Interest消息后,将发送当前网络状态消息给节点A。如果网络未被阻塞,则消息类型为Unchoke,否则为

42、Choke。(5)Request消息如果节点A收到来自节点B的Unchoke消息之后,则表示节点B当前网络状态正常。此时,节点A将向节点B发送Request消息,表示需要下载感兴趣的数据。(6)Piece消息节点B收到来自节点A的Request消息之后,将节点A需要的数据按分片(piece)发送给节点A。由于BT handshake消息是双方节点建立TCP连接之后的第一个消息,该消息以ASCII字符0x13开始,紧跟19个字符的字符串“BitTorrent protocol”,且在数据包中出现的位置固定,因此将其作为Peer wire协议的应用层签名,正则表达式为“x13BitTorrent

43、protocol”。3.1.2TCP-Tracker协议TCP-Tracker协议由HTTP协议承载,主要用于通过TCP协议向Tracker服务器获取正在做种的节点列表,包括HTTP GET request、HTTP response等消息4。(1)GET request消息在TCP三次握手完成之后,节点向Tracker服务器发送GET request消息。GET request消息由announce URL组成,然后紧跟用标准CGI方式表示的请求参数,主要包括本节点的相关信息,即种子文件的InfoHash值(info_hash)、用户ID(peer_id)、IP地址(ip)、使用的端口(po

44、rt)、已上传的字节数(uploaded)、已下载的字节数(downloaded)、剩余的字节数(left)等参数。(2)HTTP response消息Tracker服务器收到来自节点的GET request消息之后,更新维护的节点信息,并将正在下载相同文件的节点列表返回给节点。HTTP response消息包括complete、incomplete、interval、min interval、peers等内容,分别表示已完成下载的节点数、未完成下载的节点数、报告本节点信息的时间间隔、报告本节点信息的最小时间间隔、正在为此文件做种的节点列表(IP、port)。虽然GET request消息中的

45、参数名都可作为TCP-Tracker协议的应用层签名,但匹配全部的字符串,需要遍历整个数据包,系统开销较大,不适合用于检测BT流量。因此,将在最接近数据包头部位置出现的“info_hash”作为TCP-Tracker协议的应用层签名,正则表达式为“info_hash”。3.1.3UDP-Tracker协议由于TCP-Tracker协议中GET request和HTTP response消息长度较短,而节点每次与Tracker服务器交互必须经过TCP三次握手和四次拆除,因此,给Tracker服务器带来大量不必要的开销。使用UDP协议承载能够很好地解决上述问题。UDP-Tracker协议通过UDP

46、协议向Tracker服务器获取正在做种的节点列表,包括connect request、connect response、announce request、announce response等消息5。 (1)connect request消息connect request消息表示节点向Tracker服务器发送连接请求。节点发送此消息之前,必须首先产生一个32位随机值transaction ID。connect request消息格式如表3.1。表3.1 connect request消息格式OffsetSizeNameValue064-bit integerconnection_id0x41727101980832-bit integeraction0(connect)1232-bit integertransaction_id(2)connect response消息Tracker服务器收到来自节点的connect request消息之后,将transaction_id域的值填入connect response消息的对应域,并随机选择一个con

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号