握手协议

圈圈教你学USB第一章

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-29 11:28:05
1.7 USB设备描述符及其之间的关系 USB1.1 设备描述符 USB协议版本号 设备类型 端点0最大包大小 VID PID 设备版本号 厂商字符串索引 产品字符串索引 设备序列号索引 可能的配置 配置描述符 配置说包含的接口数、配置的编号、供电方式、是否支持远程唤醒、电量需求 接口描述符 接口的编号、接口的端点数、接口所使用的类、子类、协议 端点描述符 端点号及方向 端点的传输类型 最大的包长度 查询时间间隔等 字符串描述符 单独获取 获取字符串请求 描述符索引号 语言ID来获取 USB2.0 Device Qualifier Descriptior Other Speed Configuration Description 还有些 类特殊 描述符 HID描述符 厂家自定义描述符 1.8 USB设备枚举的过程 枚举的传输方式 控制传输 控制传输的三个过程 :建立过程 可选数据过程 状态过程 枚举的详细过程 1.获取设备描述符 这里面需要注意管道0得到大小和设备描述符的大小 但是管道的最大包长度是在设备描述符的最前面八个字节 2. 设置地址 3.再次获取设备描述符 ,但是这次的用分配的地址获取全部的设备描述符 4. 获取配置描述符 然后获取配置集合 1.9 USB的包结构及传输过程 1.91 USB的包结构及包的分类 传输以包为单位· 包分为·不同的域 通用格式 同步域. PID

SSL/TLS 握手过程详解

好久不见. 提交于 2019-12-29 07:35:43
转自:http://www.jianshu.com/p/7158568e4867 我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输安全性的要求也越来越高,HTTPS 协议因此出现。如上图所示,在 HTTPS 加密中真正起作用的其实是 SSL/TLS 协议。SSL/TLS 协议作用在 HTTP 协议之下,对于上层应用来说,原来的发送接收数据流程不变,这就很好地兼容了老的 HTTP 协议,这也是软件开发中分层实现的体现。 SSL/TLS 握手是为了安全地协商出一份对称加密的秘钥,这个过程很有意思,下面我们一起来了解一下。 以下内容需要你对加解密、数字签名和数字证书的概念有一定了解,这里 有一篇文章 可以帮你快速了解这几个概念。 SSL/TLS 握手过程 上图大致描述了 SSL/TLS 的握手过程,但缺少了一些信息不利于理解,我会在后面的讲解里再列出来。 Client Hello 握手第一步是客户端向服务端发送 Client Hello 消息,这个消息里包含了一个客户端生成的随机数 Random1、客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。通过 Wireshark 抓包,我们可以看到如下信息: Wireshark 抓包的用法可以参考 这篇文章 Server Hello

以后面试官再问你三次握手和四次挥手,直接把这一篇文章丢给他

坚强是说给别人听的谎言 提交于 2019-12-28 15:37:37
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就成功了。 面试官:然后呢? 求职者:这就是三次握手的过程,很简单的。 面试官:。。。。。。 (番外篇:一首凉凉送给你) 记住我的一句话: 面试时越简单的问题,一般就是隐藏着比较大的坑,一般都是需要将问题扩展的 。上面求职者的回答不对吗?当然对,但距离面试官的期望可能还有点距离。 希望大家能带着如下问题进行阅读,收获会更大。 请画出三次握手和四次挥手的示意图 为什么连接的时候是三次握手,关闭的时候却是四次握手? 什么是半连接队列? ISN(Initial Sequence Number)是固定的吗? 三次握手过程中可以携带数据吗? 如果第三次握手丢失了,客户端服务端会如何处理? SYN攻击是什么? 挥手为什么需要四次? 四次挥手释放连接时,等待2MSL的意义? 1. 三次握手 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

TCP 3次握手/4次握手

ε祈祈猫儿з 提交于 2019-12-27 17:01:06
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (1) 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 (2) 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。 (3) 第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据。 图1 TCP三次握手建立连接 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送(报文段4)。 (2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。 (3)服务器B关闭与客户端A的连接

TCP/IP三次握手和HTTP过程

流过昼夜 提交于 2019-12-26 07:28:25
1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开) 2、HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一

HTTP与HTTPS握手的那些事

ε祈祈猫儿з 提交于 2019-12-24 06:32:26
前提 在讲述这两个握手时候,有一些东西需要提前说明。 HTTP与TCP/IP区别? TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。 下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI(Open System Interconnect)模型中的位置: PS:表格来自网上资料 CA证书是什么? CA(Certificate Authority)是负责管理和签发证书的第三方权威机构,是所有行业和公众都信任的、认可的。 CA证书,就是CA颁发的证书,可用于验证网站是否可信(针对HTTPS)、验证某文件是否可信(是否被篡改)等,也可以用一个证书来证明另一个证书是真实可信,最顶级的证书称为根证书。除了根证书(自己证明自己是可靠),其它证书都要依靠上一级的证书,来证明自己。 HTTP三次握手 HTTP(HyperText Transfer Protocol)超文本传输协议是互联网上应用最为广泛的一种网络协议。由于信息是明文传输,所以被认为是不安全的。而关于HTTP的三次握手,其实就是使用三次TCP握手确认建立一个HTTP连接。 如下图所示,SYN(synchronous)是TCP/IP建立连接时使用的握手信号

SSL与TLS的区别以及介绍

爱⌒轻易说出口 提交于 2019-12-22 14:10:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。   SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。   SSL (Secure Socket Layer)   为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。   当前版本为3

【科普】TLS1.3如此强大!我们如何迎接它?

允我心安 提交于 2019-12-19 11:09:14
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> HTTPS 时代已经来临,而新一代安全传输协议TLS1.3的普及会大大提升HTTP连接速度的性能,消除HTTPS使用性能上的担忧,助推HTTPS进一步应用落地。早在去年,阿里云CDN HTTPS就已经全面支持TLS1.3,鼓励用户逐步升级到更安全、性能更佳的TLS1.3,帮助终端获得更好的访问体验。本文由阿里云CDN技术专家林胜恩(啸坤)为你详细揭秘TLS1.3的发展历程、特性以及应用。 一、TLS1.3协议发展历程 SSL协议起源于1994年,当时网景公司推出首版网页浏览器及HTTPS协议,用于加密的就是SSL。此后相继推出SSL2.0及3.0版本,1999年IETF将SSL标准化,即 RFC 2246 ,并将其命名为TLS。2006年和2008年又分别推出TLS1.1和TLS1.2版本。 在SSL/TLS发展过程中曾出现过各种安全漏洞,如Heartbleed、POODLE,这导致SSL3.0及其之前版本逐渐废弃,目前互联网使用的主流协议是TLS1.2版本。 TLS1.3协议针对安全强化及效率提升等方面进行了大量修改,IETF相继推出个28个草案版本,历时4年多,终于在今年8月份完成最终的标准化 ( RFC 8446 ) 。 二、TLS 1.3协议好在哪? 安全强化 ,TLS1.3依循极简主义的设计哲学

TCP/IP三次握手和HTTP过程

自闭症网瘾萝莉.ら 提交于 2019-12-19 00:24:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TCP/IP三次握手和HTTP过程 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开) 2、HTTP连接 HTTP协议即超文本传送协议(Hypertext

Socket连接与HTTP连接

北战南征 提交于 2019-12-17 02:04:07
Socket连接与HTTP连接 我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。 1)Socket是一个针对TCP和UDP编程的接口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 。 而http是个应用层的协议,它实际上也建立在TCP协议之上。 (HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。) 2)Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。 下面是一些的重要的概念,特在此做摘抄和总结。 一。什么是 TCP 连接的三次握手 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j