【新星计划-2023】TCP三次握手和四次挥手讲解

这篇具有很好参考价值的文章主要介绍了【新星计划-2023】TCP三次握手和四次挥手讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于TCP三次握手和四次挥手,各位想必在读大学的时候或者是在面试的时候一定遇到过,三次握手和四次挥手本身是不是太难的,但它容易忘😞,今天我就在这里给大家讲解一下三次握手与四次挥手。

一、三次挥手

【新星计划-2023】TCP三次握手和四次挥手讲解

TCP三次握手建立连接,是TCP数据传输的必要过程。流程大致分为以下几步:

1、刚开始,客户端服务器都处于CLOSED状态。

2、服务端创建传输控制块(TCB),时刻准备客户进程的连接请求,处于LISTEN监听状态。

3、第一次握手

客户端将TCP报文的标志位SYN置为1,随机产生一个序号值SEG=x保存在TCP首部序列号字段里,然后指明客户端打算连接的服务器端口,并将数据包发送给服务器端。发送完毕后,客户端进入SYN-SEND状态。

4、第二次握手

服务端收到数据包后,由标志位SYN=1确认了客户端要请求建立连接。于是,服务端将TCP报文的标志位SYN和确认应答号ACK都置为1请求号ACK=x+1(表示序列号为x的消息已经接收了,下一次传输的序列号为X+1),再随机产生一个序号值SEA=y,然后将该数据包发送给客户端以确认连接请求。这时,服务端进入SYN-RCVD状态。

5、第三次握手

客户端收到服务端的确认后,检查ACK是否为x+1,ACK是否为1,如果正确则将确认应答ACK置为1,请求号ack=y+1(表示序列号为v的消息已经接收了,下一次传输的序列号为V+1),并将数据包发送给服务器。服务器端检查ACK是否为y+1ACK是否为1,如果正确则成功建立连接。客服端和服务器都进入ESTABLISHED状态,三次握手结束,客户端和服务器可以开始传输数据了。

在上述过程中,还有一些重要的概念:

①半连接

收到SYN包,但还未收到ACK包时的连接状态称为半连接,即尚未完全完成三次握手的TCP连接,处于第一次握手之后,第三次握手之前。

②半连接队列

在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认后。这些条目所标识的连接在服务器处于SYN-RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。

通俗又简单的来说就是:

Client(客户端):嘿,李四,是我,听到了吗?

Server(服务器端):我听到了,你能听到我的吗?

Client(客户端):好的,我们互相都能听到对方的话,我们的通信可以开始了。

二、四次挥手

当数据传输完成后,为了节省服务器的资源和网络开销,需要进行断连

简单理解为:电话打完了,需要我们手动进行挂电话的操作。

【新星计划-2023】TCP三次握手和四次挥手讲解

当客户端和服务器端都是连接状态时:

1、第一次挥手

客户端不想再进行数据传输了,就发起一条挥手请求,将TCP报文的标志位FIN=1设置序列号SEQ为随机数x。此时,客户端进入FIN-WAIT-1状态;

2、第二次挥手

服务器端收到客户端的FIN数据报,知道客户端不再发送数据了。于是返回一条ACK确认消息,表示同意客户端的关闭请求,然后服务器端进入CLOSE-WAIT状态。当客户端收到服务器端的确认消息后,进入FIN-WAIT-2状态,等待服务器端的连接结束;

3、第三次挥手

服务器端发送数据完毕后,给客户端发送标志位为FIN的报文段,请求关闭连接,并进入LAST-ACK状态;

4、第四次挥手

当客户端收到FIN报文段之后,再向服务器端回复标志位为ACK的应答消息,然后进入TIME-WAIT状态,当等待2MSL(报文的最大存活时间,后面会详细讲解)后还没收到回复,证明服务器端已经正常关闭,于是客户端进入CLOSED状态。而服务器端在收到客服端的ACK报文段以后,就关闭连接,直接进入CLOSED状态。

通俗又简单的来说就是:

Client(客户端):我所有东西都说完了。

Server(服务器端):我已经全部听到了,但是等等我,我还没说完。

Server(服务器端):好了,我已经说完了。

Client(客户端):好的,那我们的通信结束。

 文章来源地址https://www.toymoban.com/news/detail-449358.html

到了这里,关于【新星计划-2023】TCP三次握手和四次挥手讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP的三次握手和四次挥手······详解

    三次握手是 建立连接 的过程 如图大致为三次握手的流程图: 当客户端对服务端发起连接时,会 先发一个包 连接请求数据,去询问能否建立连接,该数据包称为 “SYN”包 然后,如果对方同意连接,那么对方将会回复一个 “SYN+ACK”包 客户端收到后,回复一个 “ACK”包 ,连

    2024年02月09日
    浏览(40)
  • TCP中的三次握手和四次挥手

    TCP中的连接和断开可以说是在面试中经常被问到的问题之一,正好有空就总结一下,首先回顾一下TCP的相关知识点 1.1 TCP的基本概念 我们知道TCP是运输层的面向连接的可靠的传输协议。 面向连接的 ,指的就是在两个进程发送数据之前,必须先相互“握手”,确保两进程可以

    2024年02月03日
    浏览(49)
  • tcp 三次握手和四次挥手报文分析

     报文抓取如下: 三段报文分析: 第一次:26-96报文交互 Seq-num = 567391014, ACK_NUM = 0; flags = SYN 第二次:96-26报文交互 Seq-num = 416352681,  ACK_NUM = Seq-num + 1 =567391014 +1 =567391015, flags = ACK + SYN,   第三次:26-96报文交互 Seq-num= ACK_NUM= 567391015, ACK_NUM = seq-num +1= 416352681+ 1 = 416352682, flags

    2024年02月04日
    浏览(51)
  • TCP协议的三次握手和四次挥手

    完整的TCP内容,请参考RFC 9293 TCP协议为应用提供可靠的、有序的的字节流服务。TCP是面向连接的,提供了全双工的通信。TCP使用端口号来识别应用程序服务并在主机之间复用不同的流。 TCP header也像IP header一样,在header中提供了一些专门用于TCP的信息,TCP header之后就是用户数

    2024年02月06日
    浏览(40)
  • TCP的连接和建立(三次握手和四次挥手)

    ​ 1.TCP连接的建立 ​ 连接的建立,通常称为三次握手。 ​ ​ 建立连接前服务器处在收听状态。 ​ 第一步:客户机的TCP向服务器的TCP发送连接请求报文段。同步位 = 1。这时客户进程进入同步已发送状态。 ​ 第二步:服务器TCP收到连接请求报文段后,如同意建立连接,向客

    2024年02月16日
    浏览(39)
  • 面试题之TCP的三次握手和四次挥手

    TCP的三次握手: 一定由 客户端主动发起 的,发生在建立连接的过程中。 此过程发生在 客户端的connect()函数 和 服务器的accept()函数 之间。 第一次握手: 客户端向服务器发送一个 带有SYN标志的数据包 ,表示客户端请求建立连接。 并且客户端会 选择一个随机的序列号a 放在

    2024年02月07日
    浏览(42)
  • 详解TCP/IP的三次握手和四次挥手

    本文章讲解TCP/IP协议的三次握手和四次挥手的流程。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 TCP协议位于传输层,作用是提供可靠的字节流服务

    2024年02月09日
    浏览(42)
  • 【计算机网络】TCP 的三次握手和四次挥手

    TCP 是面向连接的,面向连接就是数据通讯的时候需要进行三次握手,断开通讯的时候需要进行四次挥手。 1.seq(sequence number),序列号,随机生成的 2.ack(acknowledgement number),确认号,ack=seq+1 3.ACK(acknowledgement),确定序列号有效 4.SYN(synchronous),发起新连接 5.FIN(FINISH),完成 TCP三次

    2024年02月10日
    浏览(44)
  • tcp的三次握手和四次挥手及相关面试题

    TCP的三次握手和四次挥手是计算机网络领域中非常经典的话题,通常在面试中也会被频繁提及。下面是一些可能会被问到的相关问题: 三次握手(Three-Way Handshake) 请解释TCP的三次握手过程。 为什么TCP需要进行三次握手而不是两次或四次? 三次握手中各个阶段的作用是什么

    2024年04月17日
    浏览(36)
  • Wireshark抓包分析TCP协议:三次握手和四次挥手

    面试中我们经常会被问到TCP协议的三次握手和四次挥手的过程,为什么总喜欢问这个问题呢? 其实我们平时使用的很多协议都是应用层协议,比如HTTP协议,https协议,DNS协议,FTP协议等;而应用层协议都是要基于传输层的两个协议之上的,也就是TCP协议和UDP协议。我们在使用

    2024年01月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包