通过无线网络提高TCP / IP性能外文翻译资料

 2022-03-23 20:20:04

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


通过无线网络提高TCP / IP性能

Hari Balakrishnan, Srinivasan Seshan, Elan Amir and Randy H. Katz

{hari,ss,elan,randy}@CS.Berkeley.EDU

计算机科学部加州大学伯克利分校

摘要

TCP是一种可靠的传输协议,可以在低误码率链路组成的传统网络中进行良好运行。比特错误率较高的网络(如无线链路和移动主机)违反了TCP所做的许多假设,导致端到端性能下降。在本文中,我们描述了一种称为snoop协议的简单协议的设计和实现,该协议可以提高无线网络中的TCP性能。该协议主要在基站修改网络层软件,并保留端到端的TCP语义。该协议的主要思想是在基站处缓存数据包,并通过无线链路执行本地重传。我们在由IBM ThinkPad笔记本电脑和通过AT&T Wavelan进行通信的i486基站组成的无线测试台上实施了snoop协议。我们的实验表明,与普通的TCP相比,它在处理不可靠的无线链路方面显着更强大;在我们对协议的实验中,我们已经实现了比常规TCP高达20倍的吞吐量加速。

1.引言

最近在移动计算和无线网络中的活动强烈表明移动计算机及其无线通信链路将成为未来互联网络的组成部分。 通过无线链路进行通信的特点是带宽有限,高延迟,高误码率以及网络协议和应用程序必须处理的临时断开。 另外,协议和应用必须处理用户移动性和用户在蜂窝无线网络中从小区移动到小区时发生的切换。 这些越区切换涉及从一个基站转移通信状态(通常是网络级状态)(有线和无线网络之间的路由器)到另一个网络,并且通常持续几十到几百毫秒。

诸如TCP [Pos81,Ste94,Bra89]的可靠传输协议已针对由有线链路和固定主机组成的传统网络进行了调整。 TCP通过适应端到端的延迟和拥塞导致的分组丢失,在这种网络上表现得非常好。 TCP通过保持估计的往返延迟和平均偏差的运行平均值,并通过在偏离平均值四倍内重发任何未收到确认的分组来提供可靠性。 由于在有线网络上的比特错误率相对较低,所有包丢失都被正确地认为是由于拥塞。

在存在无线链路的高错误率和间歇性连接特性的情况下,TCP会像在有线环境中那样对数据包丢失做出反应:在重新传输数据包之前,它会丢弃其传输窗口大小,启动拥塞控制或避免机制(例如,启动缓慢 [Jac88])并重置其重传定时器(Karn算法[KP87])。 这些措施导致链路带宽利用率的不必要的降低,从而导致吞吐量差和非常高的交互延迟[CI94],导致性能显着下降。

在本文中,我们描述了一个简单的协议的设计和实现,以减轻这种退化,并提出了使用该协议的几个实验的结果。 我们的目标是提高具有无线链路的网络的端到端性能,而无需改变固定网络中主机的现有TCP实现,也无需重新编译或重新链接现有应用程序。 我们通过对基站网络层(IP)软件进行一系列简单的修改来实现这一目标。 这些修改主要由高速缓存数据包组成,并通过监视对接收器产生的TCP数据包的确认来在无线链路上执行本地重新传输。 我们的实验显示,在无线链路上存在位错误的情况下,速度比普通TCP高20倍。 我们还发现,与常规TCP相比,我们的协议在处理单个窗口中的多个数据包丢失方面显着更强大。

本文的其余部分安排如下。 在第2节中,我们描述和评估了一些解决这个问题的设计方案和相关工作。 在第3节中,我们描述协议的细节和动态。 我们在第4节描述了我们的实现和对基站路由器软件的修改,以及我们在第5节的几个实验的结果。第6节将我们的协议与文献中公布的其他一些替代方案进行了比较。 我们在第7节中讨论我们的未来计划,并在第8节中总结总结。

设计方案和相关工作

TCP是无线网络的合适协议模型吗? 我们相信它是。 由于许多网络应用程序都建立在TCP之上,并且将继续处于可预见的将来,因此无需修改固定主机就可以提高无线网络的性能。 这是通过无线链路进行通信的移动设备可以与其他互联网无缝集成的唯一途径。

最近,已经提出了几种用于具有无线链路的网络的可靠传输层协议[BB94,BB95,CI94,YB94],以减轻无线媒体中未修改TCP的较差的端到端性能。 我们在本节中总结这些协议,并指出每种方法的优缺点。 在第6节中,我们将这些方案与我们的协议进行更详细的比较。

  • 分离连接方式:间接TCP(I-TCP)协议[BB94,BB95]是使用此方法的第一种协议之一。 它涉及将固定主机和移动主机之间的TCP连接拆分成基站的两个独立连接 - 固定主机和基站之间的一个TCP连接,以及基站和移动主机之间的一个TCP连接。 由于第二个连接通过单跳无线链路,因此不需要在此链路上使用TCP。 相反,可以使用更优化的无线链路特定协议以获得更好的性能[YB94]。 分离连接方法的优点在于它实现了无线链路的流量和拥塞控制与固定网络的流量和拥塞控制的分离,并因此在发送方处带来了良好的带宽。 但是,这种方法有一些缺点,包括:
  1. 语义:I-TCP确认和语义不是端到端的。 由于TCP连接明确地分为两个不同的部分,即使在数据包实际到达预期接收者之前,TCP数据包的确认也可以到达发送者。 I-TCP从这种连接分裂中获得了良好的性能。 但是,正如我们将要表明的那样,为了取得良好的性能,没有必要为了确认语义而牺牲语义。
  2. 应用程序重新连接:在移动主机上运行的应用程序必须与I-TCP库重新链接,并且需要在当前实现中使用特殊的I-TCP套接字系统调用。
  3. 软件开销:每个数据包都需要经过TCP协议栈,并发生四次相关的开销 - 一次在发送者,两次在基站,一次在接收器。 这也涉及复制基站处的数据以将分组从传入的TCP连接移动到传出的分组。 如果在最后一个链路上使用更轻量级,无线特定的可靠协议,则此开销将减少。
  • 快速重传方式[CI94]:此方法解决了切换后通信恢复时的TCP性能问题。发送端未修改的TCP解释由于拥塞导致的切换过程造成的延迟(因为TCP假定所有延迟都是由拥塞引起的),并且当发生超时时,减小其窗口大小并重传未确认的数据包。通常,越区切换相对快速地完成(在几十毫秒到几百毫秒之间),并且在发送方超时之前移动主机需要长时间的等待,并且数据包开始重新传输。这是因为在大多数TCP实现中,粗重传超时粒度(大约500毫秒)。快速重传方法通过让移动主机向发送方发送特定阈值数量的重复确认来缓解此问题。这会导致发送方的TCP立即减小其窗口大小,并从第一个丢失的(从中发送重复确认)开始重新传输数据包。这种方法的主要缺点是只处理切换而不是无线链路的错误特性。
  • 链路层重传[PAL 95]:在这种方法中,无线链路在数据链路级实现了与前向纠错相结合的重传协议。 这种方法的优点是它可以提高独立于更高级协议的通信的可靠性。 但是,TCP实现自己的端到端重传协议。 研究表明,这些独立的重传协议可能导致性能下降,特别是当错误率变得显着时[DCY93]。 传输层和链路层重传超时和策略的紧密耦合对于良好性能是必需的。 特别是,需要将信息传递给数据链路层,以了解与更高传输层策略共存的合理超时值和策略。

总之,已经提出了几种方案来改善无线网络中TCP的性能。 但是,它们具有上述缺点。 我们认为有可能设计一个协议来解决这个问题,而没有这些缺点。 本文的其余部分描述了这种协议的设计,实现和性能。

3.Snoop协议

目前大多数需要可靠传输的网络应用都使用TCP。因此,我们希望实现我们的目标,即在不改变固定网络中现有的TCP实现的情况下,改善其网络性能。我们预计可以对网络进行管理控制的唯一组件是基站和移动主机。为了将数据从固定主机传输到移动主机,我们只对基站的路由代码进行修改。这些修改包括缓存未确认的TCP数据,并根据几项处理(来自移动主机的)确认和超时的策略执行本地重新传输。一旦检测到该丢失,通过使用重复确认来识别执行本地重传的分组丢失,该协议将发送方从无线链路的变幻莫测中屏蔽掉。特别是,发送者隐藏了非常低的通信质量和暂时断开的瞬态情况。这会显着提高连接性能,而不会牺牲任何TCP的端到端语义,修改固定网络中的主机TCP代码或重新链接现有应用程序。这种性能改进,协议语义保留以及与现有应用完全兼容的组合是我们工作的主要贡献。

基于这些想法的协议的初步设计出现在[ABSK95]中。 该协议的仿真表明,它能够实现与未修改的TCP相同的吞吐量,误码率高10倍。 这些有希望的结果表明,实施将是值得的。 模拟的协议被用作初始实现的基础。 协议的几个部分根据测量结果和我们的经验进行了更改。

3.1来自固定主机的数据传输

我们首先描述通过基站(BS)将数据从固定主机(FH)传输到移动主机(MH)的协议。基站路由选择代码通过添加一个称为snoop的模块进行修改,该模块监视通过任一方向连接的每个数据包。没有传输层代码在基站运行。探听模块维护从FH发送的尚未被MH确认的TCP分组的高速缓存。这很容易实现,因为TCP具有接收数据包的累积确认策略。当一个新的数据包从FH到达时,snoop将它添加到它的缓存中,并将数据包传递给执行正常路由功能的路由代码。 snoop模块还会跟踪移动主机发送的所有确认信息。当检测到分组丢失时(通过重复确认到达或本地超时),如果分组已缓存,则将丢失的分组重传给MH。因此,基站(窥探)通过不传播重复确认来隐藏来自FH的分组丢失,由此防止不必要的拥塞控制机制调用。

新的pkt

按顺序?

1.转发数据包

2.重置本地计数器

1.标记为cong.损失

2.转发pkt拥塞损失

1.缓存数据包

2.转发到移动设备

图1. snoop_data()的流程图。

snoop模块有两个链接过程,snoop_data()和snoop_ack()。 Snoop_data()处理并缓存发往MH的数据包,而snoop_ack()处理来自MH的确认(ACK)并驱动从基站到移动主机的本地重传。 总结snoop_data()和snoop_ack()算法的流程图如图3和图2所示,并在下面进行介绍。

3.1.1 Snoop_data().

Snoop_data()处理来自固定主机的数据包。 TCP实现了滑动窗口方案,根据拥塞窗口(从发送方的本地计算估计)和流量控制窗口(由接收方通告)传输数据包。 TCP是一种字节流协议,每个数据字节都有一个相关的序列号。 TCP数据包(或段)由其第一个数据字节的序列号及其大小唯一标识。 在BS上,snoop跟踪连接的最后一个序列号。 其中一种数据包可以从FH到达BS,snoop_data()以不同的方式处理它们:

  1. 正常TCP序列中的新分组:这是常见情况,当正常递增序列中的新分组到达BS时。 在这种情况下,数据包被添加到探听缓存并转发到MH。 这样做时我们不会执行任何额外的数据复制。 为了估计无线链路的往返时间,我们还为每个传输窗口在一个分组上放置时间戳。 第4部分介绍了这些步骤的细节。
  2. 一个先前已经缓存的乱序数据包:这是一种不太常见的情况,但是当丢弃的数据包导致发送者超时时,会发生这种情况。当TCP发送器快速重传之后的数据流到达基站时,也可能发生这种情况。取决于这个数据包是否大于或小于迄今为止所看到的最后一个确认数据包,会采取不同的行动。如果序列号大于上次看到的确认,那么很可能这个分组没有提前到达MH,因此它被转发。另一方面,如果序列号小于最后的确认,则该分组已经被MH接收。在这一点上,一种可能性是放弃这个数据包并继续,但这并不总是最好的做法。原因是由于返回到FH时的拥塞,具有相同序列号的原始ACK可能已经丢失。为了便于发送者尽可能快地进入连接的当前状态,由探听模块(具有对应于MH的源地址和端口)生成对应于在BS处看到的最后ACK的TCP确认,并且发送给FH。
  3. 一个没有被更早缓存的乱序数据包:在这种情况下,数据包由于有线网络拥塞或者网络乱序发送而丢失。 前者更可能,特别是如果该分组的序列号(即其第一个数据字节的序列号)远离探听模块迄今为止所看到的最后一个分组多于一个或两个分组。 这个数据包被转发给MH,并且也被标记为已经被发送者重传。 Snoop_ack()使用这个信息来处理来自MH的确认(对于这个分组)。

3.1.2 Snoop_ack().

Snoop_ack()监视和处理MH发回的确认(ACK),并根据接收到的确认类型和数量执行各种操作。 这些ACK分为三类:

新的ack

Dup ack

第一?

1.空闲缓冲区

2.更新RTT估计值

3.向发送方传送ACK

高优先级重传丢失的数据包

丢弃

丢弃

图2. snoop_ack()的流程图。

  1. 一个新的ACK:这是常见的情况(当连接非常没有错误并且用户移动很少时),并且意味着在MH处接收的分组序列增加。 该确认启动对窥探缓存的清理,并释放所有确认的数据包。 无线链路的往返时间估计值此时也被更新。 这个估计不是针对每个分组进行的,而是仅针对每个传输窗口中的一个分组,并且仅在该窗口中没有发生重传。 最后一个条件是需要的,因为一般不可能确定重发分组的确认到达是用于原始分组还是用于重传[KP87]。 最后,确认被转发给FH。
  2. 伪ACK:这是一个比snoop模块看到的最后一个确认少的确认,这种情况很少发生。 它被丢弃,协议继续。
  3. 重复的ACK(DUPA

    全文共11830字,剩余内容已隐藏,支付完成后下载完整资料


    资料编号:[15618],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。