您的位置:首页 > 健康 > 美食 > 做电商需要准备多少钱_建设有限公司_上海网络推广公司_怎么百度推广

做电商需要准备多少钱_建设有限公司_上海网络推广公司_怎么百度推广

2025/4/19 13:42:02 来源:https://blog.csdn.net/weixin_43724673/article/details/147246953  浏览:    关键词:做电商需要准备多少钱_建设有限公司_上海网络推广公司_怎么百度推广
做电商需要准备多少钱_建设有限公司_上海网络推广公司_怎么百度推广

TCP(传输控制协议)是一种面向连接的、可靠的传输层协议,其连接的建立和释放过程通过三次握手四次挥手实现。以下是详细流程:


一、TCP连接建立(三次握手)

目的:确保双方(客户端和服务器)的发送和接收能力正常,并同步初始序列号(ISN)。

  1. 第一次握手(SYN)

    • 客户端发送一个SYN=1(同步位)的报文,并随机生成一个初始序列号seq=x
    • 客户端进入SYN-SENT状态。
  2. 第二次握手(SYN + ACK)

    • 服务器收到SYN后,回复SYN=1ACK=1(确认位),并生成自己的初始序列号seq=y
    • 确认号ack=x+1(表示期望收到客户端的下一个数据包序号)。
    • 服务器进入SYN-RCVD状态。
  3. 第三次握手(ACK)

    • 客户端收到SYN+ACK后,发送ACK=1,确认号ack=y+1,序列号seq=x+1
    • 服务器收到后,双方进入ESTABLISHED状态,连接建立完成。

关键点

  • 前两次握手后,服务器已确认客户端的发送能力和自己的接收能力正常;第三次握手后,客户端确认双方的收发能力均正常。
  • ISN(初始序列号)是动态生成的,防止历史连接冲突。

二、TCP连接释放(四次挥手)

目的:双方安全关闭连接,确保数据完整传输。

  1. 第一次挥手(FIN)

    • 主动关闭方(如客户端)发送FIN=1,序列号seq=u(等于已发送数据的最后一个字节序号+1)。
    • 客户端进入FIN-WAIT-1状态。
  2. 第二次挥手(ACK)

    • 被动关闭方(如服务器)收到FIN后,发送ACK=1,确认号ack=u+1
    • 服务器进入CLOSE-WAIT状态,客户端收到后进入FIN-WAIT-2状态。
    • 此时服务器可能仍有未发送完的数据(半关闭状态)。
  3. 第三次挥手(FIN)

    • 服务器完成数据发送后,发送FIN=1,序列号seq=v(可能因数据传输而增长)。
    • 服务器进入LAST-ACK状态。
  4. 第四次挥手(ACK)

    • 客户端收到FIN后,发送ACK=1,确认号ack=v+1,序列号seq=u+1
    • 客户端进入TIME-WAIT状态,等待2MSL(最大报文段生存时间)后关闭连接。
    • 服务器收到ACK后立即关闭连接。

关键点

  • TIME-WAIT的作用
    • 确保最后一个ACK到达服务器(若丢失,服务器会重传FIN)。
    • 让网络中残留的旧报文失效,避免影响新连接。
  • 若服务器同时关闭连接(如收到FIN后无剩余数据),可能合并为三次挥手(第二次和第三次合并)。

三、常见问题

  1. 为什么握手是三次,挥手是四次?

    • 握手时,服务器的SYNACK可合并发送;但挥手时,服务器可能仍有数据需发送,需先ACKFIN
  2. TIME-WAIT为什么是2MSL?

    • 确保足够时间让最后一个ACK到达,并让网络中旧报文消失(MSL是报文最大生存时间)。
  3. SYN洪泛攻击:攻击者伪造大量SYN报文但不完成握手,耗尽服务器资源。解决方案:SYN Cookie机制。


通过三次握手和四次挥手,TCP实现了可靠的双工连接管理,确保数据传输的完整性和有序性。

以下是TCP连接建立(三次握手)和释放(四次挥手)的示意图,使用ASCII字符绘制:


TCP三次握手(连接建立)

客户端(Client)                            服务器(Server)|                                          ||-------------- SYN (seq=x) ------------> ||  (SYN_SENT)                              |  (LISTEN)|                                          ||<----- SYN+ACK (seq=y, ack=x+1) --------- ||                                          |  (SYN_RCVD)|                                          ||----------- ACK (ack=y+1) --------------> ||  (ESTABLISHED)                           |  (ESTABLISHED)|                                          |

TCP四次挥手(连接释放)

客户端(主动关闭)                        服务器(被动关闭)|                                          ||-------------- FIN (seq=u) ------------> ||  (FIN_WAIT_1)                            |  (CLOSE_WAIT)|                                          ||<------------- ACK (ack=u+1) ------------ ||  (FIN_WAIT_2)                            ||                                          ||<------------ FIN (seq=v) --------------- ||                                          |  (LAST_ACK)|                                          ||------------- ACK (ack=v+1) ------------> ||  (TIME_WAIT) ───等待2MSL──> 关闭          |  (CLOSED)|                                          |

关键标注说明

  1. 三次握手

    • SYN:同步序列号(seq=x/y)。
    • ACK:确认号(ack=x+1/y+1)。
    • 第三次握手后,双方进入ESTABLISHED状态。
  2. 四次挥手

    • 主动关闭方发送FIN后进入FIN_WAIT_1,收到ACK后进入FIN_WAIT_2
    • 被动关闭方发送FIN后进入LAST_ACK,收到ACK后立即关闭。
    • 主动关闭方需等待2MSL(确保最后一个ACK到达)。

可视化要点

  • 箭头方向:表示报文传输方向。
  • 状态标注:括号内为通信双方的状态变化。
  • TIME-WAIT:仅主动关闭方需要等待,防止报文丢失或混淆。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com