007_wireshark分析TCP的三次握手和四次断开
要想进行抓包分析,必须先了解TCP的原理。这里介绍了TCP的建立连接的三次握手和断开连接的四次握手。
一、前言:介绍三次握手之前,先介绍TCP层的几个FLAGS字段,这个字段有如下的几种标示
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。
二、三次握手的步骤
(1)第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机; (2)第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包; (3)第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。
从抓包分析中可以很清晰的看到TCP三次握手,下图就是完整的三次握手,客户端41826端口和服务器的80端口建立了连接

三、tcp断开连接的四次握手
(1)tcp断开连接有两种方式,第一种是正常的四次握手断开的,第二种是RST异常断开的.

假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。
所以你先发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息"。这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,
则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,
所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,
则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!
(2)用抓包来看断开连接的四次握手
下图中的四个箭头就是标准的四次握手了。 1.首先服务器80端口想41826端口发出FIN的断开连接请求
2.然后第二个箭头41826收到请求之后想服务器80端口回复了一个ACK
3.接着第三个箭头41826向服务器80端口发送断开请求FIN
4.最后第四个箭头,服务器80向客户端发送断开的回复ACK
这样四次握手之后,服务器和客户端都确认了断开连接,可以看到断开连接是双向的。

(3)RST异常关闭连接
有时候也会出现异常断开连接的情况,也就是RST,比如说下图,服务器80向客户端32875发送断开请求FIN,客户端也通过这条链路回复了ACK,但是此时还有数据需要发送,所以没有急着回复FIN,
而是先将get请求发送出去,发送了get请求之后再发送的断开请求FIN,但是此时服务器不知道什么原因在没有确认客户端的确认前就断开了,所以在接到get请求之后,返回了一个RST,异常断开了这条链路。

Reference:
https://osqa-ask.wireshark.org/questions/20423/pshack-wireshark-capture
TCP三次握手wireshark抓包分析{https://blog.csdn.net/u014530704/article/details/78842000}
007_wireshark分析TCP的三次握手和四次断开的更多相关文章
- TCP/IP 三次握手,四次断开
TCP/IP 三次握手,四次断开 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷 本. 下面是TCP报文格式图: 图 ...
- 抓包分析TCP的三次握手和四次握手
问题描写叙述: 在上一篇<怎样对Android设备进行抓包>中提到了,server的开发者须要我bug重现然后提供抓包给他们分析.所以抓好包自己也试着分析了一下.发现里面全是一些TCP协议 ...
- 使用 WireShark 分析 TCP/IP 三次握手 和 四次挥手
TCP 三次握手 示意图 Wireshark 抓包注意事项 为了演示一个TCP三次握手建立连接的过程,我们通过 Chrome 访问一个网页. 已知 HTTP 协议就是建立在TCP链接上的 比如访问以下 ...
- 抓包分析TCP的三次握手和四次分手
一:三次握手 三次的握手的过程是: 1.由发起方HostA向被叫方HostB发出请求报文段,此时首部中的同步位SYN=1,同时选择一个序列号seq=x.TCP规定,SYN报文(即SYN=1的报文段)不 ...
- TCP协议三次握手、四次断开 过程分析
建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:
- TCP/IP三次握手,四次断开
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: SYN: ...
- WireShark抓包分析以及对TCP/IP三次握手与四次挥手的分析
WireShark抓包分析TCP/IP三次握手与四次挥手 Wireshark介绍: Wireshark(前称Ethereal)是一个网络封包分析软件.功能十分强大,是一个可以在多个操作系统平台上的开源 ...
- TCP的三次握手与四次挥手
TCP的三次握手与四次挥手 一.TCP(Transmission Control Protocol 传输控制协议) TCP是面向对连接,可靠的进程到进程通信的协议 TCP是提供全双工服务,即数据可在同 ...
- 【图解】给面试官解释TCP的三次握手与四次挥手-Web运用原理及网络基础
作者 | Jeskson 来源 | 达达前端小酒馆 轻松了解HTTP协议 为什么要学习网络协议呢?为什么要学习计算机完了呢?显然这很重要,至少能够帮助你找到工作的原因之一,学习网络知识点太多太多,没有 ...
随机推荐
- UOJ143 万圣节的数列 构造
传送门 做过这道题,然后这道题告诉你怎么构造数据-- 一种可行的构造方式是:将奇数和偶数分成两半,奇数放在偶数前面,然后除以2,再递归下去处理. 构造的正确性是显然的:如果存在"奇数偶数奇数 ...
- 深入研究EF Core AddDbContext 引起的内存泄露的原因
前两天逛园子,看到 @Jeffcky 发的这篇文章<EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下>. 一开始只是粗略的扫了一遍没仔细看,只是觉得是多次 ...
- C#模板设计模式使用和学习心得
模板设计模式: 模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种: 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现. 模版方法:由抽象类 ...
- Scrapy命令行详解
官方文档:https://doc.scrapy.org/en/latest/ Global commands: startproject genspider settings runspider sh ...
- OracleSql语句学习(五)
--数据库对象数据库对象包含:表,视图,索引,序列视图VIEN视图在SQL语句中体现的角色与表一样,但是视图并非真实存在的表,它只是对应一条查询语句的结果集 使用视图通常是为了重用子查询,简化SQL语 ...
- jmeter beanshell 中使用map
1.使用第三方jar包的时候可以放在lib目录下也可以放在lib/ext目录下,放在这两个目录都可以引用jar包成功,通过引用json的jar包在另个目录都实验过成功. 2.通过学习知道可以在bean ...
- Shiro限制登录尝试次数
/** * 认证信息.(身份验证) : Authentication 是用来验证用户身份 * * @param token * @return * @throws AuthenticationExce ...
- ASUS RT-AC68U 刷梅林固件及安装***插件记录(详细)
本文借鉴网络并亲自刷机过程记录(网上很多教程都不太详细) 版本:华硕ASUS RT- AC68U Wireless-AC1900 路由器的连接方式略,有说明书 连好后打开浏览器输入:http:/ ...
- MySQL之InnoDB数据页结构(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
InnoDB为了不同的目的而设计了不同类型的页,我们把用于存放记录的页叫做数据页. 一个数据页可以被大致划分为7个部分,分别是 File Header,表示页的一些通用信息,占固定的38字节. Pag ...
- 使用Spring表达式语言进行装备--SpEL
本文主要想记录最近的两个使用spring框架实现通过配置文件装备Bean,以及使用SpEL装备Bean. 1.使用配置文件装备Bean: 当我们写某些Bean的时候是希望这个Bean当中的属性是可以通 ...