当前位置:   article > 正文

计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议_利用wireshark分别在udp和tcp服务器端进行抓包,分析报文的交互流程。

利用wireshark分别在udp和tcp服务器端进行抓包,分析报文的交互流程。

【计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议】

(1)分析 TCPheader:
在这里插入图片描述

Source Port:16bit源端口,数据发起者的端口号;
Destination Port:16bit目的端口,数据接收方的端口号;
Sequence Number:32bit的序列号,由发送方使用;
Acknowledgment Number:32bit的确认号,接收数据方返回给发送方的通知,会在确认号的基础上加1;
Data Length:4bit头部长度,TCP头部长度一般为20字节,若TCP头部的Options选项启用,则会增加;
下面一部分为TCP的功能bit:
Reserved、Reserved、Nonce、CWR、ECN-Echo:共6bit的保留功能,留待以后开发新技术时使用;
URG:1bit紧急指针位,取值1代表这个数据是紧急数据需加速传递,取值0代表这是普通数据;
ACK:1bit确认位,取值1代表这是一个确认的TCP包,取值0则不是确认包;
PSH:1bit紧急位,取值1代表要求发送方马上发送该分段,而接收方尽快的将报文交给应用层,不做队列处理。取值0阿迪表这是普通数据;
RST:1bit重置位,当tcp收到一个不属于该主机的任何一个连接的数据,则向对方发一个复位包,此时该位取值为1,若取值为0代表这个数据包是传给自己的;
SYN:1bit请求位,取值1代表这是一个TCP三次握手的建立连接的包,取值为0就代表是其他包;
FIN:1bit完成位,取值1代表这是一个TCP断开连接的包,取值为0就代表是其他包;
Window Size:16bit窗口大小,表示准备收到的每个TCP数据的大小;
Checksum:16bit的TCP头部校验,计算TCP头部,从而证明数据的有效性;
Urgent Pointer:16bit紧急数据点,当功能bit中的URG取值为1时有效;(参考:TCP中URG和PSH以及Urgent Point的作用及区别)
Options:TCP的头部最小20个字节。如果这里有设置其他参数,会导致头部增大;
Padding:当TCP头部小于20字节时会出现,不定长的空白填充字段,填充内容都是0,但是填充长度一定会是32的倍数;
Data:被TCP封装进去的数据,包含应用层协议头部和用户发出的数据。

wireshark抓包:
在这里插入图片描述

(2)分析TCP的建立过程(三次握手):

wireshark抓包:
在这里插入图片描述

第1次握手:
   (Client) –> [SYN] –> (Server)
  假如Client和Server通讯. 当Client要和Server通信时,Client首先向Server发一个SYN (Synchronize) 标记的包,告诉Server请求建立连接。
  
第2次握手:
  (Client) <– [SYN/ACK] <–(Server)
  接着,Server收到来自Client发来的SYN包后,会发一个对SYN包的确认包(SYN/ACK)给Client,表示对第一个SYN包的确认,并继续握手操作。

第3次握手:
  (Client) –> [ACK] –> (Server)
  Client收到来自Server的SYN/ACK 包,Client会再向Server发一个确认包(ACK),通知Server连接已建立。至此,三次握手完成,一个TCP连接完成。

三次握手建立连接示图:
在这里插入图片描述

(3)分析TCP的连接释放过程:

wireshark抓包:
在这里插入图片描述

四次握手用来关闭已建立的TCP连接
  1. (Client) –> ACK/FIN –> (Server)
  2. (Client) <– ACK <– (Server)
  3. (Client) <– ACK/FIN <– (Server)
  4. (Client) –> ACK –> (Server)

四次关闭建立连接示图:
在这里插入图片描述

*由于TCP连接是双向连接, 因此关闭连接需要在两个方向上做。ACK/FIN 包(ACK 和FIN 标记设为1)通常被认为是FIN(终结)包。然而, 由于连接还没有关闭, FIN包总是打上ACK标记。

(4)跟踪TCP数据传输过程中的seq、ack字段

在Client端发送数据:
在这里插入图片描述
wireshark抓包:
在这里插入图片描述
·传输分析:
第一次Client端向服务端发送了一个len=3字节数据(aaa一共3个字节),且seq=1,即第一个数据在wireshark的相对表示中起始位置为1,因超时重传该数据包;
Server端收到后,经历一次丢包和重传,返回ack=4(表示数据1、2、3均成功收到);seq=1,表示自己即将传输数据的相对起始位置为1,接着Server端返回3字节内容,ack=4,(期待收到数据从4开始),同时seq=1,表示数据从序号1开始。

(5)分析TCP重传、checksum等:
TCP重传:
1.TCP Out_of_Order的原因分析:
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元。

2.TCP Retransmission原因分析:
很明显是上面的超时引发的数据重传。

3.TCP dup ack XXX#X原因分析:
就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。

4.checksum:
Checksum为16bit的TCP头部校验,计算TCP头部,从而证明数据的有效性;
由上图可知,重传报文checksum为 0xb9fd。

(6)分析UDP header:
在这里插入图片描述
source port: 源端口号,占16位,2个字节 ;
dest port: 目的端口号,占16位,2个字节 ;
length: 此字段标记了整个数据报(UDP的首部+UDP数据)的最大长度 ;
checksum: 检验和,此字段用处是用来检查收到地数据的对错的,如果校验和出错,就会直接丢弃 。

(7)TCP server端关闭,client发送报文:
在这里插入图片描述
Tcp Client发出syn报文,但由于Server端未开启,目的端口发送RST报文通知源端口连接关闭;源端口会重复几次尝试连接直至源端口程序报错,停止连接。

(8)UDP server端关闭,client发送报文:
在这里插入图片描述
UDPServer仍能发送报文,但由于UDPServer端已关闭,故无法得到回应;此时icmp协议会返回消息差错通知,并告知源端口that目标端口无法到达。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/639223
推荐阅读
相关标签
  

闽ICP备14008679号