首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySql协议详解-HandShake握手

MySql协议详解-HandShake握手篇 各位有没有对Cobar、MyCat这些MySqlProxy感到新奇。反正笔者在遇到这些proxy时,感受到其对代码的无侵入兴感到大为惊奇。...于是走上了研究MySql协议的不归路。现在我就在博客里面将其中所得分享出来,以飨大家。 HandShake协议 下图是笔者整理的HandShake协议交互流程 ?...Step1:客户端向DB发起TCP握手。 Step2:三次握手成功。与通常流程不同的是,由DB发送HandShake信息。这个Packet里面包含了MySql的能力、加密seed等信息。...MySql报文图解 MySql协议与众多基于TCP的应用层一样,为了解决"粘包"问题,自定义了自己的帧格式。其主要通过Packet头部的length字段来确定整个报文的大小。...password的摘要方式 AuthPacket的password是对原密码摘要后的byte流,其根据MySql协议版本的不同分为411和322两个大版本。

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

tcp握手失败怎么办_TCP协议握手

这些异常场景共分为两大类,第一类是 TCP 三次握手期间的异常,第二类是 TCP 四次挥手期间的异常。 TCP 三次握手期间的异常 我们先来看看 TCP 三次握手的过程。...第二次握手丢失了,会发生什么? 当服务端收到客户端的第一次握手后,就会回 SYN-ACK 报文给客户端,这个就是第二次握手,此时服务端会进入 SYN_RCVD 状态。...第二次握手的 SYN-ACK 报文其实有两个目的 : 第二次握手里的 ACK, 是对第一次握手的确认报文; 第二次握手里的 SYN,是服务端发起建立 TCP 连接的报文; 所以,如果第二次握手丢了,就会发送比较有意思的事情...因为第二次握手报文里是包含对客户端的第一次握手的 ACK 确认报文,所以,如果客户端迟迟没有收到第二次握手,那么客户端就觉得可能自己的 SYN 报文(第一次握手)丢失了,于是客户端就会触发超时重传机制,...因为这个第三次握手的 ACK 是对第二次握手的 SYN 的确认报文,所以当第三次握手丢失了,如果服务端那一方迟迟收不到这个确认报文,就会触发超时重传机制,重传 SYN-ACK 报文,直到收到第三次握手

80650

在tcp协议的三次握手中(tcpip协议三次握手)

第三次握手: A 收到 B 的消息后,就证明了 A 听筒正常,B 话筒正常 以上三次握手就保证了 A、B 的听筒和话筒都正常,也就保证了通话的正常,这就类似于网络建立连接时的三次握手 TCP 中真实的建立连接过程...: (假设主机 A 主动发起连接) 第一次握手: 客户端向服务器发送 SYN 报文 (SEQ=x,SYN=1),并进入 SYN_SENT 状态,等待服务器确认 第二次握手: 实际上是分两部分来完成的...不可以 防止已失效的请求报文又传送到了服务端,建立了多余的链接,浪费资源 两次握手只能保证单向连接是通畅的 (为了实现可靠数据传输, TCP 协议的通信双方,都必须维护一个序列号,以标识发送出去的数据包中...,哪些是已经被对方收到的;三次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤;如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则得不到确认...可以,但没必要 四次握手可以验证双方的发送接收能力正常,但是这样做效率比较低 . 3.2.断开连接 – 四次挥手 ▲ 三次握手: 双方各自向对方发起建立连接的请求,再各自给对方回应,只不过,中间的

47610

SSL协议概述和握手过程

SSL协议主要是为了保证WEB通信的安全性,是基于TCP协议的 SSL协议有三个特性: 1.机密性 SSL协议的机密性主要依靠的是对称加密体质,在通信过程中,使用对称密码进行加密解密保证信息的安全性。...3.认证性 SSL协议握手的时候会用公钥证书来鉴别对方的身份。...SSL协议握手过程: SSL协议握手过程分为两类:单向握手和双向握手,通信双方分别为Client和Server,这里的Client和Server不同于HTTP协议,区别在于发起SSL握手的定义为Client...1.SSL协议单向握手过程: (1)首先客户像服务器先发送一个ClientHello的消息,开始了SSL握手的协商过程,这个消息主要包含了客户端的SSL的版本,随机数,回话ID,密码算法列表和压缩算法列表...2.SSL协议双向握手过程: 双向握手和单向后手的区别就在于多了服务端对客户端进行身份认证的过程,具体的过程如下,红色为改变的地方: (1)首先客户像服务器先发送一个ClientHello的消息,开始了

2.1K31

手撕Rtmp协议细节(1)——握手

,本篇首先来看看rtmp协议握手的部分。...RTMP协议建立连接的过程,也需要有握手的过程。这一篇就记录一下rtmp握手的过程。 RTMP协议是基于TCP的,TCP建立连接有三次握手。如下图: ?...所以,RTMP首先在TCP层面是有三次握手的过程的,在TCP连接建立以后,再进行RTMP协议层次的握手。...与其他握手协议不同,rtmp协议握手交换的数据报文是固定大小的,客户端向服务端发送的3个报文为c0、c1、c2,服务端向客户端发送的3个报文为s0、s1、s2。...写到这里,rtmp协议握手的流程我们就基本清晰了,握手的过程主要完成了两个工作,一是对rtmp的版本进行校验,二是发送了一些随机数据,用于网络状况的检测。

3.2K51

浅谈tcp协议的三次握手

tcp协议三次握手 大家在学习网络这一块的时候,三次握手是必不可少的,那么具体的三次握手是怎么一回事呢 我这边也是给大家说一下。...相信大家都玩过回合制游戏吧,比如说仙剑奇侠传四,在战斗的时候都是你来我往的,你打一下我打一下,那么三次握手也是类似的,具体看图 下面说一下具体的三次握手的过程: 第一次: 首先是客户端,也就是浏览器端发出连接请求...第三次: 然后回到了客户端这边,客户端收到了服务端的回应以及请求,也会回一个ack=y+1(服务器端的序列号加1),并且将发来的自己的序列号加1的基础上再加上1,此时连接完成 疑问点 为什么是三次握手,...咱们都熟悉的些希仁写的《计算机网络》第四版讲的三次握手的目的是为了防止已失效的连接请求报文突然又传到了服务器端因而产生错误。 为什么不是是两次呢?...但第一个请求只是延后了,也发送到了服务端那里,服务端以为发出了新的请求,就会等待,其实客户端什么都没有做,白白的浪费了服务端的资源,所以需要三次握手进行相互确认 为什么不是更多次呢?

22420

https与TLSSSL 握手协议、record protocol简介

https即 HTTP Secure,HTTP的通信接口部分用SSL和TLS协议代替,并非是一种新的协议。...image.png TLS协议是在SSL3.0的基础上开发的协议,以下统一用TLS协议来说明 http的问题 通信使用明文,内容被窃听后存在安全问题 不验证通信方的身份,可能遭到伪装 无法验证报文的完整性...首先进行"握手",通过之后再进行通信 TLS握手协议概述 image.png 客户端发送 ClientHello 信息,包含 一个随机数 客户端所支持的协议版本 客户端支持的对称加密算法 key_share...Pre master secret 后,通过私钥解密,使用与客户端相同的方法,以及步骤7中的3个随机数,生成会话用的秘钥,使用这个加密秘钥发送一个Finished报文给客户端,验证加密通道,同时服务端握手结束...,传输成功之后,二者生成的最后一个会话秘钥用来通话,这是因为非对称秘钥加密和解密处理速度相对对称秘钥要慢,因此仅在握手阶段使用非对称秘钥传递,通信的时候使用握手阶段生成的会话秘钥进行加密 3个随机数 在握手的阶段首先是客户端随机生成了一个随机数

1.3K20

php一步一步实现mysql协议(二) ——握手初始化

交互过程 MySQL客户端与服务器的交互主要分为两个阶段:握手认证阶段和命令执行阶段。...握手认证阶段 握手认证阶段为客户端与服务器建立连接后进行,交互过程如下: 服务器 -> 客户端:握手初始化消息 客户端 -> 服务器:登陆认证消息 服务器 -> 客户端:认证结果消息 命令执行阶段 客户端认证成功后...上面就是mysql客户端和服务端的交互流程,然后结合实际中的抓包工具来看先这个过程。这里使用php的PDO扩展连接数据库并执行一条查询语句,抓包情况如下 ?...先看下握手初始化的报文,如图: ?   ...消息体中的第一个字节表示的是协议版本号 0a 转为十进制是 10 所以协议版本号就是10,16进制整数转为10进制的实现如下 <?

82020

TCP协议:三次握手过程详解

本文通过图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 ?...断开连接的过程也很简单,通过四次握手完成断开连接的过程。...三次握手建立连接: 第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个...ESTABLISHED状态,完成三次握手。...试想一下,如果一个网络内有成千上万的TCP连接都这么行事,那么马上就会形成“网络风 暴”,TCP这个协议就会拖垮整个网络。为此,TCP引入了拥塞控制策略。

99020

真正“搞”懂HTTPS协议17之TLS握手

我记得之前大概聊过,当你在浏览器的地址栏输入一个URL地址会发生什么,大致是浏览器从URI中获取协议名和域名,获取默认端口号,再用DNS解析出IP地址,然后就可以三次握手与网站建立TCP连接了,然后就会立即进行报文的传递...这个握手过程与TCP类似,是HTTPS和TLS协议里最重要、最核心的部分,搞懂了TLS握手,你就掌握了HTTPS。 一、TLS协议的组成   在讲TLS握手之前,我们先来了解下TLS协议的组成。   ...TLS 包含几个子协议,你也可以理解为它是由几个不同职责的模块组成,比较常用的有记录协议、警报协议握手协议、变更密码规范协议等。...握手协议(Handshake Protocol)是 TLS 里最复杂的子协议,要比 TCP 的 SYN/ACK 复杂的多,浏览器和服务器会在握手过程中协商 TLS 版本号、随机数、密码套件等信息,然后交换证书和密钥参数...其中握手协议是最最重要的,也是本章的重点。我们先来看张简要图:    我们来分析下上图,我们可以粗略的看到三种颜色,嗯……没错,我们还可以看到两次数据的往返。嗯……也没错。

1.1K30

TCP协议为什么需要三次握手

TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以?...读者可以带着疑问,看一遍本篇博客的详细讲解 ok,首先解释原因之前还是要先复习一下TCP的基本知识和三次握手协议: 1、什么是TCP协议?...TCP:Transmission Control Protocol翻译过来就是传输控制协议,TCP协议是一个面向连接的、可靠的、基于字节流的传输层协议 RFC 793对TCP连接的定义: Connections...2、TCP协议的特性 面向连接:是指TCP是通过服务端和客户端进行连接的协议 面向字节流:TCP服务端和客户端之间的数据通讯是通过字节流数据传输的 可靠的:是指TCP服务端客户端之间的数据传输是很稳定的...然后服务端状态就变成SYN-RCVD状态 4、客户端接收到信息之后,再次发送ACK,然后变成ESTABLISHED(已确认)状态,服务端接收到返回信息后,状态也变成ESTABLISHED(已确认)状态 4、TCP协议为什么需要三次握手

6.1K20

TCPIP协议三次握手、四次挥手

TCP/IP协议三次握手、四次挥手 TCP报文格式 两次握手 三次握手 四次挥手 TCP报文格式 image-1647244044367.png 32位序号:随机生成,唯一标识当前报文的序号是多少...SYN:1:发起一个新的连接 FIN:1:结束一个连接 两次握手 image-1647244064757.png 说明:客户端向服务端发送报文,服务端收到了,说明服务端接受客户端的消息没问题。...此时两次握手只能保证情景1,保证不了情景2,因为第二次握手对服务端来说,只知道我能连上客户端,但不知道客户端能不能连上我。...所以需要客户端发送第三次握手进行确认,要是服务端能收到,则说明我服务端知道你客户端也能连上我。...三次握手 image-1647244114917.png 四次挥手 image-1647244125764.png 第一次挥手:服务器知道了客户端要和我断开连接,但此时服务端不一定最好准备,以为此时服务端可能还有未发送完的消息

14220

TCPIP协议之三次握手过程及原因

三次握手都做什么? 三次握手 建立起 TCP连接 的 reliable,分配初始序列号和资源,在相互确认之后开始数据的传输。有 主动打开(一般是client) 和 被动打开(一般是server)。...TCP使用3次握手建立一条连接,该握手初始化了传输可靠性以及数据顺序性必要的信息,这些信息包括两个方向的初始序列号,确认号由初始序列号生成,使用3次握手是因为3次握手已经准备好了传输可靠性以及数据顺序性所必要的信息...在谈论这个之前,我们先要知道TCP是基于IP协议的,而IP协议是有路由的,IP协议不能够保证先发送的数据先到达,这当中依赖于IP协议底层的网络质量,以及Client与Server之间的路由跳数。...三次握手失败了会怎么样?...三次握手的状态转换?

29930

彻底弄懂TCP协议:从三次握手说起

作者:morganhuang,腾讯 IEG 后台开发工程师 说到 TCP 协议,相信大家都比较熟悉了,对于 TCP 协议总能说个一二三来,但是 TCP 协议又是一个非常复杂的协议,其中有不少细节点让人头疼点...当然是从三次握手和四次挥手说起啦,可能大家都知道 TCP 是三次交互完成连接的建立,四次交互来断开一个连接,那为什么是三次握手和四次挥手呢?反过来不行吗?...疑症(1)TCP 的三次握手、四次挥手 下面两图大家再熟悉不过了,TCP 的三次握手和四次挥手见下面左边的”TCP 建立连接”、”TCP 数据传送”、”TCP 断开连接”时序图和右边的”TCP 协议状态机...TCP三次握手、四次挥手时序图 TCP协议状态机 要弄清 TCP 建立连接需要几次交互才行,我们需要弄清建立连接进行初始化的目标是什么。...大部分情况下建立连接需要三次握手,也不一定都是三次,有可能出现四次握手来建立连接的。

1.5K104
领券