美文网首页
HTTPS,TCP/IP协议族

HTTPS,TCP/IP协议族

作者: 吐必南波丸 | 来源:发表于2019-12-13 16:24 被阅读0次

HTTPS

  • 全称: HTTP over SSL
    • 工作在 SSL (或 TLS)上的 HTTP,说⽩了就是加密通信的 HTTP
  • SSL: Secure Socket Layer -> TLS Transport Layer Secure
    • 定义: 在HTTP之下增加的一个安全层,用于保障HTTP的加密传输
    • 本质: 在客户端和服务器之间协商出一个对称密钥,每次发送信息之前将内容加密,收到之后解密,达到内容传输
    • 位置:在HTTP下面 ,在TCP层上面,相对更靠近应用层(HTTP)层.
  • 为什么不用非对称加密?
    • 非对称加密由于使⽤用了了复杂了了数学原理理,因此计算相当复杂,如果完全使⽤用⾮非对称加密来加密通信内 容,会严重影响⽹网络通信的性能
HTTPS链接
  • 客户端请求建立TLS链接(通过TCP)
  • 服务器发回证书
  • 客户端验证服务器证书
  • 客户端信任服务器后,和服务器协商对称密钥
  • 使用对称密钥开始通信
流程 :
  1. 客户端发送消息(打招呼,我要建立连接): Client Hello
  2. 服务端回消息(回招呼:Sever Hello 并携带第三步
  3. 服务器发出服务器证书,告诉你我的公钥 让你验证我的身份
  4. 发出通过公钥传过去Pre-master-secret
  5. 客户端发送:我要使用加密通信了
  6. 客户端发送:Finished
  7. 服务器发送:我要使用加密通信了
  8. 服务器发送:Finished
  9. 完成(以上流程通过TCP完成的) ,就可以开始使用https通信了


    image.png

TCP/IP

概念

一系列列协议所组成的一个网络分层模型

为什什么要分层?

因为⽹网络的不不稳定性

具体分层
  • Application Layer 应用层: HTTP 、FTP、DNS
  • Transport Layer 传输层:TCP、UDP
  • Internet Layer 网络层 :IP
  • Link Layer 数据链路层:以太网
    image.png
    HTTP::负责下达指令,发出自己想要传输的数据
    TCP::接收到HPPT需要传输的数据,负责拆分模块并且编号,再检测数据是否传输成功,交给IP层
    IP:只负责往目标地址传输,TCP给数据就传,什么都不管
    LINK:为网络提供实时终端支持
TCP链接

通信双方建立确认"可以通信",不会将对方的消息丢失,即为"建立链接"

  • TCP链接的建立模型
    第一次握手:主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B,向主机B 请求建立连接,通过这个数据段, 主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。
    第二次握手:主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用那个序列号作为起始数据段来回应我
    第三次握手:主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了,这样3次握手就完成了,主机A和主机B 就可以传输数据了
    • 3次握手的特点
      没有应用层的数据 ,SYN这个标志位只有在TCP建立连接时才会被置1 ,握手完成后SYN标志位被置0。


      tcp链接.png
  • TCP的链接关闭模型
    TCP建立连接要进行3次握手,而断开连接要进行4次
  1. 客户端调用 close() 函数后,向服务器发送 FIN 数据包,进入FIN_WAIT_1状态。FIN 是 Finish 的缩写,表示完成任务需要断开连接。

  2. 服务器收到数据包后,检测到设置了 FIN 标志位,知道要断开连接,于是向客户端发送“确认包”,进入CLOSE_WAIT状态。

注意:服务器收到请求后并不是立即断开连接,而是先向客户端发送“确认包”,告诉它我知道了,我需要准备一下才能断开连接。

  1. 客户端收到“确认包”后进入FIN_WAIT_2状态,等待服务器准备完毕后再次发送数据包。

  2. 等待片刻后,服务器准备完毕,可以断开连接,于是再主动向客户端发送 FIN 包,告诉它我准备好了,断开连接吧。然后进入LAST_ACK状态。

  3. 客户端收到服务器的 FIN 包后,再向服务器发送 ACK 包,告诉它你断开连接吧。然后进入TIME_WAIT状态。

  4. 服务器收到客户端的 ACK 包后,就断开连接,关闭套接字,进入CLOSED状态。


    TCP关闭.png
  • 由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式, 大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互, 为数据正式传输打下了可靠的基础

UDP协议:
无连接协议,也称透明协议,也位于传输层。
三、两者区别:

  • TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
  • TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
  • TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
  • TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。

长连接

  • 为什么要长连接?
    因为移动⽹网络并不在 Internet 中,而是在运营商的内网,并不具有真正的公网 IP,因此当某个 TCP 连接在⼀一段时间不不通信之后,网关会出于网络性能考虑而关闭这条 TCP 连接和公网的连接通道,导致 这个 TCP 端口不再能收到外部通信消息,即 TCP 连接被动关闭。
  • 长连接的实现方式
    心跳,即在⼀一定间隔时间内,使⽤用 TCP 连接发送超短⽆无意义消息来让⽹网关不不能将⾃自⼰己定义为「空闲连 接」,从⽽而防⽌止⽹网关将⾃自⼰己的连接关闭

相关文章

  • HTTP和HTTPS详解

    TCP/IP协议族 TCP/IP 的分层管理 TCP/IP 协议族里重要的一点就是分层。TCP/IP 协议族按层次...

  • 图解HTTP笔记

    TCP/IP协议族:一般认为TCP/IP指的是在IP协议通信过程中,使用到的协议族的统称 TCP/IP协议族分为五...

  • TCP/IP

    TCP/IP协议族 TCP/IP协议族包含:TCP、UDP、IP、FTP、HTTP、SMTP、ICMP OSI七层...

  • (二)TCP/IP四层模型

    1、基本介绍 TCP/IP协议,也称TCP/IP协议族或TCP/IP协议栈,其中: TCP:Transmissio...

  • 网络编程

    一、TCP/IP TCP/IP是互联网相关的各类协议族的总称。 1.TCP/IP的分层管理 TCP/IP协议族层次...

  • HTTPS,TCP/IP协议族

    HTTPS 全称: HTTP over SSL工作在 SSL (或 TLS)上的 HTTP,说⽩了就是加密通信的 ...

  • http 图解

    web网络基础 tcp/ip协议族是什么? tcp/ip协议族是互联网相关协议集合的总称 tcp/ip分为几个层,...

  • 《图解HTTP》

    网络基础TCP/IPTCP/IP协议族说法一:TCP/IP是指TCP和IP两种协议说法二:TCP/IP是在IP协议...

  • JAVA网络编程的一点点基础

    一:TCP/IP协议 TCP/IP是一个协议族。 TCP:(TransmissionControlProtocol...

  • TCP协议三次握手、四次挥手实现原理

    TCP协议实现原理 TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。 从协议...

网友评论

      本文标题:HTTPS,TCP/IP协议族

      本文链接:https://www.haomeiwen.com/subject/xwifnctx.html