网络数据捕获及分析实验报告

时间:2024.4.14

广西民族大学

网络数据捕获及分析实验报告

学院:信息科学与工程学院

班级  10网络   姓名   郭璇    学号   110263100129      

实验日期  20##年10月19日    指导老师     周卫     

实验名称    网络数据捕获及分析实验报告   

一、实验目的

1、通过捕获网络通信数据,使学生能够真实地观察到传输层(TCP)和应用层(HTTP)协议的数据,对计算机网络数据传输有感性的认识。    

2、通过对捕获的数据的分析,巩固学生对这些协议制定的规则以及工作的机制理解,从而对计算机网络数据传输有初步的认识,以便为之后通信协议设计以及通信软件设计打下良好的基础。

二、协议理论

TCP

1、Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

2、TCP所提供服务的主要特点:(1)面向连接的传输;(2)端到端的通信;(3)高可靠性,确保传输数据的正确性,不出现丢失或乱序;(4)全双工方式传输;(5)采用字节流方式,即以字节为单位传输字节序列;(6)紧急数据传送功能。

3、TCP连接的建立与终止

TCP连接的建立:TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。

        

TCP连接的终止:建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。

4、服务流程

TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。

尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。

TCP提供一种面向连接的、可靠的字节流服务。

面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。

在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。

TCP通过下列方式来提供可靠性:

(1)应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)TCP如何确定报文段的长度。

(2)当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。

(3)TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

(4)既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

(5)既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

(6)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。如果一方的应用程序先传10字节,又传20字节,再传50字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4次接收这80个字节,每次接收20字节。一端将字节流放到TCP连接上,同样的字节流将出现在TCP连接的另一端。

另外,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCⅡ字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。

这种对字节流的处理方式与Unix操作系统对文件的处理方式很相似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件与一个文本文件。

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。

HTTP

1、超文本传送协议 (HTTP-Hypertext transfer protocol) 是分布式,协作式,超媒体系统应用之间的通信协议。是万维网(world wide web)交换信息的基础。它允许将超文本标记语言 (HTML) 文档从 Web 服务器传送到 Web 浏览器。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。HTTP工作在TCP/IP协议体系中的TCP协议上。

2、HTTP协议的主要特点:(1)支持客户/服务器模式;(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快;(3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记;(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间;(5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

3、请求信息

发出的请求信息包括以下几个: 

(1)请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。

(2)(请求)头,例如Accept-Language: en

(3)空行

(4)可选的消息体请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

3、请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 

HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 

GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。 

POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 

PUT 向指定资源位置上传其最新内容。 

DELETE 请求服务器删除Request-URI所标识的资源。 

TRACE 回显服务器收到的请求,主要用于测试或诊断。 

CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 

方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。 

HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。

三、实验步骤

1、捕获数据包前的准备工作:

在默认情况下,sniffer将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤。Sniffer提供了捕获数据包前的过滤规则的定义,过滤规则包括2、3层地址的定义和几百种协议的定义。定义过滤规则的做法一般如下:

(1)在主界面选择Capture→Define filter选项。

(2)Define filter→Address,这是最常用的定义。其中包括MAC地址、IP地址和IPX地址的定义。

(3)Define filter→Advanced,定义希望捕获的相关协议的数据包。比如,想捕获DNS、HTTP的数据包,那么说首先打开TCP选项卡,再进一步选协议;还要明确DNS的数据包有些是属于UDP协议,故需在UDP选项卡做类似TCP选项卡的工作,否则捕获的数据包将不全。 如果不选任何协议,则捕获所有协议的数据包。

(4)Advanced→Profiles→New,新建一个Capture。

(4)最后,需将定义的过滤规则应用于捕获中,点选Capture→Select Filter中选取定义的捕获规则。

2、网络操作和捕获数据包:

(1)打开浏览器,清除记录。在地址栏中输入要访问网站的地址,但未访问。

(2)选择Capture→Start,启动捕获引擎。 sniffer可以实时监控主机、协议、应用程序、不同包类型等的分布情况。

(3)访问网站。

(4)停止sniffer捕获包,点选Capture→Stop或者Capture→Stop and Display,前者停止捕获包,后者停止捕获包并把捕获的数据包进行解码和显示。

3、使用Display filter过滤数据:

(1)    打开浏览器,清除记录。在地址栏中输入要访问网站的地址,但未访问。

(2)    选择Capture→Start,启动捕获引擎。 sniffer可以实时监控主机、协议、应用程序、不同包类型等的分布情况。

(3)访问网站。

(4)停止sniffer捕获包,点选Capture→Stop或者Capture→Stop and Display,前者停止捕获包,后者停止捕获包并把捕获的数据包进行解码和显示。

(5)在主界面选择Display→Define filter选项。

(6)Define filter→Address,这是最常用的定义。其中包括MAC地址、IP地址和IPX地址的定义。

(7)Define filter→Advanced,定义希望捕获的相关协议的数据包。比如,想捕获DNS、HTTP的数据包,那么说首先打开TCP选项卡,再进一步选协议;还要明确DNS的数据包有些是属于UDP协议,故需在UDP选项卡做类似TCP选项卡的工作,否则捕获的数据包将不全。 如果不选任何协议,则捕获所有协议的数据包。

(8)Advanced→Profiles→New,新建一个Capture。

(9)最后,需将定义的过滤规则应用于捕获中,点选Display→Select Filter中选取定义的捕获规则。

四、实验数据与分析

1、TCP连接三次握手建立

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。


位码即TCP标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:客户端192.168.15.48发送位码为SYN=1,随机产生SEQ=2059661303的数据包到服务器220.181.111.85,服务器由SYN=1知道,客户端要求建立联机;

第二次握手:服务器220.181.111.85收到请求后要确认联机信息,向192.168.15.48发送ACK=SEQ+1=2059661304,随机产生SEQ=2891796699的包;

第三次握手:客户端192.168.15.48收到后检查ACK是否正确,客户端192.168.15.48会再发送ACK=2891796700(服务器220.181.111.85的SEQ+1),服务器220.181.111.85收到后确认SEQ值连接建立成功。完成三次握手,客户端与服务器开始传送数据。

2、HTTP请求报文:

客户端192.168.15.48向服务器220.181.111.85发出的HTTP请求报文。

HTTP报文的长度为LEN=397字节。

GET / HTTP/1.1: 客户端使用HTTP/1.1的版本,请求方法是GET,获取的资源URL是相对路径下的默认文档。

Accept:  指定客户端接收所有类型的消息,此报文接受了若干图片、flash等消息。

Accept-Language: zh-cn,表示客户端所使用的浏览器支持的语言简体中文。

Accept-Encoding: gzip.deflate, 表示浏览器支持的压缩编码是 gzip 和 deflate。

User-Agent: Mozilla/4.0,表示客户端使用的用户代理是 Mozilla/4.0。

Host: www.baidu.com ,表示请求服务器的域名。

Connection: Keep-Alive ,表示客户端与服务连接类型是持久连接。

3、确认HTTP请求报文

服务器220.181.111.85对客户端192.168.15.48的HTTP请求报文的ACK确认。

服务器响应客户端的HTTP请求报文之后,便向客户端发一个TCP报文段。其中ACK=2059661701=2059661304+397。表示服务器已正确接收到客户端的请求报文。


4、服务器220.181.111.85给客户端192.168.15.48的HTTP报文过程:

服务器确认了客户端的请求报文之后,就对客户端的请求做出响应动作。将响应报文和实体正文发送给客户端。其中:

HTTP/1.1 200 OK :协议版本号和应答状态码。“200”是响应码,“OK”是原因的描述,表示请求成功。

Server: Apache : 服务器

Date: Fri, 30 Nov 20## 00:40: 04 GMT :表示响应的时间。


5、客户端接收到服务器发送的HTTP报文并发送ACK确认

客户端收到服务器全部的HTTP报文后,给服务器端发送了TCP ACK报文, ACK=2891796700+300+81=2891797081,表示客户端已正确接受到服务器所发送的HTTP报文。其中LEN=300和81来自

6、TCP的连接释放

五、实验总结

TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。我们可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。

通信协议是通信时一定要遵循的规则,在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。制定协议要求主要的要求:对实时性的要求;对可靠性的要求;对协议的可扩充性、兼容性要求;对实用性的要求。通信协议要无二义性,通信协议必须能提供可靠的、高效的通信。

更多相关推荐:
数据分析实验报告

数据分析实验指导书理学院实验中心数学专业实验室编写数值分析实验指导实验一SAS系统的使用实验类型验证性实验学时2学时实验目的使学生了解SAS系统熟练掌握SAS数据集的建立及一些必要的SAS语句实验内容1启动SA...

数值分析实验报告(包含源程序)

课程实验报告课程实验报告课程实验报告课程实验报告

数据分析实验报告(一)

浙江理工大学实验报告实验项目名称数据描述性分析所属课程名称数据分析实验类型验证型实验实验日期班级学号姓名成绩1实验目的及要求了解SPSS软件的安装启动退出以及运行管理方式熟悉各主要操作模块窗口及其功能相关的系统...

数据分析实验报告

数据分析实验报告姓名黄晶专业班级信计0903学号34例23某科学基金会的管理人员欲了解从事研究工作的中高水平的年工资额Y与他们的研究成果论文著作等的质量指标X1从事研究工作的时间X2以及能成功获得资助的指标X3...

数据分析实验报告

上海电力学院计算机网络课程实验报告题目数据分析姓名徐佳豪学号20xx3295实验小组第11组院系计算机与信息工程学院专业年级信息安全20xx级同组成员20xx年12月22日一实验目的熟悉并掌握Wireshark...

数据整理与分析实验报告

浙江万里学院实验报告课程名称20xx20xx学年第一学期统计实验实验名称数据整理与数据分析专业班级姓名学号实验日期专业班级姓名学号实验日期专业班级姓名学号实验日期4姓名实验日期6

数据分析实验报告(二)

浙江理工大学实验报告实验项目名称非参数秩检验方法所属课程名称数据分析实验类型综合型实验实验日期班级学号姓名成绩1实验目的及要求掌握两种处理方法比较的秩检验方法和步骤掌握成对分组设计下两种处理方法的比较方法掌握多...

数据分析方法与技术-相关分析实验报告

电子科技大学政治与公共管理学院本科教学实验报告实验课程名称数据分析技术系列实验电子科技大学教务处制表电子科技大学实验报告学生姓名学号指导教师一实验室名称电子政务可视化实验室二实验项目名称相关分析三实验原理1两变...

工业分析实验报告及数据处理

硅酸盐岩石分析一实验目的1学习复杂物料分析的方法原理和步骤2巩固加深和扩大重量分析法滴定分析法分光光度法的原理和操作技术二实验原理1SiO2的测定盐酸脱水动物凝聚法试样经NaOH熔融热水浸出熔块将溶液蒸发至湿盐...

数据分析5.5实验报告

55考察鸢尾属植物中三个不同品种的话的如下四个形状指标X1萼片长度X2萼片宽度X3花瓣长度X4花瓣宽度重这三个品种记为123各选取50株测得上述指标的取值如表510所示假如三个品种的着这4个指标均服从4维正态分...

正交实验设计与数据分析结果报告

实验报告课程名称计算机在材料科学中的应用指导教师付老师日期20xx59班级09材化一班小组成员姓名与学号唐帆20xx10230107黄斌20xx10230114张敬文20xx10230116实验名称正交试验设计...

wireshark数据包分析实验报告

西安郵電學院计算机网络技术及应用实验系部名称学生姓名专业名称班级学号时间报告书管理工程学院20xx年04月01日实验题目Wireshark抓包分析实验一实验目的1了解并会初步使用Wireshark能在所用电脑上...

数据分析实验报告(23篇)