ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

wireshark抓包分析

2022-05-23 10:31:57  阅读:176  来源: 互联网

标签:分析 字节 seq ack 应答 TCP 数据包 抓包 wireshark


wireshark抓包分析

TCP协议概述

面向连接的,可靠的,基于字节流的传输层通信协议。

TCP连接的3个阶段

  • 3次握手
  • 数据传输
  • 4次挥手

基本概念

  • Seq(Sequence Number),标识在某个连接上传输的字节数;注意,syn和fin报文会占用一个序号。
  • Ack ,标识在某个连接上接收到的字节数;注意,ack的值等于发送方下一个报文的seq的值。

wireshark相关知识

  1. Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节。
  2. 在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位。
  3. TCP数据包中,seq表示这个包的序号,注意,这个序号不是按1递增的,而是按tcp包内数据字节长度加上,如包内数据是21字节,而当前IP1发到IP2的包的seq是10的话,那下个IP1发到IP2的包的seq就是10+21=31。
  4. 注意我们分析tcp包时,要以一个会话做为一个完整对象,即通讯只发生在两个IP之间,两个固定的端口之间,如果端口变化了,那链接就不是同一条了,不同的链接之间的seq是没有关联的。
  5. tcp包分为包头的内容,tcp的包头长度是32字节,整个数据包的包头是66字节(不一定的),如果整个数据包是66字节的话,那内容长度就是0。
  6. 每个tcp包都带有win、ack,这些是告诉对方,我还可以接收数据的滑动窗口是多少,如果A发到B的包的win为0,就是A告诉B说我现在滑动窗口为0了,饱了,你不要再发给我了,就说明A端环境有压力(如带宽满了等)。
  7. ack可以理解为应答。A发给B的ack是告诉B,我已收到你发的数据包,收到ack号这里了,你下次要发seq为ack号的给我。
  8. 在网络不堵即滑动窗口一点都不堵的情况下,第一个包的ack号就是第二个包的seq号,如果堵了,由于是滑动窗口缓存处理队列,所以这个值会错开
  9. 如果A发到B连续几个包,seq号不变,ack号一直在变大,说明A一直在收B的数据,一直在给B应答。
  10. 如果A发到B连续几个包,seq号一直变大,ack号一直没变,说明A一直在向B发数据,不用给B应答,而是在等B的应答。
  11. 可以接收多个数据包后,一次性给一个应答,不用每个数据包一一对应给应答。
  12. 发了一个包,很久没有收到应答后,会重发包,在Wireshark抓包工具提示“[TCP Retransmission]”,在数据包详情窗口点开可以看到是对哪个数据包的重传。
  13. [TCP Dup ACK ?#?],表示应答包的重传。
  14. 如果出现这个错误“[TCP Previous segment not captured]”,说明乱序了,前一个包没有收到,收到后面的包了,这时也会重传包。

注意

  1. wireshark 中,我们看第一个包的seq和ack都是0,这是wireshark为了方便阅读将序号重0开始计算(没有改变实际值),我们看到有字段里有两个带RAW的字段,它们才是序号真实的值。
  2. wireshark 中,四次挥手一般表现为3个报文,[FIN,ACK] - [FIN,ACK] - [ACK],因为第二个报文结合了FIN和ACK两个步骤。

标签:分析,字节,seq,ack,应答,TCP,数据包,抓包,wireshark
来源: https://www.cnblogs.com/dewan/p/16300257.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有