ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TCP协议( 三次握手四次挥手)

TCP协议( 三次握手四次挥手) 一、TCP协议核心介绍TCP全称传输控制协议是互联网中最核心的传输层协议主打稳定、可靠日常上网、聊天、传文件、浏览网页基本都依靠TCP传输数据。1. 四大核心特点面向连接TCP通信不是直接发数据必须先“建连接”再“传数据”最后“断连接”。就像打电话必须先拨通再说话最后挂电话不能直接隔空喊话。面向字节流TCP不认识“数据包”它把所有传输数据当成一串连续、无边界的字节流水。会自动把超长数据拆分、短小数据合并并用序列号给每一个字节编号保证数据不乱序、不重复、不丢失。对比UDP是面向报文发一个就是一个包不会拆分合并可靠传输通过专属机制百分百保证数据无误、不丢失、不乱序、不重复。核心保障机制三次握手、四次挥手、超时重传、序列号确认。全双工通信建立连接后客户端和服务器可以同时互相发数据互不干扰。2. 基础参数TCP最小传输数据单元段Segment二、三次握手建立TCP连接1. 核心目的通信双方互相确认对方收发能力正常同步双方初始序列号建立一条稳定、可靠的双向通信通道。2. 通俗场景类比打电话第一次我问你能听到吗第二次你回我能听到你能听到我吗第三次我回你我也能听到正式开始聊天3. 完整流程带状态第一次握手客户端→服务端客户端发送SYN请求报文携带自己的初始编号seqx进入等待连接状态SYN_SENT。通俗理解客户端主动申请和服务器建立连接。第二次握手服务端→客户端服务器收到请求后回复SYNACK确认报文自带编号seqy确认号ackx1进入接收连接状态SYN_RECV。通俗理解服务器同意连接并告诉客户端我收到你的请求了。第三次握手客户端→服务端客户端收到回复后发送ACK确认报文seqx1、acky1。双方正式进入已连接状态ESTABLISHED可以正常传输数据。三、四次挥手断开TCP连接1. 核心原理因为TCP是全双工通信收、发是两条独立通道不能一次性双向断开。必须分别确认“客户端发完数据”和“服务器发完数据”双向通道全部关闭后才能彻底断开连接避免数据残留、数据丢失。2. 完整流程带状态第一次挥手客户端→服务端客户端数据全部发完发送FIN结束报文序列号sequ进入FIN-WAIT-1状态。通俗理解客户端我没数据要发了我要关闭我的发送通道。第二次挥手服务端→客户端服务器回复ACK确认报文acku1进入CLOSE-WAIT状态客户端收到后进入FIN-WAIT-2状态。此时进入半关闭状态客户端不能发数据但还能接收服务器剩余数据服务器可继续传未发完的数据。第三次挥手服务端→客户端服务器剩余数据全部传输完毕发送FIN结束报文seqw、acku1进入LAST-ACK状态。通俗理解服务器我也没数据了我也要关闭我的发送通道。第四次挥手客户端→服务端客户端发送ACK确认报文sequ1、ackw1。服务器收到后立刻关闭连接CLOSE状态客户端进入TIME-WAIT状态等待2MSL后彻底关闭连接。3. 关键知识点为什么要等待2MSL① 保证最后一次ACK确认报文能成功送达服务器避免报文丢失导致服务器无法正常关闭② 等待网络中旧连接的残留过期数据全部消散防止干扰新的连接。四、核心专业名词通俗详解最终解释汇总1. SYN全称Synchronize Sequence Numbers同步序列号核心作用专门用来发起连接请求白话解释就是一句“我想和你建立连接”。只在三次握手建连时使用用来同步双方的起始数据编号。2. ACK全称Acknowledgment确认应答核心作用告诉对方“我收到你的消息了”白话解释所有回复报文几乎都带ACK。ackx1 的意思是我已经收到你编号x之前的所有数据下一次我需要接收x1编号的数据。3. FIN全称Finish结束、完成核心作用专门用来申请断开连接白话解释就是一句“我这边数据发完了我要关通道了”。只在四次挥手断连时使用。4. 附加高频标识考试/工作常用RSTReset重置强制断开连接用于异常断连网络崩溃、端口错误PSHPush推送不缓存数据立刻把数据交给应用程序URGUrgent紧急标记紧急数据优先传输处理五、终极速记口诀SYN 求连接握手专用ACK 已收到万能回复FIN 发完了挥手断连专用三次握手建连接四次挥手断双通字节流无边界可靠传输不丢包。
返回列表