TCP为什么需要三次握手?两次握手或四次握手可以吗?

devtools/2024/11/25 16:03:01/

(1)三次握手可以保证双方具有接收和发送的能力

第一次握手服务端可以确认客户端的发送能力和服务端的接收能力是正常的;第二次握手客户端可以确认客户端和服务端的收发能力是正常的,但是服务端无法确认客户端的接收能力是正常的;第三次握手服务端可以确认客户端和服务端的收发能力都是正常的。

(2)三次握手可以防止历史连接的建立(最主要原因)

如果客户端有一个请求,但由于网络拥塞先后发送了两个SYN报文,其中旧的SYN报文有可能先到达服务器。如果是两次握手,服务器收到了旧的SYN报文就会立刻建立连接。旧的SYN报文引起的第二次握手到达客户端,客户端会比较确认应答号字段是否是新的SYN报文的序列号+1,如果是旧的SYN报文发起的,那么会给服务器发送RST报文中止连接。服务器中止后,新的SYN报文又到达了服务器,此时建立起正确的连接。对比三次握手的相同情况,二次握手多建立起了一次连接,造成了资源的浪费。

(3)三次握手可以同步双方的初始序列号

TCP协议的通信双方,都必须维护一个序列号,才能保证按序可靠传输。也就是发送了携带了初始序列号的SYN报文,必须用携带了应答序列号的ACK报文来接收。四次握手其实也能够可靠的同步双方的初始化序号,可以把ACK和SYN报文合并在一起进行优化,所以就成了三次握手,这样减少了一次通信。二次握手少了一次ACK报文,也无法可靠的同步双方序列号。

(4)三次握手可以避免资源浪费

当客户端发的 SYN 报文在网络中阻塞,可能会超时重发多个SYN报文。如果多个SYN报文到达了服务端,这样会建立多个冗余的无效链接,造成不必要的资源浪费。

因此,通过三次握手能确认客户端和服务器的收发能力,防止历史连接的建立,能减少不必要的资源开销,能帮助双方同步初始化序列号。不使用两次握手是因为两次握手无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;不使用四次握手是因为三次握手就已经理论上最少可靠连接建立,所以不需要使用更多的通信次数。


http://www.ppmy.cn/devtools/136876.html

相关文章

网络爬虫——爬虫项目案例

本节将全面讲解如何通过实战爬虫项目解决复杂问题。结合最新技术和实际开发需求,案例将涵盖完整开发流程,包括需求分析、实现代码、优化方法和常见问题解决。力求实现高效、可扩展的爬虫项目架构,帮助开发者提升实战能力。 案例 1&#xff1a…

Centos 8, add repo

Centos repo前言 Centos 8更换在线阿里云创建一键更换repo 自动化脚本 华为Centos 源 , 阿里云Centos 源 华为epel 源 , 阿里云epel 源vim /centos8_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han

融合数据-决策管道:以决策为中心的学习组合优化

1 文章信息 文章名为Melding the Data-Decisions Pipeline: Decision-Focused Learning for Combinatorial Optimization 。发表在第33届AAAI Conference on Artificial Intelligence. 作者来自南加州大学。 2 摘要 在现实世界环境中产生影响力需要人工智能技术贯穿从数据到…

【Blender】用权重传递快速更换新模型

介绍:此功能类似于3Dmax中的蒙皮包裹功能 一、添加空顶点组 1、在物体模式下选择衣服,然后按Shift加选骨骼,按Ctrl P,并选择附带空顶点组 2、这样我们就把衣服也给骨骼蒙上了,但是由于只有空的顶点组,所以…

【贪心算法-第三弹——Leetcode-179.最大数】

1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码解析 *4.贪心策略的合理性证明(离散数学——全序关系) 完全性 反对称性 传递性 1.题目解析 题目来源 179.最大数——力扣 测试用例 2.算法原理 I.由题目我们知道需要返回将数组的所以数字组合形成的一个…

C#里怎么样快速地操作文本文件?

C#里怎么样快速地操作文本文件? 对于文本文件,在C#里有一种快速的方法。 它就是FileInfo类。 文本文件是一种平常使用的文件,比如XML文件,JSON文件,.ini配置文件等等。 操作文本文件的常用方法: AppendText() CreateText() OpenText() 这几个函数都是采用UTF-8编码来…

【数据分享】2024年我国省市县三级的住宿服务设施数量(8类住宿设施/Excel/Shp格式)

宾馆酒店、旅馆招待所等住宿服务设施的配置情况是一个城市公共基础设施完善程度的重要体现,一个城市住宿服务设施种类越丰富,数量越多,通常能表示这个城市的公共服务水平越高! 本次我们为大家带来的是我国各省份、各地级市、各区…

BMP280 STM32 SPI 数据不变的问题

这里写自定义目录标题 BMP280 通过SPI与STM32通讯调试发现一个问题,设置为正常模式,但是循环读取时,数据不变。经搜索发现很多人遇到,有的甚至调试了半年搜索结果:读取完数据以后,两个方法 1. 往 0x74地址写…