原理通俗解释
https://blog.csdn.net/Special23/article/details/54137298
上面三次握手图第二握手时中Ack=x=1笔误了 应该是Ack=x+1 既上次对端发送过来的seq+1
握手流程
[SYN]--> seq = 0
<--[SYN,ACK] seq =0 Ack=0+1
[ACK]-->seq = 1 Ack = 0+1
seq = 不一定等于0 那握手公式变成
[SYN]--> seq = x
<--[SYN,ACK] seq =y Ack=x+1
[ACK]-->seq = 1 Ack = y+1
挥手流程
[FIN]--> seq = u
<--[ACK] seq = v Ack = u+1
<--[FIN ACK] seq = w Ack = u+1
[ACK]-->seq = u+1 Ack = w+1
握手抓包解析
https://cloud.tencent.com/info/47be7829f802a6edca6e834720e12d95.html
了解TCP协议端口的连接状态,对排除和定位网络或系统故障会有很大帮助,因此了解一下是有必要的:
一、LISTENING
提供某种服务,侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LISTENING状态,端口是开放的,等待被连接。
二、SYN_SENT (客户端状态)
客户端调用connect,发送一个SYN请求建立一个连接,在发送连接请求后等待匹配的连接请求,此时状态为SYN_SENT.
三、SYN_RECEIVED (服务端状态)
在收到和发送一个连接请求后,等待对方对连接请求的确认,当服务器收到客户端发送的同步信号时,将标志位ACK和SYN置1发送给客户端,此时服务器端处于SYN_RCVD状态,如果连接成功了就变为ESTABLISHED,正常情况下SYN_RCVD状态非常短暂。
四、ESTABLISHED
ESTABLISHED状态是表示两台机器正在传输数据。
五、FIN-WAIT-1
等待远程TCP连接中断请求,或先前的连接中断请求的确认,主动关闭端应用程序调用close,TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态。
六、FIN-WAIT-2
从远程TCP等待连接中断请求,主动关闭端接到ACK后,就进入了FIN-WAIT-2 .这是在关闭连接时,客户端和服务器两次握手之后的状态,是著名的半关闭的状态了,在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据,但是也有一种可能是,客户端一直处于FIN_WAIT_2状态,而服务器则一直处于WAIT_CLOSE状态,而直到应用层来决定关闭这个状态。
https://www.cnblogs.com/jessezeng/p/5617105.html
七、CLOSE-WAIT
等待从本地用户发来的连接中断请求 ,被动关闭端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT.
八、CLOSING
等待远程TCP对连接中断的确认,处于此种状态比较少见。
九、LAST-ACK
等待原来的发向远程TCP的连接中断请求的确认,被动关闭端一段时间后,接收到文件结束符的应用程序将调用CLOSE关闭连接,TCP也发送一个 FIN,等待对方的ACK.进入LAST-ACK。
十、TIME-WAIT
在主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认,很大程度上保证了双方都可以正常结束,但是也存在问题,须等待2MSL时间的过去才能进行下一次连接。
十一、CLOSED
被动关闭端在接受到ACK包后,就进入了closed的状态,连接结束,没有任何连接状态。
附TCP正常连接建立和终止所对应的状态图
状态迁移过程:
a、客户端:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
b、服务端
CLOSED->LISTEN->SYN_RECEIVED->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSE
在众多状态中,经常关注的有两个:TIME_WAIT、CLOSE_WAIT。
分享到:
相关推荐
首先,来详细介绍TCP三次握手的过程: 1. 第一次握手:客户端发送一个带有SYN(同步序列编号)标志的数据包给服务器端,进入SYN_SEND状态,表示客户端希望与服务器建立连接。这个包中同时也会包含客户端的初始...
在TCP/IP通信中,TCP连接的建立和关闭过程分别称为三次握手和四次挥手,这两个过程对于理解TCP连接的工作原理至关重要。 首先,我们来详细讲解TCP的三次握手过程: 1. **第一次握手**:客户端(Client)发送一个...
### Wireshark抓包分析TCP三次握手四次挥手详解及网络命令 #### 一、OSI与TCP/IP体系结构模型 在深入理解Wireshark抓包分析TCP三次握手及四次挥手之前,我们首先需要了解OSI七层模型与TCP/IP四层/五层模型的基础...
TCP三次握手和四次挥手是互联网中最重要的基础知识点之一,尤其在面试中,它们是检验应聘者是否具备扎实网络基础知识的常用问题。面试官通常会考察应聘者对这些过程的理解程度,以及能否准确描述其细节。以下是关于...
Wireshark 抓包分析 TCP“三次握手,四次挥手” Wireshark 是一个功能强大的网络抓包工具,通过它我们可以抓包并分析 TCP/IP 传输过程。在本文中,我们将通过 Wireshark 来抓包和分析 TCP“三次握手,四次挥手”...
标题中的“TCP三次握手PPT”指的是TCP协议在建立连接时执行的三次握手过程,这一过程是TCP可靠传输的基础。TCP是一种面向连接的传输层协议,确保数据在传输前双方已建立可靠的通信链路。 描述中提到的“TCP三次握手...
### TCP三次握手与四次挥手详解 #### 一、TCP简介 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它是Internet中最核心的协议之一,几乎所有的网络...
TCP 三次握手与四次挥手 TCP/IP 协议中,建立连接协议是三次握手,而关闭连接是四次挥手。下面我们详细地解释这两种握手机制的知识点。 三次握手 在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手...
描述TCP三次握手,四次挥手的过程的图片
### TCP 三次握手详解 #### 一、三次握手的基本概念 TCP(Transmission Control Protocol,传输控制协议...以上就是TCP三次握手、四次挥手及其11种状态的详细介绍。这些基础知识对于理解和分析网络通信问题至关重要。
在HTTP通信过程中,TCP的三次握手和四次挥手起着至关重要的作用,确保了连接的建立和终止的正确性。下面将详细解释这两个过程。 ### 三次握手 三次握手是为了在客户端和服务器之间建立一个可靠的连接。具体步骤...
TCP 三次握手及四次挥手详细图解 TCP 三次握手是指建立一个 TCP 连接时,需要客户端和服务器总共发送 3 个包。三次握手的目的是连接服务器指定端口,建立 TCP 连接,并同步连接双方的序列号和确认号并交换 TCP 窗口...
TCP 报文分析--三次握手四次挥手 TCP 报文分析是计算机网络中的重要内容, TCP(Transmission Control Protocol)是一种面向连接的传输控制协议,它提供了可靠的数据传输服务。在这个过程中,三次握手和四次挥手是 ...
传输控制协议,TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接,文档介绍TCP三次握手和4次挥手过程以及详细实例介绍,
### TCP三次握手与四次挥手详解 #### 一、TCP协议简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在计算机网络中,TCP用于在应用程序之间提供...
"TCP三次握手和四次挥手详解" TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过三次握手和四次挥手来确保连接的建立和终止。 一、TCP 三次握手 TCP 三次握手是指在客户端和...
如本案例所示,可以通过编写C语言的服务器端程序和C#的客户端程序来模拟TCP的连接和断开过程,同时使用Wireshark这样的网络抓包工具,可以直观地观察到三次握手和四次挥手的网络交互细节,这对于理解TCP协议的工作...
### TCP三次握手与四次挥手详解 #### 一、TCP协议概述 TCP(Transmission Control Protocol,传输控制协议)是互联网中最关键的协议之一,属于OSI模型中的第四层——传输层。TCP是一种面向连接的、可靠的、基于...