• HTTP

    • TLS,关于安全
    • 三次握手和四次挥手
  • 浏览器输入url到页面呈现,经过的过程,

    • DNS 解析IP地址
    • 请求资源
    • HTTP三次握手
    • 网页渲染
  • 三次握手

    • SYN
      客户端选择一个随机序列号 x,并发送一个 SYN 分组,其中可能还包括其他 TCP
      标志和选项。
    • SYN ACK
      服务器给 x 加 1,并选择自己的一个随机序列号 y,追加自己的标志和选项,然
      后返回响应。
    • ACK
      客户端给 x 和 y 加 1 并发送握手期间的最后一个 ACK 分组。
  • 四次挥手

    • TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
    • 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
    • 服务器关闭客户端的连接,发送一个FIN给客户端。
    • 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。
  • TLS

    • TLS协议提供三个基本的服务

      • 加密 :通过非对称密钥加密

          1. 张三和李四分别生成自己的公钥和私钥;
          2. 张三和李四分别隐藏自己的私钥;
          3. 张三向李四公开自己的公钥,李四也向张三公开自己的公钥;
          4. 张三向李四发送一条新消息,并用自己的私钥签名;
          5. 李四使用张三的公钥验证收到的消息签名。
      • 身份验证
      • 数据完整性
  • 三次握手

    • 客户端向服务端发送一个请求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状态。

参考


catchonme
146 声望8 粉丝

请回答2017