TCP连接的三次握手与四次挥手【重点】

news2024/10/6 20:40:45

TCP的运输连接管理概述

TCP是面向连接的协议,它基于运输连接来传送TCP报文段

TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程

TCP运输连接有以下三个阶段

TCP的运输连接管理就是使运输连接的建立和释放都能正常的进行

TCP建立连接的三次握手(重要)

TCP三次握手使用指令(TCP标记):

TCP使用三报文握手建立连接

第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示传输的报文段的第一个数据字节的序列号是x,此序列号代表整个报文段的序号(seq=x);客户端进入 SYN_SEND (同步发送状态);

第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是y(seq=y),表示服务器已经收到客户端序号为x的报文段,准备接受客户端序列号为x+1的报文段(ack_seq=x+1);服务器由LISTEN进入SYN_RCVD (同步收到状态);

第三次:客户对服务器的同一连接进行确认.确认序号字段有效(ACK=1),客户此次的报文段的序列号是x+1(seq=x+1),客户期望接受服务器序列号为y+1的报文段(ack_seq=y+1);当客户发送ack时,客户端进入ESTABLISHED 状态;当服务收到客户发送的ack后,也进入ESTABLISHED状态;第三次握手可携带数据;

为什么要进行三次握手?

主要原因:防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误

第一次握手: 客户端向服务器端发送报文,证明客户端的发送能力正常

第二次握手:服务器端接收到报文并向客户端发送报文证明服务器端的接收能力、发送能力正常

第三次握手:客户端向服务器发送报文,证明客户端的接收能力正常

如果两次握手会出现以下情况:

客户端向服务器端发送的请求报文由于网络等原因滞留,未能发送到服务器端,此时连接请求报文失效,客户端会再次向服务器端发送请求报文,之后与服务器端建立连接,当连接释放后,由于网络通畅了,第一次客户端发送的请求报文又突然到达了服务器端,这条请求报文本该失效了,但此时服务器端误认为客户端又发送了一次连接请求,两次握手建立好连接,此时客户端忽略服务器端发来的确认,也不发送数据,造成不必要的错误和网络资源的浪费。

如果采用三次握手的话,就算那条失效的报文发送到服务器端,服务器端确认并向客户端发送报文,但此时客户端不会发出确认,由于客户端没有确认,由于服务器端没有接收到确认,就会知道客户端没有请求连接。

TCP释放连接的四次挥手(重要)

TCP使用四报文挥手释放连接

第一次:客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1),其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态

第二次: 服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态

第三次:客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

第四次:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

为什么客户端要等待2MSL?

1.为了保证客户端发送的最后一个 ACK 报文段能够到达服务端。这个ACK 报文段有可能丢失,因而使处在LAST-ACK状态的服务端就收不到对已发送的FIN + ACK报文段的确认。服务端会超时重传这个 FIN+ACK 报文段,而客户端就能在 2MSL 时间内(超时+1MSL传输)收到这人重传的FIN+ACK 报文段。接着客户端重传一次确认,重新启动 2MSL计时器。最后,客户端和服务器都正常进入到CLOSED状态。(简述· 防ack报文美失,Server再次发送Fin报文,一来一最长时间就是2MSL
2.防止已失效的连接请求报文段出现在本连接中。客户端在发送完最后一个 ACK 报文段后,再经过时间 2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个连接中不会出现这种旧的连接请求报文段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1044891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT 在机器学习中的应用

办公室里一个机器人坐在人类旁边,Artstation 上的流行趋势,美丽的色彩,4k,充满活力,蓝色和黄色, DreamStudio出品 一、介绍 大家都知道ChatGPT。它在解释机器学习和深度学习概念方面也非常高效,…

springboot 简单配置mongodb多数据源

准备工作&#xff1a; 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包&#xff1a; # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

csdn未经允许将我的文章设置成vip收费

以前在csdn写了一些笔记&#xff0c;后来不用csdn了&#xff0c;想着留下这些笔记或多或少能帮助其他初学者&#xff0c;就没管它。结果csdn把文章设置成收费了&#xff0c;这个收费不是我本人弄的&#xff0c;是csdn弄的&#xff01;我现在只能把这些文章删除掉了。

ThreeJS-3D教学三:平移缩放+物体沿轨迹运动

我们在项目中会有一些这样的需求&#xff0c;我们可视化一个场景&#xff0c;需要俯视、平移、缩放&#xff0c;方便观察场景中的数据或者模型&#xff0c;之所以把这个案例拿出来 1、这是个很实用的需求&#xff0c;我相信很多人会用到 2、我自己认为在实际案例中我们可以学习…

高手必备!电脑剪辑视频的实用方法

随着数码时代的到来&#xff0c;越来越多的人开始使用电脑剪辑视频。电脑剪辑视频不仅可以为日常生活留下美好回忆&#xff0c;还可以为专业人士提供更多的创作可能性。在本文中&#xff0c;我们将介绍两种电脑剪辑视频的方法&#xff0c;不需要专业技能&#xff0c;只需要一台…

精细高效 智慧公厕为城市公共厕所联网管理装上“智慧中枢”

近年来&#xff0c;随着城市化进程的加速&#xff0c;城市公共设施的更新与改进也成为各地的重要任务之一。而其中&#xff0c;城市公共厕所的建设和管理更是备受关注。为了提高公厕的服务水平和城市形象&#xff0c;各地纷纷采取创新的智能化手段&#xff0c;将公厕与互联网技…

MT41K128M16JT DDR3寻址

MT41K128M16JT该DDR3共有27bit地址&#xff0c;分别如下&#xff1a; 因为DDR3控制器IP与DDR3的数据端口是128bit&#xff0c;而ddr3的物理宽度是16bit&#xff0c;所以ddr3写一次地址增加3。 ddr3控制器地址26–0&#xff0c;能访问到的最高地址是26-323。 ddr3控制器给出的地…

在线客服系统源码/在线对话聊天/多商户在线客服系统源码(可机器人自动聊天/支持app公众号网页H5)

源码介绍 在线客服系统源码/在线对话聊天/多商户在线客服系统源码&#xff0c;它是一款基于Web的在线客服系统&#xff0c;适用于实现企业与客户之间的在线沟通以及咨询服务。该系统支持多商户、无限座席&#xff0c;可以为多个企业提供在线客服服务&#xff0c;不受座席数量的…

跨境电商下半年如何布局,旺季销售策略全盘点,为火爆季节做准备

1.了解跨境电商市场趋势&#xff1a;在下半年旺季之前&#xff0c;了解目标市场的消费趋势、流行产品和购物偏好等因素非常重要。研究和分析市场数据&#xff0c;以及观察竞争对手的动向&#xff0c;可以帮助您更好地制定布局策略。 2.优化产品和供应链&#xff1a;确保您的产…

一文读懂云计算、云原生!

“上云”是一种大趋势。 根据Gartner的数据&#xff0c;未来云计算市场规模仍将保持20%以上的增长速度。到2025年&#xff0c;预计将有80%的企业会将其业务上云。 云的发展为何备受企业青睐&#xff1f;近年来火爆的云原生和云计算的区别到底是什么呢&#xff1f;为什么它如此…

工作流引擎笔记 20230927

现在需要一个管理数据业务流程配置功能。想到了workflow manage system/engine 概念调研 在工作流管理系统中&#xff0c;工作流引擎是核心组件&#xff0c;它负责驱动和执行定义好的工作流程。本文将详细介绍工作流引擎的关键特性、类型、与状态机的差异&#xff0c;以及设计…

Jmeter系列- 详解 CSV 数据文件设置

一、什么是csv文件 CSV文件&#xff1a;是指"逗号分隔值"&#xff08;Comma-Separated Values&#xff09;文件&#xff0c;它是一种简单的文件格式&#xff0c;用于存储表格数据&#xff0c;例如电子表格或数据库&#xff0c;可以用记事本和Excel打开&#xff0c;用…

《从零开始的Java世界》02面向对象(基础)

《从零开始的Java世界》系列主要讲解Javase部分&#xff0c;从最简单的程序设计到面向对象编程&#xff0c;再到异常处理、常用API的使用&#xff0c;最后到注解、反射&#xff0c;涵盖Java基础所需的所有知识点。学习者应该从学会如何使用&#xff0c;到知道其实现原理全方位式…

同为科技(TOWE)太阳能光伏直流电源浪涌保护器的产品应用

太阳能光伏发电是根据光生伏特效应原理&#xff0c;利用太阳电池将太阳光能直接转化为电能。实现方法是通过将太阳光转化为直流电&#xff0c;然后通过逆变器转换为交流电&#xff0c;以供家庭、企业和电网使用。太阳能光伏发电具有许多优点&#xff0c;例如环保、可再生、安全…

查看基站后台信息

查看基站后台信息 电脑配置固定ip: 192.168.1.99: 打开“网络和共享中心”&#xff0c;选择更改适配器设置&#xff1a; 右键“本地连接”&#xff0c;选择属性 基站网线直连电脑网口 Telnet 登录基站 打开dos窗口 windows键R”&#xff0c;输入cmd&#xff0c;点确定&…

TS中class类的基本使用

想要创建对象&#xff0c;必须要先定义类&#xff0c;所谓的类可以理解为对象的模型&#xff0c;程序中可以根据类创建所指定类型的对象。 一、使用class关键字定义类 class 类名 { } // 使用class关键字来定义一个类 class Person{}// 使用new关键字创建一个对象 const per …

新型基础设施:信息技术设施、融合基础设施和创新基础设施

新型基础设施主要包括信息技术设施、融合基础设施和创新基础设施三个方面。 信息基础设施包括哪些呢&#xff1f; 信息基础设施主要指基于新一代信息技术演化生成的基础设施。 1. 以5G、物联网、工业互联网、卫星互联网为代表的通信网络基础设施&#xff1b; 2. 以人工智能、…

大气环境一站式技能提升:SMOKE-CMAQ实践技术

查看原文>>>从小白到精通一站式技能提升&#xff1a;SMOKE-CMAQ实践技术 大气污染物排放是空气污染的源头&#xff0c;气象因素是影响污染程度的重要因素&#xff0c;因此空气质量模式要求气象资料和污染物排放清单作为输入&#xff0c;其中由于大气污染源复杂性、数…

Android ConstraintLayout app:layout_constraintHorizontal_weight

Android ConstraintLayout app:layout_constraintHorizontal_weight <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:…

中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许

中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许 中秋夜我读《乡村振兴战略下传统村落文化旅游设计》许少辉八月新书——地球红薯地中秋圆辉少许