通过三次握手建立端到端的虚链路? TCP3次握手、4次断开规则

TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,它通过三次握手来建立连接,而通过四次挥手来断开连接。在计算机网络的参考模型中,TCP 属于传输层,与应用层(如HTTP、FTP)、网络层(如IP)、数据链路层(如MAC)和物理层(如以太网)共同构成了网络通信的基础。 在完成传输层的基本工作之上,还需要进一步的保障传输的可靠性。面向连接:通过TCP的三次握手建立端到端的虚链路可靠传输:4种可靠机制 --- 确认、重传、排序、流控(滑动窗口)

三次握手建立连接:1. 第一次握手:客户端向服务器发送一个 SYN(同步)包,其中包含客户端选择的初始序列号(ISN)。此时客户端进入 SYN_SENT 状态。2. 第二次握手:服务器收到客户端的 SYN 包后,向客户端发送一个 SYN/ACK(同步确认)包,其中确认号是客户端的 ISN + 1,同时也包含服务器自己选择的 ISN。此时服务器进入 SYN_RCVD 状态。3. 第三次握手:客户端收到服务器的 SYN/ACK 包后,向服务器发送一个 ACK(确认)包,确认号是服务器的 ISN + 1。此时客户端和服务器都进入 ESTABLISHED 状态,连接建立成功。

四次断开连接:1. 第一次挥手:客户端发送一个 FIN(结束)包,表示客户端没有数据要发送了,想要关闭连接。此时客户端进入 FIN_WAIT_1 状态。2. 第二次挥手:服务器收到客户端的 FIN 包后,发送一个 ACK 包进行确认。此时服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。3. 第三次挥手:服务器完成数据发送后,向客户端发送一个 FIN 包,表示服务器也没有数据要发送了,想要关闭连接。此时服务器进入 LAST_ACK 状态。4. 第四次挥手:客户端收到服务器的 FIN 包后,发送一个 ACK 包进行确认。此时客户端进入 TIME_WAIT 状态,经过一段时间(通常为 2 倍的最大段生存期)后进入 CLOSED 状态,服务器收到客户端的 ACK 包后直接进入 CLOSED 状态,连接关闭。三次握手的目的是为了确保通信双方都具备发送和接收数据的能力,并协商初始序列号等参数,从而建立可靠的连接。四次断开是为了确保双方都能正确地关闭连接,处理可能还未传输完成的数据。

下面是举例说明

三次握手建立连接:
 就好比两个人打电话。
 第一次握手:A 给 B 打电话说“我能跟你说话吗?”,这时候 A 准备好接收 B 的回应。
 第二次握手:B 接到电话说“我能听到,那你能听到我说话吗?”,B 也准备好跟 A 交流了。
 第三次握手:A 回应“我能听到”,这时候 A 和 B 就都知道线路通了,可以交流了。
 在网络中,客户端就像 A,服务器就像 B,通过这样三次交流,就建立了可靠的连接,能开始传数据啦。

四次断开连接:

 还是用打电话来比喻。第一次断开:A 说“我说完啦,我要挂电话了”。 第二次断开:B 说“好的,我知道你要挂了,但我还有点话没说完”。第三次断开:B 说完了自己剩下的话,然后说“我也说完了,你挂吧”。第四次断开:A 收到 B 说完的消息,然后就把电话挂了,连接彻底断开。在网络中,客户端和服务器通过这样四次交流,就安全地断开了连接。

LISTEN:等待从任何远端TCP 和端口的连接请求。
 
SYN_SENT:发送完一个连接请求后等待一个匹配的连接请求。
 
SYN_RECEIVED:发送连接请求并且接收到匹配的连接请求以后等待连接请求确认。
 
ESTABLISHED:表示一个打开的连接,接收到的数据可以被投递给用户。连接的数据传输阶段的正常状态。
 
FIN_WAIT_1:等待远端TCP 的连接终止请求,或者等待之前发送的连接终止请求的确认。
 
FIN_WAIT_2:等待远端TCP 的连接终止请求。
 
CLOSE_WAIT:等待本地用户的连接终止请求。
 
CLOSING:等待远端TCP 的连接终止请求确认。
 
LAST_ACK:等待先前发送给远端TCP 的连接终止请求的确认(包括它字节的连接终止请求的确认)
 
TIME_WAIT:等待足够的时间过去以确保远端TCP 接收到它的连接终止请求的确认。
TIME_WAIT 两个存在的理由:
          1.可靠的实现tcp全双工连接的终止;
          2.允许老的重复分节在网络中消逝。
 
CLOSED:不在连接状态(这是为方便描述假想的状态,实际不存在)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值