- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
问题出在A在很短的时间内两次对同一个目标使用了同样的连接标识,而且两次连接请求的时间间隔又很短,在第一个请求没有从网络中消失时又发出第二个连接请求。如果规定传输实体在一段足够长的时间内不能使用同样的连接标识,这一问题就可以解决。我们知道TCP的连接标识是ISN,是由传输头中的发送顺序号字段实现的,这个字段有32位长,从232个顺序号中顺序地选取ISN,在很长一段时间内可以不重复,这样可以保证ISN在一段时间内的唯一性。然而问题又出在系统会崩溃,如果一个站从崩溃中恢复后又选取了同样的ISN,则问题仍然没有解决。重复的ISN不仅会引起建立错误的连接,而且在数据传送阶段也会造成错误的接收。类似的情况是,网络中残存着一个发送顺序号为N的数据段,这个残存数据段可以和新连接的具有同样发送顺序号N的数据段被接收站弄混,从而接收了过期的残存数据段而丢弃了新连接的有效数据段,造成协议无法察觉的错误。由于在TCP中数据段的发送顺序号与ISN有关,所以问题还是出在相同的ISN。保证ISN唯一的建议有许多,比如有的建议要求给连接请求信号打上时标,而且时间的分辨率要足够高,以保证同一个站永远都不会发出标识相同的连接请求。这当然是一种极其安全然而却很奢侈的实现,首先精度很高而且不受系统崩溃影响的时钟就很难办,也许只有美国军方的豪华版TCP才能做到。这个TCP规范要求利用当地的时间指定ISN,时间分辨率为4μs,因而每4.5小时ISN循环一次(4.5?×?3600?×?106/4?≈?232),这个时间间隔被认为是段最长生存期MSL(MaximumSegmentLifetime),超过这个时间间隔,隐藏在网络中的老的TCP段都消失了。考虑到ARPAnet是一个大而复杂的远程网,所以MSL的取值相对长一些。对于一般的简单实现,不必要这么浪费,只要每次发出连接请求时避开0、1这些特殊数字选取一个ISN就可以了,这是在系统安全极限和最浪费的开销之间适当权衡的结果。当然这种简单实现并没有完全排除出现过期的相同TCP段的可能性,但是若把这样简单的TCP实现用在局域网(例如Ethernet)上却仍然相当安全。因为在局域网环境中,MSL大概只有几微秒,任何机器也不会在几微秒内从崩溃中恢复过来,所以当机器重发以前的连接请求时,MSL已经过去了。还有一个问题,就是当TCP实体检测到无效的段时如何处理。前面介绍过段头中有一个RST标志,可以用于纠正各种协议违例的情况,但并不是任何意外都需要RST来恢复。例如,接收站检测到一个窗口之外的数据段,则可以断定这是属于以前的连接的残余数据段,只要丢弃就可以了,不必发出RST。另一方面,如果没有建立连接而收到一个非RST段,则必须以RST回答之。具体地说,主要有三种类型的错误需要应付:(1)没有建立连接,甚至没有发出过LISTEN命令,这时对任何接收到的非RST段都要以RST回答之,特别是对那些呼叫一个并未产生端口的连接请求要以RST拒绝之;(2)如果连接过程尚未完成而收到一个对从未发出过的段的应答,则必须返回一个RST,这样就消灭了那些迟到的残余应答段;(3)连接建立后,如果收到一个对窗口之外的数据的应答,这时不能发出RST,而是要立即返回一个重新声明当前发送顺序号、接收指针以及窗口的段,以便重新取得同步,排除重复段的干扰。RST段的发送顺序号必须与它应答的违例段的发送顺序号相同。当RST段到达接收方时,接收方检查其中的顺序号,如果顺序号落在发送窗口中,则说明数据传输出错,大多数情况下,连接必须中止。但在有些情况下,例如接收方正在监听呼入请求或者在监听状态刚刚响应了一个连接请求,这时发出监听状态作为回答。如果RST段的顺序号没有落在接收方的发送窗口中,则忽略之,接收方认为这种RST是对以前差错的反应。TCP对连接的终止采用平稳断连的方法。连接的任何一端在数据发送完时,把最后一个数据段的FIN标志置位,表示这是最后一批数据,连接可以随后关闭,但是必须继续接收远端发来的数据,直到收到对方发来的FIN置位的段。这样,TCP的断连是两方独立进行的,不会破坏途中正在传送的数据,而且也不需要采取额外的防止破坏途中数据的措施。5.3.4TCP拥塞控制TCP的拥塞控制涉及到重传计时器管理和窗口管理,其目的都是与流控机制配合,缓解互联网中的通信紧张状况。1.重传计时器管理TCP实体管理着多种定时器(重传定时器,放弃定时器等),用以确定网络传输时延和监视网络拥塞情况。定时器的时间界限涉及网络的端到端往返时延,静态计时方式不能适应网络通信瞬息万变的情况,所以大多数实现都是通过观察最近一段时间的报文时延来估算当前的往返时间的。一种方法是取最近一段
文档评论(0)