Skip to content

4.17 TCP 协议有什么缺陷?

  • 升级困难:协议在内核实现,程序不能修改,只能通过升级内核升级 TCP,成本很高

  • 建立连接延迟:必须先要三次握手才能传输数据

    • 被 TCP Fast Open(快速打开)这个特性解决,可以在第二次建立连接减少时延
      • 第一次建立连接,服务端在第二次握手将一个加密的Cookie 发送客户端,客户端缓存这个Cookie
      • 第二次建立连接,客户端携带这个Cookie ,可以在第一次握手携带数据,第二次握手客户端携带 ACK 报文和响应数据。
  • 队头阻塞:TCP 保证数据有序,序列号低的数据丢了,序列号高的被接收到,也没法用

  • 网络迁移需要重新建立 TCP 连接:通过四元组(源 IP、源端口、目的 IP、目的端口)确定一条 TCP 连接,当网络从 4G 切换到 WIFI,IP 变了,需要重新建立连接

  • 但是注意:TLS 是基于 TCP 的,所以必须 TCP 完成握手,TLS 才能开始使用

正在精进