扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
1 介绍
移动计算机,如笔记本或者是PDA已经得到了广泛的应用,对于在互联网上的移动通信的研究兴趣增长迅速。但是这种兴趣要求原来为站式计算机设计的IP协议,修改为允许移动计算机的使用可以从一个网络迁移到另外一个网络[1]。而在移动通信中使用IP协议的主要问题就是一个移动计算机在互联网中移动的时候能够继续使用它的永久家地址。移动IPv6协议提供了这样的寻址问题[2]的解决方案。这个协议允许支持TCP连接的建立,并能够在移动计算机在互联网上移动时在IP层之上透明地维护连接。
但是当一个移动节点从一个网络移动到另一个的时候,交接就发生了,发送到旧网络的包就被发送到移动计算机的家代理,并输送给在新网络中的移动计算机。这种包的迂回传送一直持续到应答节点和移动节点之间的路由优化过程的完成,之后应答节点可以直接向移动节点传送包。包的迂回传送可能引起很大的延时。在最坏的情况下,TCP协议可能将这种延时误解为包丢失,假设发生了拥塞,并初始化拥塞控制机制。这个机制很不幸地带来了端到端的吞吐率的降低,随之将引起子优化性能。但是到现在为止,在移动IPv6协议上的TCP性能研究还很少。
在大部分情况中,移动计算机通过无线连接而连到互联网,这些无线连接如手机网络和本地网络无线网络。这些无线连接由于字节错误要承受巨大的包丢失,而在有线网络上的通信更为可靠。虽然在无线连接上的包损失除了拥塞之外还有很多原因,当移交和TCP性能出现很高的吞吐率下降及很高的交互延迟的时候,TCP初始化拥塞控制机制。在改进用于无线连接的TCP性能方面已经进行了很多的研究,但是我们需要研究一些研究成果可以直接应用于移动IPv6环境。
这篇文章中我们提出了在移动IPv6环境中改进TCP性能的方法。首先我们分析了在移交情况下移动IPv6的包路由协议,指出协议的低效性,并提出改进低效性的方法。然后我们在无线连接上的TCP性能的改进方法中选择一个方法,叫做Snoop,并提出了要将此方法应用到移动IPv6环境中所要进行的必要的修改。然后我们通过仿真分析提出的方法的性能。
论文剩下的部分组织如下。第2部分解释了TCP拥塞控制机制,移动IPv6协议,和一些在无线连接上改进TCP性能提出的解决方案。第3部分描述了描述了我们为了改进在移动IPv6上的移交低效性而提出的方法,并使Snoop机制适应于移动IPv6环境。在第4部分我们通过仿真来说明我们提出的方法可以在移动IPv6网络上改进TCP性能。第5部分总结了这份论文。
2 相关工作
在这一部分,我们首先解释TCP中的拥塞控制机制。然后我们简单描述了移动IPv6协议并分析它的低效性。最后我们引入了在无线连接上改进TCP性能的一些工作。
2.1 TCP中的拥塞控制
在常规(Tahoe)TCP实现中的拥塞控制框架有三个主要部分]:慢启动,拥塞避免,快速重发[3],[4]。慢启动算法如下:TCP发送者启动一个长度为1的拥塞窗口(cwnd)。对于每个收到的ACK,TCP指数增长窗口大小,直到等于阈值(ssthresh),然后它进入拥塞避免阶段,在此阶段中,它继续要线性增加它的cwnd,直到达到接收者的最大接收窗口。TCP继续测量确认需要多长时间才能返回,以确定哪一个包到达接收者,并通过重发来提供丢包来提供可靠性。为了这个目的,它维护了一个这个延迟(往返发送延迟)的运行平均长度。
如果现在的延迟是平均数标准方差的4倍的话(超时间隔),TCP就假设这个包丢失了。TCP就开始重发丢失的包。TCP还会在接收者接收到很多重复确认的时候(通常是3个),假设这个包丢失。这是因为接收者确认最大的按序序号。如果它接收到乱序顺序包,它还会为同一个最高的按序序号产生确认,从而产生了重复确认。TCP随之激活快速重发算法。快速转发算法假设丢失的包从重复ACK序号开始,并转发它。 TCP将对以下原因造成的任何丢包作出反应:
--将ssthresh投入现有窗口的一半或者2(这个更大)去减低数据量。
--重设它的发射窗口(拥塞)的尺寸为1,所以激活慢启动算法去限制窗口增长到先前水平的速率。
--重设重发计时器的值为backoff间隔,该间隔根据Karn's指数计时器backoff算法,随着每个连续的超时加倍。这还体现在中间连接的交通负载的降低,从而控制网络中的拥塞。
任何因为在移动网络中的一次移交或者是在无线连接上的一个字节错误造成的包丢失都回开始一次拥塞控制机制,减少窗口尺寸,从而带来了缓慢递减的TCP性能。
2.2 移动IPv6
为了解释移动IPv6,我们使用下面的术语[2]。
--移动节点(M,N):可以从一个网络到另外一个网络改变附着点,同时也可以家地址随时访问。
--相应节点(CN):移动节点与之通信的一个节点。
--家代理(HA):连接到移动节点家网络的一个路由。
--转交地址(CoA):一个访问外部网络时与移动节点相联系的单播路由地址。
--基站(BS):为移动节点提供无线连接端点的路由。HA也是BS
图1显示了在移动IPv6环境中的信息流。在外部网络中的MN从在外部网络中的BS处接收到一个路由广告(Router Advertisement,RA)消息,并获取CoA。MN通过交换绑定更新(Binding Update,BU)和绑定确认(Binding Acknowledgement,BA)消息,向它的HA通报它的CoA。由CN发出的包首先到达HA,然后再被转到MN。当接收到转发的包的时候,MN首先向CN通告它的新CoA,在这之后CN可以直接向MN发送包。
图2解释了握手发生的时候的消息流。在一个新的外部网络的MN向它的HA通报一起通报它的新CoA和旧CoA。来自CN的包首先到达一个旧的外部网络,然后转送给HA,然后最终通过新网络中的BS发送到MN。当接收到转发的包的时候,MN首先向CN通告它的新CoA,在这之后CN可以直接向MN发送包。我们注意到在移交发生以及CN接收到BU之后来自CN的包发生了很大的延迟,它可以初始化TCP拥塞控制机制。
2.3 在无线网络上改进TCP性能
为了在无线连接上改进TCP性能而提出的方案可以被分为三类:连接层协议,端到端协议,以及分割连接协议[4][5]。这些协议都假设为图3中的网络拓扑。在众多的解决方案中我们选择一个连接层协议Snoop,并且想要使其适应移动IPv6环境,因为它展示了良好的性能,维护了TCP语法,并且不改变固定网络中的已有的TCP实现。
在Snoop中,在BS引入一个Snoop模块,它检测每个通过连接的每个方向的包。Snoop模块维护了从固定主机发送的还没有得到移动主机确认的TCP包的缓存。包丢失在收到重复确认或者本地超时的时候被检测。为了实现本地超时,模块有自己的转发计时器。如果它在缓存中的话,Snoop模块就转发丢失的包。从而BS可以向固定主机隐藏丢包,因而避免了引发了不必要的拥塞控制机制。Balakrishnan et al. 提出了使用多播的方法,以支持Snoop处理移交。但是他们的方法会带来过载,而且多播没有得到广泛的部署。在下一个部分,我们将会对Snoop进行修改,修改之后不需要使用多播,就可以处理在移动IPv6环境中的移交问题。
3 在移动IPv6上改进TCP性能的设计
在这一部分中,我们描述了在移动IPv6上改进TCP性能的方法。首先我们解释在移动IPv6移交中如何改进低效性,然后我们如何修改Snoop,以使它可以处理移交。
3.1 改进移动IPv6移交
为了解决在图2.2中所提及的移动IPv6移交的低效性,我们引入了下面两个修改。
--两个BS之间的包快速传递:当旧的BS接收到目标为已经移动到其它网络的MN的包时,它直接传递到MN的新BS。包并非从旧的BS到MN的HA 然后通过MN的新的BS到MN,而是通过从旧BS到MN的更短的路径。
--给CN的提前BU消息:在外部网络的MN不是在接收到来自HA的转发信息之后就向CN发送一个BU消息,而是在向HA发送一个BU消息的时候发送一个BU消息给CN。进行了这个修改之后,CN可以尽可能早地使用优化的路径在外部网络向MN发送包。
进行了这两个修改之后,在移动IPv6移交中的消息流如图4所示,一旦获取一个新的CoA,在新的外部网络中的MN向HA和CN发送BU。在同一时间MN发送移交开始(HS)消息到旧的BS和新的BS。一个HS消息携带新的CoA和新BS的IP地址。一旦收到一个HS消息,旧的BS开始了到新BS的快速传递。当旧BS快速传递一个包,它必须将包的外部IP头的目标IP地址从旧的CoA改为新的CoA。将一个HS消息发送到新的BS将在下一个子章节叙述。直到CN接收到一个BU消息,来自CN的包被发送到旧的BS,然后通过新的BS被快速传递到MN。但是在接受到BU消息之后,CN可以直接发送到MN。在从CN接收到一个BA消息之后,MN发送移交终端(HE)消息到旧BS,使得旧BS可以停止快速发送包。但是旧的BS在接收到HE消息之后没,并不是马上停止快速传递包,而是等待一段时间,因为一些正在去往旧BS的包可能会出现长时间延迟或者到达延迟。
3.2 Snoop的修改
修改Snoop模块去处理移交的操作被描述为如图5的有限自动机。
每个状态的描述如下:
--INIT:一旦接收到一个HS消息,一个新的BS进入到这个状态,它创建了一个空的Snoop缓存并接受来自旧的BS的缓存内容。在同一时间它执行常规的Snoop功能。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。