第一次实验:利用Wireshark软件进行数据包抓取1.3.2抓取一次完整的网络通信过程的数据包实验一,实验目的:通过本次实验,学生能掌握使用Wireshark抓取ping命令的完整通信过程的数据包的技能,熟悉Wireshark软件的包过滤设置和数据显示功能的使用。二,实验环境:操作系统为Windows7,抓包工具为Wireshark.三,实验原理:ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。四,验步骤:1.确定目标地址:选择作为目标地址。2.配置过滤器:针对协议进行过滤设置,ping使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp,如图1-1图1-13.启动抓包:点击【start】开始抓包,在命令提示符下键入ping如图1-2图1-2停止抓包后,截取的数据如图1-3图1-34,分析数据包:选取一个数据包进行分析,如图1-4图1-4每一个包都是通过数据链路层DLC协议,IP协议和ICMP协议共三层协议的封装。DLC协议的目的和源地址是MAC地址,IP协议的目的和源地址是IP地址,这层主要负责将上层收到的信息发送出去,而ICMP协议主要是Type和Code来识别,“Type:8,Code:0”表示报文类型为诊断报文的请求测试包,“Type:0,Code:0”表示报文类型为诊断报文类型请正常的包。ICMP提供多种类型的消息为源端节点提供网络额故障信息反馈,报文类型可归纳如下:(1)诊断报文(类型:8,代码0;类型:0代码:0);(2)目的不可达报文(类型:3,代码0-15);(3)重定向报文(类型:5,代码:0--4);(4)超时报文(类型:11,代码:0--1);(5)信息报文(类型:12--18)。1.4.1,TCP协议的分析实验一,实验目的:通过本次实验,掌握使用Wireshark抓取TCP协议的数据包的技能,能够在深入分析“TCP的三次握手”,TCP的四次挥手协议在网络数据流的基础上,进一步提高理论联系实践的能力。二,实验环境:操作系统为Windows7,抓包工具为Wireshark,要求主机能够连进互联网。三,实验原理:TCP协议是在计算机网络中使用最广泛的协议,很多的应用服务如FTP,HTTP,SMTP等在传输层都采用TCP协议,因此,如果要抓取TCP协议的数据包,可以在抓取相应的网络服务的数据包后,分析TCP协议数据包,深入理解协议封装,协议控制过程以及数据承载过程。四,实验步骤:FTP在传输层采用的是TCP协议,所以此次实验选取FTP服务,本次抓包过程将采用显示过滤器的方法来过滤数据包。1,确定目标地址:选择ftp.lib,hdu.edu.cn为目标,选择应用服务FTP中的TCP协议包作分析2,启动抓包:无需设置过滤器,直接开始抓包3,使用FTP服务:Wireshark数据捕捉开始后,在主机的命令行提示符下使用FTP指令链接目标主机的FTP服务器,在默认的情况下,FTP服务器支持匿名访问,本次链接的的用户名是anonymous,密码是User@,如图2-1图2-14,通过显示过滤器得到先关数据包:通过抓包获得大量的数据包,为了对数据包分析的方便,需要使用过滤器,添加本机IP地址和TCP协议过滤条件。在工具栏上的Filter对话框中填入过滤条件:tcpandip.addr==192.168.156.236,根据分析找到“TCP三次握手”中的一个包,在此信息上右键点击选择【FollowTCPStream】,弹出的信息如图2-2,图2-2以上的设置时为了获得更好的得到过滤后的相关性更强的数据包5,分析数据包:得到的结果如图2-3图2-3第一次”握手“:客户端发送一个TCP,标志为SYN,序列号Seq的相对值为0,真值为Seq.No=b09c71a5,代表客户端请求建立连接,如图2-4图2-4第二次“握手”:服务器发回确认包,标志位为SYN,ACK,将确认序号ACK.No(AcknowledgementNumber)设置为客户的Seq+1,即相对值0+1=1,或真实值b09c71a5+1=b09c71a6,Seq.No=c5f7d49b,如图2-5图2-5第三次“握手”:客户端在次发送确认包(ACK),SYN标志位为0,ACK标志位为1,并且把服务器发Seq.No的序列号字段+1,即c5f7d49b+1=c5f7d49c,,放在确定字段中发送给对方,如图2-6图2-6通过三次”握手“,TCP建立成功,然后就可以进行通信。从整个FTP的对话过程可以看出FTP传递的消息,比如用户名和密码都是明文传递。第一次“挥手”:Client发送一个Fin=1,Seq=35,Seq.No=b09c7ea5,请求关闭Client到Server的数据传送,如图2-6图2-6第二次“挥手”:服务器收到客户端的Fin,它发回一个ACK,确认序号为收到的序号加1,即ACK=35+1=36,ACK.No=b09c7ea5+1=b09c7ea6f,如图2-7图2-7第三次“挥手”:收到Server发送的一个Fin=1,用来关闭Server到Client的数据传送,Seq=108,Seq.No=b09c7ea6,ACK=36,ACk.No=c5f7d49c如图2-8图2-8第四次“挥手”:Client收到Fin后,发送一个ACK给Server,确认序号为收到序号+1,ACK=108+1=109,ACk.No=c507d508,Server进入关闭状态,完成四次挥手。如图2-9图2-9实验总结:通过实验了解了Wireshark的用法及在抓取TCP协议中的用途,对TCP协议,FTP协议,HTTP协议有了一定的了解,对计算机网络通信中的数据传输有了大概的认识。