2020-03-25【网络基础知识】

HTTPS 建立连接流程

title:HTTPS 建立连接流程
participant Client
participant Server

Client->Server:1.TLS版本号,支持的加密算法们,random num C
Server->Client:2.确定的加密算法,random num S, server证书
Client->Client:3.验证Server证书
Client->Client:4.组装会话秘钥
Client->Server:5.通过server的公钥对预主秘钥进行加密传输
Server->Server:6.通过私钥解密得到预主秘钥
Server->Server:7.组装会话秘钥
Client->Server:8.加密的握手消息
Server->Client:9.加密的握手消息

TCP&UDP

传输层协议
TCP 传输控制协议
UDP 用户数据报协议

一、UDP

1.特点

  • 无连接
  • 尽最大努力交付(不保证可靠传输)
  • 面向报文
面向报文

既不合并,也不拆分

(应用层)应用层报文 -> (传输层)UDP首部+UDP用户数据包的数据部分 -> (IP层) IP首部+IP数据报的数据部分

2.功能

  • 复用
  • 分用
  • 差错检测
复用
端口1-->UDP
端口2-->UDP
端口3-->UDP
UDP-->IP
分用
IP-->UDP
UDP-->端口1
UDP-->端口2
UDP-->端口3
差错检测
  • 12字节伪首部
  • 8字节UDP首部
    • 以16字为一单元,按二进制饭吗计算出这些16位字的和,将和的而知之反码写入到检验和位
  • 7字节数据

二、TCP

特点

  • 面向连接
  • 可靠传输
  • 面向字节流
  • 流量控制
  • 拥塞控制
面向连接
  • 3次握手建立连接(避免超时)
  • 4次挥手断开连接(双向通信 客户端发,服务端回 半闭状态;服务端确认客户端确认)
可靠传输
  • 无差错
  • 不丢失
  • 不重复
  • 按序到达

停止等待协议

  • 无差错情况
  • 超时重传(客户端发送时丢失,超时重传)
  • 确认丢失(服务端确认时丢失,客户端超时重传,服务端重传确认)
  • 确认迟到(类似确认丢失,但是当客户端收到迟到的确认,可以啥都不做)
面向字节流
  • 发送方(发随机字节数据)
  • TCP发送缓存池(组合数据)
  • TCP链接(成规律发送)
  • TCP接收缓存池(接收拆分给接收方)
  • 接收方
流量控制(喝茶 动态加水,动态喝水)

滑动窗口协议(发送窗口动态调整,接收窗口动态调整)

拥塞控制
  • 慢开始、拥塞避免
    • 开始发送报文 数量指数增长
    • 达到初始门限值(16),开始线性增长
    • 达到网络拥塞值(假设24),直接乘法减小门限值(12),发送报文数恢复到1重新开始
    • 递归上述过程
  • 快恢复、快重传

DNS 解析(域名->IP地址)

了解DNS解析?
域名到IP地址的映射,DNS解析请求采用UDP数据报,且明文

DNS查询方式

递归查询

我去给你问一下(层层查)
客户端 - 本地DNS - 根域DNS - 顶级DNS - 权限DNS

迭代查询

我告诉你谁知道(本地DNS直接找对应的)

DNS解析常见问题

DNS劫持问题(钓鱼DNS监听域名给error IP)
  • DNS劫持与HTTP没有关系()
    • DNS解析发生在HTTP建立链接之前
    • DNS解析请求使用UDP数据报,端口号53

解决DNS劫持:

  • httpDNS
  • 长连接
DNS解析转发问题

比如电信为了省事儿转到联通,造成网速慢

httpDNS
  • (DNS解析)使用DNS协议想DNS服务器的53端口进行请求
  • (httpDNS 不产生DNS解析)使用HTTP协议向DNS服务器的80端口进行请求
  • IP直连 + 域名+客户端IP地址,返回具体的DNS地址
长连接
  • 客户端 与 代理服务器 建立 长连通道
  • 代理服务器 与 API 服务器使用 内网专线 DNS解析通信

Session、Cookie

HTTP协议无状态特点的补偿

一、Cookie

Cookie主要用来记录用户状态,区分用户;状态保存在客户端

过程
  • Client 发送请求
  • Server生成cookie
  • Server响应报文头部字段携带cookie
  • Client保存cookie
  • 客户端发送的cookie在http请求报文的Cookie首部字段中
  • 服务端设置http响应报文的Set-cookie 首部字段

修改Cookie

  • 新覆盖旧(满足覆盖规则的新)
  • 覆盖规则:name、path、domain、等需要与原cookie一一致

删除Cookie

  • 与修改相同(失效新cookie覆盖旧的)
  • 设置新的cookie的 expire=过去的时间点(失效),or maxAge=0(失效)

Cookie安全

  • 对Cookie加密
  • 只在http身上携带Cookie
  • 设置Cookie为httpOnly,房子跨站脚本攻击

二、Session

Cookie主要用来记录用户状态,区分用户;状态保存在服务端

过程
  • Client 发送请求
  • Server生成cookie,生成SessionId在cookie中
  • Server响应报文头部字段携带cookie
  • Client保存cookie
  • Client发送携带Cookie的请求,(Cookie中含有SessionID)
  • Server通过SessionId识别用户

你可能感兴趣的:(2020-03-25【网络基础知识】)