一、TCP 升级工作困难
TCP 协议诞生于 1973 年,至今仍在实现很多新特性,但 TCP 协议是在内核中实现的,所以升级 TCP 只能通过升级内核
升级内核是件很麻烦的事情,不是说升级内核这个操作很麻烦,而是升级内核涉及底层软件和运行库的更新,我们的服务程序需要回归测试,看是否兼容新版本内核
二、TCP 传输数据延迟问题
- TCP 需要三次握手建立连接后才能进行传输数据,这在一定程度上增加了数据传输的延迟
- TCP「慢启动」机制也在一定程度上增加了数据传输的延迟
三、TCP 队头阻塞问题
TCP 是字节流协议,TCP 层必须保证接收的字节数据是完整且有序的,如果序列号较低的 TCP 段在网络传输中丢失了,即使序列号较高的 TCP 段已经被接收了,应用层也无法从内核读取这部分数据
四、网络迁移需要重新建立 TCP 连接
一个 TCP 连接由四元组(源 IP 地址、源端口号、目标 IP 地址、目标端口号)确定,当移动设备的网络从 5G 切换到 WIFI,此时要断开旧连接建立新连接,因为源 IP 地址发生了变化