zoukankan      html  css  js  c++  java
  • 谈谈你对 TCP 三次握手和四次挥手的理解

    三次握手

    客户端发送syn(包含req,保证输入的安全性,以及验证包的顺讯)包到服务器,等待服务器接受.

    • 支持的协议版本
    • 一个客户端生成的随机数,用于生成'对话秘钥'
    • 支持的加密方法,比如RSA加密方法
    • 支持的压缩方法

    服务器接受数据包并确认客户的syn,并发送syn+ack(确认字符)的包给客户端.

    • 确认使用的加密通信的协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信
    • 一个服务器生成的随机数,用于生成'对话秘钥'
    • 确认使用的加密方法,比如RSA加密方法
    • 服务器证书

    客户端确认接受服务器接受的syn+ack的包,并向服务器发送确认包ack

    • 一个随机数。该随机数用服务器公钥加密,防止被窃听
    • 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送
    • 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验

    HTTPS 握手过程中,客户端如何验证证书的合法性?

    • 校验证书的颁发机构是否受客户端信任
    • 通过CRL和OCSP的方式验证证书时候被吊销
    • 对比系统时间,看证书是否到期
    • 通过校验对方是否存在证书的私钥,判断证书的网站域名是否与证书颁发的域名一致

    四次挥手

    • 客户端发送fin信号,告诉服务器需要断开连接,等待服务器响应.
    • 服务器接收到fin信号并确认,回应等待数据发送完成请求,发送ack包(失败可以重新发送).
    • 服务器数据传输完毕,发送给客户端确认信息,等待客户端响应,如响应,则服务端直接关闭.
    • 客户端收到响应,并确认信息,然后再次发送ack包给服务端,并进入time_wait状态,等待2MSL(最大报文生存时间)后,没有响应,则直接关闭.
  • 相关阅读:
    蟠桃记
    考新郎
    有假币
    年会抽奖
    发邮件
    进制回文数
    数位和
    外星人的语言
    一的个数
    继承
  • 原文地址:https://www.cnblogs.com/liuabo/p/13608155.html
Copyright © 2011-2022 走看看