当前位置: 首页 > news >正文

TCP协议为什么是三次握手和四次挥手

1.一次握手&&二次握手

一次握手就能成功的话,也就代表着不需要进行确认,那么万一有恶意的服务器一直发送SYN,而服务器需要维护大量的连接,维护连接又需要成本,那么就很容易引发SYN洪水,导致服务器崩溃二次握手也是一样的道理。

2.三次握手

2.1 以最小成本验证全双工

TCP保证可靠性,所以必须保证通信的双方必须保持通畅,这三次握手就是为了确定双方能发能收,是最小的成本,而且保证了可靠性

 2.2 奇数次握手

既然双方都要建立连接,付出代价,那么服务器端就可以要求客户端先建立连接,证明自己,然后过一段时间服务端才建立连接,可以防止单机程序恶意向服务器挂连接

3.四次挥手

四次挥手也是为了以最小成本确定双方的意愿,也保证了可靠性。双方都要同意断开连接,并且要让对方知道。

那么为什么不是三次挥手呢?能不能ACK+FIN呢?这是不行的,三次握手是因为SYN是必须要有ACK应答的,那么四次挥手时,客户端想要断开连接发送FIN,服务器收到之后发送ACK应答,但是服务器在大多数情况下是不会立刻断开连接,因为可能还有业务没有处理完,所以ACK和FIN之间一定有一个时间差,这就导致了ACK不能和FIN一起发送。但是有些情况是有可能三次挥手的,但是特别少。


今天的分享到这里就结束了,感谢大家的阅读!

http://www.lryc.cn/news/428323.html

相关文章:

  • 利用ChatGPT提升学术论文撰写效率:从文献搜集到综述撰写的全面指南
  • 智能、高效、安全,企业桌面软件管理系统,赋能企业数字化转型!提升工作效率不是梦!
  • 第N7周:调用Gensim库训练Word2Vec模型
  • 基于Crontab调度,实现Linux下的定时任务执行。
  • Centos系统中创建定时器完成定时任务
  • WLAN基础知识(1)
  • 网络安全实训第三天(文件上传、SQL注入漏洞)
  • Nginx 学习之 配置支持 IPV6 地址
  • springboot+伊犁地区游客小助手-小程序—计算机毕业设计源码无偿分享需要私信20888
  • 提升工作效率的五大神器
  • 想投资现货黄金?在TMGM开户需要多少钱?
  • “零拷贝”
  • [ABC367C] Enumerate Sequences 题解
  • C语言 | Leetcode C语言题解之第336题回文对
  • 【SQL】仅出现一次的最大数据
  • MySQL 数据类型详解及SQL语言分类-DDL篇
  • Leet Code 128-最长连续序列【Java】【哈希法】
  • 网络协议(概念版)
  • Pulsar官方文档学习笔记——消息机制
  • PyTorch--残差网络(ResNet)在CIFAR-10数据集进行图像分类
  • ETAS工具链自动化实战指南<一>
  • 疫情期间我面试了13家企业软件测试岗位,一些面试题整理
  • PINCE——Linux 原生游戏内存修改器,一款替代 Cheat Engine 的强大游戏修改器,Linux 游戏玩家必备神器!
  • 为IntelliJ IDEA安装插件
  • ES6 Promise
  • html+css 实现hover 凹陷按钮
  • 什么是负载均衡?负载均衡器如何运作?
  • (Arxiv-2023)潜在一致性模型:通过少步推理合成高分辨率图像
  • Unity与UE,哪种游戏引擎适合你?
  • 这五本大模型书籍,把大模型讲的非常详细,收藏我这一篇就够了