一个tcp连接的建立需要进行三次握手:
1.发送端发送一个SYN=1,ACK=0标志位数据包给接收端,请求进行连接,这是第一次握手;
2.接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;
3.最后,发送端发送一个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连接建立,开始通讯。
4.
标志解释:
SYN:同步标志
同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把 TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。
ACK:确认标志
确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。
RST:复位标志
复位标志有效。用于复位相应的TCP连接。
URG:紧急标志
紧急(The urgent pointer) 标志有效。紧急标志置位,
PSH:推标志
该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理 telnet 或 rlogin 等交互模式的连接时,该标志总是置位的。
ECE: 显示拥塞提醒回应
CWR: 拥塞窗口减少
FIN:结束标志
带有该标志置位的数据包用来结束一个TCP回话,但对应端口仍处于开放状态,准备接收后续数据。
//------------------------------------------------------------------------------------------
它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有 DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。
tcp断开连接要进行四次握手
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A(报文段6)。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
- 大小: 12.4 KB
- 大小: 21.6 KB
分享到:
相关推荐
卷3《TCP/IP详解:TCP事务协议》聚焦于TCP的事务处理,如TCP的三次握手和四次挥手过程,这是建立和断开TCP连接的关键步骤。同时,这本书也探讨了TCP的性能优化和异常情况处理,以及TCP与其他应用层协议的交互。 ...
TCP 连接状态详解 TCP 连接状态是指在 TCP 协议中,连接的不同阶段所对应的状态。这些状态包括 LISTEN、SYN-SENT、SYN-RECEIVED、ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、CLOSE-WAIT、CLOSING、LAST-ACK、TIME-WAIT...
《Cacti 0.8.7i 监控TCP连接详解》 Cacti是一款开源的网络监控和图形绘制工具,广泛应用于网络管理员和IT专业人员中,用于收集、存储、展示网络设备的性能数据。在Cacti 0.8.7i版本中,监控TCP连接是一项重要的功能...
【网络协议分析与TCP连接详解】 网络协议分析是网络管理员和IT专家常用的一种技术,用于理解和诊断网络通信问题。本文将深入探讨如何使用协议分析器,特别是Ethereal软件,来分析TCP连接的建立、数据传输和释放过程...
《TCP-IP详解卷一:协议》是网络通信领域的一本经典著作,深入解析了TCP/IP协议族的核心概念和技术。TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网的基础,它定义了电子设备如何互相连接并...
书中涵盖了TCP、UDP和 ICMP的实现细节,如连接建立与释放、拥塞控制、超时重传等机制。此外,还涉及了多路复用、多播、网络安全性等方面的内容,对于理解网络编程实践非常有帮助。 卷三:《TCP/IP详解:TCP事务协议...
关于TCP服务器最大并发连接数有一种误解就是“因为端口号上限为65535,所以TCP服务器理论上的可承载的最大并发连接数也是65535”。 先说结论:对于TCP服务端进程来说,他可以同时连接的客户端数量并不受限于可用端口...
在MIT App Inventor环境下,TCP连接组件是一种强大的工具,它允许开发者创建应用程序,这些应用程序能够通过TCP(传输控制协议)与远程服务器进行通信。MIT App Inventor是一个基于块的编程平台,特别适合初学者和...
6. **TCP连接建立与终止**:TCP的三次握手和四次挥手过程是连接管理的关键。三次握手确保了连接的可靠性,而四次挥手则确保了连接的正确关闭,防止半开连接。 7. **IP分片与重组**:当数据包过大无法通过某些网络时...
《TCP/IP详解》系列是网络通信领域的经典之作,由W. Richard Stevens著,全面而深入地探讨了TCP/IP协议族的各个层面。本系列分为三卷,每卷都包含了丰富的技术知识,对于理解网络通信机制及其应用至关重要。 卷1:...
Linux 下 TCP 连接迁移技术 - TCPCP 详解 Linux操作系统作为一种广泛使用的开源操作系统,在服务器端的稳定性和可靠性至关重要。为了提高服务器的性能和可靠性,负载均衡技术被广泛应用。TCP 连接迁移是一种基于 ...
### TCP-IP详解卷2:实现.pdf #### 经典TCP/IP卷2 **TCP/IP**(Transmission Control Protocol/Internet Protocol)是互联网的核心协议之一,它定义了数据在网络中的传输方式以及路由寻址机制。本章节将从给定文档...
深入TCP/IP实现细节,TCP连接的建立和拆除过程中“三次握手”和“四次挥手”的机制保证了通信双方的状态同步和数据的完整传输。拥塞控制算法如慢启动、拥塞避免等策略,则是防止网络过载和保障通信质量的重要手段。...
第18章 TCP连接的建立与终止 174 第19章 TCP的交互数据流 200 第20章 TCP的成块数据流 209 第21章 TCP的超时与重传 226 第22章 TCP的坚持定时器 245 第23章 TCP的保活定时器 251 第24章 TCP的未来和性能 256 第25章 ...
TCP提供面向连接的、可靠的数据传输服务,而UDP则是无连接的、不可靠的服务,适用于实时应用。 3. **网络层**:这一层的核心协议是IP(Internet Protocol),它负责数据包的路由选择和网络互连。此外,还涉及到ICMP...
《TCP服务器与W5500芯片的通信实践——基于两块W5500的TCP连接详解》 在物联网和嵌入式系统领域,网络通信是不可或缺的一部分,而TCP/IP协议栈则作为网络通信的基础,被广泛应用于各种设备之间。本教程将深入探讨...
7. **TCP连接建立与释放**:TCP通过三次握手建立连接,确保双方都准备好进行通信。而四次挥手则用于释放连接,防止“半开连接”问题。 8. **TCP滑动窗口机制**:TCP使用滑动窗口来控制发送和接收速率,避免数据拥塞...
TCP连接的建立过程称为三次握手(Three-Way Handshake)。首先,客户端发送一个带有SYN标志的TCP报文段给服务器,请求建立连接。服务器接收到后回应一个SYN+ACK报文段,确认并提出自己的连接请求。最后,客户端再次...
《TCP/IP详解第三卷》是网络通信领域的一本经典著作,深入探讨了TCP/IP协议族的高级主题。这本书是整个TCP/IP详解系列的第三部分,旨在帮助读者理解TCP/IP协议的深层次工作原理和实现细节。在这一卷中,作者不仅介绍...
TCP连接的建立采用三次握手(Three-way Handshake)的方式。首先,客户端发送一个SYN(同步序列编号)报文给服务器,请求建立连接。服务器收到后,回应一个SYN+ACK(确认)报文,同时也会设置自己的序列号。最后,...