【网络基础实战之路】一文弄懂TCP的三次握手与四次断开

系列文章传送门:

【网络基础实战之路】设计网络划分的实战详解

【网络基础实战之路】一文弄懂TCP的三次握手与四次断开

【网络基础实战之路】基于MGRE多点协议的实战详解

【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解

【网络基础实战之路】基于三个分公司的内网搭建并连接运营商的实战详解

【网络基础实战之路】实现RIP协议与OSPF协议间路由交流的实战详解

【网络基础实战之路】基于BGP协议连接三个AS区域的实战详解

【网络基础实战之路】基于BGP协议中的联邦号连接三个AS区域的实战详解

【网络基础实战之路】基于MPLS-VPN技术实现两个私网间互通的实战详解

【网络基础实战之路】一文带你学懂BGP协议的命令配置

【网络基础实战之路】VLAN技术在两个网段中的实际应用详解

【网络基础实战之路】基于三层架构实现一个企业内网搭建的实战详解

【网络基础实战之路】带你回忆STP生成树的前世今生

文章目录:

一、TCP协议

二、三次握手——建立连接

三、四次断开——结束连接

一、TCP协议

TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通行方式。

旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

TCP具有下列特点的通信方式:

(1)基于流的方式;

(2)面向连接;

(3)可靠通信方式;

(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;

(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

二、三次握手——建立连接

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

11db942d17d4412c98a51db27b626cfc.png

1、客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SENT状态。

2、服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。

3、客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,就可以开始传输数据了。

三、四次断开——结束连接

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭造成的。具体过程如下:

64f550694c7c44dca36bd36b7f244a46.png

1、某个应用进程首先调用close,称该端执行“主动关闭”)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。

2、接收到这个FIN的对端执行 “被动关闭”,这个FIN由TCP确认。

PS:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。

3、一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。

4、接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

需要注意的是:无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某些协议,例如,HTTP/1.0却由服务器执行主动关闭。

就是因为TCP的三次握手和四次断开,给TCP传输带来了可靠性---确认,重传,排序,流控。

都看到这里了,创作不易,大家点个赞再走啦!!- ̗̀(๑ᵔ⌔ᵔ๑)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TCP三次握手是在建立TCP连接时的一种协议确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。它的过程如下: 1. 客户端向服务端发送一个SYN包,其中包含客户端的初始序列号。 2. 服务端收到SYN包后,回复一个ACK包和一个SYN包,其中ACK包确认收到了客户端的SYN包,而SYN包包含服务端的初始序列号。 3. 客户端收到服务端的ACK包和SYN包后,回复一个ACK包,确认收到了服务端的SYN包。 而TCP四次挥手是在断开TCP连接时的一种协议,需要客户端和服务端总共发送4个包以确认连接的断开。它的过程如下: 1. 客户端发送一个FIN包,表示客户端不再发送数据。 2. 服务端收到FIN包后,回复一个ACK包,表示已经收到了客户端的FIN包。 3. 服务端发送一个FIN包,表示服务端也不再发送数据。 4. 客户端收到FIN包后,回复一个ACK包,表示已经收到了服务端的FIN包。 通过三次握手建立连接和四次挥手断开连接的过程,TCP协议能够提供可靠的字节流服务,确保数据的准确无误地送达目的地。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [一文搞懂TCP三次握手四次挥手](https://blog.csdn.net/m0_38106923/article/details/108292454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祺祺祺有此理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值