TCP数据包的抓取与分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("\n");
}
printf("\n");
}
void PrintSomeUdpTwo(int nStart,int nEnd)
{
for(int i=nStart;i<=nEnd;i++)
{
printf("%.2d ",a_all[i]);
}
printf("\n");
}
int main(int argc, char* argv[])
return 0;
}
6.出现的问题和解决方法
在用Wireshark捕获数据包时,没有选择我的IP(10.10.23.226)进行数据包捕获的按钮,导致一直没有捕获到任何的数据包(如图4-1)。这是当然的,因为没有选择针对那个IP进行捕获,根本没有源IP,当然没有数据包,这使我的设计刚开始就频频出错。后来查阅资料时,发了这一个错误,改正后立即可以捕获数据包。所发生的错误如图4-2。
9.参考文献.................................................................................14
1.摘要
本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。
计算机网络
课程设计报告
课程设计题目:TCP数据包的抓取与分析
专业:
班级:
姓名:
学号:
指导教师:
年月日
1.摘要.........................................................................................3
2.引言.........................................................................................4
printf("%.2x",a_all[13]);
printf("%.2x\n",a_all[12]);
printf("源IP地址:\n");
PrintSomeUdpTwo(26,29);
printf("目的IP地址:\n");
PrintSomeUdpTwo(30,33);
printf("最大长度:\n");
5.程序设计
源代码:
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
int a_all[10000];
int nIndex;
void PrintSomeUdp(int nStart,int nEnd)
{
for(int i=nStart;i<=nEnd;i++)
3.TCP数据包的抓取
1.首先运行Wireshark抓包软件
2.然后选取一个接口进行抓包
3.对TCP 包进行过滤
4.选取其中一个TCP数据包进行查看
5.获取TCP包的基本数据结构和组成
4.TCP数据包的分析
28 2c b2 55 18 de 24 0a 64 4e 95 47 08 00 45 00
在用Visual C++编程的这一步中,实在花了我的不少时间,这个我认为是在我这个设计中最难的一步,虽然在网上能找到相关程序,但所找到的那些程序都基本上有一两处错误,而对于我这个只有一点Visual C++基础的来说无疑是一个天大的麻烦。但是,经过这一周的努力,还是能改正了这些错误,而且在同学的帮助下,终于把这个程序给做出来了。经过这一次的设计,这对以后的工作需要提供了很大的帮助。
2.引 言
本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。
Wireshark是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过Wireshark对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。
[2]Craig Zacker.《TCP/IP网络管理》.北京:中国水利水电出版社,1998.9
[3]谢希仁.《计算机网络》.北京:电子工业出版社,2008.1
[4]黄筱燕.《基于Ethereal的网络协议分析》.热带农业工程第33卷第1期
[5]http://baike.baidu.com/view/739888.html
{
nIndex=0;
FILE *fp=fopen("D:\\TCP.txt","r");
if (fp!=NULL)
{
//MessageBox(NULL,"soso","so",NULL);
while(!feof(fp))
{
fscanf(fp,"%x",&a_all[nIndex++]);
}
}
printf("数据包长度:%d \n",nIndex);
[6]http://baike.baidu.com/view/696423.htm?fr=ala0_1
[7]周霭如、林伟健.《C++程序设计基础》.北京:电子工业出版社,2006.3
[8]张青.《C#编程思想与实践》.北京:冶金工业出版社,2002.8
printf("%.2x",a_all[16]);
printf("%.2x\n",a_all[17]);
printf("头校检码:\n");
printf("%.2x",a_all[24]);
printf("%.2x\n",a_all[25]);
printf("源端口号:\n");
printf("%.2x",a_all[34]);
{
printf("%.2x ",a_all[i]);
}
printf("\n");
}
void PrintSomeUdpData(int nStart,int nEnd)
{
for(int i=nStart;i<=nEnd;i++)
{
printf("%.2x ",a_all[i]);
if((i-nStart+1)%16==0)
3.目录.........................................................................................2
4.TCP数据包抓取....................................................................5
7.出现的错误和解ห้องสมุดไป่ตู้方法.........................................................12
8.结束语.....................................................................................13
最后,我得感谢一下在这次课程设计中帮助过我的同学,还有在设计过程中给老师带来了诸多麻烦,很感谢您这么细心的为我讲导。要不然这次课程设计我不可能按时完成。其中许多不足,还请老师给与批平、指正。
8.参考文献
[1]http://baike.baidu.com/view/69012.htm?fr=ala0_1
//getchar();
/*
for(int i=0;i<nIndex;i++)
{
printf("%d ",a_all[i]);
}
*/
printf("目的地址:\n");
PrintSomeUdp(0,5);
printf("源地址:\n");
PrintSomeUdp(6,11);
printf("IP类型:\n");
图4-1数据包捕获窗口
图4-2出现的提示错误信息
7.结束语
经过一周的课程设计,刚开始时还认为两周时间还是很长,有足够的时间完成这个设计,想不到一眨眼间,一周的时间就这样匆匆过去了。现在感觉到时间过得真快,从一开始对Wireshark这个抓包软件没有任何基础的,现在已能对这个软件所捕获的数据包进行简单的分析,以及怎么样设置这个软件的参数。
5.TCP数据包分析....................................................................7
6.程序设计.................................................................................8
00 28 0d 10 40 00 40 06 43 77 c0 a8 01 65 3f d9
e8 62 0a fa 00 50 4f bd 55 7c ba 66 1c 0d 50 10
fd 20 41 73 00 00
获得以上信息后,结合她的结构,设计分析程序,主要通过调用该文件,然后进行分析并输出
printf("%.2x\n",a_all[35]);
printf("目的端口号:\n");
printf("%.2x",a_all[36]);
printf("%.2x\n",a_all[37]);
printf("窗口大小:\n");
printf("%.2x",a_all[48]);
printf("%.2x\n",a_all[49]);
相关文档
最新文档