计算机网络:第三章 运输层
3.4可靠数据传输协议
数据可靠:不错,不丢,不乱
rdt1.0 可靠信道传输协议
rdt2.0 只可能产生位错误的协议
*校验和检验位错误
*向发送方发送ACK,NCK显示告知错误,提示,重传
相较于rdt1.0 引入了 校验和 ACK,NAK 重传
rdt2.1 ACK/NAK 可能会出现错误
*为每个分组增加了***( 0 || 1 )
*增加了ACK/NAK校验
*状态数量翻倍
*
*判断分组是否重复
rdt2.2 无NAK消息协议
接收方通过ACK告知最后正确接收到的分组
在ACK中添加被确认的分组的序号
发送方接受到重复ACK后,采取与收到NAK相同的动作,重传当前分组??
rdt3.0 增加分组丢失的处理
发送方设置等待时间,超时未收到ACK,则重传。
网络协议极大的限制了速度。
3.5流水线机制与滑动窗口协议 GBN(Go Back to N),SR(Select Repeat)
GBN
使用流水线机制能大幅提高传输效率,但要使用流水线机制,rtd也必须要相应的改变:更大的***范围,发送方/接收方更大的存储空间。
GBN中的ACK是累计确认的,收到ACK(n)表示前n个都已收到。timer为某个***设计,timerout事件重传***大于等于n的所有分组。
SR
- 接收方对每个分组单独确认:设置缓存机制,缓存乱序到达的分组。
- 只重传没有收到ACK的分组:每个分组设置定时器。
- 发送方窗口无变化,但是多了接收方窗口
接收方和发送方窗口大小和应小于***
***位数k。
3.6面向连接的传输协议
TCP概述:
- TCP在IP层提供的不可靠服务基础上实现了可靠数据传输服务。
- 流水线机制
- 累计确认
- TCP使用单一重传定时器
- 触发重传的事件(超时,收到重复ACK)
- 此节不考虑重复ACK,流量控制,拥塞控制
RTT和超时
如何设置定时器的超时时间:利用RTT---->如何估计RTT
几个概念:
SampleRTT
EstimateRTT
DevRTT
的值通常为0.125;通常为0.25。
TCP发送方事件:
从应用层接收数据
- 创建段Segment,***是Segment的第一个字节编号
- 开启计时器
- 设置超时时间:TimeOutInterva
超时
- 重传引起超时的Segment
- 重启定时器
收到ACK
- 确认此前未确认的Segment,更新SendBase
- 若窗口中还有未曾收到的分组,重启定时器。
TCP快速重传
若接收方发现某个分组丢失,则会对发送方发送多个重复的ACK,则发送方收到多个重复的ACK后,在定时器超时前进行快速重传。
TCP流量控制
TCP连接管理