UDP、TCP三次握手和四次挥手

-----UDP与TCP-----

相同点

  • tcp、udp都是工作在传输层进行数据传输(二进制标识文本或者视频或者图片)

不同点

  • tcp基于连接,保障传输的安全
  • udp基于非连接,保障传输的速度

-----TCP的三次握手-----

过程

在这里插入图片描述

为什么不是两次握手?

  • 服务端回复完syn+ack之后就建立连接,这是为了防止因为已失效的请求报文,突然又传到服务器引起错误。
  • 假设采用两次握手建立连接,客户端向服务端发送了一个syn包,来请求建立连接,因为某些未知原因,并没有到达服务器,在中间某个网络节点产生了滞留,为了建立连接客户端会重发syn包。这次的数据包正常送达,服务端回复syn+ack之后建立了连接。但是第一包数据阻塞的网点节点,突然恢复,第一包syn包又送达到服务端,这时服务端会误认为是客户端又发起了一个新的连接,从而在两次握手之后,进入等待数据状态,服务端认为是两个连接,而客户端认为是一个连接,造成了状态不一致。
  • 如果在三次握手的情况下,服务端收不到最后的ack包,自然不会认为连接建立成功,所有三次握手本质上来说,就是为了保证在不可靠的网络链路中,建立起可靠的连接。如syn包阻塞重发会导致服务器创建多重连接,而客户端只接受唯一连接。从而造成状态不一致的情况。

丢包问题和乱序问题

  • 发送报文=序列号+长度+数据内容
  • 确认报文Ack=序列号+长度=下一包起始序列号

-----TCP的四次挥手-----

过程

在这里插入图片描述

处于连接状态的客户端和服务端,都可以发起关闭连接请求,此时需要四次挥手来进行连接关闭。

第一次挥手:假设客户端主动发起连接关闭请求,他需要向服务端发起一包fin包,表示要关闭连接,自己进入终止等待1状态
第二次挥手:服务端收到fin包,发送一包ack包,表示自己进入了关闭等待状态,客户端进入终止等待2状态
第三次挥手:服务端此时还可以发送未发送的数据,而客户端还可以接收数据,待服务端发送完数据之后,发送一包fin包,进入最后确认状态
第四次挥手:客户端收到之后回复ack包,进入超时等待状态,经过超时时间后关闭连接,而服务端收到ack包后,立即关闭连接

为什么客户端需要等待超时时间?

这是为了保证服务端已收到ack包。

因为假设客户端发送完最后一包ack包后就释放了连接,一旦ack包在网络中丢失,服务端将一直停留在最后确认状态。
如果客户端发送最后一包ack包后,等待一段时间,这时服务端因为没有收到ack包,会重发fin包,客户端会响应这个fin包,重发ack包并刷新超时时间。保证在不可靠的网络链路中,进行可靠的连接断开确认。

为什么要四次挥手?

由于 TCP 的半关闭(half-close)特性,任何一方都可以在数据传送结束后,发出连接关闭的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接关闭通知,对方确认后就完全关闭了TCP连接。
通俗的来说,两次挥手就可以释放一端到另一端的 TCP 连接,完全释放连接一共需要四次挥手。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PMP考试备考:你不知道的8个常考概念

PMP考试即将到来,为便于广大考生在考试前查漏补缺,给大家准备了PMP考试中常考的八个重要概念,包括敏感性分析、德尔菲技术等,快来看看吧。 01敏感性分析 敏感性分析有助于确定哪些风险对项目具有最大的潜在影响。它有助于理解项…

UWB芯片DW3000之双边双向测距法

目录 双边双向测距 使用四个信息 使用三个信息 双边双向测距 使用四个信息 双边双向测距(DS-TWR)是基本的单边双向测距的扩展,其中使用两次往返时间测量并结合给出飞行时间结果,即使在相当长的响应延迟情况下也能减少误差。 带有四个信息的双面双向…

安全多方计算之八:Mix-Match

Mix-Match1. 混合网络基于ElGamal加密方案的混合网络2. PET协议3. Mix-Match协议4. 百万富翁问题的Mix-Match解决方案M.Jakobsson和A.Juels提出了基于Mix-Match的安全多方计算协议构造方法,该类协议包括Mix与Match两个阶段: Mix阶段:通过构造…

详解LinkedHashSet和LinkedHashMap

目录 一.LinkedHashSet和LinkedHashMap 1.基本介绍 2.与HashSet和HashMap的区别 3.LinkedHashSet和LinkedHashMap具体的方法 1.LinkedHashSet 2.LinkedHashMap 二.模拟代码实现LinkedHashMap 三.具体应用 一.LinkedHashSet和LinkedHashMap 1.基本介绍 顾名思义,根据名…

gpt4国内可以使用吗-chatgpt国内使用的软件排行榜

gpt4国内怎么用? 目前 OpenAI 尚未正式发布 GPT-4 模型,因此目前尚无法直接使用它。预计当GPT-4发布时,将通过OpenAI平台提供API以供使用者调用,同时新的API接口可能需要在不同国家/地区进行不同程度的注册或许可等手续。 当Ope…

php 修改服务器文件上传大小限制

输入docker cp mlfnginx:/etc/nginx/conf.d/pl.conf .输入vimpl.conf 修改nginx配置文件移动到图中所示位置client_max_body_size 按键盘”i”对图中的xxM修改成需要的大小,然后按”esc”,在按”:wq”,最后按回车键输入docker cp ./pl.con…

寻找2020 (蓝桥杯) JAVA

题目描述 小蓝有一个数字矩阵,里面只包含数字0 和2。小蓝很喜欢2020,他想找到这个数字矩阵中有多少个2020 。 小蓝只关注三种构成2020 的方式: 同一行里面连续四个字符从左到右构成2020。 同一列里面连续四个字符从上到下构成2020。 在一条从…

南京邮电大学通达学院《数学实验》MATLAB实验答案

南京邮电大学通达学院《数学实验》MATLAB实验答案一 声明二 MATLAB下载三 南京邮电大学通达学院《数学实验》练习一1.11.21.31.41.51.61.71.81.91.101.11![请添加图片描述](https://img-blog.csdnimg.cn/a3d3a094f6ea4dff85c0fd0bf40bbb44.jpeg)四月维夏,六月徂暑。…

百度文心一言可以完胜ChatGPT的4点可能性

文心一言,百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。但说实话,很多人拿他与ChatGPT相对比&#x…

项目经理注意!掌握这5个关键点,提升效率80%!

很多项目在刚接手时,遇到的问题种类多并且复杂,乍一看很令人头疼,但仔细梳理下来好像也没有那么难,只需要厘清以下5个关键点: 一、做好项目的五个关键 具体的思路就是: 明确事->找对人->排计划->定机制->…

Bulk vector export as SLD and GeoJson

QGIS插件,可以导出所有图层的GeoJson数据格式和SLD图层样式文件。 缺点:导出的文件名和图层名称不对应。

数据结构与算法:滑动窗口类题目总结

滑动窗口类型题目解题框架总结: class Solution:def problemName(self, s: str) -> int:# Step 1: 定义需要维护的变量们 (对于滑动窗口类题目,这些变量通常是最小长度,最大长度,或者哈希表)x, y ..., ...# Step 2: 定义窗口…

Node.js学习笔记——Node.js模块化

一、介绍 1.1.什么是模块化与模板? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。 其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块…

【树与二叉树】二叉树顺序结构实现以及堆的概念及结构--详解介绍

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1. 二叉树顺序结构2.…

Elasticsearch:Elasticsearch 容量规划

Elasticsearch 是一个可扩展的分布式系统,可为企业搜索、日志聚合、可观察性和安全性提供解决方案。 Elastic 解决方案建立在一个单一、灵活的技术堆栈之上,可以部署在任何地方。 要在自托管或云端运行生产环境 Elasticsearch,需要规划基础架…

Linux硬链接与软链接

图示区别 硬链接 具有相同inode节点号的多个文件互为硬链接文件;删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;硬链接文件是文件的另一个入…

贯穿设计模式第四话--里氏替换原则

🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,我是最爱吃鱼罐头,大家可以叫鱼罐头呦~🥳🥳🥳 从今天开始,将…

关于位运算的巧妙性:小乖,你真的明白吗?

一.位运算的概念什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。位运算就是直接操作二进制数,那么有哪些种类的位运算呢?常见的运算符有与(&)、或(|)、异或(^)、…

软硬结合板设计,过孔到软板区域的间距设计多少合适

一博高速先生成员:王辉东 十里樱花香无边, 满枝芳华尽娇艳。 春风不知少年心, 红粉树下看如烟。 周六的下午,赵理工推开窗,一阵香风袭来,空气中氤氲着樱花的气息。樱花开得浪漫,恰似少年的…

[致敬未来的攻城狮计划 1] 使用 “FSP Configuration”(FSP 配置)透视配置器设置运行环境

开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(http://yyds.recan-li.cn)和 瑞萨MCU (瑞萨电子 (Renesas Electronics Corporation) ) 联合发起的「 致敬未来的攻城狮计划 」的第 4 天,点击…