基础05-TCP三次握手和四次挥手

news/2024/11/26 4:15:35/

TCP 连接 三次握手 四次挥手

题目

请描述 TCP 连接的 三次握手 和 四次挥手

建立连接

在这里插入图片描述

客户端和服务端通过 HTTP 协议发送请求,并获取内容。

在发送请求之前,需要先建立连接,确定目标机器处于可接受请求的状态。

就例如,你要请快递员(第三方的)去张三家取一个东西,你必须先打电话问问他在不在家。这就是建立连接的过程。

HTTP 协议是一个应用层的协议,它只规定了 req 和 res 的数据格式,如状态码、header、body 等。

而建立网络连接需要更加底层的 TCP 协议。

三次握手

三次握手,即建立一次 TCP 连接时,客户端和服务端总共需要发送 3 个包。

先举一个例子。还是你要派人去张三家取一个东西,现在你要发短信(不是打电话)“建立连接”,至少需要 3 个步骤,缺一不可。

  • 你:在家吗?
  • 张三:在家
  • 你:好,这就过去(然后你指派人上门,张三准备迎接)

过程

  • 客户端发包,服务端收到。服务端确认:客户端的发送能力是正常的。
  • 服务端发包,客户端收到。客户端确认:服务端的接收能力是正常的。
  • 客户端发包,服务端收到。服务端确认:客户端即将给我发送数据,我要准备接收。

建立连接完成,然后就开始发送数据,通讯。
在这里插入图片描述

四次挥手

握手,是建立连接。挥手,就是告别,就是关闭连接。

还是之前的例子。取东西,不一定一次就取完,可能要来回很多次。而且,也不一定全部由你主动发起,过程中张三也可能会主动派人给你发送。

即,你在 chrome 中看到的是一次 http 请求,其实背后可能需要好几次网络传输,只不过浏览器给合并起来了。

好了,取东西完毕了,你要发短信“关闭连接”,告诉张三可以关门了,需要 4 个步骤。

【注意】这里你需要等着确认张三关门,才算是完全关闭连接,不能你说一声就不管了。跟日常生活不一样。

  • 你:完事儿了
  • 张三:好的 (此时可能还要继续给你发送,你也得继续接收。直到张三发送完)
  • 张三:我发送完毕,准备关门了
  • 你:好,关门吧 (然后你可以走了,张三可以关门了,连接结束)

过程

  • 客户端发包,服务端接收。服务端确认:客户端已经请求结束
  • 服务端发包,客户端接收。客户端确认:服务端已经收到,我等待它关闭
  • 服务端发包:客户端接受。客户端确认:服务端已经发送完成,可以关闭
  • 客户端发包,服务端接收。服务端确认:可以关闭了

图示

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/31421.html

相关文章

C++ STL:string类的概述及常用接口说明

目录 一. 什么是STL 二. string类的概述 三. string类的常用接口说明 3.1 字符串对象创建相关接口(构造函数) 3.2 字符串长度和容量相关接口 3.3 字符访问相关接口函数 3.4 字符串删改相关接口函数 3.5 字符查找和子串相关接口函数 3.6 迭代器相…

【JavaSE】数组的定义与使用详解

目录 1.数组的基本概念 1.1数组的好处 1.2什么是数组 1.3数组的定义及初始化 1.3.1数组的创建 1.3.2数组的初始化 1.4数组的使用 1.4.1访问数组中的元素 1.4.2遍历数组 2.数组的类型 2.1认识JVM的内存分布 2.2基本类型变量与引用类型变量 2.3认识null 3.数组的应…

基于Qt WebEngine 的Web仪器面板GUI程控技术

随着IIoT的发展,很多工业仪器也具备了远程管理的GUI。与早期使用串口进行命令交互不同,这些GUI可以直接在远程呈现数据。 作为希望对仪器、软件进行二次开发的小公司来说,会遇到GUI人工操作转自动化的需求。在无法通过串口等传统接口进行自动…

Vue 3.0 单文件组件 【Vue3 从零开始】

#介绍 在很多 Vue 项目中,我们使用 app.component 来定义全局组件,紧接着用 app.mount(#app) 在每个页面内指定一个容器元素。 这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的…

2023年全国最新机动车签字授权人精选真题及答案17

百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 三、多选题 1.注册登记安全检验时,送检乘用…

硬件语言 Verilog HDL 学习 day02 数据流建模,行为级建模,结构化建模

1.数据流建模 1.含义:在电路规校较小的清况下,由于包含的门数比较少,设计者可以逐个地引用逻辑门实例把它 们互相连接起来, 因此使用门级建换进行设计是很合适的。对于具有数字逻辑电路设计基本知识的用户来讲,门级建模…

ArcGIS:栅格计算器的运算符和函数详解

01 栅格计算器在哪?02 运算符说明栅格计算器的表达式书写与Python语法一致(由于其为解释型语言并且语言简洁优美,因此简单上手),这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像…

项目管理工具DHTMLX Gantt灯箱元素配置教程:如何验证

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…