【计算机网络实验 ——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目标端口无法到达。

计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议相关推荐

  1. 网络基本功(二十四):Wireshark抓包实例分析TCP重传

    转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 前文论述了TCP基础知识,从本节开始,通过TCP抓包实例来诊断TCP常见问题 ...

  2. Wireshark抓包——qq分析

    Wireshark抓包qq分析 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用Wi ...

  3. wireshark抓包日志分析--洗号空闲超时案例

    wireshark抓包日志分析 数千线高并发压测时,asr_ring洗号服务报错Session idle too long,意思是洗号这边一直没有收到音频数据直到超时报错.由于缺失日志线索,只能通过w ...

  4. 计算机网络实验二抓包协议分析,计算机网络实验-使用Wireshark分析TCP和UDP协议...

    <计算机网络实验-使用Wireshark分析TCP和UDP协议>由会员分享,可在线阅读,更多相关<计算机网络实验-使用Wireshark分析TCP和UDP协议(6页珍藏版)>请 ...

  5. 计算机网络【wireshark抓包分析】

    一个完整的三次握手就是:请求(SYN) - 应答(SYN+ACK) - 再次确认(SYN).完成三次握手,客户端与服务器开始传送数据. 实验流程: 1.首先我们打开wireshark软件的主界面,在主 ...

  6. Wireshark抓包示范:TCP三次握手建立连接和四次握手断开连接

    转载请标注: 披萨大叔的博客 http://blog.csdn.net/qq_27258799/article/details/51379508 如果您觉得这篇文章对您有帮助,请点下文章最下面的赞~ ...

  7. 网络基本功(二十三):Wireshark抓包实例诊断TCP连接问题

    转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 前文论述了TCP基础知识,从本节开始,通过TCP抓包实例来诊断TCP常见问题 ...

  8. Wireshark抓包实例诊断TCP连接问题

    转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese   介绍   前文论述了TCP基础知识,从本节开始,通过TCP抓包实例来诊断TCP ...

  9. 【极客思考】计算机网络:Wireshark抓包分析TCP中的三次握手与四次挥手

    [前提说明] 前段时间突然看到了一篇关于TCP/IP模型的文章,心想这段时间在家里也用wireshark抓了点包,那么想着想着就觉得需要复习一下网络知识,于是就有这篇博文的诞生.当然网上关于TCP相关 ...

最新文章

  1. 马云/牛根生经典语录
  2. 大话存储pdf 百度网盘_学用系列亲身体验百度网盘内测在线文档,有遗憾也有期待...
  3. c语输入单引号_C语言的printf不能用单引号?
  4. 领略ES10的新功能
  5. 数据分析与挖掘建模实战003:单因子探索分析与可视化001数据案例介绍
  6. 如何检查PAL安装的功能
  7. Java学习之正则表达式
  8. Linux下SVN客户端使用教程(全)
  9. 四叶草配置工具Clover Configurator for Mac
  10. .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  11. MySQL数据库通过data文件夹恢复数据库信息
  12. teststand 2020|ni teststand 2020(测试管理软件) 附安装教程
  13. windows server2008 安装iscsi服务
  14. 软件破解高手常用的破解工具介绍
  15. VM虚拟机(VMware)设置外网连接
  16. delmatch oracle_Oracle ERP 技术探讨
  17. 移动互联应用开发基础知识简答
  18. 德州扑克 java 算法_德州扑克算法幕后研发者:AI如何打败顶级人类牌手?
  19. BZOJ2844:albus就是要第一个出场——题解
  20. 微信小程序的冥冥中拥有的小细节

热门文章

  1. Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表
  2. 苹果白屏一直显示苹果_苹果一直白屏怎么办?试试这个办法
  3. 通达OA:2015年注定是不平凡的一年
  4. 兔老大的系统设计(一)健康度系统
  5. 如何快速发表职称论文
  6. 共享文件夹w7和服务器系统区别,w7服务器怎样共享文件夹共享文件夹
  7. JAVA 实现《角色扮演侦探》游戏
  8. JavaScript学习过程
  9. 如何在论文中画出漂亮的插图?
  10. 百度地图完全模仿链家找房,三级下钻联动聚合,画圈找房!