首页 > 知识点讲解
       TCP可靠传输
知识路径: > 计算机网络原理 > Internet 协议 > 传输层协议 TCP 与 UDP > TCP 协议 > 
被考次数:1次     被考频率:低频率     总体答错率:75%     知识难度系数:     
考试要求:掌握      相关知识点:7个      
        TCP是可靠的传输层协议。这就表示,应用进程把数据交给TCP后,TCP就能无差错地交给目的端的应用进程。TCP使用差错控制机制保证数据的可靠传输,TCP的差错控制机制主要是确认和重传。在介绍TCP差错控制机制之前,下面介绍一下TCP的字节编号。
               字节编号和确认
               前面提到过,TCP提供面向连接的字节流传输服务,也就是说,TCP协议将要传送的数据看成是一个个字节组成的字节流,而且接收方返回给发送方的确认是按字节进行的,而不是按报文段进行。
               每个TCP连接传输字节流数据的第一个字节序号是建立TCP连接时初始序号加1。
               假设某条TCP连接要传送5000字节的文件,分为5个TCP报文段进行传送,每个TCP报文段携带1000字节,TCP对第一个字节的编号从10001开始(假设TCP连接建立随机选择的初始序号x为10000,而数据传送开始序号则从10001开始,也就是说,TCP连接建立过程要用掉一个序号)。那么每个TCP报文段的字节编号如下所示:报文段1的字节序号为10001(范围是从10001~11000);报文段2的字节序号为11001(范围是从11001~12000);报文段3的字节序号为12001(范围是从12001~13000);报文段4的字节序号为13001(范围是从13001~14000),报文段5的字节序号为14001(范围是从14001~15000)。
               TCP采用差错控制机制是字节确认,一般情况下,接收方确认已收到最长的连续的字节计数,TCP报文的每个确认序号字段指出下一个希望接收到的字节,实际上就是对已经收到的所有字节的确认。
               字节确认的优点是即使确认丢失也不一定导致发送方重传。下面来看一个例子,假设接收方TCP发送的ACK报文段的确认序号是1801,表明字节编号为1800前的所有字节都已经收到。如果接收方TCP前面已经发送过确认序号为1601的ACK报文段,但是如果确认序号为1601的这个ACK报文段丢失,也不需要发送方TCP重发这个报文段,这就是所谓的“累计确认”。
               超时重传和重传定时器
               发送方TCP为了恢复丢失或损坏的报文段,必须对丢失或损坏的报文段进行重传。事实上,发送方TCP每发送一个TCP报文段,就启动一个重传定时器,如果在规定的时间之内没有收到接收方TCP返回的确认报文,重传定时器超时,于是发送方重传该TCP报文。
               影响超时重传最关键的因素是重传定时器的定时宽度,但确定合适的宽度是一件相当困难的事情。因为在因特网环境下,不同主机上的应用进程之间的通信可能在一个局域网上进行,也可能要穿越多个不同的网络,端到端传输延迟的变化幅度相当大,发送方很难把握从发送数据到接收确认的往返时间(Round Trip Time,RTT)。为解决上述问题,TCP采用了一种适应性重传算法。下面将描述这个算法并讨论它的改进过程。
               超时重传时间计算算法
               TCP采用下面算法计算超时重传时间。
               原始算法的大致思想是,动态维持往返时延(Round Trip Time,RTT)的平均值,然后把TCP重传定时器的值设为RTT的函数。每当TCP发送一个报文段时,它就记录下发送时刻。当该报文段的ACK回来时,TCP记录下ACK返回时刻,同时把ACK返回时刻和TCP报文发送时刻之间的时间差记为SampleRTT。接着,TCP在前一次的RTT估算值EstimatedRTT和当前的新采样值SampleRTT之间通过加权求和计算出新的RTT估算值EstimatedRTT。具体公式如下:
               EstimatedRTT=α×EstimatedRTT+(1-α)×SampleRTT
               其中,0≤α≤1,α因子决定了EstimatedRTT对延迟变化的反应速度。当α接近1时,当前的采样值SampleRTT对RTT估算值EstimatedRTT几乎不起作用;而当α接近0时,RTT估算值EstimatedRTT紧随延迟的变化而变化,直接采用当前的采样值SampleRTT作为新的RTT估算值EstimatedRTT。作为折中,TCP协议规范推荐α取值为0.8~0.9。
               TCP重传定时器的值通过下列公式计算出来:
               TimeOut=β×EstimatedRTT
               当β接近1时,TCP能迅速检测到报文丢失并及时重传,从而减少等待时间,但可能引起许多不必要的重传。当β太大时,重传报文的数目减少,但等待确认的时间增加。作为折中,TCP协议规范推荐β取2。
               例如,当α取0.9,β取2时,而且当前的EstimatedRTT等于250μs,而现在发送一个报文段并且收到确认的SampleRTT是70μs,则有如下结果:
               EstimatedRTT=0.9×250+0.1×70=232μs
               TimeOut=2×232=464μs
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2020年下半年
   网络规划设计师..
   上午试卷 综合知识
第38题
选择题
TCP可靠传输机制为了确定超时计时器的值,首先要估算RTT,估算RTT采用如下公式,估算RTTs(1-a)×(估算RTTs)+a×(新的RTT样本),其中a的值取为( )。

75%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2019 All Rights Reserved 软考在线版权所有