题目一
简要说明运输层为了保证高吞吐量以及可靠传输的机制有哪一些?
解答
- 高吞吐量的机制
- 流水线技术
- 可靠数据传输机制:rdt
- 检验和
- 定时器(超时机制)
- 序号
- 确认ACK
- 否定确认NAK
- 窗口、流水线
- 重传(GBN与SR)
- 附:
题目二
TCP如何控制流传输
解答
- 通过让发送方维护一个称为接收窗口的变量来提供流量控制。通俗的说,接收窗口用于给发送方一个只是---该接收方还有多少的可用的缓存空间,因为TCP是全双工通信。
- 同时当主机B的接受窗口为0是,主机A继续发送只有一个字节数据的报文段,这些报文段将会被接收方确认。最终缓存将开始清空,并且确认报文里将包含一个非0的rwnd值。
- 附
其中还有两个变量为:
- LastByteRead:主机B上的应用从缓存中读取的数据流的最后一个字节的编号
- LastByteRevd:从网络中到达的并且已经放入煮机B接收缓存中的数据流的最后一个字节的编号
题目三
TCP如何实现阻塞控制
解答
- TCP连接的每一端都是由一个接收缓存、一个发送缓存和几个变量组成。运行在发送方的TCP拥塞控制机制跟踪一个额外的变量,即拥塞窗口,表示为cwnd
- 所以由下式:
- LastByteSend - LastByteAcked <= min{cwnd, rwnd}
- 拥塞控制:加性增、乘性减(忽略慢启动的阶段)
- 控制模式:
- 慢启动:
- 在慢启动状态时,cwnd的值以一个MSS开始并且每当传输的报文段首次被确认时就进行翻倍
- 慢启动的结束事件有三个:
- 存在潮实指示的丢包事件,TCP发送方将cwnd设置为1并重新开始慢启动的过程
- 状态变量 ssthresh 慢启动阈值,当检测到拥塞是,ssthresh设置为cwnd的一半,进入拥塞避免
- 当检测到3个冗余的ACK的时候进行快速重传并进入快速恢复状态
- 拥塞避免:
- 一旦进入拥塞避免,cwnd的值大约是上次遇到拥塞时的值的一半,然后呈小于等于线性增长
- 结束时间跟慢启动是一样的
- 快速恢复:
- 在快速恢复中,对因其TCP进入快速恢复的缺失报文段,对收到的每一个冗余的ACK,cwnd的值增加一个MSS。
- 最终当对丢失报文段的一个ACK到达时,TCP在降低cwnd后进入拥塞避免状态。
- 两个不同的TCP版本:
- TCP Tahoe: 不管发生超时指示的丢包事件,还是3个冗余ACK指示的丢包事件,都无条件的将其拥塞窗口减至1个MSS,并进入慢启动阶段
- TCP Reno:综合了快速恢复
- 慢启动:
- 附: