TCP 协议为什么要设计三次握手 TCP 协议,是一种可靠的,基于字节流的,面向连接的传输层协议。

文章目录

  • TCP 协议为什么要设计三次握手
    • TCP 协议,是一种可靠的,基于字节流的,面向连接的传输层协议。
    • TCP 通信双方的数据传输是通过字节流来实现传输的
    • 客户端向服务端发送连接请求并携带同步序列号 SYN。

今天我们来谈谈tcp的三次握手

TCP 协议为什么要设计三次握手

我们可以三个方面来说

TCP 协议,是一种可靠的,基于字节流的,面向连接的传输层协议。

  可靠性体现在 TCP 协议通信双方的数据传输是稳定的,即便是在网络不好的情况下,TCP 都能够保证数据传输到目标端,而这个可靠性是基于数据包确认机制来实现的。

TCP 通信双方的数据传输是通过字节流来实现传输的

  面向连接,是说数据传输之前,必须要建立一个连接,然后基于这个连接进行数据传输

  因为 TCP 是面向连接的协议,所以在进行数据通信之前,需要建立一个可靠的连接,TCP 采用了三次握手的方式来实现连接的建立。

  所谓的三次握手,就是通信双方一共需要发送三次请求,才能确保这个连接的建立。

客户端向服务端发送连接请求并携带同步序列号 SYN。

  服务端收到请求后,发送 SYN 和 ACK,这里的 SYN 表示服务端的同步序列号,
ACK 表示对前面收到请求的一个确认,表示告诉客户端,我收到了你的请求。

  客户端收到服务端的请求后,再次发送 ACK,这个 ACK 是针对服务端连接的一个确认,表示告诉服务端,我收到了你的请求。

在这里插入图片描述
之所以 TCP 要设计三次握手,我认为有三个方面的原因:

  TCP 是可靠性通信协议,所以 TCP 协议的通信双方都必须要维护一个序列号, 去标记已经发送出去的数据包,哪些是已经被对方签收的。而三次握手就是通信双方相互告知序列号的起始值,为了确保这个序列号被收到,所以双方都需要有一个确认的操作。

  TCP 协议需要在一个不可靠的网络环境下实现可靠的数据传输,意味着通信双方必须要通过某种手段来实现一个可靠的数据传输通道,而三次通信是建立这样一个通道的最小值。当然还可以四次、五次,只是没必要浪费这个资源。

  防止历史的重复连接初始化造成的混乱问题,比如说在网络比较差的情况下,客户端连续多次发送建立连接的请求,假设只有两次握手,那么服务端只能选择接受或者拒绝这个连接请求,但是服务端不知道这次请求是不是之前因为网络堵塞而过期的请求,也就是说服务端不知道当前客户端的连接是有效还是无效。

以上就是我对这个问题的理解。感谢大家的支持!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于yolov2深度学习网络的血细胞检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1YOLOv2算法原理 4.2 YOLOv2网络结构 4.3 血细胞检测算法实现 数据集准备 数据预处理 网络训练 模型评估与优化 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MAT…

特征归一化及其原理--机器学习

归一化是数据预处理中的一种常见操作,其目的是将不同特征的数值范围统一或缩放到相似的尺度。这有助于提高模型的性能,加速模型的收敛,并使模型更加稳健。以下是进行归一化的一些原因和原理: 消除特征间的尺度差异: 不…

一招搞定msvcr100.dll缺失问题,msvcr100.dll丢失的多种解决方法

msvcr100.dll是Microsoft Visual C 2010 Redistributable Package的一部分,它是运行许多基于Windows操作系统上的应用程序所必需的动态链接库文件。如果该文件安装不正确、丢失或损坏,则使用该文件的应用程序将无法正常启动,会出现“无法启动…

数据库开发之事务和索引的详细解析

2. 事务 场景:学工部整个部门解散了,该部门及部门下的员工都需要删除了。 操作: -- 删除学工部 delete from dept where id 1; -- 删除成功 ​ -- 删除学工部的员工 delete from emp where dept_id 1; -- 删除失败(操作过程中…

微信小程序开发系列-07组件

在开发小程序的过程中会遇到一个常见的问题,怎样将其他同事提供的样式或者第三方的样式载入自己的工程,本文基于这个问题为索引,探索下小程序的组件。 什么是组件 组件是视图层的基本组成单元。组件自带一些功能与微信风格一致的样式。一个…

统一入口,全面提升工作效率,WorkPlus超级APP引领数字化办公新潮流

在数字化办公的时代,企业往往面临着多个应用管理的挑战。员工需要在众多应用之间切换,记忆不同的登录凭证,这不仅分散了注意力,还降低了工作效率。为了应对这一问题,企业需要一站式的解决方案,通过整合繁杂…

SAP缓存 表缓存( Table Buffering)

本文主要介绍SAP中的表缓存在查询数据,更新数据时的工作情况以及对应概念。 SAP表缓存的工作 查询数据 更新数据 删除数据 表缓存的概念 表缓存技术设置属性 不允许缓冲: 允许缓冲,但已关闭: 缓冲已激活: 已…

qt连接hiki相机进行拍照保存

.pro QT工程pro文件模板变量(TEMPLATE)模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择: app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。 lib - …

C/S医院检验LIS系统源码

一、检验科LIS系统概述: LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化,检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后,自动生成打印报告,通过网络存储在数据库中&#xff…

前端 -- 基础 常用标签 ( 图像标签及其属性详解)

目录 图像标签 : 插入图像 图像标签的其它属性 : alt 属性 title 属性 width 属性 height 属性 border 属性 注意 图像标签 : 在我们的网页中,可以看到 好多 好多 图片,那这些图片又是怎样 在…

S7-1200PLC脉冲轴位置控制功能块(SCL代码)

S7-1200PLC脉冲轴控制梯形图代码请参考下面链接文章: https://rxxw-control.blog.csdn.net/article/details/127920634https://rxxw-control.blog.csdn.net/article/details/127920634 1、脉冲轴配置 2、机械参数和硬限位设置 3、回原配置 4、轴2配置 未完...

resnet18

ResNet18的基本含义是,网络的基本架构是ResNet,网络的深度是18层。但是这里的网络深度指的是网络的权重层,也就是包括池化,激活,线性层。而不包括批量化归一层,池化层。 transforms.RandomCrop(32, pa…