关于TCP协议——三次握手与四次断开

引言:

         在数字世界的幕后,TCP(Transmission Control Protocol)协议是确保可靠数据传输的关键角色。它的核心特性之一就是著名的“三次握手”和“四次挥手”过程,这两个概念对于理解网络通信的基石至关重要。本文将深入探讨这两个过程,揭示它们如何保证网络连接的安全和有效。

正文:

1、TCP协议简介

        TCP(Transmission Control Protocol(传输控制协议))是一种面向连接的、可靠的、基于字节流的传输层通信协议。它是互联网协议栈(TCP/IP协议族)的重要组成部分,被广泛应用于各种网络应用,如HTTP、FTP、SMTP等,以确保数据的可靠传输。其中TCP与IP协议(Internet Protocol)一起工作,IP负责将数据包从源主机传输到目标主机,而TCP则负责在两个应用程序之间建立和维护连接,确保数据的正确传输。在OSI模型中,TCP位于传输层,为上层的应用流层提供服务。

2、 三次握手:建立连接

第一次握手:客户端发起请求** 当客户端想要与服务器建立连接时,它发送一个SYN(同步序列号)包,包内包含一个随机的初始序列号A。此时,客户端进入SYN_SENT状态,等待服务器的确认。

注:(SYN_SENT状态:SYN_SENT是TCP连接建立过程中的一个状态,它表示客户端(发起连接的一方)已经发送了一个SYN(同步序列号)包给服务器,但还没有收到服务器的确认回复。在这个状态下,客户端正在等待服务器的SYN+ACK响应。)

第二次握手:服务器确认并请求** 服务器接收到SYN包后,不仅确认客户端的序列号A(发送ACK=ACK+A+1),还发送自己的SYN包,携带另一个随机序列号B。服务器现在进入SYN_RECEIVED状态,等待客户端的确认。

注:(SYN_RECEIVED状态:SYN_RECEIVED是TCP连接建立过程中的一个中间状态,它表示服务器已经收到了客户端的SYN(同步序列号)报文段,但还没有收到客户端对服务器SYN+ACK报文段的确认。在这个状态下,服务器正等待客户端的ACK(确认)。

第三次握手:客户端确认服务器** 客户端收到服务器的SYN+ACK包后,发送一个纯ACK包,确认服务器的序列号B+1。至此,双方都有了彼此的序列号,连接建立完成,客户端和服务器进入ESTABLISHED状态,可以开始数据传输了。

注:(ESTABLISHED状态:ESTABLISHED状态是TCP连接建立成功后的状态,表示通信的双方——客户端和服务器——都已经准备好并且正在通过连接交换数据。在ESTABLISHED状态下,TCP连接将持续保持开放,直到一方或双方决定关闭连接,这时就会进入关闭连接的四次挥手过程。)

3、四次断开:结束连接

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。

第一次断开:客户端发起关闭: 当数据传输完成后,客户端发送一个FIN(结束)包,告诉服务器它不再发送数据,但仍然可以接收数据。

第二次断开:服务器确认关闭请求: 服务器收到FIN包后,发送一个ACK包,确认客户端的关闭请求,但可能还会有一些数据需要发送给客户端。

第三次断开:服务器关闭其方向的连接: 服务器发送完所有剩余数据后,也会发送一个FIN包给客户端,表示它也准备关闭连接。

第四次断开:客户端确认并最终关闭: 客户端收到服务器的FIN包后,发送ACK作为确认,然后进入TIME_WAIT状态。在此状态下,客户端等待一段时间以确保服务器接收到ACK,之后客户端关闭连接。

注:(TIME_WAIT状态:TIME_WAIT是TCP连接关闭后的一个状态,它表明一个TCP连接在主动关闭连接的一方(通常是客户端)已经发送了最终的ACK(确认)报文段)

结论:

         三次握手和四次挥手是TCP协议确保连接建立和终止的可靠方式,它们确保了双方都能正确理解和响应对方的状态变化。这种严谨的交互模式虽然增加了延迟,但换取了网络通信的高可靠性,是互联网上无数应用和服务的基础

参考:

https://img0.baidu.com/it/u=1945538167,2575160724&fm=253&fmt=auto&app=138&f=JPG?w=712&h=500

https://img-blog.csdnimg.cn/afdc2ff702ca499bacf7671c1c4e64a9.jpeg 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值