- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.6 TCP 可靠传输的实现 5.6.1 以字节为单位的滑动窗口 前移 不允许 ...
5.6 TCP 可靠传输的实现
5.6.1 以字节为单位的滑动窗口
发送缓存
接收缓存
发送缓存与接收缓存的作用
发送缓存用来暂时存放:
发送应用程序传送给发送方 TCP 准备发送的数据;
TCP 已发送出但尚未收到确认的数据。
接收缓存用来暂时存放:
按序到达的、但尚未被接收应用程序读取的数据;
不按序到达的数据。
需要强调三点
A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。
TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。
TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。
5.6.2 超时重传时间的选择
重传机制是 TCP 中最重要和最复杂的问题之一。
TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。
往返时延的方差很大
由于 TCP 的下层是一个互联网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时间的方差也很大。
加权平均往返时间
TCP 保留了 RTT 的一个加权平均往返时间 RTTS(这又称为平滑的往返时间)。
第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS:
新的 RTTS ( (1 ( () ( (旧的 RTTS)
( ( ( (新的 RTT 样本) (5-4)
式中,0 ( ( ( 1。若 ( 很接近于零,表示 RTT 值更新较慢。若选择 ( 接近于 1,则表示 RTT 值更新较快。
RFC 2988 推荐的 ( 值为 1/8,即 0.125。
超时重传时间 RTO (RetransmissionTime-Out)
RTO 应略大于上面得出的加权平均往返时间 RTTS。
RFC 2988 建议使用下式计算 RTO:
RTO ( RTTS + 4 ( RTTD (5-5)
RTTD 是 RTT 的偏差的加权平均值。
RFC 2988 建议这样计算 RTTD。第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的 RTTD:
新的 RTTD = (1 ( () ( (旧的RTTD)
+ ( ( (RTTS ( 新的 RTT 样本( (5-6)
( 是个小于 1 的系数,其推荐值是 1/4,即 0.25。
往返时间的测量相当复杂
TCP 报文段 1 没有收到确认。重传(即报文段 2)后,收到了确认报文段 ACK。
如何判定此确认报文段是对原来的报文段 1 的确认,还是对重传的报文段 2 的确认?
Karn 算法
在计算平均往返时间 RTT 时,只要报文段重传了,就不采用其往返时间样本。
这样得出的加权平均平均往返时间 RTTS 和超时重传时间 RTO 就较准确。
修正的 Karn 算法
报文段每重传一次,就把 RTO 增大一些:
新的 RTO ( ( ( (旧的 RTO)
系数 ( 的典型值是 2 。
当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延 RTT 和超时重传时间 RTO 的数值。
实践证明,这种策略较为合理。
5.6.3 选择确认 SACK(Selective ACK)
接收方收到了和前面的字节流不连续的两个字节块。
如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数据。
接收到的字节流序号不连续
和前后字节不连续的每一个字节块都有两个边界:
左边界和右边界。图中用四个指针标记这些边界。
第一个字节块的左边界 L1 = 1501,但右边界 R1 = 3001。
左边界指出字节块的第一个字节的序号,但右边界减 1 才是
字节块中的最后一个序号。
第二个字节块的左边界 L2 = 3501,而右边界 R2 = 4501。
RFC 2018 的规定
如果要使用选择确认,那么在建立 TCP 连接时,就要在 TCP 首部的选项中加上“允许 SACK”的选项,而双方必须都事先商定好。
如果使用选择确认,那么原来首部中的“确认号字段”的用法仍然不变。只是以后在 TCP 报文段的首部中都增加了 SACK 选项,以便报告收到的不连续的字节块的边界。
由于首部选项的长度最多只有 40 字节,而指明一个边界就要用掉 4 字节,因此在选项中最多只能指明 4 个字节块的边界信息。
TCP 标准强烈不赞成
发送窗口前沿向后收缩
根据 B 给出的窗口
您可能关注的文档
最近下载
- (高清版)DB3706∕T 70-2020 斑海豹及其栖息地保护管理技术规范.pdf VIP
- 47[新课标人教版]七年级数学上册教案全册.doc
- 2025年职业健康检查专业技术人员继续教育考试试题.docx VIP
- 公务员申论考试辅导讲座.ppt VIP
- 地表水环境影响评价课件.pptx VIP
- 大众接总线can线装车指南.pdf VIP
- 2025年全国Ⅰ卷读后续写真题(亲情与谅解)课件+-2026届高三英语上学期一轮复习专项.pptx
- 2024-6湖南新高考物理答题卡 word版可以编辑.pdf
- 合同主体变三方协议.doc VIP
- 《轴对称图形》全章复习与巩固--巩固练习(基础).doc VIP
文档评论(0)