实验四:UDP及TCP协议分析与验证
一、实验目的
1.学会使用Wireshark或其他抓包工具进行特定包抓取,并对包进行必要分析。
2.分析验证UDP协议首部信息。
3.分析验证TCP协议首部信息。
4.分析验证TCP连接建立与释放过程。
5.分析验证TCP协议的数据传输过程。
二、预计实验学时
2学时
三、实验步骤
1、UDP包捕获与分析:打开Wireshark,进行必要设置(非混杂模式以避免干扰,仅UDP包,达到设定的抓包数量后自动停止等),随机抓取两个UDP包,分别提取出包的UDP首部,分析出该包的源端口、目的端口、UDP数据包长度、该包是客户发给服务器方的还是相反等信息。
这个UDP包的源端口 Source port:54644
目的端口 Destination port:10505
UDP数据包长度 Length:99 (99字节)
这个UDP包是服务器方发给客的信息,因为,Src:172.20.68.43 而,本地IP地址为10.169.13.108
。
这个UDP包的源端口 Source port:63664
目的端口 Destination port:10019
UDP数据包长度 Length:136 (136字节)
这个UDP包也是服务器发给客户的信息。
2、TCP包捕获与分析:
1)打开浏览器到空白页。
2)打开Wireshark,进行必要设置(非混杂模式以避免干扰,仅TCP 80端口包),打开一个网页,等到捕获了打开该网页的所有数据包后,停止捕获。
3)对前10个包的序号seq及确认序号ack进行跟踪分析,看看他们是否与所学知识的变化情况一致。
答:一致。
4)随机抓取两个TCP包,分别提取出包的UDP首部,分析出该包的源端口、目的端口、TCP数据包长度、该包是客户发给服务器方的还是相反等信息。
这个TCP包的源端口 Source port: 52140
目的端 Destination port: 80 这是http客户机进程向服务器发起的TCP连接的端口号
TCP数据包长度 Header length:32bytes
该TCP包是客户发给服务器方的信息,因为Src :10.169.13.108 这是本地计算机的IP地址
。
这个TCP包的源端口 Source port: 80
目的端 Destination port: 52140
TCP数据包长度 Header length:28bytes
该TCP包是服务器方发给客户的信息,因为Dst :10.169.13.108 这是本地计算机的IP地址
5)通过设置过滤条件(IP地址为特定目的IP地址),找出一个TCP连接的完整通信信息。从中找出该连接建立时使用的数据包,分析其中相关信息,检验是否与所学一致。
以下为TCP连接三次握手具体过程:
第一次握手:52142>http 客户发出连接请求,标志位为SYN ,Seq=0
第二次握手:http>52141 服务器收到连接请求报文后,向客户发出确认报文段,标志位为SYN+ACK,Seq=0, Ack=1
第三次握手:52141>http 客户收到服务器确认报文段后向服务器发送连接请求确认报文段,标志位为ACK,Seq=1,Ack=1。
结论:从这一过程来看,跟所学的知识一致。
6)从中找出撤销该连接时使用的数据包,分析相关信息,检验是否与所学一致。判断该撤销过程采用了半关闭模式。
以下为TCP连接释放四次握手具体过程:
第一次握手:标志位为FIN+ACK,Seq=280,Ack=328。
第二次握手:标志位为ACK,Seq=328,Ack=281(seq+1),此时,TCP的连接处于半关闭状态。
第三次握手:标志位为FIN+ACK,Seq=328,Ack=281 (seq+1)
第四次握手:标志位为ACK,Seq=281 (seq+1),Ack=329。
结论:服务器在接收到客户连接释放请求报文之后发出确认,此时,服务器进入了CLOSE-WAIT(关闭状态),TCP服务器进程这时通知高层应用进程,因而从客户到服务器这个方向的连接就开始释放了,而从服务器到客户这个方向的连接并未关闭,所以这时,TCP连接处于半关闭状态。
3.总结TCP的连接建立、数据传输及连接撤消过程。
答:TCP连接要经过三次握手:
第一次握手、客户向服务器发出连接请求报文段;
第二次握手、服务器接收到连接请求报文段后,向客户发出确认报文段;
第三次握手、客户收到服务器的确认报文段后向服务器发送连接请求确认报文段,
此时,TCP连接已经建立。
TCP连接建立后就可以传输数据了,要知道,TCP提供的是可靠交付的传输,如果数据在传输过程中,出现差错,就需要进行数据重传;如果发生丢失或者超时传输,这时就需要自动重传请求ARQ来进行重新传输数据。
当数据传输结束后,通信双方都可以释放已经建立的TCP连接,而TCP连接释放要经过四次握手:第一次握手、客户先向服务器发出连接释放报文段,并停止再发送数据,主动关闭TCP连接;
第二次握手、服务器接收到连接释放报文段后向客户发出确认报文段,此时,TCP处于半关闭状态;
第三次握手、客户接收到确认报文段后进入终止等待状态,等待服务器发出的连接释放报文段,此时,若服务器已经没有数据发给客户,就向客户发出连接释放报文段,此时,服务器进入最后确认状态;
第四次握手、客户接收到服务器的连接释放报文段后向服务器发送连接释放确认报文段,此时,TCP连接还没有释放掉,在客户撤销相应的传输控制块TCB后,才结束本次TCP连接。