Lec 11 TCP
思考题
可靠传输是什么?什么是“可靠传输协议”?
网络可能存在哪些不可靠因素?(即可能出现哪些问题)
可靠传输的基础知识:
序列号的作用是什么?它们如何工作?
确认(ACK)的作用是什么?它们如何工作?
TCP发送方如何利用超时推断数据包丢失?
TCP接收方如何决定是否将数据包传递给接收应用?
拥塞控制:基础知识
拥塞控制的目的是什么?
拥塞控制的目标是什么?
“窗口”是什么意思?
TCP的拥塞控制是AIMD(加性增加乘性减少)
- 这意味着什么?发送方如何对拥塞做出反应?
- AIMD背后的直觉是什么?(例如:为什么不选择乘性增加乘性减少?或者加性增加加性减少等)
拥塞控制:额外机制
慢启动如何工作,为什么使用它?
快速重传/快速恢复如何工作,为什么使用它?
TCP有个
今天的目标是建立可靠传输协议,意味着传输数据的每个字节只会被接受的应用接受一次,且是有序。

- 序列号: 用来对数据包进行排序
- 确认号(ACKs): 用来确认一个数据包已经被接受
- 确认好 k 预示着k之前(包括第k个)包都已经被接受者接受

下面发生了有趣的情况,发送端发送6-10号的数据包,但是接收到除了7号数据包外,其他均接收到了,此时,ACK应该是多少 ?

7号数据包需要通过某种方式重新再次发送。需要注意的是,发送方也可以通过接收到多个序列号为6的确认(ACK),但没有收到序列号大于7的ACK,来推断出数据包的丢失。我们稍后会进一步讨论这一点。
- 超时时间: 用来重新发送数据包。
- 如果比RTT还要小,那发送方错误地重传导致浪费
- 准确评估超时时间很重要

滑动窗口:用来流量、拥塞控制