目录
总结
引入
为什么tcp要比udp复杂的多?
- 因为它既要保证可靠性,又要兼顾性能
可靠性
分析
其中,序列号不止用来排序,还可以用在重传时去重
确认应答是机制中的核心
- 因为都需要依靠应答来拿到协议字段,从而判断是否触发机制
保证可靠性的策略也可以提高效率,比如:
- 流量控制,可以根据多个因素来动态调整数据发送量
- 拥塞控制也是,让数据尽量成功一次到达,而不是等待重发
三次握手
在三次握手里,为以上机制奠定了基础
- 建立连接
- 协商起始序号
- 协商双方的接收缓冲区大小
提高性能
其他
常见的基于tcp应用层协议
用udp实现可靠传输
如果面试遇到这种问题,其实就往tcp上面靠拢就行,毕竟已经有成熟的现成的保证可靠性的协议了
比如:
- 引入序列号,保证报文顺序到达
- 引入确认应答机制,保证对端收到了数据
- 引入超时重传机制,一段时间没有应答就重发数据,保证数据到达对端
- 引入流量控制,防止对方因接收不过来而丢包
- 等等
- 其实就是把tcp协议的那些机制是干嘛的说一下就行