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

    文章

    1885

    浏览量

    64581
  • 服务器
    +关注

    关注

    12

    文章

    9146

    浏览量

    85391
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79067
  • TCP协议
    +关注

    关注

    1

    文章

    91

    浏览量

    12070
收藏 人收藏

    评论

    相关推荐

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

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

    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 9942次阅读
    <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 1w次阅读
    大神告诉你<b class='flag-5'>TCP</b>建立<b class='flag-5'>连接</b>为什么是<b class='flag-5'>三次</b><b class='flag-5'>握手</b>

    TCP/IP协议工作过程的三次握手和四挥手

    )、第三次握手:Client收到确认后,检查ACK是否为1,如果正确则将标志位ACK置为1,并将该数据包发送给Server,Server检查ACK是否为1,如果正确则连接建立成功,Client
    的头像 发表于 10-25 09:49 6984次阅读

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

    TCP是一种可靠的,面向连接的全双工传输层协议TCP连接的建立是一个三次
    的头像 发表于 02-15 11:45 1.1w次阅读
    <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 4232次阅读

    TCP三次握手和四挥手过程中的异常情况

    TCP 三次握手和四挥手过程中,途中某一步的报文丢失了,会发生什么?
    的头像 发表于 09-05 10:23 1258次阅读

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

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

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

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

    TCP连接的建立与中止

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

    TCP三次握手的理论知识

    关于TCP三次握手的理论知识,往上一搜一大片,本文就跳过理论,直接上手。Let’s go。 准备知识 抓一个TCP三次
    的头像 发表于 11-09 11:27 810次阅读
    <b class='flag-5'>TCP</b><b class='flag-5'>三次</b><b class='flag-5'>握手</b>的理论知识

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

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

    简述TCP协议三次握手机制

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它主要用于在IP网络中进行数据传输。
    的头像 发表于 08-16 10:57 999次阅读