0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP协议连接的三次握手

星星科技指导员 来源:网络整理 作者:网络整理 2024-02-03 16:44 次阅读

tcp协议三次握手的作用

TCP协议的三次握手过程具有以下几个重要作用:

1. 确认双方的通信能力:通过三次握手,客户端与服务端能够确保彼此的网络连接是可用的。客户端发起的SYN报文和服务端返回的SYN+ACK报文都包含了对方的初始序列号和通信能力信息,通过互相确认这些信息,双方确认彼此的能力和正确性。

2. 同步双方的初始序列号:在TCP连接中,序列号用于标识每个数据段的位置。在三次握手的过程中,客户端和服务端会交换各自的初始序列号,并确认对方的序列号范围。这样,双方就能够同步序列号,为后续的数据传输和数据校验提供正确的依据。

3. 防止旧连接的建立:通过三次握手,能够防止旧连接的建立。由于网络通信是不可靠的,可能会出现数据包延迟、丢失和重复等情况。如果没有三次握手,旧的连接请求可能会在网络中滞留,导致后续的连接请求被误认为同一个旧连接的请求。通过三次握手,能够确保双方都对该连接进行了确认和同步,从而避免了旧连接的干扰。

4. 防止资源浪费:通过三次握手,可以避免服务端资源被无效请求浪费。服务端收到客户端的连接请求后,会分配一定的资源用于处理该连接。通过三次握手,可以确保只有真正的有效连接请求才会被服务端接受和处理,从而避免了资源的浪费和滥用。

TCP协议连接的三次握手

①服务器进程B被动打开连接,进入LISTEN(收听)状态,等待客户端发出请求

​ ②客户进程A主动打开连接,向B发送连接请求报文段(报文段不挟带数据),SYN=1,序号=x,进入SYN-SENT(同步已发送)状态 ​

③服务器进程B收到请求后,向A发送确认报文段(报文段不挟带数据),SYN=1,ACK=1,确认号=x+1,序号=y,进入SYN-RCVD(同步收到)状态 ​

④客户进程A收到确认后,向B发送确认报文段(报文段可以携带数据,不携带数据时不消耗序号,下一个序号依然是x+1),ACK=1,确认号=y+1,序号=x+1,进入ESTABLISHED(已建立连接)状态,B收到确认后,也进入ESTABLISHED状态

为什么A需要向B发送最后一个确认报文段:为了防止“已失效的连接请求报文段”突然又传到B发生错误,以至于B一直等待A发送数据,B的资源被浪费。

tcp协议三次握手的工作原理

TCP协议的三次握手是建立一个可靠连接的过程,其工作原理如下:

1. 客户端发送SYN报文:客户端(Client)首先向服务端(Server)发送一个SYN(同步序列编号)报文。该报文中,客户端会选择一个初始的序列号(Sequence Number)并设置SYN标志位为1,表示希望建立连接。此时,客户端进入SYN_SENT状态。

2. 服务端接收SYN报文并返回SYN+ACK报文:服务端在收到客户端的SYN报文后,会向客户端发送一个SYN+ACK报文作为回应。该报文中,服务端同样会选择一个初始的序列号,并将ACK标志位设置为1,表示确认收到客户端的SYN报文,并表示服务端也愿意建立连接。同时,服务端将自己的初始序列号+1作为确认号(Acknowledgment Number)。

3. 客户端确认服务端的SYN+ACK报文:客户端收到服务端的SYN+ACK报文后,会发送一个确认的ACK报文给服务端。该报文中,客户端会确认服务端的SYN,并将序列号+1,表示连接已成功建立。现在,客户端和服务端都进入ESTABLISHED状态,可以进行数据的传输了。

如果在握手过程中某个阶段超时或失败,会触发重新发送相应的报文,直到连接建立成功或达到最大重试次数。

通过三次握手,TCP协议完成了对双方通信能力的确认、同步序列号和建立可靠连接的过程。这样,在后续的数据传输中,客户端和服务端就都能够确保数据的可靠性和有序传输,并能够进行适当的流量控制和拥塞控制。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据传输
    +关注

    关注

    9

    文章

    1531

    浏览量

    63567
  • 服务器
    +关注

    关注

    12

    文章

    8121

    浏览量

    82534
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78304
  • TCP协议
    +关注

    关注

    1

    文章

    83

    浏览量

    12004
收藏 人收藏

    评论

    相关推荐

    讲一讲的TCP三次握手和四次挥手

    如果你学过网络基础知识,那么你一定对TCP三次握手不陌生。今天我想用通俗的话来给大家讲一讲TCP三次握手
    的头像 发表于 02-03 10:43 2379次阅读
    讲一讲的<b class='flag-5'>TCP</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>和四次挥手

    #硬声创作季 #工业控制 #PLC TCP IP协议三次握手是咋回事?

    plcIP协议协议TCP
    学习电子知识
    发布于 :2022年11月01日 17:45:06

    TCP恋爱史:三次握手和四分手

    TCP协议非常重要,这里把它的连接和释放整理一下。首先是三次握手:1、客户端发起,像服务器发送的报文SYN=1,ACK=0,然后选择了一个初
    发表于 09-28 10:07

    分享个讲解TCP的,很好懂

    这样讲TCP的恋爱和分手大家都懂了今天的分享,是关于前两天读到的心得,TCP建立连接三次握手,断开时为何4
    发表于 07-25 20:04

    三次握手,四挥手你懂吗

    程序员面试被问到“三次握手,四挥手”怎么办?
    发表于 04-08 07:23

    TCP/IP协议连接指南

    中扮演什么角色了。文章目录ESP32 单片机学习笔记 - 07 - TCP连接一、例程实践1)建立TCP客户端 - tcp_client2)总结二、
    发表于 02-17 07:45

    TCP三次握手的过程描述

    本文档主要描述TCP三次握手的过程,一个完整的三次握手也就是 请求---应答---再次确认
    发表于 03-02 15:37 8次下载

    tcp协议三次握手详细过程

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:第一次
    发表于 12-08 11:53 9435次阅读
    <b class='flag-5'>tcp</b><b class='flag-5'>协议</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>详细过程

    大神告诉你TCP建立连接为什么是三次握手

    所谓三次握手(Three-Way Handshake)即建立TCP连接,是指建立一个TCP连接
    的头像 发表于 04-16 11:43 9991次阅读
    大神告诉你<b class='flag-5'>TCP</b>建立<b class='flag-5'>连接</b>为什么是<b class='flag-5'>三次</b><b class='flag-5'>握手</b>

    TCP与UDP协议的工作原理是怎么样的

    TCP是一种可靠的,面向连接的全双工传输层协议TCP连接的建立是一个三次
    的头像 发表于 02-15 11:45 9995次阅读
    <b class='flag-5'>TCP</b>与UDP<b class='flag-5'>协议</b>的工作原理是怎么样的

    TCP三次握手过程及四次挥手过程说明

    三次握手 置位概念:根据 TCP 的包头字段,存在 3 个重要的标识 ACK、SYN、FIN ACK:表示验证字段 SYN:位数置 1,表示建立 TCP
    的头像 发表于 03-01 12:00 3943次阅读

    如何使用WireShark进行TCP三次握手

    WireShark是一种非常方便的网络抓包工具,下面演示,使用WireShark来抓取TCP三次握手过程。
    的头像 发表于 11-01 09:50 1830次阅读

    TCP建立连接概述及三次握手、四次挥手的流程

    具备上述四个条件后A获取B的信息是有要求的,根本上的要求是数据信道可靠,就是平时所说的可靠连接,那么如何保证连接的可靠性呢,TCP协议就是靠确认应答机制、超时重传机制等保证
    的头像 发表于 03-23 15:57 769次阅读
    <b class='flag-5'>TCP</b>建立<b class='flag-5'>连接</b>概述及<b class='flag-5'>三次</b><b class='flag-5'>握手</b>、四次挥手的流程

    TCP连接的建立与中止

    常重要的 。 TCP 连接的建立可以简单地称为三次握手,而连接的中止则可以称为四次挥手。 建立连接
    的头像 发表于 10-08 16:52 459次阅读

    说说TCP三次握手的过程?为什么是三次而不是两次、四次?

    三次而不是两次或四次。 首先,我们需要了解TCP是一种面向连接协议。在进行数据传输之前,发送端和接收端需要建立一个可靠的连接
    的头像 发表于 02-04 11:03 228次阅读