TCP数据包的抓取与分析

TCP数据包的抓取与分析
TCP数据包的抓取与分析

计算机网络课程设计报告

课程设计题目:TCP数据包的抓取与分析

专业:

班级:

姓名:

学号:

指导教师:

年月日

目录

1.摘要 (3)

2.引言 (4)

3.目录 (2)

4.TCP数据包抓取 (5)

5.TCP数据包分析 (7)

6.程序设计 (8)

7.出现的错误和解决方法 (12)

8.结束语 (13)

9.参考文献 (14)

1.摘要

本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。

2.引言

本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。

Wireshark是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过 Wireshark对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。

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

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

获得以上信息后,结合她的结构,设计分析程序,主要通过调用该文件,然后进行分析并输出

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++)

{

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)

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[])

{

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);

//getchar();

/*

for(int i=0;i

{

printf("%d ",a_all[i]);

}

*/

printf("目的地址:\n");

PrintSomeUdp(0,5);

printf("源地址:\n");

PrintSomeUdp(6,11);

printf("IP类型:\n");

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");

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\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]);

return 0;

}

6.出现的问题和解决方法

在用Wireshark捕获数据包时,没有选择我的IP(10.10.23.226)进行数据包捕获的按钮,导致一直没有捕获到任何的数据包(如图4-1)。这是当然的,因为没有选择针对那个IP进行捕获,根本没有源IP,当然没有数据包,这使我的设计刚开始就频频出错。后来查阅资料时,发了这一个错误,改正后立即可以捕获数据包。所发生的错误如图4-2。

图4-1数据包捕获窗口

图4-2出现的提示错误信息

7.结束语

经过一周的课程设计,刚开始时还认为两周时间还是很长,有足够的时间完成这个设计,想不到一眨眼间,一周的时间就这样匆匆过去了。现在感觉到时间过得真快,从一开始对Wireshark这个抓包软件没有任何基础的,现在已能对这个软件所捕获的数据包进行简单的分析,以及怎么样设置这个软件的参数。

在用Visual C++编程的这一步中,实在花了我的不少时间,这个我认为是在我这个设计中最难的一步,虽然在网上能找到相关程序,但所找到的那些程序都基本上有一两处错误,而对于我这个只有一点Visual C++基础的来说无疑是一个天大的麻烦。但是,经过这一周的努力,还是能改正了这些错误,而且在同学的帮助下,终于把这个程序给做出来了。经过这一次的设计,这对以后的工作需要提供了很大的帮助。

最后,我得感谢一下在这次课程设计中帮助过我的同学,还有在设计过程中给老师带来了诸多麻烦,很感谢您这么细心的为我讲导。要不然这次课程设计我不可能按时完成。其中许多不足,还请老师给与批平、指正。

8.参考文献

[1] https://www.360docs.net/doc/ae8092638.html,/view/69012.htm?fr=ala0_1

[2]Craig Zacker.《TCP/IP网络管理》.北京:中国水利水电出版社,1998.9

[3]谢希仁.《计算机网络》.北京:电子工业出版社,2008.1

[4]黄筱燕.《基于Ethereal的网络协议分析》.热带农业工程第33卷第1期

[5]https://www.360docs.net/doc/ae8092638.html,/view/739888.html

[6]https://www.360docs.net/doc/ae8092638.html,/view/696423.htm?fr=ala0_1

[7]周霭如、林伟健.《C++程序设计基础》.北京:电子工业出版社,2006.3

[8]张青.《C#编程思想与实践》.北京:冶金工业出版社,2002.8

TCP数据包格式

TCP数据包格式(zz) 修改浏览权限| 删除TCP提供一种面向连接的、全双工的、可靠的字节流服务。 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP的接收端必须丢弃重复的数据。 TCP对字节流的内容不作任何解释。对字节流的解释由TCP连接双方的应用层解释。TCP通过下列方式来提供可靠性: 应用数据被分割成TCP认为最适合发送的数据块,称为报文段或段。 TCP协议中采用自适应的超时及重传策略。 TCP可以对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 TCP的接收端必须丢弃重复的数据。 TCP还能提供流量控制。 TCP报文段格式

源端口和目的端口字段——各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。 序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 数据偏移——占4bit,它指出TCP报文段的数据起始处距离CP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。 保留字段——占6bit,保留为今后使用,但目前应置为0。

紧急比特URG——当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特ACK——只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。 复位比特RST(Reset) ——当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。 终止比特FIN(FINal)——用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。 检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12字节的伪首部。 紧急指针字段——占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。 选项字段——长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。 填充字段——这是为了使整个首部长度是4字节的整数倍。 TCP首部的主要选项: 最大报文段长度MSS(Maximum Segment Size)是TCP报文段中的数据字段的最大长度。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”窗口扩大因子,用于长肥管道。 时间戳,可用于测量往返时延RTT。 TCP的数据编号与确认 TCP协议是面向字节的。TCP将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。 在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。 TCP的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。为提高效率,TCP可以累积确认,即在接收多个报文段后,一次确认。 一、TCP的流量控制 TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。 TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。

高速网络环境下数据包捕获技术的分析

龙源期刊网 https://www.360docs.net/doc/ae8092638.html, 高速网络环境下数据包捕获技术的分析 作者:王亚 来源:《数字技术与应用》2011年第12期 摘要:互联网的迅猛发展,网络带宽飞速增长,在高速网络环境下,传统的网络数据包捕获已经成为制约整个系统的性能提升的瓶颈,为了满足高速网络的数据包捕获的需求,对传统的网络数据包捕获存在的问题进行分析,在此基础上提出了改进措施,为后期研究高速网络下高性能的数据包捕获技术奠定基础。 关键词:高速网数据包捕获 Libpcap 中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2011)12-0194-02 The Analysis of Packet Capture Technology in High Speed Network wangya (Fuyang Teachers College of computer and Information engineering Fuyang 236041) Abstract:The rapid development of the Internet and the rapid growth of network bandwidth,in high-speed network environment,the traditional network data packet capture has become the constraints of the system performance bottleneck. In order to satisfy the high speed network packet capture demand,to analysis the existing problems of the traditional network packet capture,and put forward on this foundation improvement measures.,It lays the foundation for later research of high-speed network and high performance packet capture technology. Keywords:high speed network;packet capture;Libpcap 1、引言 目前,对网络信息监控与检测的软件都是基于数据包捕获技术,如:入侵检测程序Snort、嗅探器Tcpdump等。数据包捕获技术是一种对网络上的数据包进行监听并截取的技术,可以将数据包原封不动的拷贝到捕包端的系统中。数据包捕获是入侵检测系统、网络协议

网络数据包的捕获与分析毕业设计

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。 【关键词】Winpcap;数据包;捕获;分析

The Capture and Analysis of Network Data Packets Wang Hang (Grade 11,Class 1, Major Network Engineering, Scho ol of Mathematics and Computer Science Dept, Shaanxi University of Technology, Hanzhong 723003, Shaanxi) Tutor: Jia Wei Abstract: The capture of network data packets plays an important part in network security, which is helpful for our better analysis of network data flow.This paper is about a network monitoring tool based on Windows system, which emphasizes particularly on realizing the capture and analysis of network data packets and then displays them. Take analysis as an example, it will check the type of the IP protocol, the source address of IP, the destination address of IP and the port https://www.360docs.net/doc/ae8092638.html,e the Winpcap(Windows Packet Capture)to capture of data packets. In MFC programming of VC++6.0, the capture of network data packets can be realized via the invoking and control of the functions through a full control panel, and then the analysis of IP ,TCP,UDP and TCP/IP will be done before they are displayed. Certainly the information captured can be saved to the appointed destination in order to go through an advanced analysis. Key words:Winpcap;Data Packets;Capture;Analysis

TCP数据包的发送和接收设计报告

湖北工业大学 课程设计报告 设计题目:TCP数据包的发送和接收专业:计算机科学与技术 班级:10计科2班 学号:11 姓名:吕红杰 指导老师:涂军

一.设计题目 发送和接收TCP数据包 二.设计要求 1.正确理解题意; 2.具有良好的编程规范和适当的注释; 3.有详细的文档,文档中应包括设计题目涉及的基础知识、设计思路、程序流程图、程序清单、开发中遇到的问题及解决方法、设计中待解决的问题及改进方向。 三.需求分析 TCP是一种面向连接的、可靠的传输层协议。TCP协议工作在网络层IP协议的基础上。本课程设计的目的是设计一个发送和接收TCP数据包的程序,其功能是填充一个TCP数据包,发送给目的主机,并在目的主机接收此TCP数据包,将数据字段显示显示在标准输出上。 四.具体设计 1.创建一个原始套接字,并设置IP头选项 SOCKET sock; sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP); 或者: sock=WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPE D); 这里,设置了SOCK_RAW标志,表示我们声明的是一个原始套接字类型。 为使用发送接收超时设置,必须将标志位置位置为WSA_FLAG_OVERLAPPED。在本课程设计中,发送TCP包时隐藏了自己的IP地址,因此我们要自己填充IP头,

设置IP头操作选项。其中flag设置为ture,并设定 IP_HDRINCL 选项,表明自己来构造IP头。 setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char *)&Flag, sizeof(Flag)); int timeout=1000; setsockopt(sock, SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout, sizeof(timeout)); 在这里我们使用基本套接字SOL_SOCKET,设置SO_SNDTIMEO表示使用发送超时设置,超时时间设置为1000ms。 2.构造IP头和TCP头 这里, IP头和TCP头以及TCP伪部的构造请参考下面它们的数据结构。typedef struct _iphdr 算校验和的子函数 在填充数据包的过程中,需要调用计算校验和的函数checksum两次,分别用于校验IP头和TCP头部(加上伪头部),其实现代码如下: USHORT checksum(USHORT *buffer, int size) { unsigned long cksum=0; while(size >1) { cksum+=*buffer++; size -=sizeof(USHORT); } if(size ) { cksum += *(UCHAR*)buffer; } cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >>16);

数据包捕获与解析

数据包捕获与解析课程设计报告 学生姓名:董耀杰 学号:1030430330 指导教师:江珊珊

数据包捕获与分析 摘要本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。 关键词协议分析;Ethereal;数据包;Visual C++ 1引言 本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。Ethereal是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。 1.1课程设计的内容 (1)掌握数据包捕获和数据包分析的相关知识; (2)掌握Ethreal软件的安装、启动,并熟悉用它进行局域网数据捕获和分析的功能; (3)设计一个简单的数据包捕获与分析软件。 1.2课程设计的要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。 (4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

Ip数据包捕获设计报告

解析IP数据包程序设计与实现 学生姓名:梁帅指导老师:谢晓巍 摘要现如今,计算机网络已经彻彻底底地改变了人们的生活。大量的数据都是经过计算机网络传输的,而TCP/IP协议是计算机网络中最重要的协议之一。计算机网络中绝大多数数据都是以IP数据包的形式发送和接受的。所以IP数据包的捕获是很多计算机安全技术的基础。本课程设计实现了可以捕获流经本地网卡的IP数据包并将其头部信息解析输出的程序。 关键词TCP/IP;IP数据包;计算机网络;捕获

Design and implementation of IP data packet Student name: LIANG Shuai Advisor:XIE Xiao-wei Abstract Nowadays, computer network has completely changed people's life. A large amount of data is transmitted through computer networks, and the TCP/IP protocol is one of the most important protocols in computer networks. Most of the data in the computer network are sent and received in the form of IP data packets. So IP packet capture is the basis of many computer security technology. This course is designed to capture the IP data packet that flows through the local network card and the program to parse the output of its head. Key words TCP/IP;IP data packet;Computer network;Capture

sniffer数据包捕获

实训报告 一、sniffer的功能认知; 1. 实时网络流量监控分析 Sniffer Portable LAN能够对局域网网络流量进行实时监控和统计分析,对每个链路上的网络流量根据用户习惯,可以提供以表格或图形(条形图、饼状图和矩阵图等)方式显示的统计分析结果,内容包括: ·网络总体流量实时监控统计:如当前和平均网络利用率、总的和当前的帧数、字节数、总网络节点数和激活的网络节点数、当前和总的平均帧长等。 ·协议使用和分布统计:如协议类型、协议数量、协议的网络利用率、协议的字节数以及每种协议中各种不同类型的帧的数量等。Sniffer包含通用的TCP和UDP网络应用协议如HTTP, Telnet, SNMP, FTP等。同时,Sniffer 也具有特有的灵活性允许增加自定义的应用。一旦应用协议加入Sniffer,针对应用的所有的监控、报警和报告便自动生效;

·包尺寸分布统计:如某一帧长的帧所占百分比,某一帧长的帧数等。 ·错误信息统计:如错误的CRC校验数、发生的碰撞数、错误帧数等; ·主机流量实时监控统计:如进出每个网络节点的总字节数和数据包数、前x个最忙的网络 节点等;

话节点对等;

·Sniffer还提供历史统计分析功能,可以使用户看到网络中一段时间内的流量运行状况,帮助用户更好的进行流量分析和监控。

2.应用响应时间监控和分析 Sniffer 在监控网络流量和性能的同时,更加关注在网络应用的运行状况和性能管理,应用响应时间(ART)功能是Sniffer中重要的组成部分,不仅提供了对应用响应时间的实时监控,也提供对于应用响应时间的长期监控和分析能力。 首先ART监控功能提供了整体的应用性能响应时间,让用户以多种方式把握当前网络通讯中的各类应用响应时间的对比情况,如客户机/服务器响应时间、服务器响应时间,最 快响应时间、最慢响应时间、平均响应时间和90%的请求的响应时间等。

IP及IPSEC协议数据包的捕获与分析分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

利用Ethereal分析TCP数据包

利用Ethereal分析TCP数据包一.分析过程: 1.图1 TCP协议图 图2 TCP协议的内容 图3 TCP协议的数据包 2.数据分析 1) 分析:546代表的是Frame的序号,54 bytes代表的是54字节的数据包的长度

2) 分析:其中代表的是MAC地址 字节: 6 6 2 以太网的MAC帧格式 目的地址:00 e0 5c 15 f1 cd(十六进制) 源地址:00 1f d0 b8 da 78(十六进制) 类型:一般类型字段的值是0x0800是,就是宝石上层使用的是IP数据报。如果类型字段分值是0x8137则宝石该帧是由Novell IPX发过来的。

3)分析: 版本:使用的是IP协议版本号为4(即IPv4) 首部长度:20个字节的长度 服务类型(新版本称区分服务):00,这个字段只有在使用区分服务时,才起作用。在一般的情况下都不使用这个字段的。 总长度:40字节,总长度指的是首部和数据之和的长度 标识:d0 34(十六进制)IP软件在存储器中维持一个计时器,每产生一个数据报,计时器就加1,并将此值赋给标志字段。 标志:001(二进制),目前标志只有两位有意义: 标志最低位记为MF(More Fragment)。MF=1表示后面“还有分片”的数据报, MF=0表示这已是若干数据报片中的最后一个。 标志中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0 是才允许分片。 片偏移:0,0000,0000,0000(二进制) 生存时间:80(十进制128s)生存时间表明的是数据报在网络中的寿命,一般以秒作为其单元。 协议:协议字段指出次此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分交给那个处理过程。 首部检验和:5167(二进制:0101,0001,0110,0111)这个字段值检验数据报的首部,但不包括数据部分。 源IP地址:192.168.1.3 目的IP地址:219.133.60.3 4)

实验1:网络数据包的捕获与协议分析

实验报告 ( 2014 / 2015 学年第二学期) 题目:网络数据包的捕获与协议分析 专业 学生姓名 班级学号 指导教师胡素君 指导单位计算机系统与网络教学中心 日期2015.5.10

实验一:网络数据包的捕获与协议分析 一、实验目的 1、掌握网络协议分析工具Wireshark的使用方法,并用它来分析一些协议; 2、截获数据包并对它们观察和分析,了解协议的运行机制。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线、局域网 四、实验步骤 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)打开windows命令行,键入“ipconfig -all”命令获得本机的MAC地址和缺省路由器的IP地址;结果如下: (2)用“arp -d”命令清空本机的缓存;结果如下 (3)开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包。(4)执行命令:ping https://www.360docs.net/doc/ae8092638.html,,观察执行后的结果并记录。

此时,Wireshark所观察到的现象是:(截图表示) 2.设计一个用Wireshark捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。(截 图加分析) 3.设计一个用Wireshark捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计。要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析该ICMP 报文。(截图加分析) 4. 设计一个用Wireshark捕获IP数据包的过程,并对捕获的结果进行分析和统计(截图加分析) 要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址 五、实验总结

发送TCP数据包

四川理工学院 课程设计书 学院计算机学院 专业计算机科学与技术 班级09级04班 题目发送TCP数据包 教师王非,何绍荣,陈超 学生赵清勇,谭凯,唐红琴

实验分工: 程序设计、编写代码由全小组成员共同完成 谭凯:在vc下调试运行程序、文档编写 赵清勇:在dos下运行检查、初步完成课程设计报告唐红琴:查找资料、整理课程设计报告

目录 一课程设计准备 (4) 1.1课程设计目的 (4) 1.2课程设计的要求 (4) 1.3相关知识 (5) 1.4工作环境 (7) 二课程设计分析 (7) 2.1使用原始套接字 (7) 2.2定义IP头部、TCP头部和伪头部的数据结构 (8) 2.3计算校验和的子函数 (10) 2.4程序流程图 (11) 三源代码 (12) 四运行结果与运行情况 (18) 五自我评析和总结 (19) 六参考文献 (20)

发送TCP数据包 一课程设计准备 1.1课程设计目的 TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠的、全双工的数据传输流。本课程设计的目的就是设计一个发送TCP数据包的程序,并根据本设计说明TCP数据包的结构以及TCP协议与IP协议的关系,使学生对TCP协议的工作原理有更深入的认识。 1.2课程设计的要求 本程序的功能是填充一个TCP数据包,并发送给目的主机。1)以命令行形式运行:SendTCP sourse_ip sourse_port dest_ip dest_port 其中,SendTCP为程序名;sourse_ip为源端IP地址;sourse_port 为源埠;dest_ip为目的IP地址;dest_port为目的埠。 2)其它的TCP头部参数请自行设定。 3)数据字段为“This is my homework of network,I am happy!”。4)发送成功后在屏幕上输出”send OK”。

网络数据包捕获工具的实现

本文来自中国协议分析网技术论坛,转载请注明 sniffer tcp http ospf rtp dhcp Sniffer EtherealWinpcap 其它技术返回首页当前位置: 网站首页>>协议分析>>Winpcap>> 利用WinPcap技术捕获数据包时间:2006-11-14 来源: 作者: 点击:849次收藏到: 前言随着网络入侵的不断发展,网络安全变得越来越重要,于是网络入侵取证系统的研究也变得日益重要。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列 前言 随着网络入侵的不断发展,网络安全变得越来越重要,于是网络入侵取证系统的研究也变得日益重要。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。 1winpcap简介 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤。WinPcap 为用户级的数据包提供了Windows 下的一个平台。WinPcap 是BPF 模型和Libpcap 函数库在Windows 平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll 和一个高层的独立于系统的函数库Libpcap 组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS 中函数的调用为Win95、Win98、WinNT、和Win2000 提供一类似于UNIX 系统下Berkeley Packet Filter 的捕获和发送原始数据包的能力。Packet.dll 是对这个BPF 驱动程序进行访问的API 接口,同时它有一套符合Libpcap 接口(UNIX 下的捕获函数库)的函数库。WinPcap的结构图如图1。 WinPcap 包括三个部分:第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll为win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在不同版本的Windows平台上,而无需重新编译。第三个模块Wpcap.dll是不依赖于操作系统的。它提供了更加高层、抽象的函数。 packet.dll和Wpcap.dll:packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。WinPcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。 2网络数据包捕获的原理 以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。IEEE802.3 标准的以太网采用的是持续CSMA 的方式,正是由于以太网采用

计算机网络实验八 Sniffer Pro数据包捕获与协议分析汇编

惠州学院《计算机网络》实验报告 实验08 Sniffer Pro数据包捕获与协议分析 1. 实验目的 (1)了解Sniffer的工作原理。 (2)掌握SnifferPro工具软件的基本使用方法。 (3)掌握在非交换以太网环境下侦测、记录、分析数据包的方法。 2. 实验原理 数据在网络上是以很小的被称为“帧”或“包”的协议数据单元(PDU)方式传输的。以数据链路层的“帧”为例,“帧”由多个部分组成,不同的部分对应不同的信息以实现相应的功能,例如,以太网帧的前12个字节存放的是源MAC地址和目的MAC地址,这些数据告诉网络该帧的来源和去处,其余部分存放实际用户数据、高层协议的报头如TCP/IP 的报头或IPX报头等等。帧的类型与格式根据通信双方的数据链路层所使用的协议来确定,由网络驱动程序按照一定规则生成,然后通过网络接口卡发送到网络中,通过网络传送到它们的目的主机。目的主机按照同样的通信协议执行相应的接收过程。接收端机器的网络接口卡一旦捕获到这些帧,会告诉操作系统有新的帧到达,然后对其进行校验及存储等处理。 在正常情况下,网络接口卡读入一帧并进行检查,如果帧中携带的目的MAC地址和自己的物理地址一致或者是广播地址,网络接口卡通过产生一个硬件中断引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理,否则就将这个帧丢弃。 如果网络中某个网络接口卡被设置成“混杂”状态,网络中的数据帧无论是广播数据帧还是发向某一指定地址的数据帧,该网络接口卡将接收所有在网络中传输的帧,这就形成了监听。如果某一台主机被设置成这种监听(Snfffing)模式,它就成了一个Sniffer。 一般来说,以太网和无线网被监听的可能性比较高,因为它们是一个广播型的网络,当然无线网弥散在空中的无线电信号能更轻易地截获。 3. 实验环境与器材 本实验在虚拟机中安装SnifferPro4.7版本,要求虚拟机开启FTP、HTTP等服务,即虚拟机充当服务器,物理机充当工作站。 物理机通过Ping命令、FTP访问及网页访问等操作实验网络数据帧的传递。 4. 实验内容 介绍最基本的网络数据帧的捕获和解码,详细功能请参阅本教材辅助材料。 (1)Sniffer Pro 4.7的安装与启动 1)启动Sniffer Pro 4.7。在获取Sniffer Pro 4.7软件的安装包后,运行安装程序,按要求输入相关信息并输入注册码,若有汉化包请在重启计算机前进行汉化。完成后重启计算机,点击“开始”→“程序”→“Sniffer Pro”→“Sniffer”,启动“Sniffer Pro 4.7”程序。 2)选择用于Sniffer的网络接口。如果计算机有多个网络接口设备,则可通过菜单“File”→“Select Settings”,选择其中的一个来进行监测。若只有一块网卡,则不必进行此步骤。

IP 数据报捕获与分析实验报告

实验报告 专业班级成绩评定______ 学号姓名教师签名______ 实验题目IP 数据报捕获与分析实验时间 一、实验目的: 1.掌握IP数据报格式。 2.理解IP协议的工作原理及工作过程。 3.掌握使用wireshark捕获IP等数据报并分析。 二、实验环境:以太网。 三、实验内容: 1.熟悉WinPcap的体系构架和提供的函数。 2.学习IP数据报校验和计算方法。 3.掌握使用wireshark捕获IP等数据报。 4.对捕获的IP数据报进行分析。 四、实验步骤: 1.在PING之前先运行wireshark熟悉页面并进行一些设置

a.单击Capture Filter过滤器:可以设置捕捉一些特殊规则 的数据报。 b.在选中Capture packets in promiscuous mode:可以设置 为混合全处理模式。 c.可以点击Start开始捕捉。过一段时间后,点击Stop停止, 观察捕捉到的数据报,并进行分析。 2.使用wireshark捕获和分析IP数据包。 a.打开wireshar并开始捕获数据包。 b.然后在系统的“开始”—“运行”—输入“CMD”命令,进 入DOS命令窗口,并输入“ping”命令测试网络的情况. c.如“ping 192.168.0.1”。 Ping 命令的使用

d.再回到wireshar点击停止后查看捕获到的数据,双击打开 “ping”后的数据包,分析数据包的内容。 分片的数据包 (以下图片全部通过wireshark捕获数据包,然后用QQ中的截图功能截取) IP协议节点

IP协议节点 上面节点说明如下: 3.进制数据包窗口 16进制数据包窗口将数据包的所有内容以16进制的形式显示出来,如下所示:

TCP数据包格式

TCP数据包格式 TCP协议也是建立在IP协议之上的,不过TCP协议是可靠的.按照顺序发送的.TCP的数据结构比前面的结构都要复杂. 每行32位=4字节。 Source Port (16) | Destination Port (16) Sequence Number (32) Acknowledgment Number (32) Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16) Checksum (16) | Urgent Pointer (16) Options (0 or more 32 bit words + padding) DATA TCP各字段的含义 Source Port & Destination Port 如果我们将IP比喻成地址那麽Port可以说是门口了试想一下一座大楼有前门後门侧门送货的门出货的门倒垃圾的门扔死尸的门等等乱七八糟的门...... 那麽一个IP地址也有着好多个各种功能的port而每一个port都被不同的服务倾听着就好比看门人一样。 下面是一些常用port和其对应的服务有兴趣的朋友可以在Linux的/etc/services这个档案找到它们 ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol pop-3 110/tcp # POP version 3 pop-3 110/udp

ip数据包的捕获与解析代码

// PackCaptureDlg.h:header file #define IPV4_WERSION 4 #define IPV6_WERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 #define EGP_PACKET 8 #define UDP_packet 17 #define OSPF_PACKET 89 class CPackCaptureDlg:public CDialog { public: //{{AFX_DATA(CFindHostDlg) enum {IDO=IDO_PACKCAPTURE_DIALOG}; int m_Count; CString m_Packet; //}}AFX_DATA protected: //{{AFX_MSG(CFindHostDlg) afx_msg void OnCapture(); //}}AFX_MSG private: typedef struct IP_HEAD //IP头部结构 { union { unsigned char Version; //版本(字节前四位) unsigned char HeadLen; //头部长度(字节后四位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; //总长度 unsigned short Identifier; //标识符 union { unsigned short Flags; //标志位(字前三位) unsigned short FragOffset;

实验三 网络数据包的捕获与分析

实验三 网络数据包的捕获与分析 一、实验目的和要求 通过本次实验,了解sniffer 的基本作用,并能通过sniffer 对指定的网络行为所产生的数据包进行抓取,并分析所抓取的数据包。 二、实验内容 A :1、首先打开sniffer 软件,对所要监听的网卡进行选择 2、选择网卡按确定后,进入sniffer 工作主界面,对主界面上的操作按钮加以熟悉。 B :设置捕获条件进行抓包 基本的捕获条件有两种: 1、链路层捕获,按源MAC 和目的MAC 地址进行捕获,输入方式为十六进制连续输入,如:00E0FC123456。 2、IP 层捕获,按源IP 和目的IP 进行捕获。输入方式为点间隔方式,如:10.107.1.1。如果选择IP 层捕获条件则ARP 等报文将被过滤掉。 任意捕协议捕缓冲区基本捕获条件数据流链路层捕获获条件编辑 获编辑 编辑 链路层捕获IP 层捕获 方向 地址条件 高级捕获条件

在“Advance ”页面下,你可以编辑你的协议捕获条件,如图: 选择要捕捕获帧长错误帧是保存过滤获的协议 度条件 否捕获 规则条件 高级捕获条件编辑图 在协议选择树中你可以选择你需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。 在捕获帧长度条件下,你可以捕获,等于、小于、大于某个值的报文。 在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。 在保存过滤规则条件按钮“Profiles ”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。 C :捕获报文的察看: Sniffer 软件提供了强大的分析能力和解码功能。如下图所示,对于捕获的报文提供了一个Expert 专家分析系统进行分析,还有解码选项及图形和表格的统计信息。 专家分析专家分析捕获报文的捕获报文的其他 系统 系统图形分析 统计信息 专家分析 专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的

相关文档
最新文档