TCP & UDP
TCP优缺点
优点:
- 稳定可靠(三次握手四次挥手)
- 重传机制保证不丢包
缺点:
- 慢,效率低
- 占用资源高(一个数据包起码20字节)
- 更容易被利用攻击(三次握手的机制导致)
场景:适合通信质量要求较高的场景,http传输、文件传输、smtp等等,目前大部分的传输都是基于TCP协议传输;
UDP优缺点
优点:
- 快,实时性好
- 占用资源少(一个数据包8字节)
- 安全(较TCP)
缺点:
- 不可靠不稳定,丢包
场景:视频流、语音流等(稳定性要求低,实时性要求高)
TCP为什么是可靠连接
- 确认和重传机制:建立连接时三次握手同步双方的“序列号 + 确认号 + 窗口大小信息”,是确认重传、流控的基础传输过程中,如果Checksum校验失败、丢包或延时,发送端重传。
- 数据排序:TCP有专门的序列号SN字段,可提供数据re-order。
- 流量控制:窗口和计时器的使用。TCP窗口中会指明双方能够发送接收的最大数据量。
- 拥塞控制:TCP的拥塞控制由4个核心算法组成:慢启动(Slow Start),拥塞避免(Congestion avoidance),快速重传(Fast Retransmit),快速恢复(Fast Recovery)