面试题答案
一键面试优化思路及技术手段
- 拥塞控制优化
- 思路:调整拥塞窗口增长和收缩策略,以适应复杂网络。
- 技术手段:
- 慢启动阈值调整:根据网络状况动态调整慢启动阈值(ssthresh),避免拥塞窗口增长过快。当网络出现丢包等拥塞迹象时,降低ssthresh,让拥塞窗口以更慢速度增长。
- 拥塞避免算法改进:在拥塞避免阶段,更精细地控制拥塞窗口增长。如采用“拥塞避免加法增大乘法减小”策略,即每收到一个ACK,拥塞窗口cwnd增加1/cwnd,当出现拥塞时,cwnd减半。
- 利弊:
- 利:能更好地适应网络拥塞,减少因拥塞导致的丢包和延迟,提高网络利用率。
- 弊:调整参数需要对网络状况有准确判断,若调整不当,可能导致网络资源未充分利用或拥塞恢复过慢。
- 重传机制优化
- 思路:准确判断丢包情况,及时重传数据,减少因等待超时带来的延迟。
- 技术手段:
- 快速重传:当接收方收到乱序的数据包时,立即发送重复ACK。发送方收到一定数量(通常为3个)的重复ACK,就认为中间数据包丢失,不等超时就进行重传。
- 重传超时(RTO)自适应调整:根据网络RTT(往返时间)动态调整RTO。利用加权移动平均算法,如Jacobson算法,计算平滑的RTT和RTT方差,从而得到更合理的RTO值。
- 利弊:
- 利:快速重传能迅速恢复丢失数据传输,减少延迟;自适应RTO调整能更准确地应对网络延迟变化,避免不必要的重传等待。
- 弊:快速重传可能因误判(如乱序到达但未丢包)而重传,增加网络负担;RTO计算依赖准确的RTT测量,复杂网络中RTT波动大,可能导致RTO不准确。
- 数据分段优化
- 思路:合理划分数据包大小,降低丢包概率和重传成本。
- 技术手段:
- 路径MTU发现:通过探测网络中最小MTU(最大传输单元),动态调整数据包大小。发送方先以较大的MTU尝试发送,若收到ICMP分片需要(Fragmentation Needed)消息,就减小MTU值重新发送。
- 根据网络状况动态分片:结合实时网络延迟、丢包率等信息,调整数据分段大小。如丢包率高时,减小分段大小,降低单个数据包丢失影响。
- 利弊:
- 利:减少因数据包过大导致的丢包,提高传输效率;动态分片能更好适应网络变化。
- 弊:路径MTU发现过程增加额外网络开销;动态分片需实时监测网络状况,增加系统复杂度。
- 缓冲区管理优化
- 思路:合理设置发送和接收缓冲区大小,平衡数据处理和传输速度。
- 技术手段:
- 动态缓冲区调整:根据网络带宽和延迟动态调整发送和接收缓冲区大小。如网络带宽高、延迟低时,增大缓冲区以充分利用带宽;网络拥塞时,减小缓冲区避免数据积压。
- 缓冲区预分配:提前为可能接收的数据分配缓冲区,避免接收时因缓冲区不足丢弃数据。
- 利弊:
- 利:动态调整可适应不同网络条件,提高数据传输效率;缓冲区预分配减少数据丢失风险。
- 弊:动态调整需要实时监测网络,增加开销;预分配过多缓冲区会浪费内存资源。