网络分析专家论坛 netexpert's Archiver

meiyuhan 发表于 2008-3-3 09:04

毕业设计题目--网络协议分析系统

我的题目是开发网络协议分析系统,有两部分,抓包和分析,数据包的管理有,统计局域网内的主机数量,和ip地址,和谁发给谁数据包等,分析数据包是分析出是发送的是qq,bt,emule,p2p,msn等那个协议,编程语言是c语言。

大家出出主意,我怎么下手,研究那个软件,有什么开源的供参考。小弟水平有限。需要大家的帮助。以便快速进入正轨。谢谢。

met3or 发表于 2008-3-3 10:31

wireshark
winpacp
windump
tcpdump
hping

grsgrs 发表于 2008-3-3 20:22

只能从Sniffer下手。不过如果按楼主这样理解,这题目就太强悍了:funk: 。分析数据包要能区别qq,bt,emule,p2p,msn,如果不是你理解错了,这个任务会是非常艰巨的。
写个Sniffer最多也就是区别HTTP、普通TCP以及P2P的TCP流量,要想根据数据包分析出到底是什么软件发出的,这个必需要大量的数据,并且涉及到了数据挖掘... 所以赶快联系你的导师让他修改任务书吧,写出个程序统计局域网内的主机数量..谁发给谁数据包这还有可能一个人完成。

给你个思路:
1. 找找Sniffer的源码,看你熟悉什么语言,我手头只有个Delphi的,C++可以弄个WinDump研究研究。
2. Sniffer实现上,可以用Raw Socket抓包,或者直接用WinPCap。


ps: 因为我毕业设计也是类似题目,所以深知其中的痛苦,何况我的题目只涉及到P2P流量检测...

meiyuhan 发表于 2008-3-4 20:10

谢谢楼上的兄弟。我的任务书就是这样的。我们是两个人完成。初步分工是我做分析这一块。另外一个同学作抓包。分析数据包要找出各个不同的软件的特征代码。然后解析出是那种软件发出的。还要做流量控制。确实工作量很大。大家主要从分析这个方面给我提些意见。

grsgrs 发表于 2008-3-4 21:00

从捕获到的报文推测上层应用,只能根据数据包的特征来分析。你先用Sniffer(类似软件都行)抓一下各种应用程序发出的包,分析一下有什么特征,比如TCP报文的负载头部有特殊标记(BT协议)。
但是真正想区分P2P的种类,只能从底层分析。现在的BT软件不但随机端口,而且负载的内容也是加密的,基本看不出规律。而P2P种类远不只BT、eMule这两个,PPLive、PPS等的传输报文又大不相同,所以区分P2P的种类会很麻烦。QQ和MSN的报文有一定规律,但大部分是加密的。

最重要的,对单个TCP或UDP报文,很难对其准确区分该报文属于哪个应用。现行的P2P流量分析软件,也不过是分辨出哪些是P2P节点,即从海量的数据包中,找出几个符合BT或eMule协议特征的数据包(比如特定端口,握手时发送的特定报文,或者从发出SYN包的个数下手...),没听说能准确分辨出每个数据包的来源的软件。


降低点要求吧,只是检测哪些机器用过这些软件,而不要试图对每个数据包进行分类,会累死的...:funk:
给你个方法,按端口把数据包进行分类(比如QQ的UDP 4000),然后从中选取符合特征的包,就证明了源节点使用了QQ。

meiyuhan 发表于 2008-3-4 21:31

非常感谢楼上的大哥。我先照你说的研究研究。

daojin.qin 发表于 2008-3-13 08:50

希望能分享一下你的学习经历

old_man 发表于 2008-3-24 17:11

qq,msn什么的用不同的帐户,号码多登陆,多抓包,比较数据包就ok了。bt协议只要软件选择只接受不加密的连接,再看看bt协议规范也就ok了。如果加密了你们也能分析出来的话,呵呵,估计导师也没有那样的水平吧

grsgrs 发表于 2008-3-25 15:33

楼上说的不错,比较数据包是特征识别的一种。基于数据包的特征识别只能发现已知或未加密的协议,对于目前加密过的BT、eMule基本是拿它没辙的。:lol:

不过加密后的P2P也是能检测出来的!不瞒你说,我现在做的就是未知P2P流量检测,P2P流的特征和传统方式有很大不同,比如通过分析上传下载比(P2P是双向传输的,而HTTP、FTP基本可认为是单向的),还能通过IP端口比、包负载长度、连接成功率等多种特征检查P2P节点。
不过这些都还只是理论而已,而且这些基于流特征的检测都或多或少存在一些特例,所以别说实用化,写出程序来都不容易。:L

所以按楼上说的,这毕业设计还是做基于特征检测的识别吧。不过光这个特征码的采集,工作量也很大的:mad:

流沙枫 发表于 2008-3-30 20:42

[quote]原帖由 [i]grsgrs[/i] 于 2008-3-25 15:33 发表 [url=http://www.netexpert.cn/redirect.php?goto=findpost&pid=120160&ptid=18721][img]http://www.netexpert.cn/images/common/back.gif[/img][/url]
楼上说的不错,比较数据包是特征识别的一种。基于数据包的特征识别只能发现已知或未加密的协议,对于目前加密过的BT、eMule基本是拿它没辙的。:lol:

不过加密后的P2P也是能检测出来的!不瞒你说,我现在做的 ... [/quote]

我的毕业设计也是做局域网流量监测的,找了好多winpcap的资料都弄不出来的...........
楼上有没相关的代码资料啊,学习下。

grsgrs 发表于 2008-3-31 09:01

winpcap自带的Examples-pcap里就有很多例子啊,没必要专门去找其它的。

代码头部要注意加上这些:
#define WPCAP
#define HAVE_REMOTE
#include "pcap.h"
#include "remote-ext.h"    // 很多都是因为掉了这个无法编译

链接时要加入 wpcap.lib,其它就没什么特别的了。

[[i] 本帖最后由 grsgrs 于 2008-3-31 09:03 编辑 [/i]]

流沙枫 发表于 2008-3-31 20:08

Cannot open include file: 'net/bpf.h': No such file or directory

我运行那个还是有错误的........
我是想用winpcap抓包查局域网其他机子的流量的,找了好久都没例子的!!

grsgrs 发表于 2008-3-31 22:53

如果编译我给你的那个getAdp还提示不能打开,那只能说是你的WinPcap安装问题了。因为这例子压根没用到bpf.h。

倒是有个 pcap-bpf.h,你去掉抓包程序中的 #include <net/bpf.h> 改成 #include <pcap-bpf.h> 试试。
还不行就去下个新的winpcap开发版吧。

hteh 发表于 2008-4-9 14:29

放弃吧,这题目大了……:funk:

hulzh 发表于 2008-5-30 08:58

面包太大!!!
吃不下去的,一个团队的任务。:L :L

jackyu 发表于 2008-6-27 16:06

这个题目可不老小了,做好后可以开一公司了!

crazy_wen 发表于 2008-6-28 22:01

很牛的论文题目

simonzhan 发表于 2008-7-8 17:07

呵呵,感觉这个题目跟做个wireshak差不多了哈

小树 发表于 2008-8-20 15:30

很有魄力。。。:)

jhm135 发表于 2008-9-14 22:25

grsgrs你好

哥们,你好;我现在自己想写个P2P流量的协议分析器,希望能和你探讨,我QQ398010590

abobo 发表于 2008-9-24 23:25

还行吧,花时间进去用winpcap应该还是可以实现的啊

zenith518 发表于 2008-10-5 09:45

这个题目的太庞大了。
容易做的太粗糙,让人觉得没有深度。

不如看看,wireshark功能增强,如编写插件、脚本和超级显示过滤器。

现在发现wireshark用起来,无法对复杂应用层会话(横跨多个http/ftp数据包的自定义协议)进行显示过滤。
估计其他分析器,要也较难做到。
需要为显示过滤器提供功能更为强大的语法,提供诸如、超级全局变量,可以在过滤扫描数据包时,横跨多种协议,进行应用层逻辑关键词句的自动关联。

yangyunsheng 发表于 2008-10-27 08:54

我也是做这方面的研究,谢谢你们的提醒!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.