传统无线网络中许多改进的TCP协议都利用基站,假设无线链路是单跳链路,并且没有考虑节点的移动引起的链路失效或重路由造成的影响。因此,这些协议不能直接用于自组织网络,但是可以借鉴其中的一些设计思想。一种直观的方法是使用显式的反馈机制来通知链路故障或路由失效引起的分组丢失。使用显式链路故障通知机制(ELFN),TCP能够较准确地获得网络的实际状况,从而做出合适的动作。MANET中无线链路引起的分组丢失比较频繁,可以通过使用可靠的链路层协议来减轻这种影响。更加严重的问题是经常发生并且无法预测的路由失效,即在路由恢复或重建时间内,分组无法到达目的节点,从而引起分组排队或丢失。为此,TCP-F协议采用显式的反馈机制来通知路由失效,从而使源端暂时关闭定时器并停止发送分组。当路由恢复后,再通过路由建立消息使源端重新启动定时器并发送分组。显式反馈机制可以抑制拥塞控制机制并立即以网络能够支持的速率恢复发送分组,从丽可以很大程度上提高TCP的吞吐量。但是TCP-F的性能依赖于路由节点检测路由失效、重建路由和立即发送反馈的能力,并且中间节点需要记录源节点ID。TOP BUS协议结合了反馈和缓存机制以及路由协议来提高TOP在自组织网络中的性能。每个节点在路由失效和重建期间缓存分组,并且通过被动确认来保证控制消息的可靠传输。此外,源节点可以通过发送探测分组来查询故障点是否找到可行路由。TCP-BUS相比与TCP-F具有以下好处:缓存机制可以减少分组的重传;尽管TCP-F也冻结与定时器相关的变量,但是路由重建引入的时延使得它仍可能超时,而TCP-BUS通过加倍定时器缓解了这种情况;TCP-BUS通过选择重传机制能够减少拥塞对TCP吞吐量的影响。另外,ATCP协议是一种平衡网络透明性和应用灵活性的TCP协议,它向应用提供关于连接状态的信息,允许应用控制数据流的可靠性和服务质量级别。它试图在IP和TCP之间实现一个中间层来解决由于路径失效或传输错误引起的分组丢失并维护较高的吞吐量。
总之,改进的TCP协议主要采用以下策略:链路层保护(确认)机制用于屏蔽无线链路错误引起的分组丢失;网络层反馈和探测机制使TCP知道路由的状态和分组丢失的原因;通过缓存、设置合理的拥塞窗口和重传超时值(RTO)来减少路由失效造成的无谓的TCP超时或退避;交互TCP、路由算法和MAC协议来提高协议的性能。当路由恢复时,发送端可以按照以下两种策略来设置拥塞窗口和重传超时值。-是将窗口和RTO设置得与路由失效前相同,此时的窗口尺寸对新建的路由过于乐观,而RTO对于较长的路由可能显得不足。二是将它们设得与TOP连接启动时的值相同,这种方法下的窗口尺寸过于保守,而RTO值也显得过长,对分组丢失的反应较慢。一种较好的经验策略是将窗口尺寸设置为一稍小于路由失效前的值,然后让TCP自己去调节窗口大小;而将RTO值设置为旧的RTO、旧的路由长度和新的路由长度的函数,如new RTO=old RTO×new routelength/old route length。
无线网络中拥塞时常发生并且常持续较长的时间,因此当网络拥塞时传输层协议要能及时减少发送业务的速率。当连接对时延不太敏感时,TCP能获得较高的吞吐量,但是TCP对分组丢失非常敏感。因此为了优化TCP吞吐量,选择由较多较短的可靠链路构成的跳数较多的路径可能比具有较少跳数但是质量较差的路径更好,但是对时延敏感的业务倾向于使用较少跳数的路由。考虑到ACK与数据分组竞争信道并会引人额外的时延,可以将ACK稍带在数据分组中传送,或者每隔几个数据分组发送一个ACK。此外,如果路由协议使用单向链路,需要考虑单向链路对TCP造成的影响。为了方便与Internet的互联,希望尽量少地改动TCP。此外可以考虑采用新的传输层协议来增强自组织网络中数据传输的性能,例如当前Internet中已出现了用于支持多媒体业务传输的具有自适应特性的RTP协议和对TCP协议进行改进的智能型传输层协议——流控制传输协议(SCTP)。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。