IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP 为啥 三次握手四次分手 -> 正文阅读

[网络协议]TCP 为啥 三次握手四次分手

三次握手:其中AB可以合并为一次 共三次

为什么TCP需要三次握手开启连接?

TCP需要可靠性的保障,在正式传送数据之前需要初始化两端的发送窗口与接收窗口的大小,需要确定发送字节的开始序号,完成上述的功能只需要两次握手即可,第三次握手的目的是为了防止第一个握手报文滞留在网络中造成服务器资源浪费。试想如果TCP是两次握手就建立连接,如果出现这样一种情况,客户端与服务器要建立连接,但是客户端的第一个握手报文超时了,然后客户端重传了第一个握手报文,随后客户端与服务器建立连接成功并完成了一次通信,连接关闭后第一个握手报文终于最后还是到达了服务器,如果基于两次握手就建立连接,那服务器对这个延迟的握手报文确认后就建立连接等待客户端发送数据的话就会造成资源的浪费,因为维持一个TCP连接是需要比监听需要更多内存资源的,客户端此时也不会再响应服务器的第二个握手报文,因为客户端已经认为连接结束了。

四次分手:

A对B 发送 断开请求

B对A的确认

B对A发送 断开请求

A对B的确认

注意:A向B请求断开,B对A的确认,B向A请求断开,A向B的确认,唯一需要明确的是这些分手能不能合并为一次分手的问题。肯定是不能合并的,因为服务器可能对客户机的断开连接确认后,还需要往客户机发送一些数据,所以并不能合并分手报文

为什么TCP需要四次挥手结束连接?

? ? ? ?最终的目的还是基于可靠性的保证才需要四次挥手结束连接。试想如果TCP像UDP一样直接关闭连接,如果网络中还有数据包在传送,这就会造成丢包,挥手的过程其实就是对完整数据最后字节的确认。

感谢这个帖子 解惑了:https://blog.csdn.net/z7________/article/details/103409662

最后一次分手 为啥

为什么要等待2MSL

很简单,因为最后一次关闭的ACK你永远无法知道对方是否有收到,所以需要等待一个包在网络中存在的最大周期,如果超过这个周期ACK没有发送到对方位置,发送端就会收到丢包命令(这个命令是由网络控制协议发出的),进而可以进行重发,反

SYN攻击

SYN泛洪攻击,攻击者通过发送TCP SYN,也就是三次握手中的第一个数据包,当服务返回ACK后,该攻击者就不对其进行再确认,那么这个TCP连接就会处于办连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者,这样就会更加浪费服务器的资源。攻击者回发送非常大量的这种TCP连接,由于每一个都无法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,醉胡服务器可能会死机,就无法为正常用户提供服务了。

原文链接:https://blog.csdn.net/weixin_42082088/article/details/104341538

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:49:27  更:2021-08-01 14:49:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 2:20:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码