TCP / IP 协议族和HTTS

TCP / IP 协议族

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

为什么要分层?
因为网络的不稳定性

如果我们传一个50M的数据,如果失败,每次都将需要重新传50M,但我们把它分成多块,失败时候只需重新传输失败的那一块。

具体分层:

Application Layer 应⽤层:HTTP、FTP、DNS
Transport Layer 传输层:TCP、UDP
Internet Layer 网络层:IP    
Link Layer 数据链路层:以太网、Wi-Fi   

发送方应用程序的数据总是从最上层开始,层层向下,最终经由物理层发送出去;相应的,在接收方的物理层接收到数据后,层层向上,最终经由应用层分发到具体的应用程序进程中。
在数据层向下的过程中,每一层都会对数据进行一些封装处理(如打包或者编码);而在数据层向上的过程中,每一层都会对数据进行一些逆处理(如解包或者解码)。这些对数据的处理和逆处理的过程就是为了实现该层的服务。

TCP 连接

什么叫做连接
通信双方建立确认「可以通信」,不会将对方的消息丢弃,即为「建立连接」


TCP 连接的建立——三次握手

三步:

1. 客户端:「我要向你发送消息」
2. 服务器:「好的。我要向你发送消息」
3. 客户端:「好的。

TCP 连接的关闭——四次挥手

四步:

1. 客户端:「我不再给你发送消息」
2. 服务端:「好的」
3. 服务端:「我不再给你发送消息」
4. 客户端:「好的」

为什么 TCP 连接在断开时是四次挥手而不是三次?

因为在客户端停止向服务器发送消息时,也许服务器还有消息需要向客户端发送,因此在它对客户端的「我不再给你发送消息」消息进行回应时,不需要立即附加上「我也不再向你发送消息」。在稍后服务器的消息发送完毕之后,才需要向客户端发送通知。

长连接

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

HTTPS

定义
HTTP over SSL 的简称,即工作在 SSL (或 TLS)上的 HTTP。说白了就是加密通信的 HTTP。

工作原理
在客户端和服务器之间通过非对称加密协商出一套对称密钥,以后每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输

为什么不直接用非对称加密?
非对称加密由于使用了复杂了数学原理,因此计算相当复杂,如果完全使用非对称加密来加密通信内容,会严重影响网络通信的性能

HTTPS 连接建立的过程
1. Client Hello

客服端对服务端说要建立连接,并附加:支持的TLS版本、支持的对称加密算法、支持的非对称加密算法、支持的hash算法、一个随机数


2. Server Hello

服务端对客服端说好的,并对客服端发来的信息里选出一组TLS版本、对称加密算法、非对称加密算法、hash算法、以及一个随机数,发还客户端

3. 服务器证书 信任建立

服务端对客服端发证书,证书里包含公钥

4. Pre-master Secret

客户端利用持有的客户端随机数和服务端随机数,通过唯一一次的非对称加密,生产出一个叫做 Pre-master Secret的随机数传给服务器,双方用这三个随机数计算出Master Secret,利用Master Secret计算出客户端加密秘钥,服务端加密秘钥,客户端MAC Secret,服务端端MAC Secret(MAC Secret是用来做hash以验证身份的)

5. 客户端通知:将使用加密通信

6. 客户端发送:Finished

将前面的所有内容打包,加密发给对方

7. 服务器通知:将使用加密通信

8. 服务器发送:Finished

将前面的所有内容打包,加密发给对方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值