[网络] 传输层 & 安全

2020-04-26  本文已影响0人  再凌

IPSec 和SSL

SSL位于传输层和应用层中间, IPSec是一个真实的网络层数据报, 都是通过加密的方法保证

SSL认证方式

  1. 客户声明自己支持的加密方式
  2. 服务器选择一个加密方式, 并附带自己的公钥
  3. 客户验证公钥, 生成Pre密码, 发送给服务器
  4. 服务器和客户利用Pre密码生成用于通信的密码
  5. 客户发送过程(1) 的MAC, 验证(1) 是否被篡改
  6. 服务器发送过程(2)的MAC, 验证(2) 是否被篡改

关闭SSL连接时, 首先先关闭SSL, 才能关闭TCP,(防止中间人提前中断)

UDP

udp是二元组鉴别[目的端口, 目的IP], 只要一样, 就交给一个函数处理

UDP: 报头小(8B), 连接快, 不受拥塞控制影响, 不维护状态

TCP

滑动窗口:
发送方 接收方 成因
>1 1 回退N
1 1 停等
>1 >1 选择重传SR
重传

回退N: 累计确认, 维护一个定时器, 如果定时器超时, 从超时的那个起的N个都重传
选择重传SR: 逐个确认, 每一个报文都维护定时器,
快速重传: 接收方发现某个报文没有, 连续发送ACK表示自己缺少的报文

拥塞控制算法

慢启动: 拥塞窗口22*2的递增,出现丢包时恢复为1, 设置阈值为最大的/2
拥塞避免: 再次增长时, 达到阈值, 不再乘递增, 改+1+1
快速恢复: 出现由于连续ACK导致的丢包时, 拥塞窗口不改为1, 而是改为阈值+ACK次数, 加法递增

TCP分岔: 使用CDN网络, 在缓存服务器和主服务器建立大传送窗口的TCP连接并保活, 客户连接CDN服务器可以大大降低RTT的时间

TCP 关闭阶段

time_wait: 主动请求FIN方的状态, 等待2MSL后释放链接. 缩短方法: 通知操作系统要重用此端口, 或使用HTTP1.1

close_wait过多: 被动FIN方, 接收到FIN后仍然忙于读写. 增加心跳检测(定时给客户端发送一个心跳包, 如果收到RST,则直接关闭端口)

上一篇下一篇

猜你喜欢

热点阅读