WIRESHARK抓包分析TCP和UDP

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/8计算机网络Wireshark抓包分析报告2/8目录1.使用wireshark获取完整的UDP报文.................................................32.使用wireshark抓取TCP报文..............................................................32.1建立TCP连接的三次握手............................................................32.1.1TCP请求报文的抓取.............................................................42.1.2TCP连接允许报文的抓取.....................................................52.1.3客户机确认连接报文的抓取...............................................62.2使用TCP连接传送数据................................................................62.3关闭TCP连接................................................................................73.实验心得及总结....................................................................................83/81.使用wireshark获取完整的UDP报文打开wireshark,设置监听网卡后,使用googlechrome浏览器访问我腾讯微博的首页=1#!/list/qqfriends/5/?pgv_ref=im.perinfo.perinfo.icon?ptlang=2052&pgv_ref=im.perinfo.perinfo.icon,抓得的UDP报文如图1所示。图1UDP报文分析以上的报文内容,UDP作为一种面向无连接服务的运输协议,其报文格式相当简单。第一行中,Sourceport:64318是源端口号。第二行中,Destinationport:53是目的端口号。第三行中,Length:34表示UDP报文段的长度为34字节。第四行中,Checksum之后的数表示检验和。这里0x表示计算机中16进制数的开始符,其后的4f0e表示16进制表示的检验和,把它们换成二进制表示为:0100111100001110.从wireshark的抓包数据看出,我抓到的UDP协议多数被应用层的DNS协议应用。当一台主机中的DNS应用程序想要进行一次查询时,它构成了一个DNS查询报文并将其交给UDP。UDP无须执行任何实体握手过程,主机端的UDP为此报文添加首部字段,并将其发出。2.使用wireshark抓取TCP报文2.1建立TCP连接的三次握手建立TCP连接需要经历三次握手,以保证数据的可靠传输,同样访问我的腾讯微博主页,使用wireshark抓取的TCP报文,可以得到如图2所示的客户机和服务器的三次握手的过程。图2建立TCP连接的三次握手4/82.1.1TCP请求报文的抓取图2中所示的TCP请求连接报文如图3所示。图3TCP请求连接报文分析图3中的请求报文数据可以发现:第一行,sourceport指示源端口号为51329第二行,destinationport指示目的端口号为80,这也正是http客户机进程向服务器发起TCP连接的端口号。第三行,sequencenumber指示报文的序号为0.第四行,headerlength指示报文的长度为28个字节。第五行表示标志字段,其中有保留未用区,紧急指针,push指针等。标志字段中SYN值为1,表示该报文是一个客户机请求连接的报文。第六行,windowsize指示接受窗口的大小为8192个字节。第七行,checksum指示校验和为0x8591,同样用16进制表示。第八行是可选字段。一般而言,TCP报文的可选字段为空,所以报头长度为20个字节,这里多出了8个字节,用来表示最大报文段长等内容。具体分析其5/8中内容,kind或者type表示options选项的种类。当kind/type为1时,表示NOP——nooperation,即无操作。当kind/type为2时,表示Maximumsegmentsize,最大报文段长。这里,MSS为1460个字节。当kind/type为4时,表示SACKpermitted,它表示一旦连接建立,发送的TCP请求报文的客户机期待接收到服务器的SACK选项。整个可选字段的长度为8个字节,其中MSS占了4个字节,NOP占了2个字节,SACKpermitted占了2个字节。仔细分析报文,我们不难发现,TCP请求连接报文中没有ack确认号,同时报文中也没有包含应用层数据。2.1.2TCP连接允许报文的抓取图2中所示的TCP允许连接报文如图4所示。分析图4中的报文信息如下:图4TCP连接允许报文前两行分别表示了源端口号和目的端口号为80和51329.第三行,sequencenumber指示服务器返回的报文的序号为0.第四行,acknowledgmentnumber指示服务器返回报文的确认号为1.第五行表示报文长度为28字节。第六行为标志字段,与TCP请求连接报文的标志字段不同的是,这里的ack值为1,表示服务器成功接收请求连接报文。6/8第七行至第第九行和TCP请求连接报文的意义相同,这里不再赘述。分析连接允许报文,发现,报文的最后出现了一个[SEQ/ACKanalysis]字段。这回应了客户机的请求连接申请,并指示往返时延RTT为0.005262秒。2.1.3客户机确认连接报文的抓取图2中所示的客户机确认连接报文如图5所示。由于报文部分内容和上文的报文内容那个意义相同,这里不再赘述。分析图5中的部分报文信息如下:图5客户机确认连接报文第五行,acknowledgmentnumber值为1,表示客户机成功接收到服务器发来的连接允许响应报文。第六行表示报头的长度为20个字节,这里不再有选项内容。最后,客户机发出的报文中同样有[SEQ/ACKanalysis]字段。它说明了此次报文的意义是对服务器发来的报文的确认,并指示往返时延RTT为0.00011秒。仔细分析客户机的确认连接报文,可以发现,报文中没有数据内容。至此,建立TCP连接的三次握手已经完成,客户机和服务器之间可以相互交换数据了。2.2使用TCP连接传送数据在三次连接建立完成过后,客户机便可以利用建立好的TCP连接向服务器发送数据了。通过wireshark抓包发现,此次试验中,客户机在成功建立TCP连接后,马上向服务器发送了一个http的GET请求报文。抓包结果如图6所示。7/8图6建立在TCP连接上的http请求报文对图6中的部分报文内容分析如下:报文内容指示源端口号为51329,目的端口号为80,序号为1,期待接收的下一个序号为1.同时发送报文使用了PUSH功能,表示接收方应立即将数据交给上层。在传输层之下,客户机发送了一个http请求报文。具体内容意义,这里不再赘述。2.3关闭TCP连接关闭一个TCP连接需要经历客户机和服务器间的四次通信。使用googlechrome浏览器访问,并使用wireshark抓包,其中一个TCP连接的关闭过程如图7所示。8/8图7TCP连接的关闭分析图7中的TCP报文,首先由客户机192.168.1.102向成都电信服务器221.236.31.234发送一个特殊的TCP报文字段。该报文字段的首部中,FIN比特被置为1,表示请求关闭与服务器间的连接。ACK=1表示对上一次连接的确认,期待服务器返回的下一字节的序号为1.然后,服务器在收到请求关闭连接的报文之后,向客户机发送一个确认报文。可以看到报文第一个字节的序号为1,ACK=2表示服务器期待接收的下一字节的序号为2.接着,服务器向客户机发送终止报文段,其FIN比特被置为1.ACK=2表示服务器期待接收的下一个字节的序号为2.最后,客户机向服务器的终止报文进行确认,返回的报文第一个字节的序号为2.并设置定时器,在定时器超时后,关闭连接。可以看到,整个TCP连接关闭过程,客户机和服务器之间的通信完全符合TCP报文传输的格式规范。3.实验心得及总结在此次wireshark抓包实验中,我更加深刻的理解了UDP和TCP协议的报文格式,传输规范和功能作用。UDP报文结构相当简单,它可以使应用层更好地控制要发送的数据和发送时间,而且无需建立连接。报文的简单也降低了分组首部的开销。TCP报文格式相对复杂,它需要建立连接。可以很有效的实现数据的可靠传输,连接管理、拥塞管理和流量控制等功能。在抓得的网络协议包中,我发现UDP协议大部分被DNS协议使用,TCP协议大部分被HTTP和FTP协议使用。流水线机制无处不在。事实上,分析wireshark抓得的我访问一个网站的网络协议包,可以看到客户机几乎每次都向服务器发出许多TCP连接请求,由于网络时延,服务器也会在一个时间段内集中返回确认报文内容。由于访问一个网页要建立很多TCP连接,所以在关闭连接时,客户机也使用了流水线机制。这更加充分的利用了计算机资源和网络资源,提高了响应速度。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功