美文网首页
2020-03-25【网络基础知识】

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

作者: 风月灯 | 来源:发表于2020-03-25 00:48 被阅读0次

    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【网络基础知识】

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