首页 > 其他分享 >网络为什么要三次握手四次挥手?

网络为什么要三次握手四次挥手?

时间:2024-04-24 17:25:11浏览次数:24  
标签:挥手 ACK 握手 四次 服务器发送 序列号 FIN 连接 客户端

三次握手和四次挥手是 TCP 协议中建立和终止连接时的标准流程,其设计的目的是确保数据的可靠传输和连接的安全关闭。

三次握手(Three-way Handshake)

  1. 客户端发送 SYN: 客户端向服务器发送一个 SYN(同步)包,表示请求建立连接,并指定初始序列号(Sequence Number)。

  2. 服务器发送 SYN+ACK: 服务器收到 SYN 包后,向客户端发送一个 SYN+ACK 包,表示接受连接请求,并指定自己的序列号(初始序列号+1),同时也确认了客户端的序列号。

  3. 客户端发送 ACK: 客户端收到 SYN+ACK 包后,向服务器发送一个 ACK 包,表示确认服务器的确认,并指定自己的序列号(初始序列号+1),连接建立完成。

三次握手的目的是确保双方的通信能力和双向信道都是正常的,避免因为网络延迟或其他问题导致建立的连接无法正常通信。

四次挥手(Four-way Handshake)

  1. 客户端发送 FIN: 客户端向服务器发送一个 FIN(结束)包,表示请求关闭连接。

  2. 服务器发送 ACK: 服务器收到 FIN 包后,向客户端发送一个 ACK 包,表示确认收到关闭请求。

  3. 服务器发送 FIN: 服务器向客户端发送一个 FIN 包,表示服务器也准备关闭连接。

  4. 客户端发送 ACK: 客户端收到服务器的 FIN 包后,向服务器发送一个 ACK 包,表示确认收到关闭请求。

四次挥手的目的是确保双方都能够确认关闭连接,并且在关闭之前,双方都有机会发送剩余的数据。这样可以保证数据的完整性和可靠性,避免因为连接的突然断开导致数据丢失或不完整。

总的来说,三次握手和四次挥手是 TCP 协议设计的核心机制,用于确保连接的建立和关闭过程的可靠性和安全性。通过这些流程,可以有效地保障数据的可靠传输和连接的安全关闭。

       

标签:挥手,ACK,握手,四次,服务器发送,序列号,FIN,连接,客户端
From: https://www.cnblogs.com/yongheng999/p/18155905

相关文章

  • TCP 三次握手与四次挥手面试题(计算机网络)
    TCP基本认识TCP头格式有哪些?  序列号:在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。确认应答号:指下一次「期望」收到的数据的序列号,发送端收到这个确认应......
  • 说说TCP为什么需要三次握手和四次挥手?
    一、三次握手三次握手(Three-wayHandshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备过程如下:第一次握手:客户端给服务端发一个SYN报文,并指明客......
  • 计网:TCP三次握手和四次挥手
    老生常谈的问题,直接参考连接:https://zhuanlan.zhihu.com/p/108504297(存在部分问题,配合下面CSDN)https://blog.csdn.net/m0_56649557/article/details/119492899 自己需要记住的点:三次握手:第一次:客户端:只有SYN置1,发送seq=J第二次:服务端:SYN和ACK都置1,......
  • 前端系列-三次握手
     客户端和服务器端的交互简单过程:seq=xseq=yack=x+1seq=y+1 第一次握手(SYN)客户端(Client)向服务器(Server)发出一个带有SYN标志的数据段,其中包含一个随机序列号seq=x(x为随机生成的数字)。1Client->Server:SYN(seq=x)第二次握手(SYN+ACK)服务器接收到客户端的SYN数......
  • 使用QR分解 求一元四次方程的根
            在求特征值的时候,通过QR迭代后就是一个拟上三角矩阵,但不一定是上三角矩阵。        在一定条件下,由QR算法生成的序列{Ak}收敛为Schur分块上三角形,对角块按特征值的模从大到小排列。但有特殊情况,当收敛结果为Schur分块上三角形时,序列{Ak}的对角块以上......
  • HTTPS ECDHE 握手解析(计算机网络)
    使用了ECDHE,在TLS第四次握手前,客户端就已经发送了加密的HTTP数据,而对于RSA握手过程,必须要完成TLS四次握手,才能传输应用数据。所以,ECDHE相比RSA握手过程省去了一个消息往返的时间,有点「抢跑」的意思,它被称为是「TLSFalseStart」,跟「TCPFastOpen」有点像,都是在......
  • tcp三次握手
    tcp是可靠的传输协议。为什么这么说?首先我们得了解一下他的报文格式。源端口号和目的端口号,数据根据这两个端口号决定发给哪个应用。2.序号,只是让包有序一点而已。3.确认序列呢。顾名思义,就是确认对方有没有收到。如果对方没收到,要重新发送,直到送达。解决丢包问题的。4.还......
  • 山东大学23强基班计算机导论第四次习题答案
    T7.1#include<iostream>usingnamespacestd;intmain(){intlower,upper;cin>>lower>>upper;if(lower>upper||upper>100||lower<=0){cout<<"Invalid.";return0;}......
  • TCP三次握手、四次挥手出现意外情况时,如何保证稳定可靠?
    TCP作为一个靠谱的协议,在传输数据的前后,需要在双端之间建立连接,并在双端各自维护连接的状态。TCP并没有什么特别之处,在面对多变的网络情况,也只能通过不断的重传和各种算法来保证可靠性。建立连接前,TCP会通过三次握手来保证双端状态正确,然后就可以正常传输数据了。当数据传......
  • 面试必问-TCP三次握手
    三次握手过程1.客户端处于close状态,向服务器发送建立连接的请求SYN和初始序列号2.服务器处于LISTEN状态,收到客户端发来的请求后回复SYN,服务器的初始序列号,ACK和确认应答序号为客户端初始序列号+1,服务器变为SYN_REVD状态3.客户端收到服务器后,恢复ACK和确认应答号为服务器初......