wireshark抓包分析TCP数据包
1、直接从TCP的三次握手开始说起
三次握手就是客户与服务器建立连接的过程
- 客户向服务器发送SYN(SEQ=x)报文,然后就会进入SYN_SEND状态
- 服务器收到SYN报文之后,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,然后就会进入SYN_RECV状态
- 客户收到服务器的SYN报文,回应一个ACK(ACK=y+1)报文,然后就会进入Established状态
图片来自百度百科
举例时间到!我们把客户端比作男生,服务器比作女生
第一次握手就像是男生对女生的告白:我喜欢你我们在一起吧。(之后,男孩就要等待女孩的回复,因为要确定女孩听到他说的话)
第二次握手则是女生的回应:好呀好呀。(之后,女孩也要等待,因为要确定男孩听到她的答复)
第三次握手就是男生的回应:真好,我们去吃火锅吧~。(此时,两人都确定对方收到了消息,关系成功建立)
也就是客户端和服务器数据的传输
接下来,我们抓包分析一下三次握手建立的过程
第一次握手:我向服务器发送了SYN,并设置Seq=0(x),请求与服务器建立连接
第二次握手:服务器向我回应了SYN,并设置Seq=0(y),ACK=1(x+1)
第三次握手:我收到服务器的SYN报文,回应一个ACK=1(y+1)
2、再接着说说四次挥手
四次挥手就是客户与服务器断开连接的过程
- 客户发送一个FIN,断开与服务器的连接
- 服务器收到FIN,回应一个ACK,确认序号为收到的序号加1
- 服务器关闭客户端的连接,并发送一个FIN
- 客户回发ACK确认,并将确认序号设置为收到序号加1
图片来自百度百科
又到了举例时间!我们同样把客户端比作男生,服务器比作女生
第一次挥手:随着时间的流逝,女生变了,于是男生给女生发了分手短信,然后等待女生的回复
第二次挥手:女生听到后,伤心欲绝,就告诉男生:分手就分手,我把你的东西收拾收拾都还给你。男生就知道了女生同意了分手,于是等待女生把东西收拾好交还给他
第三次挥手:女生把男生的东西都收拾好,给男生发了第二条短信让他来取
第四次挥手:男生收到后,在回复最后一条短信,我知道了,我现在去取。于是关系断了
也就是客户端和服务器的连接中断
接下来,抓包看一下四次挥手的过程
第一次挥手:我向服务器发送FIN,Seq=3092,Ack=183
第二次挥手:服务器回发了ACK,Seq=183,Ack=3093
第三次挥手:服务器发送FIN,Seq=183,Ack=3093
第四次挥手:我向服务器回复了ACK,Seq=3093,Ack=184
3、TCP报文段格式分析
话不多说,直接上图
wireshark抓包分析
源端口和目的端口:各占16位,这两个字段分别填入发送该报文段应用程序的源端口号和接收该报文段的应用程序的目的端口号
序列号:占32位,TCP连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号:占32位,表示期望收到对方下一个报文段的第一数据字节的序号。
数据偏移:占4位,又称首部长度。指出首部的长度,即数据离开报文段开始的偏移量。
保留:占6位,留待后用,目前置为0
标志:占6位,又称控制字段,各位都有特定意义
- 紧急URG,表示本报文数据的紧急程度,URG=1表示本报文具有高优先级
- 确认ACK,ACK=1时,确认号字段才有意义
- 推送PSH,PSH=1时,表示请求接收端TCP将本报文段立即送往其应用层
- 复位RST,RST=1时,表示TCP连接中出现了严重错误,必须释放传输连接,而后在重建
- 同步SYN,该位在连接建立时使用,起着序号同步的作用
- 终止FIN,用来释放一个链接
窗口:占16位,该字段用于流控制
校验和:占16位,该字段的校验范围是整个报文段(包括首部和数据)
紧急指针:占16位,当URG=1时有意义,指出紧急数据的末尾在报文段中的位置,使得接收端能知道紧急数据的字节数
选项与填充:最长可达40B
wireshark抓包分析TCP数据包相关推荐
- Java抓包+分析网络数据包
Java抓包+分析网络数据包 本程序基于java语言,需安装winpcap和配置Jpcap.jar库文件(需要的可以评论留下邮箱),成功实现了对本主机网卡接口的显示和网络数据包的抓取,并调用函数对 ...
- Wireshark抓取疯狂聊天数据包
Wireshark抓取疯狂聊天数据包 一.准备工作 二.开始聊天 三.wireshark进行抓包 (一)抓取数字信息数据包 (二)抓取中文数据包 (三)抓取英文数据包 四.总结 五.参考资料 一.准备 ...
- wireshark抓取聊天网络数据包
wireshark抓取聊天网络数据包 一.实验任务 二.实验步骤 三.总结 总结 一.实验任务 据包.在两台及两台以上的电脑(已知IPv4地址)上运行 "疯狂聊天室"程序,通过wi ...
- wireshark抓包分析ping数据包
目录 1.抓取数据包 2.ping request数据包解析 2.1 ICMP 2.2 传输层 2.3 以太帧 2.3 数据链路层 3. ping reply数据包解析 1.抓取数据包 先用管理员权限 ...
- WireShark利用telnet分析指定数据包信息
1.首先WireShark,点击文件-打开-添加给定的数据包 2.在绿色框里检索telnet协议 3.由于检索信息过多,我们任意右键一条检索信息,右键-追踪流-TCP流,即可显示telnet携带信息( ...
- jpcap抓包,TCP数据包逻辑分析,TCP数据包解析
1.jpcap抓包 https://github.com/kumqu/java-jpcap 2.TCP逻辑分析 3.TCP数据包解析 3.1 数据包解析源码 import com.alibaba.fa ...
- Wireshark数据包分析之数据包信息解读
*此篇博客仅作为个人笔记和学习参考 数据包概况 Frame:物理层的数据帧概况; EthernetⅡ:数据链路层以太网帧头部信息; Internet Protocol Version 4:互联网层IP ...
- python数据包分析_packet_analysis: 数据包分析工具
功能 读取pcap包,打印详细的icmp/tcp/udp协议 读取pcap包或网络接口 1. 打印详细的tcp会话/udp报文数据,目前支持mysql/pgsql/smtp/ftp/redis/mon ...
- wireshark分析TCP数据包
TCP/IP协议不清楚请回看TCP/IP协议理论 在虚拟机运行ubuntu,通过windows下的cuteftp连接ubuntu,利用wireshark进行抓包分析.出现如下数据帧(注意wiresha ...
最新文章
- css设置元素继承父元素宽度_CSS设置超链接A标签宽度和高度
- 【转】Visio画用例模型图竟然没有include关系
- 跟恶意插件的较量:手工清除Orzhz广告程序
- 【技术综述】深度学习在自然语言处理中的应用发展史
- Winform中使用FastReport的DesignReport时怎样设置Table的size自动调整
- osg::PositionAttitudeTransform旋转物体
- 如何在idea中使用Mybatis-generator插件快速生成代码
- linux内核那些事之物理内存模型之FLATMEM(1)
- js打印线程id_浅谈python中的多线程和多进程(二)
- 实现多国语言的几个小知识
- (转)Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
- 高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用...
- C++递归或非递归实现求斐波拉契数列第n项
- 苹果回应:iPhone 11用北斗导航作为位置数据系统一部分;马云回应年轻人去做快递小哥;Linux Lab发布v0.5 rc3| 极客头条
- 一个通配符引起的错误
- SSM框架(Spring + Spring MVC + Mybatis)搭建
- C++11 std::function类模板
- linux离线安装系统工具arping
- 复现KM3D:Monocular 3D Detection with Geometric Constraints Embedding and Semi-supervised Training
- linux pv信息写在哪里,pv命令详情|linux - 爱资料工具