专利名称:用于在网络环境中传输数据的系统和方法
技术领域:
本发明一般地涉及通信领域,更具体而言,本发明涉及用于在网络环境中传输数据的系统和方法。
背景技术:
在当今社会,网络通信领域已经变得越来越重要。与网络通信相关重要性的一个方面涉及数据管理。数据管理技术可以被实现,以便在网络中正确地引导流量,同时为传播通过通信体系结构的相关信息提供最小延迟和可忽略不计的丢失。通常用于从一点向另一点传输信息的某些通信协议会由于它们无法有效地识别影响它们向其想要去的目的地快速而准确地传递信息的能力的网络参数而受到阻碍。
此外,在执行适当的数据管理的过程中,使由于普遍存在于通信系统中的增多的通信或过度丢失率所引起的瓶颈、阻抗和其他拥塞点最小化是很重要的。在某些情况下,诸如拥塞和瓶颈之类的元素可以被看作信息丢失,由此复制的数据分段响应于产生的过度错误率而被发送。因此,有效地管理数据并使网络中出现的分组丢失和延迟最小化的能力向网络设计者和通信系统运营商提供了一项重要挑战。
发明内容
鉴于上述问题,本领域技术人员可以意识到出现对改良的数据管理方法的需求,该方法对网络环境中的设备或组件提供适当的信息分配。根据本发明的一个实施例,提供了用于传输数据的系统和方法,其基本消除或大大减少了与传统数据管理技术相关的缺陷和问题。
根据本发明的一个实施例,提供了一种用于传输数据的方法,包括接收用于在网络中建立通信会话的一个或多个分组以及判断分组中的哪些应该被延迟。被选的一个或多个分组被延迟一段指定的时间间隔,以便扩展与被选分组相关的往返时间(RTT)参数。被选分组在所述时间间隔期满之后被传输。
本发明的某些实施例可以提供多个技术优点。例如,根据本发明的一个实施例,提供了一种数据管理方法,其故意向被选信息分组提供延迟,以便使网络中的拥塞最小化,并使带宽利用率最大化。这是识别出与信息相关的适当的重传超时(RTO)值的结果。RTO值可以与算法一道使用,以便对在网络中传播的数据提供变化。这可以导致对分组提供延迟间隔,以便将数据最优地传递到其想要去的目的地。
与本发明的一个实施例相关的另一技术优点涉及可以在给定网络元件上实现的多个数据管理特征或能力。这样的特征可以包括确认(ACK)分流、重传过程和窗口缩放操作。这些特征可以与被用于从一点向另一点传输信息的协议一道被提供。这些特征还可以以各种组合(或独立地)被使用,以便在网络适当地引导信息。另外,这些特征可以在网络中的被选位置上提供,例如在合适时在多个网络元件中提供。这些特征的实现方式和放置方式是由本发明的教导所提供的实质灵活性的结果。因此,这些特征可以在任意合适的位置中被提供,以便实现网络中数据的正确管理和路由。
与本发明的一个实施例相关的另一技术优点涉及其实现方式。端到端模型可以被保留,因此,终端主机栈可能需要最小改变。另外,这种实现方式可以在仍旧实现由协助两网络元件之间的通信的链路所提供的全部带宽利用率的同时被实现。因此,与数据的有效管理相关的性能增强可以与已经存在于给定体系结构中的元件和对象协同实现。本发明的某些实施例可以享有这些优点中的一些或全部或者不享有这些优点。从以下附图、描述以及权利要求书中,本领域技术人员可以容易地发现其它技术优点。
为了更全面地理解本发明及其特征和优点,下面结合附图来参考以下描述,附图中相同的标号代表相同的部件,在附图中
图1是用于在网络环境中传输数据的通信系统的简化框图;图2是包括在通信系统中的多个网络元件的简化框图;以及图3是示出与用于在网络环境中传输数据的方法相关联的一系列示例性步骤的流程图。
具体实施例方式
图1是根据本发明的一个实施例,用于在网络环境中管理数据的通信系统10的简化框图。通信系统10包括终端用户12、多个因特网协议(IP)网络16a和16b、多个网络元件20a和20b以及卫星24。通信系统10可以例如结合试图在网络中接收、发送或引导信息分组的非地面型(卫星)链路、2.5G或3G蜂窝数据网络配置或标准传输控制协议/因特网协议(TCP/IP)体系结构而被置于任意合适的网络环境或通信体系结构中。通信系统10还可以被置于在网络中的节点之间经历某种通信延迟的任意其他环境中。
根据本发明一个实施例的教导,通信系统10执行操作以提供用于适当地管理数据,以使其以有效的方式传播通过网络的环境。通信系统10可以与在网络元件20a和20b中实现的与通信系统10相关的通信协议合作。该协议可以通过网络元件20a和20b之间的链路而以隧道传输传入的IP分组。这例如可以是由卫星24提供的卫星链路。将以隧道传输的分组可以基于IP协议,该IP协议可以允许现有的增强和解决方案(或遗留应用程序)共存。
网络元件20a-20b可以执行操作,以在转发路径的一端或两端插入延迟,并且可以致使终端主机经由卫星链路来修改往返时间(RTT)和重传超时(RTO)值,以便减轻网络中的分组丢失或拥塞。该操作可以防止终端主机重传以及破坏可以由正被实现的协议所指示的重传率。另外,通信系统10可以提供基于所需本地重传次数的延迟。该延迟反映出被计算出的可以基于当前实现的重传次数的变量。该延迟允许协议能容纳在相应卫星链路上的大量突发错误,或从相应卫星链路上的大量突发错误中恢复。此外,这样的实现方式对于在网络中传播分组可以具有最小限度的协议开销和可忽略的头部配置。
通信系统10提供了一种数据管理方法,该方法故意向所选信息分组提供延迟,以便使网络中的拥塞和分组丢失问题最小化,并使带宽利用率最大化。这是识别出与信息相关的适当RTO值的结果。RTO值可以与合适的算法一道被使用,以便对在网络中传播的数据提供变化。指定的RTO可以导致为分组提供的时间间隔,该时间间隔允许分组在最佳的时间间隔内被传递到其想要去的目的地。
通信系统10还可以提供用于所选网络元件20a和20b的多个数据管理特征。这些特征可以包括确认(ACK)分流、重传过程,以及对窗口缩放选项的处理,这些特征可以与被用于从一点向另一点传输信息的协议一道提供。这些特征可以被组合(或独立)用于在网络中适当地引导信息。另外,这些特征可以在任意合适的位置上被提供,以便在网络中实现适当的数据管理。这样的实现方式还可以保存端到端模型,并且不会导致终端主机堆栈为受益于本发明的体系结构而所需的改变(或导致最小改变)。因此,与已经存在于给定体系结构中的元件和对象协作,可以实现与数据的有效管理相关的性能增强。
终端用户12是试图经由IP网络16a在通信系统10中发起或建立通信会话的客户端或实体。“通信会话”包括通信链路、隧道和/或用于协助数据交换的其他合适的连接或耦合。终端用户12还可以被称为“终端主机”,并且包括用于启动通信的设备,例如计算机、个人数字助理(PDA)、膝上型或电子笔记本、电话、移动台或能够在通信系统10内发起语音、视频流或数据交换的任意其他的设备、组件、元件或对象。终端用户12还可以包括对人类用户的合适接口,例如麦克风、显示屏、键盘或其他终端设备(例如在用户12被用作调制解调器的情况下,对个人计算机或对传真机的接口)。此外,如图1所示,终端用户12还可以是试图代表另一实体或元件发起通信会话的任意设备,所述另一实体或元件例如是程序、数据库或能够在通信系统10内发起语音、视频或数据交换的任意其他的组件、设备、元件或对象。在本文件中所使用的“数据”指的是任意类型的数字、语音或手写数据,或者是任意类型的源或对象代码,或者是可以从一点传输到另一点的具有任意适当格式的任意其他的合适信息。
IP网络16a和16b中的每一个都代表用于接收和发送通过通信系统10传播的信息分组的互连通信路径的一系列点或节点。在特定实施例中,IP网络16a和16b代表分组数据网络(PDN)。IP网络16a和16b还可以在终端主机和网络元件20a和20b之间提供通信接口。可替换地,IP网络16a和16b可以是任意局域网(LAN)、城域网(MAN)、广域网(WAN)、虚拟专用网(VPN)、无线局域网(WLAN)、内联网,或协助网络通信的任意其他合适的体系结构或系统。在本发明的特定实施例中,IP网络16a和16b可以实现TCP/IP通信语言协议。另外,可以将IP安全性(IPSEC)认证和加密应用到16a和16b之间的通信。但是,IP网络16a和16b可以可替换地实现用于在通信系统10内发送和接收数据分组的任意其他合适的通信协议。
网络元件20a-b是可操作用于在网络环境中进行通信的多台网络设备。网络元件20a-b可以管理、引导或协助网络中两节点之间的信息传播。在一个实施例中,网络元件20a-b是路由器,但是可替换地,网络元件20a-b可以是交换机、网桥、网关、处理器、负载平衡器或可操作用于交换信息或数据的任意其他合适的组件、设备、元件或对象。另外,网络元件20a-b中的每一个都可以包括可操作用于执行其操作中的一个或多个操作,或用于向网络元件20a-b提供某种通信或处理能力的任意合适的硬件、软件、组件、对象或元件。在操作中,网络元件20a-b可以为终端用户12提供通信平台,并且包括到卫星24的卫星链路。网络元件20a-b中的每一个都可以发送(并且在合适时处理)和接收数据分组,以便将所选信息提供到终端主机,例如终端用户12。另外,网络元件20a-b可以彼此通信并执行握手操作,以便确保通信在网络中被正确地路由或管理。
卫星24是非地面型元件,它为网络元件20a和20b提供卫星通信链路。卫星24可操作用于发送、接收和处理(在合适时)信息分组。卫星24能够进行高速通信,并且可以包括用于接收和发送信息的合适接口。卫星24还可以包括可操作用于对传入的数据分段执行一种或多种操作的处理元件。在某些实施例中,可以删除卫星24,以使网络元件20a-b被直接彼此耦合,或具有另一合适的通信接口。例如,卫星24可以被任意合适的地面型元件所取代,例如路由器、交换机、网桥、网关或任意其他合适的接口。可替换地,卫星24可以被多个可操作用于协助各种通信应用程序的其他合适的设备所取代。随后将更详细论述某些替换方式。
通信系统10可能与使用基于IP的传输协议(例如TCP)并且包括大量错误的任意元件一道被实现,所述错误进行操作以歪曲或消极影响TCP通信。卫星24是仅仅出于示例目的而被提出的。用于通信系统10的其他应用可以包括无线协议、能够使用IP分组进行通信的蜂窝/移动电话数据、网络接入服务器(NAS)、网关通用分组无线服务(GPRS)支持节点(GGSN)、公共交换电话网(PSTN)、服务GPRS支持节点(SGSN)、全球移动通信系统(GSM)环境等等。
在示例性实施例的操作中,终端用户12可能试图获取由IP网络16b(或与IP网络16b协作)提供的数据或信息。例如,终端用户12可能正在试图联络耦合到IP网络16b的网络服务器。该网络服务器可以代表使用客户端/服务器模型和万维网的超文本传输协议(HTTP)将构成网页的文件提供到网络用户的程序。由终端用户12发出的分组可以被从IP网络16a传输到网络元件20a(假设没有丢失),并被立即传输到网络元件20b。网络元件20b可以为另一卫星链路RTO保存该分组,然后将该分组释放到IP网络16b。IP网络16b可以确认接收到该分组,然后该分组可以被发回网络元件20b。然后该分组可以在释放端被再次保存,并且其接收的确认也可被传输。因此,可以使用三个RTO,以允许分组传播通过网络。另外,由TCP提供的窗口尺寸可以被有效地增大。该操作可以与在分组中发送表示分组被延迟多长时间的标志相结合。在分组中还可以包括指示它正在被重传的另一标志。另外,随后提供了与其他示例性实现方式相关的细节。
图2是反映本发明的示例性实施例的网络元件20a和20b的简化框图。网络元件20a可以包括延迟元件40、ACK分流元件42、重传元件44和窗口缩放元件48。另外,延迟元件40可以包括(或被耦合到)队列46。类似地,网络元件20b可以包括延迟元件50、ACK分流元件52、重传元件54和窗口缩放元件58。另外,延迟元件50可以包括(或被耦合到)队列56。如上所述,网络元件20a和20b可以使用卫星24作为接口进行通信。可替换地,网络元件20a和20b可以直接通信,或者经由无线局域网(WLAN)元件28或无线接入网(RAN)30进行通信。这些元件(卫星24、WLAN元件28和RAN 30)中的每一个都可以被用作协助网络元件20a和网络元件20b之间的通信的唯一元件。可替换地,这些元件可以以任意合适的方式被组合,以便协助网络元件20a和20b之间的数据接收和发送。另外,WLAN元件28和RAN 30可以被提供在通信系统10中的其他位置上,以便协助网络中的数据交换。例如,这些元件可以被放置为提供允许终端用户12登陆到IP网络16a上的平台。这可以包括由这些元件为终端主机(例如终端用户12)执行的授权和认证程序。
WLAN元件28是允许终端用户12通过无线或无线电连接连接到本地网络的无线组件或平台。这样的平台一般可以基于IEEE 802.11标准,或为网络环境中的无线通信提供的任意其他合适的体系结构。这里所指出的WLAN元件28在合适时也可以代表“热点(hot spot)”或公共WLAN(PWLAN)。WLAN元件28可以被部署在诸如咖啡厅、机场、餐馆、旅馆和会议中心之类的公共场所,以作为为终端用户12提供连接的途径。
WLAN元件28可以被耦合到终端用户12或者由终端用户12使用的任意设备,例如移动台、PDA或膝上型电脑。WLAN元件28还可以被耦合到网络元件20a和20b,并且通过与相应网络通信来协助终端用户12的认证过程。合适的加密协议可以在合适时并根据特定需求被包括到与WLAN元件28相关的协议中。
RAN 30是工作在网络元件20a和20b之间的通信接口或平台。可替换地,RAN 30可以被置于终端主机(例如终端用户12)和网络元件20a之间,以便提供到其的访问。RAN 30可以包括基站收发信台和基站控制器。由RAN 30提供的通信接口允许数据在终端用户12或网络元件20a-b和通信系统10内任意数目的被选元件之间进行交换。RAN 30协助由终端用户12产生的请求分组的传递以及由终端用户12寻求的信息的接收。RAN 30仅仅提供了通信接口的一个示例,因为其它类型的通信接口或平台可以根据特定需求而被用于任意特定网络设计或配置。
包括在网络元件20a和20b中的元件执行操作以协助数据管理,以便在通信系统10中正确地引导和分配信息。延迟元件40和50可以被用于插入适当的时间间隔或延迟,以便在通信系统10中以最佳方式传递信息。队列46和56可以被使用,以便存储被选为对其延迟,并且可以随后在指定的时间间隔期满时再被释放的分组。
延迟可以在合适时被仅仅配置在卫星(或通信)链路的一端。例如,如果数据正在从IP网络16a大量流入IP网络16b,我们可以仅在一端执行延迟,从而降低总的RTO。以这种方式,丢失可以在一个方向上得以补偿。可替换地,延迟可以被置于通信链路的两端。在本文件中指出的RTO反映出与重传相关的计算值。例如,在TCP环境中,3秒的RTO初始值可以是所提供的缺省值。然后,可以使用同步(SYN)分组来启动连接。然后,对等体可以发送SYN-ACK,并且该操作可以被计时。现在,该信息可以与算法一道使用,以便计算有效的RTO。这代表不带有不确定性(ambiguity)的平滑往返。RTO可以被合适地计算,它在合适时包括变化。
诸如TCP的某些协议可以包括RTO最小值。如果计算对于给定目的地的RTT,那么与操作相关的计时器在重传和假定某些东西发生错误之前可以被设置为RTO最小值。例如,该计时器可以被设置为一(1)秒。延迟分段可以被插入到通信链路(被置于网络元件20a和20b之间)的每一端,并且包括额外的RTO延迟。当TCP最初进行连接时,它可以将计时器设置为3秒(被称为RTO初始值,因为TCP不知道确切的传播距离)。然后执行与给定分组相关的第一计算。如果延迟被插入到通信链路的每一端(等于分组在网络中被释放之前的一个RTO),那么在示例性实施例中,分组可以采用1.6秒来完成一次往返。因此,网络元件20a-b被编程或配置以适合于这个值。网络元件20a-b之间的RTT和RTO被计算以帮助确定是否立即释放信息。
对被选分组设置延迟可以允许某些流量被保护,而其他流量不被寻址。例如,如果正在一个方向上执行网络请求,那么延迟该信息可能并不重要。但是,可能最好尽快从网页查看数据。该数据可以被保护,以使这种通信会话中的任意丢失都不被看见。
重传元件44和45是软件元件,它们可以被用于重传可能被识别为丢失或可能被认为已经遇到错误的信息。ACK分流元件42和52可以被用于复制信息,以使数据分段的多个拷贝在被发送到其想要去的目的地之前被复制和稍加改变。ACK分流获取一个TCP-ACK,并将其分裂成多个单独的TCP-ACK,这些TCP-ACK从总体上覆盖原始的ACK值。这允许通过相应网络来更快速地传输更多数据。
窗口缩放元件48和58是软件元件,它们可以被用于适当地操纵窗口缩放特征,所述窗口缩放特征是与用于协助去往和来自网络元件20a和20b的信息的传递的协议一道提供的。当TCP初始化时,窗口缩放选项被提供。窗口缩放比例0提供了1∶1的数据相关性。窗口缩放比例1翻译成倍数(因子)2。因此,例如,窗口缩放比例2翻译成倍数4。窗口缩放(也被称为窗口填充)允许比相关协议所指定的将通过通信链路传输的数据更多的数据在该链路上传输。
根据本发明的特定实施例,包括在网络元件20a和20b中的每个元件都可以使用软件来实现。可替换地,这些元件中的每一个都可以被包括在适当的硬件中或实现了网络元件20a-b的操作的组件、设备或任意其它合适的对象或元件内。而且,在合适时并根据特定需求,这些能力或操作中的一个或多个可以从网络元件20a和20b的外部提供,或被并入到任意合适的配置、模块、系统或体系结构中。
在操作中,窗口缩放元件48和58操纵设置在TCP通信协议中的接收窗口(rwnd)。接收窗口指示在接收到确认信号前,对等体可以允许发送者让多少数据未完成。当识别出丢失时,可以假设在某些协议中存在溢出。这些协议可以通过以信号通知某些元件在接收到确认之前只能让单个分组未完成来响应于该假设。因此,利用每个确认,可以释放另一分组以被发送。例如,一个分组可以被发送并接收到确认。然后两个分组被发送,然后三个,以此类推。在TCP操作中,拥塞可以被视为丢失,由此拥塞被假定并且数据传播被禁止。在某些协议中也可以提供拥塞窗口,其确定与网络相关的流量模式。
在操作中,分别包括在网络元件20a和20b中的ACK分流元件42和52可以在合适时对被选分组执行ACK分流技术。当TCP-ACK被识别为正在通信链路上传播时,它可以被复制多次并被稍加改变,以便允许发送者更快速地向网络传输更多数据。该操作可以解决TCP协议所特有的数据坡起(ramp up)和“慢启动”问题。网络元件20a和20b可以分析TCP分组,以便执行该操作,从而允许IP网络16a和16b在给定时间间隔中发送更多数据。
在示例性实施例的操作中(假设网络刚刚被启动或导入),在终端用户12可以通信之前,网络元件20a和20b建立通信平台。这形成了协议链路并且可以协助/允许在较晚时间执行重传操作。一旦连接建立,用户数据就可以被转发。终端用户12可以通过向网络元件20a发送TCP-SYN分组来开启连接。在示例性实施例中,HTTP请求被终端用户12所发起。网络元件20a可以使用已实现地协议来封装分组,然后用序列号来标注分组,从而在IP分组前提供额外的头部。IP分组可以通过通信链路被传输到网络元件20b。网络元件20b可以从IP分组中解封装头部,并将用于该分组的本地化确认发送到网络元件20a。
如果延迟被选择,那么延迟元件40和50被调用(依赖于在何处发起通信),并且分组被置于队列46或56中。如果未选择延迟,则可以判断是否需要ACK分流操作。如果需要,则由ACK分流元件42或52来实现ACK分流。由于在提供的示例中正在接收SYN分组,因此可以执行窗口填充操作。因此,被宣告的窗口增大,这导致网络元件20b相信网络元件20a能够容纳比预期更多的数据。
然后,网络元件20b可以对SYN-ACK分组执行相同的过程。网络元件20b可以用序列号标注分组,并经由卫星24所提供的通信链路来传输分组。网络元件20a可以在本地向网络20b确认它已经接收到该分组。然后执行相同的检查。它可以确定是否需要ACK分流、延迟或窗口填充。如果未选择延迟,那么分组可以被立即释放到网络。当需要窗口填充时,可以接收确认信号并建立IP连接。现在,已建立了数据传输,并且可以实现信息交换。
在示例性实施例中,基于分组何时到达网络元件20a或20b中的任意一个来指定分组的时间戳。在对分组执行延迟时,分组可能位于队列56或队列46中,并且分组被适当地延迟,直到其准备就绪可以被释放。然后可以执行类似检查,包括窗口填充和ACK分流操作。
在确认HTTP请求的ACK信号从网络元件20b发送到网络元件20a之后,判断是否需要延迟。然后可以判断是否需要ACK分流。在需要ACK分流操作的情况下,产生多个ACK,这些ACK的数目可被配置。因此,“n”个ACK被产生以返回终端用户12(假设ACK等级是“n”),并且因此用于单个ACK的“n”个ACK被通过卫星链路发送。如果n=10,则强制终端用户12(或耦合到网络元件20a的任意其它主机)将其拥塞窗口增大10个分段而不是1个分段。现在建立了数据的稳定传输。
在另一实施例中,假设在从网络元件20b到终端用户12的传输中丢失了某条数据。可以从网络元件20b通过卫星24发送给定分组,并且该分组出于某种原因而可能未到达网络元件20a,这可以被网络元件20b意识到,该网络元件20b没有接收到对于该IP分组的确认信号(ACK)。网络元件20b可以重传该分组,并在其中包括指示它是重传分组的标志。然后网络元件20a可以确认该分组最终已被接收,该确认被传递到网络元件20b。如果未选择延迟,则可以释放该分组,并且可以执行标准检查。如果出于示例目的,我们假设已经在网络元件20a处实现延迟,那么所有分组都会在网络元件20a处被延迟。因此,在分组中可以出现两个标志。一个标志可以指示它已被重传,而另一标志可以指示它为了被释放已等待多久。网络元件20a还可以查看由网络元件20b提供的时间戳,并从指定的延迟时间中减去该时间。从而,该延迟可以基于分组的历史而被缩放以还原,以便使延迟标准化。分组可以被立即释放,并且在它需要尽快到达其下一目的地时,可以完全绕过延迟队列。对于较短延时的网络,分组可以被重传多次,在这种情况下,可以在分组中以信号通知发送标志和基于在队列中花费的时间的延迟量。同步参数可以指示这些重传过程中的一个或多个。
在使用流控制传输协议(SCTP)的情况下,这种协议不会提供窗口缩放选项。相反,SCTP可以提供选择性确认(SACK)或完全描述数据流中间的多条数据的确认(而不是仅仅提供数据流的累积信息)。因此,SACK可以包括32位的窗口。每次SACK路过通信链路时,都可以操纵窗口填充参数以通过对每个SACK进行移位和乘法来增大窗口,以便宣告在给定网络元件20a或20b上可以接收更多数据。
图3是示出与用于在网络环境中传输数据的方法相关的一系列示例性步骤的简化流程图。该方法开始于步骤100,其中由网络元件20a接收分组。分组可以被终端用户12发起并被用于在网络中建立通信会话。在步骤102处,判断是否需要任意数目的操作。例如,可以对分组执行ACK分流或提供延迟元件。可替换地,在该阶段,可以由保存该分组的那个网络元件20a-b操纵窗口缩放选项。在步骤104处,分组可以经由卫星24(或任意其它合适的通信接口)提供的卫星链路(或任意其它合适的通信链路)而传播到网络元件20b。可替换地,在合适时并根据特定需求,分组可以经由WLAN元件28或RAN 30或任意其它合适的元件来传输。
在步骤106处,网络元件20b可能接收到分组并执行类似检查,以判断该分组是否应该触发ACK分流、窗口填充或延迟。在步骤108处,被选分组随后可以经由通信链路返回网络元件20a,以使终端用户12以最佳时间间隔接收所请求的信息。图3中所示的某些步骤可以在合适时被改变或删除,并且附加步骤也可以被添加到该流程图中。这些改变可以基于特定系统体系结构或特定通信设置或配置,并且不脱离本发明的范围或教导。
虽然已经参考特定实施例详细描述了本发明,但是应该理解,在不脱离本发明的精神和范围的情况下,可以对其进行各种其它的改变、替换和变化。例如,虽然本发明已经被描述为在特定网络配置中工作,但是本发明可以用于试图管理与终端用户12或相应通信体系结构相关的数据或资源的任意联网环境中。例如,通信系统10可以与GGSN或SGSN一道被实现,从而提供GPRS服务网络环境中的通信媒介。当在GPRS环境中实现通信系统10时,可以提供一系列IP网关,并且每个网关都可以包括与在通信系统10中执行高速数据交换的SGSN协同工作的GGSN。GPRS可以支持多个因特网通信协议,并且可以允许现有的IP、X.25或任意其它合适的应用程序或协议在GSM连接上操作。在合适时并基于特定联网需求,通信系统10还可以与分组数据服务节点(PDSN)、无线元件或NAS协同使用。
另外,虽然已经参考终端用户12和IP网络16a和16b之间的通信描述了本发明,但是,这里所描述的数据通信方法可以被用于网络内或外的任意组件之间的通信。出于教导和指导的目的,本发明仅仅描述了终端用户12和IP网络16a和16b。这不应该被理解为限制如何或在何处实现本发明的路由协议。通信系统10可以与试图使带宽容量最大化和/或管理在传播中经历某种延时或延迟的数据的任意体系结构或配置一道被实现。此外,以上公开的处理和路由配置可以与通信过程中涉及的任意组件、单元、硬件、软件、对象或元件一道被实现。这样的元件可以在网络元件20a-b外部,或与其一道被提供。
本领域技术人员可以确定多种其它的改变、替换、变化、变更和修改,并且本发明想要包含落入所附权利要求书的精神和范围中的所有这样的改变、替换、变化、变更和修改。此外,本发明并不想要以任意方式被说明书中未被反映在所附权利要求书中的任意陈述所局限。
权利要求
1.一种用于在网络环境中传输数据的方法,包括接收用于在网络中建立通信会话的一个或多个分组;判断所述分组中的哪些应该被延迟;将被选的一个或多个分组延迟一段指定的时间间隔,以便扩展与所述被选分组相关的往返时间参数;以及在所述时间间隔期满之后传输所述被选分组。
2.如权利要求1所述的方法,还包括对一个或多个分组执行确认分流,以便允许在所述网络中传输更多数据。
3.如权利要求1所述的方法,还包括响应于识别出在目的地位置还未接收到一个或多个分组而重传所述一个或多个分组。
4.如权利要求3所述的方法,还包括在被重传的一个或多个分组中提供重传标志。
5.如权利要求1所述的方法,还包括操纵包括在与所述通信会话相关的协议中的窗口缩放参数,以便允许更多数据被与在所述网络中发起所述通信会话相关的网络元件所接收。
6.如权利要求1所述的方法,还包括在所述被选分组被释放之前,存储所述被选分组中的一个或多个,一旦所述时间间隔期满,就释放所述被选分组。
7.一种用于在网络环境中传输数据的装置,包括第一网络元件,该元件可操作用于接收用于在网络中建立通信会话的一个或多个分组,所述第一网络元件包括延迟元件,该元件可操作用于判断所述分组中的哪些应该被延迟并将被选的一个或多个分组延迟一段指定的时间间隔,以便扩展与将被传输到第二网络元件的所述被选分组相关的往返时间参数,其中所述被选分组在所述时间间隔期满之后被传输。
8.如权利要求7所述的装置,还包括确认分流元件,该元件可操作用于对一个或多个分组执行确认分流,以便允许在所述网络中传输更多数据。
9.如权利要求7所述的装置,还包括重传元件,该元件可操作用于响应于识别出在目的地位置还未接收到一个或多个分组而重传所述一个或多个分组。
10.如权利要求9所述的装置,其中所述一个或多个分组包括指示所述一个或多个分组正被重传的重传标志,并且其中所述一个或多个分组包括指示所述一个或多个分组为了被传输到所述目的地位置已经等待多久的时间标志。
11.如权利要求7所述的装置,还包括窗口缩放元件,该元件可操纵用于操纵包括在与所述通信会话相关的协议中的窗口缩放参数,以便允许更多数据被所述第一网络元件所接收。
12.如权利要求7所述的装置,还包括队列,该队列可操作用于在所述被选分组被释放之前,存储所述一个或多个被选分组。
13.一种用于在网络环境中传输数据的系统,包括用于接收用于在网络中建立通信会话的一个或多个分组的装置;用于判断所述分组中的哪些应该被延迟的装置;用于将被选的一个或多个分组延迟一段指定的时间间隔,以便扩展与所述被选分组相关的往返时间参数的装置;以及用于在所述时间间隔期满之后传输所述被选分组的装置。
14.如权利要求13所述的系统,还包括用于对一个或多个分组执行确认分流,以便允许在所述网络中传输更多数据的装置。
15.如权利要求13所述的系统,还包括用于响应于识别出在目的地位置还未接收到一个或多个分组而重传所述一个或多个分组的装置。
16.如权利要求15所述的系统,还包括用于在被重传的一个或多个分组中提供重传标志的装置。
17.如权利要求13所述的系统,还包括用于操纵包括在与所述通信会话相关的协议中的窗口缩放参数,以便允许更多数据被与在所述网络中发起所述通信会话相关的网络元件所接收的装置。
18.如权利要求13所述的系统,还包括用于在所述被选分组被释放之前,在队列中存储所述被选分组中的一个或多个的装置,一旦所述时间间隔期满,就释放所述被选分组。
19.一种包含用于在网络环境中传输数据的代码的计算机可读介质,所述代码可操作用于接收用于在网络中建立通信会话的一个或多个分组;判断所述分组中的哪些应该被延迟;将被选的一个或多个分组延迟一段指定的时间间隔,以便扩展与所述被选分组相关的往返时间参数;以及在所述时间间隔期满之后传输所述被选分组。
20.如权利要求19所述的介质,其中所述代码还可操作用于对一个或多个分组执行确认分流,以便允许在所述网络中传输更多数据。
21.如权利要求19所述的介质,其中所述代码还可操作用于响应于识别出在目的地位置还未接收到一个或多个分组而重传所述一个或多个分组。
22.如权利要求21所述的介质,其中所述代码还可操作用于在被重传的一个或多个分组中提供重传标志。
23.如权利要求19所述的介质,其中所述代码还可操作用于操纵包括在与所述通信会话相关的协议中的窗口缩放参数,以便允许更多数据被与在所述网络中发起所述通信会话相关的网络元件所接收。
24.如权利要求19所述的介质,其中所述代码还可操作用于在所述被选分组被释放之前,存储所述被选分组中的一个或多个,一旦所述时间间隔期满,就释放所述被选分组。
全文摘要
本发明提供了一种用于在网络环境中传输数据的方法,其包括接收用于在网络中建立通信会话的一个或多个分组以及判断分组中的哪些应该被延迟。被选的一个或多个分组被延迟一段指定的时间间隔,以便扩展与被选分组相关的往返时间(RTT)参数。被选分组在所述时间间隔期满之后被传输。
文档编号H04L12/56GK1757203SQ200480005855
公开日2006年4月5日 申请日期2004年2月11日 优先权日2003年3月7日
发明者兰德尔·R·斯图尔特, 彼得·李, 帕特里克·梅翰 申请人:思科技术公司