TCP三次握手如果使用二次握手代替则会出现的问题

2023-11-15

简述

  1. 第一次握手,发送SYN报文,传达信息:“你好,我想建立连接”;
  2. 第二次握手,回传SYN+ACK报文,传达信息:“好的,可以建立链接”;
  3. 第三次握手,回传ACK报文,传到信息:“好的,我知道了,那我们连接”。然后就建立连接了。在发送报文之前各方都要确认可以进行连接。

建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。

  1. TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。
  2. 采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况:主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
  3. 采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。
  • 如果采取两次握手,相当于第二次握手结束便建立连接,如果发送SYN的一方不想连接了,也不会有反馈,另一方却一直在等待,浪费了时间。
  • 当然可以采取4次甚至N次握手,但是建立连接的时间太长,效果也会大打折扣。
  • 因此3次握手属于最佳方案,既保证了可靠性,又节俭了建立连接的时间
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP三次握手如果使用二次握手代替则会出现的问题 的相关文章

  • 基于SSM框架的家教中介平台系统的设计与实现(源码免费获取)

    技术架构 Java语言 MySQL数据库 SSM框架 功能简介 1 系统登录 系统登录成为了管理员访问系统的路口 设计了系统登录界面 包括管理员名 密码和验证码 然后对登录进来的管理员判断身份信息 判断其为管理员 还是普通用户 2 管理员管
  • logback 对特殊日志进行过滤

    工作中需要对 logback 的日志进行定制化过滤 此时一般有两种方法 logger 在 logback spring xml 中添加如下配置 可以关闭对应类的日志
  • Intellij安装scala插件详解

    参考博客 1 http wwwlouxuemingcom blog 163 com blog static 20974782201321953144457 2 http blog csdn net stark summer article
  • cvm云服务器的,cvm云服务器如何登录

    cvm 登录到 本地为 Windows 计算机 1 在本地 Windows 机器上 单击开始菜单 运行 输入 mstsc 命令 即可打开远程桌面连接对话框 2 在输入框输入 Windows 服务器的公网 IP 登录 云服务器控制台 可查看云

随机推荐

  • 牛客剑指offer之【JZ12 矩阵中的路径】

    哈喽 这次真的是好久不见呀 我回来啦 接下来的日子我会不断更新牛客上的剑指offer题解 为什么这么做呢 是因为博主刷题总是刷了忘忘了刷 一样的题目换种形式就要做好久 说到底还是对知识点的理解不够透彻 加之算法对一个即将找工作的大学生来说更
  • 【Pytorch with fastai】第 15 章 :深入探讨应用程序架构

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 计算机网络参考模型(OSI讲解)

    计算机网络参考模型 文章目录 计算机网络参考模型 一 什么是七层网络模型 二 每一层的功能与特点 三 osi模型和TCP IP模型的区别 四 数据封装和解封装的过程 1 封装与解封装过程 2 设备与层之间的关系 一 什么是七层网络模型 七层
  • 保护模式的分段

    一 分段的背景 在8086处理器诞生之前 内存寻址方式就是直接访问物理地址 8086处理器为了寻址1M的内存空间 把地址总线扩展到了20位 但是 一个尴尬的问题出现了 ALU的宽度只有16位 也就是说 ALU不能计算20位的地址 为了解决这
  • Less-11-12 【‘、“)】

    目录 第十一 十二关 1 在账号密码输入admin 查看成功效果 2 输入错误的账号密码 查看错误效果 3 找注入点 我们尝试在账户的输入框中加单引号 发现出现报错 4 加注释 查看页面是否恢复正常 可以看到页面成功执行了 证明当前网址存在
  • vscode搭建linux内核开发环境

    vscode在linux下搭建内核驱动开发环境 一 前言 Souce insight是一个阅读 开发linux内核驱动模块的好工具 但是Source insight是收费的软件 而且没有原生linux版本 要是想在纯linux环境下进行li
  • Unity3D RPG实现 3 —— 对话、任务系统

    目录 成果展示 对话系统 对话的存储数据结构 对话的UI面板设置 创建对话 任务的 NPC 实现对话控制器显示主对话窗口的内容 创建对话的选项内容 任务系统 创建任务 UI 面板 任务的存储数据结构 任务管理器与接受任务 任务控制相关脚本
  • Linux内核网络:实现与理论--介绍

    这本书主要涉及了Linux内核网络协议栈的实现和它背后的理论 你会在后续章节发现更深层次和更细节地针对网络子系统的分析和它的结构 我不会讨论和网络没有直接关系的话题内容 比如你在读内核里网络代码的时候会遇到锁 同步 SMP 原子操作等等 关
  • 2023年03月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

    C C 编程 1 8级 全部真题 点这里 第1题 数字字符求和 请编写一个程序实现以下功能 从一个字符串中 提取出所有的数字字符即0 9 并作为数求和 时间限制 1000 内存限制 65536 输入 一行字符串 长度不超过100 字符串中不
  • facebook网络架构学习总结(F4)

    1 简介 1 1 大规模快速演进 Facebook 的生产网络本身就是一个大型分布式系统 针对不同任务划分成不同层次并采 用不同的技术 a large distributed system with specialized tiers an
  • mysql中如何设置时区_如何设置MySQL的时区?

    我认为这可能是有用的 有三个位置可以在MySQL中设置时区 在 mysqld 部分中的 my cnf 文件中default time zone 00 00 global Timezone变量 若要查看它们设置为什么值 请执行以下操作 SEL
  • 如何为Kafka集群选择合适的Topic/Partitions数量

    这是许多kafka使用者经常会问到的一个问题 本文的目的是介绍与本问题相关的一些重要决策因素 并提供一些简单的计算公式 越多的分区可以提供更高的吞吐量 首先我们需要明白以下事实 在kafka中 单个patition是kafka并行操作的最小
  • 2023华为OD机试真题【最左侧冗余覆盖子串/滑动窗口】

    题目描述 给定两个字符串 s1 和 s2 和正整数k 其中 s1 长度为 n1 s2 长度为 n2 在s2中选一个子串 满足 1 该子串长度为n1 k 2 该子串中包含s1中全部字母 3 该子串每个字母出现次数不小于s1中对应的字母 我们称
  • Element-UI 前端UI 组件库

    目录 Element UI 前端UI 组件库 配置Element UI 组件库 通过 UI 界面方式实现 配置插件 遇到的问题 Element UI 前端UI 组件库 个人博客地址 Element UI 前端UI 组件库 配置Element
  • Java代码连接数据库

    一 JDBC 全称 Java database connectivity java连接数据库 使用 Java 代码去连接数据库 然后对数据库中的数据进行增删改查 加载驱动 首先导入mysql的jar包 1 在 src 文件夹下面新建一个 l
  • 最长上升子序列(C语言 动态规划)

    描述 一个数的序列bi 当b1 lt b2 lt lt bS的时候 我们称这个序列是上升的 对于给定的一个序列 a1 a2 aN 我们可以得到一些上升的子序列 ai1 ai2 aiK 这里1 i1 lt i2 lt lt iK N 比如 对
  • linux设备利用率,linux – 对dm设备100%利用率的影响

    我们这里有一台RHEL 5 6服务器 有4条到单个LUN的活动路径 我们怀疑它无法将管道中的足够的IO塞进到另一端的XIV mpath0 XXXXXXXXXXXXXXX dm 9 IBM 2810XIV size 1 6T features
  • WARN Received a PartitionLeaderEpoch assignment for an epoch < latestEpoch

    Topic 处于 under replicated 状态 server log 充满 2020 11 30 19 00 00 006 WARN Received a PartitionLeaderEpoch assignment for a
  • MySQL---创建表和连表、分组、排序等操作

    首先这里有两张表做测试用 代码均在命令提示符终端完成 创建部门表 create table department table department id int auto increment primary key department v
  • TCP三次握手如果使用二次握手代替则会出现的问题

    简述 第一次握手 发送SYN报文 传达信息 你好 我想建立连接 第二次握手 回传SYN ACK报文 传达信息 好的 可以建立链接 第三次握手 回传ACK报文 传到信息 好的 我知道了 那我们连接 然后就建立连接了 在发送报文之前各方都要确认