近日学习p2p协议,觉得元真伟写的《基于数据包的P2P下载行为特征分析》不错,由于是PDF的,所以自己总结了一下,希望对大家有用!
p2p模式的核心技术是资源定位。
据粗略统计,p2p业务对带宽占用比大致是40%-60%,极端情况下会占用80%-90%,被称为“带宽杀手”,消耗了大量的网络资源,并导致ISP运营商网络关键链路的拥塞和其他互联网应用性能的快速下降。
通过数据包特征检测识别p2p应用,提供基于总量和逐个用户的p2p流量管理,减轻网络扩容压力变得日益重要。
通过对数据信息包括IP、传输域、数据包流量等信息,分析p2p文件下载行为的特征,包括过多的数据包量、TCP数据包占数据包比例、特定数据包大小占比以及目的端口的重复率等,并以这些特征为基础,在通过对比应用层数据包中的特殊关键字,来分辨使用者所使用的是哪一种p2p文件下载、进行下载行为。
    eMule 是一种需要依赖中心服务器搜索网络上共享的文件。特点是搜索速度快并且具有全网搜索功能,它允许客户端传输任何类型的文件,且能自动地叫交换来源继续传输文件。
    BitTorrent 简称BT。测传输协议无法直接搜索文件,使用者必须先自行寻找种子(seed)。种子中包含服务器(Tracker)网络位置、最初来源网络地址、文件信息、文件名、目录名、长度等,最后是片段长度以及片段的Shal校验码等文件相关信息,然后利用该种子才能下载所需文件。
   整个BT发布体系包括:含有发布资源信息的torrent文件,作为BT客户端中介者的tracker服务器,遍布各地的BT软件使用者(peer)。 
特征分析:
1、过多的数据包量   p2p文件下载软件在执行时需要与服务器或其他客户端连接,会发出大量的数据包。实际观察p2p文件下载软件执行时的情况,可以发现:当执行时,UDP数据包的数量变化上升,而当进入下载或上传状态时,TCP数据包的数量则会迅速增加。另外p2p应用特点是:持续时间长、平均速度高、以及传输大量数据包的现象
2、相等长度的UDP数据包比例    正常上网、发邮件等一般使用者发出UDP数据包的比例很少。实际测试环境,一小时UDP不超过个位数,甚至为0,所以TCP数据 包占几乎的100%。而p2p应用汇总,大部分UDP数据包的长度相等,且都为大包(>1000).表现:相同大小UDP数据包明显增加,并都为大包。
3、源端口上有较高的连接数     当下载进入较稳定的状态时,开始双向进行传输后,会发现单一个源IP会与多个IP连接来进行文件共享行为,通常行为时同一个IP的固定端口与许多不同的目的IP的不同端口号连接。
4、数据包内容关键词    eMule 通过TCP传输资料,而控制信息可以通过TCP,也可以经由UDP来传送。通讯协议的资料数据包和控制数据包开头第一个字节的值是固定的。eMule是“0xc5”,接下来的4个字节表示整个数据包的长度。后来eMule后来加上一个功能,可以将资料压缩以节省带 宽的浪费,因此采用“0xd4”。我们可以利用这前5个字节来判定属于eMule数据包。 BitTorrent 资料数据包的开头有固定的格式,第一个字节是固定值:“0x13”;接下来的19个字节代表一个固定的字串:
“BitTorrent protocol”。可以将这20个字节的值当做BitTorrent的数据包特征。
而在其UDP的数据包内容会出现“Info_hash20……get_peers1”字串;而其TCP数据包内容会出现“GET/announce info_hash=%”字串。 我们将这些当做BitTorerent的数据包特征。
5、可以通过常用的端口    电驴:4661;4662;4672;40700   迅雷:端口范围3076 - 3077 并且地址为 202.96.155.91、210.22.12.53、61.128.198.97或者端口范围  5200 6200