TCP的3次握手细节

news2024/11/16 21:37:30

一、什么是TCP的三次握手

在网络数据传输中,传输层协议TCP是要建立连接的可靠传输,TCP建立连接的过程,我们称为三次握手。

三次握手的具体细节

1. 第一次握手:Client将SYN置1,随机产生一个初始序列号seq发送给Server,进入SYN_SENT状态;

2. 第二次握手:Server收到Client的SYN=1之后,知道客户端请求建立连接,将自己的SYN置1,ACK

置1,产生一个acknowledge number=sequence number+1,并随机产生一个自己的初始序列号,发送给客户端;进入SYN_RCVD状态;

3. 第三次握手:客户端检查acknowledge number是否为序列号+1,ACK是否为1,检查正确之后将自己的ACK置为1,产生一个acknowledge number=服务器发的序列号+1,发送给服务器;进入

ESTABLISHED状态;服务器检查ACK为1和acknowledge number为序列号+1之后,也进入

ESTABLISHED状态;完成三次握手,连接建立。

简单来说就是 :

1. 客户端向服务端发送SYN

2. 服务端返回SYN,ACK

3. 客户端发送ACK

二、用现实理解三次握手的具体细节

三次握手的目的是建立可靠的通信信道,主要的目的就是双方确认自己与对方的发送与接收机能正常。

1. 第一次握手:客户什么都不能确认;服务器确认了对方发送正常

2. 第二次握手:客户确认了:自己发送、接收正常,对方发送、接收正常;服务器确认 了:自己接收正常,对方发送正常

3. 第三次握手:客户确认了:自己发送、接收正常,对方发送、接收正常;服务器确认 了:自己发送、接收正常,对方发送接收正常 所以三次握手就能确认双发收发功能都正常,缺一不可。

三、建立连接可以两次握手吗?为什么?

不可以。

因为可能会出现已失效的连接请求报文段又传到了服务器端。 > client 发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但 server 收到此失效的连接请求报文段后,就误认为是 client 再次发出的一个新的连接请求。于是就向 client 发出确认报文段,同意建立连接。假设不采用 “三次握手”,那么只要 server 发出确认,新的连接就建立了。由于现在 client 并没有发出建立连接的请求,因此不会理睬 server 的确认,也不会向 server 发送数据。但 server 却以为新的运输连接已经建立,并一直等待 client 发来数据。这样,server 的很多资源就白白浪费掉了。采用 “三次握手” 的办法可以防止上述现象发生。例如刚才那种情况,client 不会向 server 的确认发出确认。server 由于收不到确认,就知道 client 并没有要求建立连接。而且,两次握手无法保证Client正确接收第二次握手的报文(Server无法确认Client是否收到),也无法保证Client和Server之间成功互换初始序列号。

四、可以采用四次握手吗?为什么?

这个肯定可以。三次握手都可以保证连接成功了,何况是四次,但是会降低传输的效率

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虹科方案|使用 Thunderbolt™ 实现 VMware vSAN™ 连接

一、引言ATTO的Thunderbolt支持VMware ESXi 和ThunderLink产品线,使我们能够创建基于Mac的vSphere设置,从而能够为我们的macOS服务器提供虚拟化服务。 将虚拟硬件、快照和Veeam备份与macOS服务器的简单性相结合,将改变SMB市场的游戏规则。二、…

SVPWM控制技术+Matlab/Simulink仿真详解

文章目录前言一、SVPWM的控制原理二、空间矢量的概念三、电压与磁链空间矢量的关系四、三相逆变器的基本电压空间矢量五、SVPWM 算法的合成原理六、SVPWM 算法推导6.1.七段式SVPWM6.2.五段式SVPWM(又称DPWM)七、SVPWM 算法实现7.1.合成矢量Uref所处扇区的…

【手写 Promise 源码】第十篇 - Promise.prototype.catch 和 Promise.prototype.finally 的实现

theme: fancy 一,前言 上篇,主要实现了 Promise 的两个静态 API(类方法):Promise.resolve 和 Promise.reject,主要涉及以下几个点: Promise.resolve 创建并返回一个成功的 promise&#xff1…

WebDAV之葫芦儿·派盘+纯纯写作

纯纯写作 支持WebDAV方式连接葫芦儿派盘。 推荐一款简单的纯文本编辑软件,纯粹、有安全感、随时、绝对不丢失内容、具备良好的写作体验。界面非常简洁,且功能齐全,旨在给用户们提供贴心、舒适的写作服务。纯纯写作可以实现在Windows桌面PC, Android设备上同步的移动办公软件…

梦熊杯-十二月月赛-钻石组-B.卷王

B. Problem B.卷王(study.cpp) 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述: 在某个群里,有一个卷王,他很关心群友的学习成绩。 他扬言…

Web API请求查询字符串超长问题

调用Web API时返回“HTTP Error 404.15 - Not Found”的错误提示,如下截图: 经检查,传递的查询参数字符长度超过IIS默认最大查询字符串长度的设置,IIS服务器的 maxQueryString(单位:字节) 设置&…

一杯白酒搅动的资本江湖

王家卫的电影《东邪西毒》中有句经典台词:酒越喝越暖,水越喝越寒。江湖刀光剑影,唯有酒让武林人士在奔波途中心中一暖。然而,在白酒搅动的资本江湖中,酒企已经很久没有感受到上市的“暖意”了。自2016年金徽酒挂牌上交…

网络基础2--HTTP协议详解

目录 一、自定制协议 二、TCP粘包问题 2.1. 定长结构体和非定长结构体在发送时的区别 2.2. 那么为什么内存不连续的结构体不能直接使用send发送呢? 2.2. 那我们怎样去接收不定长的数据呢? 2.3. 我们怎样去接收不连续的内存呢? 2.4序列化和…

shiro权限框架介绍以及springboot整合shiro

What is Apache Shiro? Apache Shiro is a powerful and flexible open-source security framework that cleanly handles authentication, authorization, enterprise session management and cryptography. Apache Shiro’s first and foremost goal is to be easy to use…

LDO的dropout voltage

目录从一个设计错误谈起Dropout压降从芯片内部电路结构理解dropout压降MOS管 > 低dropout压降的LDO进一步降低dropout压降的方法在系统设计中,电源管理是不可或缺的,而LDO(线性稳压器)是电源管理器件中及其重要的一类器件。其应…

【JUC系列】线程变量ThreadLocal详解

ThreadLocal简介 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访…

Java-基础-2.常用类

一:object 他是java中最基础,最核心的类。在java类中,为申明extends,默认 extends Object。方法。 3.1 toString方法 public String toString()方法,其返回值是 String 类型,描 述当前对象的有关信息。 3.…

Java中的多态及应用示例

Java中的多态及实现示例简介实现示例instance of(待补)补入Java多态 简介 【预留(业务逻辑)接口的抽象类】对象 new 【实现了该 预留(业务逻辑)接口】的【预留业务逻辑接口的抽象类的子类】的 对象&…

Java_Git:5. 在IntelliJ IDEA中使用git

目录 1 在Idea中配置git 2 将工程添加至git 2.1 创建工程 2.2 创建本地仓库 2.3 将工程添加至本地仓库 2.4 推送到远程 3 从远程仓库克隆 4 从服务端拉取代码 1 在Idea中配置git 安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找…

C语言学习笔记-数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C数据可以从两方面宽泛的看:一、变量和常量;二、数据类型 从定义出发,变…

打造数字时代的“诺亚方舟”

玛雅人关于2012世界末日的预言除了提供给好莱坞灵感,拍摄了令人震撼的灾难片《2012》之外,似乎没有留下什么,人们已经渐渐淡忘了世界末日的说法。 但现实世界中却接二连三地在发生着重大灾难:2018年巴西国家博物馆大火&#xff0c…

(考研湖科大教书匠计算机网络)第三章数据链路层-第四节:可靠传输

专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:可靠传输基本概念(1)不可靠传输与可靠传输(2)分组丢失、分组失序和分组重复(3)可靠传输注意二&#xff1…

如何快速掌握Mybatis-Plus

目录 1. 什么是mybatis-plus 2. 初体验 3. 日志 4. 主键生成策略 6. 自动填充 7. 乐观锁 8. 条件查询 9. 分页查询 10. 逻辑删除 11. Wrapper 12. 在Mybatis-plus中使用xml配置 1. 什么是mybatis-plus MyBatis-Plus (opens new window)(简称 MP&#xff…

细说Linux虚拟化KVM-Qemu之virtio驱动

说明: KVM版本:5.9.1QEMU版本:5.0.0工具:Source Insight 3.5, Visio 1. 概述 前篇文章讲完了Qemu中如何来创建Virtio Device,本文将围绕Guest OS中的Virtio Driver来展开; 看一下Guest OS&…

发布自己的依赖(代码)到maven仓库2023

如果不想看文字可以看下面的视频 发布自己代码到maven中央仓库!第一步去sonatype注册登录,并发布issue https://issues.sonatype.org/secure/Dashboard.jspa > 去这个网站注册登录,用户名和密码会在后面发布jar包到中央仓库上用的到。 …