-
HTTP
- TLS,关于安全
- 三次握手和四次挥手
-
浏览器输入url到页面呈现,经过的过程,
- DNS 解析IP地址
- 请求资源
- HTTP三次握手
- 网页渲染
-
三次握手
- SYN
客户端选择一个随机序列号 x,并发送一个 SYN 分组,其中可能还包括其他 TCP
标志和选项。 - SYN ACK
服务器给 x 加 1,并选择自己的一个随机序列号 y,追加自己的标志和选项,然
后返回响应。 - ACK
客户端给 x 和 y 加 1 并发送握手期间的最后一个 ACK 分组。
- SYN
-
四次挥手
- TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
- 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
- 服务器关闭客户端的连接,发送一个FIN给客户端。
- 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
-
TLS
-
TLS协议提供三个基本的服务
-
加密 :通过
非对称密钥加密
- 张三和李四分别生成自己的公钥和私钥;
- 张三和李四分别隐藏自己的私钥;
- 张三向李四公开自己的公钥,李四也向张三公开自己的公钥;
- 张三向李四发送一条新消息,并用自己的私钥签名;
- 李四使用张三的公钥验证收到的消息签名。
- 身份验证
- 数据完整性
-
-
-
三次握手
- 客户端向服务端发送一个请求SYN,请求中有随机序列号X,发送一个SYN分组
- 服务器收到请求,给随机序列号X加1,自己在发送一个随即序列Y和X给客户端
- 客户端收到X和Y,Y加上1,然后发送一个ACK分组给服务器
-
四次挥手
- TCP 给服务器发送一个 FIN
- 服务器收到FIN后,返回一个ACK
- 服务器关闭客户端的连接,发送一个FIN给客户端
- 客户端发回ACK报文确认
-
为什么了连接需要三次,关闭却需要四次
- 对于建链接的3次握手,主要是要初始化Sequence Number 的初始值。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)——所以叫SYN,全称Synchronize Sequence Numbers。也就上图中的 x 和 y。这个号要作为以后的数据通信的序号,以保证应用层接收到的数据不会因为网络上的传输的问题而乱序(TCP会用这个序号来拼接数据)。
- 对于4次挥手,其实你仔细看是2次,因为TCP是全双工的,所以,发送方和接收方都需要Fin和Ack。只不过,有一方是被动的,所以看上去就成了所谓的4次挥手。如果两边同时断连接,那就会就进入到CLOSING状态,然后到达TIME_WAIT状态。
参考
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。