只能从Sniffer下手。不过如果按楼主这样理解,这题目就太强悍了

。分析数据包要能区别qq,bt,emule,p2p,msn,如果不是你理解错了,这个任务会是非常艰巨的。
写个Sniffer最多也就是区别HTTP、普通TCP以及P2P的TCP流量,要想根据数据包分析出到底是什么软件发出的,这个必需要大量的数据,并且涉及到了数据挖掘... 所以赶快联系你的导师让他修改任务书吧,写出个程序统计局域网内的主机数量..谁发给谁数据包这还有可能一个人完成。
给你个思路:
1. 找找Sniffer的源码,看你熟悉什么语言,我手头只有个Delphi的,C++可以弄个WinDump研究研究。
2. Sniffer实现上,可以用Raw Socket抓包,或者直接用WinPCap。
ps: 因为我毕业设计也是类似题目,所以深知其中的痛苦,何况我的题目只涉及到P2P流量检测...