主要观点总结
本文是TCP入门系列教程的第二篇,介绍了TCP数据的发送与接收的三大主要部分:超时重传、窗口管理和拥塞控制。通过具体算法和代码实现的细节,解释了TCP如何在可能出现信息丢失、重复、乱序的底层通信媒介上,设计一套交互协议来可靠保序地传递信息,同时兼顾传输的性能和稳定性。
关键观点总结
关键观点1: 超时重传
TCP基于自动重复请求的机制,通过字节级别的编号和数据包的序列号来实现数据发送和接收。当数据包丢失时,接收端通过回复的ACK序号小于已发送的序号来通知发送端重传。
关键观点2: 窗口管理
TCP连接的两端都维护一个发送窗口结构和接收窗口结构,通过调整窗口大小来控制发送和接收数据的量,以匹配发送端和接收端的速率。
关键观点3: 拥塞控制
TCP协议通过调整接收窗口的大小对发送端进行限流,并引入了拥塞控制算法,如慢启动、拥塞避免、拥塞发生和快速恢复,以应对网络拥塞问题。
文章预览
阿里妹导读 本系列文章是组内写给新人和实习生的 TCP入门系列教程,结合了理论和实践,本篇为第二篇,建议先读上篇《 通过实验深入了解TCP 连接的建立和关闭 》。 写在前面 TCP 数据的发送与接收是个很大的话题,拖了很久也想不到好的切入点。这部分可以简单分为 「超时重传」 、 「窗口管理」 以及 「拥塞控制」 三个主要部分。掉书袋的话恐怕会让这篇文章被束之高阁(每写一道数学公式就会失去一半读者),所以这篇文档对具体算法只谈思想不谈公式,然后佐以代码或命令来验证实现细节。 TCP 超时重传 理解 TCP,就是理解如何在一个会出现信息丢失、重复、乱序的底层通信媒介上,设计一组交互协议来可靠保序地传递信息,同时还要兼顾传输的性能和稳定性。上篇提到 TCP 是基于 自动重复请求的机制(Automnatic Repeat Request, ARQ)
………………………………