CN101010880B - 可靠地传输数据的方法、装置和网络以及实时数据传递系统 - Google Patents
可靠地传输数据的方法、装置和网络以及实时数据传递系统 Download PDFInfo
- Publication number
- CN101010880B CN101010880B CN2005800119240A CN200580011924A CN101010880B CN 101010880 B CN101010880 B CN 101010880B CN 2005800119240 A CN2005800119240 A CN 2005800119240A CN 200580011924 A CN200580011924 A CN 200580011924A CN 101010880 B CN101010880 B CN 101010880B
- Authority
- CN
- China
- Prior art keywords
- error correction
- packets
- network
- grouping
- correction information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明提供了允许在基于分组的网络中进行可靠的数据传输的方法和装置。网络节点在网络层编码(621)与数据分组相关联的差错纠正分组,并将差错纠正分组与数据分组一起转发(627)。差错纠正分组按照需要被解码(723),以恢复在传输期间丢失或丢弃的数据分组。该机制可应用于单播和多播网络,甚至在网络拓扑改变时也能起作用。
Description
技术领域
本发明一般地涉及可靠数据传输。更具体而言,本发明提供了用于高效而可靠地在基于分组的网络中传输数据的技术和机制。
背景技术
基于分组的网络中的可靠数据传输是一种期望特征。在单播网络中,可靠数据传输通常由诸如传输控制协议(TCP)之类的机制提供。TCP提供了对丢弃或丢失的数据分组的重传。TCP已经能够在很多种基于分组的网络中提供足够的可靠性。但是,本发明的技术意识到基于TCP的可靠性还存在某些限制。例如,基于TCP的可靠性对于多播网络或者对延迟敏感的网络来说通常是不充分的。其他可靠性机制具有它们自己的各种缺陷。在某些示例中,可靠性机制在网络拓扑改变后无法有效地工作。
因此,期望提供一种用于改进允许可靠数据传输的机制的技术。
发明内容
本发明提供了允许在基于分组的网络中进行可靠的数据传输的方法和装置。网络节点在网络层编码与数据分组相关联的差错纠正分组,并将差错纠正分组与数据分组一起转发。差错纠正分组按照需要被解码,以恢复在传输期间丢失或丢弃的数据分组。该机制可应用于单播和多播网络,甚至在网络拓扑改变时也能起作用。
在一个实施例中,用于在分组网络中可靠地传输数据的方法被提供。多个数据分组在编码器处被接收。在编码器和解码器之间建立转发差错纠正隧道。与多个数据分组相对应的差错纠正信息被生成,该差错纠正信息的量取决于所建立的转发差错纠正隧道的端点之间的特定路由的丢失率。包括差错纠正信息的多个差错纠正分组被提供。多个数据分组和多个差错纠正分组被传输到解码器。如果在解码器处有一个或多个数据分组没被接收到,解码器则使用差错纠正信息来重建一个或多个数据分组。
在另一实施例中,用于在网络中接收数据的方法被提供。多个数据分组在解码器网络节点处被接收。多个数据分组与块标识符相关联。多个包括与块标识符相对应的差错纠正信息的多个差错纠正分组被接收。如果在设置的时间段内有一个或多个数据分组尚未接收到,则使用差错纠正信息来重建这一个或多个数据分组。
在另一实施例中,用于可靠地传输数据的装置被提供。该装置包括接口和处理器。接口被配置为接收多个数据分组。处理器被配置为生成与多个数据分组相对应的差错纠正信息,并提供包括差错纠正信息的多个差错纠正分组。接口还被配置为将多个数据分组和多个差错纠正分组发送到解码器。如果在解码器处有一个或多个数据分组没被接收到,解码器则使用差错纠正信息来重建一个或多个数据分组。其中,在装置和解码器之间建立有转发差错纠正隧道,并且所生成的差错纠正信息的量取决于所建立的转发差错纠正隧道的端点之间的特定路由的丢失率。
在另一实施例中,提供了一种网络。该网络包括编码器和解码器。该编码器被配置为提供具有已经生成的与多个数据分组相对应的差错纠正信息的差错纠正分组。编码器还被配置为发送所述多个数据分组和多个差错纠正分组。解码器被配置为如果多个数据分组中有一个或多个数据分组没被接收到,则使用差错纠正分组来重建多个数据分组中的这一个或多个分组。其中,在编码器和解码器之间建立有转发差错纠正隧道,并且编码器所生成的差错纠正信息的量取决于所建立的转发差错纠正隧道的端点之间的特定路由的丢失率。
在又一实施例中,提供了一种包括网络节点和接收机的可靠的实时数据传递系统。该网络节点被配置为提供具有已经生成的与多个数据分组相对应的差错纠正信息的差错纠正分组。该网络节点还被配置为发送所述多个数据分组和多个差错纠正分组。所述接收机被配置为如果多个数据分组中有一个或多个数据分组没被接收到,则使用差错纠正分组来重建多个数据分组中的这一个或多个分组,从而实现多个数据分组的实时可靠传输。 其中,在网络节点和接收机之间建立有转发差错纠正隧道,并且网络节点所生成的差错纠正信息的量取决于所建立的转发差错纠正隧道的端点之间的特定路由的丢失率。
通过参考说明书的其余部分以及附图,可以进一步理解本发明的本质和优点。
附图说明
通过结合附图参考以下描述,可以最好地理解本发明,附图示出了本发明的特定实施例。
图1是分组交换网络的图示代表。
图2是示出隧道的图示代表。
图3A-3D是示出分组块的传输的图示代表。
图4A-4D是示出分组块的传输的图示代表。
图5是示出经编码的分组的图示代表。
图6是示出用于源编码的技术的流程图。
图7是示出用于目的地解码的技术的流程图。
图8是示出路由器的图示代表。
具体实施方式
下面将详细参考本发明的某些特定实施例,包括发明人设想的用于实施本发明的最优模式。这些特定实施例的示例在附图中示出。虽然本发明是结合这些特定实施例描述的,但是将会理解,不希望本发明局限于所描述的实施例。相反,希望覆盖由所附权利要求限定的本发明的精神和范围内可能包括的替代、修改和等同物。
例如,本发明的技术和机制的某些示例将在IP分组传递的上下文中描述。但是,应该注意,本发明的技术和机制也可以应用到其它类型的分组和数据。在以下描述中,多个特定细节被提出,以便提供对本发明的全面理解。本发明无需这些特定细节中的某些或全部也可被实施。公知的过程操作未被详细描述,以免不必要地模糊本发明。此外,本申请中对特定 单数实体的引用包括本发明的方法和装置可以利用多于一个实体来实现的可能性,除非上下文明确指出。
用于在基于分组的网络中提供可靠性的传统机制是受限制的。在典型实例中,可靠性由与TCP相关联的重传机制提供。但是,TCP具有相当大的缺陷,尤其是针对具有重传问题的任意流量。TCP包括用于在目的地意识到分组已被丢弃或丢失时从源向目的地重传分组的机制。例如,用户终端可以请求从内容服务器重传特定分组。虽然这些重传机制在很多情况下是有效的,但是本发明的技术意识到,这些技术在很多情况下并不特别有效,包括在传输对延迟敏感的数据时和在多播网络中进行传输时。
对于对延迟敏感的数据(例如金融信息、视频和电话)的传输,目的地节点通常不希望等待丢弃的分组的重传。等待重传可能不利地影响系统性能。在某些实例中,等待对丢弃的分组的重传可能意味着视频帧被延误,电话会话不清楚,或者股票报价序列过时。
TCP对于多播网络也效率很低。在多播网络中,很多应用同时向多个目的地进行传输。源通常无法工作来重传某些目的地没有接收到的特定丢弃的分组。在典型IP多播网络中,源甚至不知道其传输的所有目的地。
此外,TCP是第4层协议,其通常受控于网络端点处的软件。TCP无法针对网络节点之间的特定链路来定制,并且依赖于相当慢的差错恢复机制。
诸如TCP和甚至更高层协议之类的机制对于对延迟敏感的传输和多播网络不特别有效。一种可获得的机制是实际通用多播(PGM),它是一种在诸如IP多播之类的尽力而为数据报服务上运行的可靠的多播传输协议。PGM的会话建立这样一个树,该树以源作为根,以接收机作为叶子,并以其他网络元件作为中间节点。在常规的数据传输过程中,源沿树的一条路径向接收机多播经排序的数据分组。当接收机检测到预期序列中有数据分组丢失时,它向路径中的上一网络元件重复单播路径否定确认(NAK),该NAK包含丢失的数据的序列号。
网络元件利用反向路径向源逐跳转发NAK,并通过响应于从其接收到NAK的子节点(child)多播NAK确认(NCF)来确认每一跳。接收 机和网络元件在接收到相应的NCF时停止发送NAK。最后,具有可用数据的路由器通过向群组多播NCF来接收和确认NAK。如果丢失的数据还在存储器中,则可以由源响应于NAK提供修复(RDATA)。为了避免NAK爆炸(惊人数目的NAK消息),PGM规定了用于网络元件内的NAK消除的程序,以便沿着反向分发路径仅传播给定NAK的一个拷贝。PGM被关联到多播树的特定拓扑并建立覆盖该多播树的PGM树。例如,如果网络拓扑改变或特定多播树改变,PGM则可能无法工作。此外,PGM对于诸如电话或视频之类对延迟敏感的数据不特别有效。
本发明的技术和机制提供了网络层上有效而高效的分组传输。通过提供用于网络层上可靠性的机制,向网络管理员提供了更多控制来维护可靠性需求。网络中特别容易丢失的特定部分可以具有用于差错恢复的更广泛机制。可靠性机制也可以对最终用户和应用保持透明。
根据各种实施例,在分组流中提供转发差错纠正,来允许可靠的数据传输。转发差错纠正隧道可以建立在网络节点(包括核心网络节点、边缘网络节点和端点)之间,以允许传输数据分组和差错纠正分组。差错纠正分组包括用于允许恢复没有通过隧道接收到的数据分组的差错纠正信息。根据各种实施例,本发明的技术可被用于单播和多播传输两者,并且可被实现在用于线速转发差错纠正的硬件中。本发明的技术和机制还独立于网络拓扑改变,并且可以与各种分组协议一起使用。
图1是示出传统分组化网络(例如IP网络)的图示代表。该分组化网络包括高度互连的核心路由器101-107和更松散连接的边缘路由器111-117。耦合到三个或更多个其他路由器的任意路由器或交换机可以被称为核心路由器。位于服务提供商网络外围并且通常连接到不同类型的网络或不同的服务提供商网络的任意路由器被称为边缘路由器。在某些实例中,核心路由器可以基于网络拓扑改变而变为边缘路由器,反之亦然。术语核心路由器和边缘路由器在这里仅仅是为方便而使用的。在很多实例中,核心和边缘路由器可以互换。此外,虽然本发明的技术和机制将在特定核心和边缘网络的上下文中描述,但是所述技术和机制同样可应用到不同的服务提供商网络和企业网络。
根据各种实施例,最终节点123是内容服务器。如果在最终节点125处的用户希望访问来自最终节点123的信息,则向最终节点123发送请求,并且信息作为分组被发送到最终节点125。但是,对于多播传输,接收机不一定必须与服务器通信。分组通常穿过不同的路由。在很多实例中,某些分组可能在传输经过不同的边缘和核心路由器时被丢弃或丢失。诸如TCP之类的机制在最终节点125处跟踪来自内容服务器的分组的接收,并向最终节点123发回重传任意丢弃或丢失的分组的请求。最终节点123随后通常多次尝试重传。TCP是在网络中的特定端点处实现的第4层机制。分组网络中的任意终端点在这里都被称为端点或最终节点。
在另一示例中,最终节点125可能请求来自与耦合到边缘路由器117的另一服务提供商网络相关联的内容服务器的信息。类似地,分组在来自与耦合到边缘路由器117的服务提供商网络相关联的内容服务器的传输中可能被丢失或丢弃。最终节点125也可能是多播传输的接收者。在很多实例中,多播传输是在不考虑传输的实际接收的情况下通过尽力而为发送的。其他更上层机制也可被用来提供可靠性,但是更上层机制通常仅在端点处实现,并且对应用或用户来说一般不是透明的。PGM也可被使用,但是PGM在拓扑改变时包含极大开销。
从而,本发明的技术提供了可以建立在网络中的各种不同节点之间的网络可靠性和差错恢复机制。根据各种实施例,可靠性可以建立在网络中的端点之间。在一个示例中,可靠性可以建立在不同服务提供商网络中的核心路由器之间。在另一示例中,可靠性可以建立在同一服务提供商网络中的边缘路由器之间。将会意识到,各种配置都是可能的。
图2是示出可靠的数据传输网络的配置的一个示例的图示代表。网络包括高度互连的核心路由器101-107和更松散连接的边缘路由器111-117。可靠性通过隧道101被建立在边缘路由器113和边缘路由器115之间。通过建立诸如转发差错纠正隧道201之类的差错纠正机制,网络可靠性可被建立在边缘路由器113和边缘路由器115之间。将会意识到,隧道仅被用作一种抽象。分组实际上仍旧流过核心路由器101-107。隧道可以利用诸如一般路由封装(GRE)之类的机制来建立。可以使用(或不使 用)加密。
根据各种实施例,转发差错纠正隧道201被设置在边缘路由器113和边缘路由器115之间。在一个示例中,边缘路由器113将差错纠正分组插入到被发送到边缘路由器115的分组流中。差错纠正分组可在边缘路由器115处被用来重建丢失或丢弃的分组,而没有与重传相关联的延迟。根据各种实施例,差错纠正隧道被建立在边缘路由器113和115之间、边缘路由器113和117之间,以及边缘路由器113和111之间。差错纠正隧道也可以建立在边缘路由器113和其他服务提供商网络中的路由器之间。根据各种实施例,差错纠正隧道可以由网络管理员利用诸如命令行界面或图形用户界面之类的机制来建立。
被插入的差错纠正信息的量可能取决于隧道端点之间的特定路由的丢失率。对于特别容易丢失的网络,可能需要提供更多差错纠正信息。在一个实施例中,为230个数据分组提供25个奇偶校验分组,来允许对任意25个丢失的数据分组的恢复。本发明的技术意识到,丢失的数据通常是由丢失或丢弃的分组导致的,因此提供了奇偶校验或差错纠正分组。在TCP中,奇偶校验信息在每个分组中提供。但是,该奇偶校验信息不足以允许差错恢复并且通常被用来判断是否应该丢弃分组。通过在网络层上提供差错纠正,网络管理员可以在特定隧道上配置经定制的可靠性。在某些示例中,如果某一网络部分特别容易丢失,网络管理员则可以提供更多差错纠正分组。在另一部分中,可以使用更少差错纠正分组,以提高吞吐量并减小等待时间。
图3A-3D是示出在网络节点处将差错纠正信息插入分组流的分组处理的图示代表。任意将差错纠正信息插入分组流的网络节点在这里都被称为编码器。图3A是示出分组接收的图示代表。分组301被分析,以判断目的地地址是否与任意特定转发差错纠正隧道或FEC隧道相关联。如果分组不与任意差错纠正隧道相关联,则可以无需延迟传输分组。但是,如果分组与一个差错纠正隧道相关联,则将分组301基于其块标识符和/或会话标识符拷贝到块缓冲器351中的槽(slot)331中。块和/或会话标识符可以统称为块标识符。在某些实例中,这两种标识符都被使用。在其他 实例中,只使用块标识符。根据各种实施例,块缓冲器保存想去往特定目的地点的分组。
在编码器处的块缓冲器被用来保存关于被发送的分组的信息,以允许在已经接收到多个分组时随后生成差错纠正信息。头部311被添加到分组301并且分组301作为分组321被发送。
图3B是示出下一分组的接收的图示代表。根据各种实施例,分组303被分析,以判断其是否应被拷贝到块缓冲器351中的槽333中。分组已作为带有头部313的分组323被转发。图3C类似地示出被拷贝到块缓冲器351中的槽335中并作为带有头部315的分组325被转发的分组305。
图3D示出差错纠正信息的生成。利用保存在块缓冲器351中的分组331、分组333和分组335,差错纠正编码器341可以生成带有头部317和319的差错纠正分组327和329。根据各种实施例,差错纠正信息是利用Reed Solomon编码来生成的。应该注意,诸如简单的XOR或Wyner-Ash代码之类的其他差错纠正代码也可被使用,并且Reed Solomon编码仅仅是这里使用的一个示例。块缓冲器351被用来允许在接收到分组时立即转发分组。包含几乎所有用于数据分组恢复的差错纠正信息的任意分组在这里被称为差错纠正分组。在网络中发送的其他分组在这里被称为数据分组。数据分组可以包括某种初级奇偶校验信息。
图4A-4D是示出解码器处的分组处理的图示代表。图4A示出带有分组头部411的分组421。根据各种实施例,任意被配置用于接收数据分组和差错纠正分组并且按照需要利用差错纠正分组来重建数据分组的网络节点在这里都被称为解码器。在某些实施例中,解码器接收不具有隧道头部的分组。在某些实例中,当接收到隧道头部时,隧道头部被分析以确定特定的块和会话标识符。分组然后被拷贝到与特定块和会话标识符相关联的缓冲器451的槽431中。解码器通常具有基于每个会话和基于每个块分配的单独的块缓冲器。一个或多个数据分组的任意群组在这里被称为块或分组块。在某些示例中,一个块中的数据分组与同一会话相关联。分组部分作为删除了隧道头部的分组401被转发。
图4B示出具有同一块标识符的另一隧道分组的接收。接收的分组423具有头部413。利用头部信息,分组423被拷贝到块缓冲器451的槽433中。该分组也作为删除了隧道头部的分组403被转发。根据各种实施例,解码器可能还正在接收其他分组,例如与其他块和会话标识符相关联的分组。在很多示例中,解码器还使用计时器来跟踪第一分组在何时接收到并且还监视接收到的块中的分组数目。就是说,解码器使用计时器来跟踪从在块缓冲器中接收到第一分组时起的时间量。
图4C示出差错纠正分组的接收。接收到的差错纠正分组427和429带有头部417和419,并被拷贝到块缓冲器的槽437和439中。在很多示例中,差错纠正分组可以在数据分组前被接收。但是,解码器将等待一段时间来接收与特定块相关联的所有数据分组和差错纠正分组。如果时间过去,差错纠正信息将被用来重建任意丢失的数据分组。例如,解码器可以等待被设置的若干毫秒来接收与特定块相关联的差错纠正分组和数据分组。计时器通常在接收到第一分组时启动。如果不是所有数据分组都被接收到,则可以使用差错纠正分组来重建丢失或丢弃的数据分组。在典型的实例中,差错纠正分组在解码器处终止。
图4D是示出数据分组重建的图示代表。块缓冲器451包括数据分组431和433以及差错纠正分组437和439。数据分组和差错纠正分组都被传递到解码器逻辑机制,以允许应用各种重建方法。根据各种实施例,解码器逻辑461可以应用Reed Solomon来恢复丢失的数据分组。差错编码和解码协议可以在隧道建立期间建立。解码器逻辑可以利用专用集成电路(ASIC)、可编程器件(例如现场可编程门阵列(FPGA))和/或通用处理器等等来实现。在一个实施例中,重建的分组是分组435。分组随后被转发到下一网络节点。
图5是示出可被用在两个隧道端点(例如编码器和解码器)之间的典型头部的图示代表。根据各种实施例,用于提供转发差错纠正的隧道头部是标准GRE封装头部。在某些实施例中,包括在隧道头部中的可选字段被用来包括用于转发差错纠正的信息。在一个示例中,32位的转发差错纠正会话ID 501被用来标识特定隧道和会话,而32位的位序列字段被划 分成包括一位优胜(one-up)转发差错纠正奇偶校验选择位503、10位的块标识符505和21位的序列号507。在很多实施例中,会话ID、块ID和序列号是带有折回(wrap around)的连续增大的整数。在一个实施例中,奇偶校验选择位对于奇偶校验分组或差错纠正分组被设置为1,并且对于数据分组被设置为0。
图6是示出用于编码差错纠正信息的技术的流程图。在601处,隧道被建立。根据各种实施例,GRE隧道被建立。在603处,分组被接收。在605处,与分组相关联的块标识符被提供。根据各种实施例,块标识符是基于与分组相关联的目的地来提供的。在607处,分组被拷贝到分组缓冲器中。在609处,隧道头部被添加到分组。在很多实例中,隧道头部包括块号、会话标识符和序列号。在613处,分组被转发。然后过程在603处重复,直到某些分组(例如K个分组)已在621处被转发为止。在K个分组已被转发之后,在623处生成(N-K)个奇偶校验分组或差错纠正分组,以提供用于特定块的总共N个分组。在625处,隧道头部被添加到奇偶校验分组并在627处被转发。在一个示例中,编码器等待接收124个数据分组,然后生成4个奇偶校验分组,从而在一个特定块中总共有128个分组。根据各种实施例,四个奇偶校验分组允许重建最多四个丢失的数据分组。
图7是示出在接收到数据分组和差错纠正分组之后的解码器处理的流程图。在701处,数据分组被接收。在703处,隧道头部被删除。在705处,块和会话标识符被确定,以允许在707处将分组拷贝到适当的块缓冲器中。根据各种实施例,如果分组是接收到的一个特定块中的第一分组,则启动计时器。在709处,分组被转发。然后过程在701处重复,直到计时器超时或者与该块相关联的所有数据分组都已接收到为止。在721处,如果没有检测到丢失,则不需要重新生成。但是,如果分组已被丢失或丢弃,则利用差错纠正分组在723处重建数据分组。在725处,重建的分组被发送。
本发明的技术和机制可被实现在各种设备上。在一个示例中,该技术和机制可以以软件、硬件或固件的形式被实现在边缘路由器上。在一个示 例中,边缘路由器可被实现在芯片上的单个系统上。
本发明的技术的软件或软件/硬件混合实现方式可被实现在通用可编程机器上,该通用可编程机器由存储在存储器中的计算机程序来选择性地激活或重配置。这样的可编程机器可以是为了处理网络流量而设计的网络设备,例如路由器或交换机。例如,本发明的映射机制可以是专门配置的路由器或服务器,例如可从加州San Jose的Cisco Systems,Inc获得的专门配置的1600、6500、7600和12000型路由器。这些机器中的某些的一般体系结构将从以下描述中显现出来。在替换实施例中,技术可被实现在通用网络主机机器上,例如个人计算机或工作站。此外,本发明可以至少部分实现在网络设备或通用计算设备的卡(例如接口卡)上。
现在参考图8,适合于实现本发明的技术的网络设备860包括主中央处理单元(CPU)862、接口868和总线867(例如PCI总线)或互连。当在适当软件或固件的控制下工作时,CPU 862可以负责实现与所需网络设备的功能相关联的特定功能。例如,CPU 862可以负责删除标签、确定与标签相关联的服务,以及用其他形式的头部信息替换标签。CPU 862优选地在包括操作系统在内的软件和任意适当的应用软件的控制下实现所有这些功能。
CPU 862可以包括一个或多个处理器863,例如来自Motorola微处理器族的处理器或来自MIPS微处理器族的处理器。在替换实施例中,处理器863是专门设计的用于控制网络设备860的操作的硬件。在特定实施例中,存储器861(例如非易失性RAM和/或ROM)也构成CPU 862的一部分。但是,存在很多不同方式可以使存储器耦合到系统。存储器块861可被用于各种目的,例如缓存和/或存储数据、编程指令等等。
接口868通常是作为接口卡(有时被称为“线路卡”)提供的。一般而言,它们控制网络上数据分组的发送和接收,并且有时支持与网络设备860一起使用的其他外设。在可以提供的接口中包括以太网接口、帧中继接口、线缆接口、DSL接口、令牌环接口等等。另外,还可以提供各种超高速接口,例如快速以太网接口、千兆位以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口等等。一般而言,这些接口可以包括适合于 与适当的媒体通信的端口。在某些情况下,它们还可以包括独立的处理器,并且在某些情况下,还包括易失性RAM。独立的处理器可以控制通信密集型任务,例如分组交换、媒体控制和管理。通过为通信密集型任务提供分离的处理器,这些接口允许主微处理器862高效地执行路由计算、网络诊断、安全性功能等等。
虽然图8所示系统示出了本发明的一个特定网络设备,但是这并不意味着本发明只可以在该网络设备体系结构上实现。例如,具有单个处理通信和路由计算等的处理器的体系结构通常被使用。此外,其它类型的接口和媒体也可被与该网络设备一起使用。
网络设备可以包括一个或多个存储器模块(例如存储器块865),这些存储器模块被配置用于存储数据、用于通用网络操作的程序指令和/或与这里描述的技术的功能相关的其他信息。程序指令例如可以控制操作系统和/或一个或多个应用的操作。存储器还可被配置为存储数据结构、映射表和/或这里描述的其他特定非程序信息。
由于这样的信息和程序指令可被用来实现这里描述的系统/方法,因此本发明涉及包括用于执行这里描述的各种操作的程序指令、状态信息等等的机器可读介质。机器可读介质的示例包括(但不局限于):磁介质,例如硬盘、软盘和磁带;光介质,例如CD-ROM盘;磁光介质,例如光盘;和专门配置用来存储和执行程序指令的硬件设备,例如只读存储设备(ROM)和随机访问存储器(RAM)。本发明还可以包含在通过适当介质(例如无线电波、光线路、电线路等等)行进的载波中。程序指令的示例包括例如由编译器产生的机器代码和包含可以由计算机利用解释器执行的更高级代码的文件。
虽然已经参考本发明的特定实施例具体示出并描述了本发明,但是本领域技术人员将意识到,在不脱离本发明的精神或范围的情况下,可以对所公开的实施例的形式和细节进行改变。因此,本发明的范围应该参考所附权利要求来确定。
Claims (26)
1.一种用于在分组网络中可靠地传输数据的方法,该方法包括:
在编码器处接收多个数据分组;
在所述编码器和解码器之间建立转发差错纠正隧道;
生成与所述多个数据分组相对应的差错纠正信息,所述差错纠正信息的量取决于所述转发差错纠正隧道的端点之间的特定路由的丢失率;
提供包括所述差错纠正信息的多个差错纠正分组;
将所述多个数据分组和所述多个差错纠正分组发送到所述解码器,其中如果在所述解码器处有一个或多个数据分组没被接收到,所述解码器则使用所述差错纠正信息来重建一个或多个数据分组。
2.如权利要求1所述的方法,其中所述多个数据分组是在生成所述差错纠正信息之前被发送的。
3.如权利要求2所述的方法,其中数据分组在被接收时被拷贝到缓冲器中并被发送。
4.如权利要求1到3中任意一个所述的方法,其中所述解码器与网络节点相关联。
5.如权利要求1到3中任意一个所述的方法,其中所述解码器与网络端点相关联。
6.如权利要求1到3中任意一个所述的方法,其中所述编码器与网络节点相关联。
7.如权利要求1到3中任意一个所述的方法,其中所述编码器与网络端点相关联。
8.如权利要求1到3中任意一个所述的方法,其中所述解码器和所述编码器是边缘交换机。
9.如权利要求1到3中任意一个所述的方法,其中Reed Solomon编码被用来生成所述差错纠正信息。
10.如权利要求1所述的方法,还包括将所述多个数据分组和所述多个差错纠正分组与隧道头部封装在一起。
11.如权利要求10所述的方法,其中所述隧道头部是经GRE封装的。
12.如权利要求10所述的方法,其中所述多个数据分组和所述多个差错纠正分组构成一个数据块。
13.如权利要求12所述的方法,其中所述数据块与一个会话相关联。
14.如权利要求1到3中任意一个所述的方法,其中所述编码器在网络层提供可靠性。
15.如权利要求1到3中任意一个所述的方法,其中所述分组网络是单播网络。
16.如权利要求1到3中任意一个所述的方法,其中所述分组网络是多播网络。
17.一种用于可靠地传输数据的装置,该装置包括:
接口,其被配置用于接收多个数据分组;
处理器,其被配置用于生成与所述多个数据分组相对应的差错纠正信息并提供包括所述差错纠正信息的多个差错纠正分组;
其中所述接口还被配置用于将所述多个数据分组和所述多个差错纠正分组发送到解码器,其中如果在所述解码器处有一个或多个数据分组没被接收到,所述解码器则使用差错纠正信息来重建一个或多个分组;
其中,在所述装置和所述解码器之间建立有转发差错纠正隧道,并且所生成的所述差错纠正信息的量取决于所述转发差错纠正隧道的端点之间的特定路由的丢失率。
18.如权利要求17所述的装置,其中所述多个数据分组是在生成所述差错纠正信息之前被发送的。
19.如权利要求18所述的装置,其中数据分组在被接收时被拷贝到缓冲器中并被发送。
20.一种用于在分组网络中可靠地传输数据的装置,该装置包括:
用于在编码器处接收多个数据分组的装置;
用于在所述编码器和解码器之间建立转发差错纠正隧道的装置;
用于生成与所述多个数据分组相对应的差错纠正信息的装置,所述差 错纠正信息的量取决于所述转发差错纠正隧道的端点之间的特定路由的丢失率;
用于提供包括所述差错纠正信息的多个差错纠正分组的装置;
用于将所述多个数据分组和所述多个差错纠正分组发送到所述解码器的装置,其中如果在所述解码器处有一个或多个数据分组没被接收到,所述解码器则使用所述差错纠正信息来重建一个或多个数据分组。
21.如权利要求20所述的装置,其中所述多个数据分组是在生成所述差错纠正信息之前被发送的。
22.如权利要求21所述的装置,其中数据分组在被接收时被拷贝到缓冲器中并被发送。
23.一种网络,包括:
编码器,其被配置用于提供具有已生成的与多个数据分组相对应的差错纠正信息的差错纠正分组,所述编码器还被配置用于发送所述多个数据分组和所述多个差错纠正分组到解码器;
所述解码器,其被配置用于如果所述多个数据分组中的一个或多个没被接收到,则使用所述差错纠正分组来重建所述多个数据分组中的一个或多个,
其中在所述编码器和所述解码器之间建立有转发差错纠正隧道,并且所述编码器所生成的所述差错纠正信息的量取决于所述转发差错纠正隧道的端点之间的特定路由的丢失率。
24.如权利要求23所述的网络,其中所述多个数据分组是在生成所述差错纠正信息之前被发送的。
25.一种可靠的实时数据传递系统,包括:
网络节点,其被配置用于提供具有已生成的与多个数据分组相对应的差错纠正信息的差错纠正分组,所述网络节点还被配置用于发送所述多个数据分组和所述多个差错纠正分组到接收机;
所述接收机,其被配置用于如果所述多个数据分组中的一个或多个没被接收到,则使用所述差错纠正分组来重建所述多个数据分组中的一个或多个,从而实现所述多个数据分组的实时可靠的传输,
其中在所述网络节点和所述接收机之间建立有转发差错纠正隧道,并且所述网络节点所生成的所述差错纠正信息的量取决于所述转发差错纠正隧道的端点之间的特定路由的丢失率。
26.如权利要求25所述的网络,其中所述多个数据分组是在生成所述差错纠正信息之前被发送的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/824,181 | 2004-04-13 | ||
US10/824,181 US7328393B2 (en) | 2004-04-13 | 2004-04-13 | Forward error correction in packet networks |
PCT/US2005/011799 WO2005101717A2 (en) | 2004-04-13 | 2005-04-08 | Forward error correction in packet networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101010880A CN101010880A (zh) | 2007-08-01 |
CN101010880B true CN101010880B (zh) | 2011-11-30 |
Family
ID=35061950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800119240A Expired - Fee Related CN101010880B (zh) | 2004-04-13 | 2005-04-08 | 可靠地传输数据的方法、装置和网络以及实时数据传递系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7328393B2 (zh) |
EP (1) | EP1741221B1 (zh) |
CN (1) | CN101010880B (zh) |
WO (1) | WO2005101717A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0516632A (pt) * | 2004-12-02 | 2008-09-16 | Thomson Licensing | correção de erros antecipada e adaptativa |
JP4573663B2 (ja) * | 2005-02-16 | 2010-11-04 | 富士通株式会社 | データ中継装置、データ中継方法、データ送受信装置およびデータ通信システム |
WO2007079280A2 (en) * | 2005-11-08 | 2007-07-12 | Nortel Networks Limited | Selective multicasting of sensor data for reliable delivery |
US8867340B2 (en) * | 2005-12-21 | 2014-10-21 | Alcatel Lucent | Discarded packet indicator |
CN1992583A (zh) * | 2005-12-29 | 2007-07-04 | 朗迅科技公司 | 用于使用二进制奇偶校验来重建丢失分组的方法 |
JP4724613B2 (ja) * | 2006-07-04 | 2011-07-13 | 富士通株式会社 | 通信装置、通信制御プログラム及び通信制御方法 |
JP4250654B2 (ja) * | 2006-11-17 | 2009-04-08 | 株式会社東芝 | 通信装置、通信方法および通信プログラム |
US7940777B2 (en) * | 2008-02-26 | 2011-05-10 | Cisco Technology, Inc. | Loss-free packet networks |
US20100023842A1 (en) * | 2008-07-25 | 2010-01-28 | Nortel Networks Limited | Multisegment loss protection |
US8385338B2 (en) * | 2009-04-24 | 2013-02-26 | Futurewei Technologies, Inc. | Implementation to avoid the acknowledgement-implosion in a multicast group |
CN101902315B (zh) * | 2009-06-01 | 2013-04-17 | 华为技术有限公司 | 基于前向纠错的重传方法、设备和通信系统 |
CN102065472B (zh) * | 2010-12-09 | 2013-02-06 | 重庆邮电大学 | 基于跨层设计的确定无线网络编码参与分组的方法 |
US8707141B1 (en) | 2011-08-02 | 2014-04-22 | Cisco Technology, Inc. | Joint optimization of packetization and error correction for video communication |
EP2777219B1 (en) * | 2011-11-09 | 2016-08-17 | Nec Corporation | Method and system for supporting transport of data packets in a network |
US9391878B2 (en) | 2012-01-25 | 2016-07-12 | Cisco Technology, Inc. | Reliable packet delivery with overlay network (RPDON) |
US20130275837A1 (en) * | 2012-04-13 | 2013-10-17 | Real Time Logic, Inc. | Packet forward error correction |
US9438483B2 (en) | 2012-10-15 | 2016-09-06 | At&T Intellectual Property I, L.P. | System and method of implementing quality of service over a packet-based Network |
US9722943B2 (en) * | 2012-12-17 | 2017-08-01 | Qualcomm Incorporated | Seamless switching for multihop hybrid networks |
US9560172B2 (en) * | 2013-05-06 | 2017-01-31 | Alcatel Lucent | Stateless recognition of keep-alive packets |
EP3065412B1 (en) | 2013-10-31 | 2020-08-05 | Panasonic Intellectual Property Corporation of America | Content transmission method and content playback method |
US9661657B2 (en) * | 2013-11-27 | 2017-05-23 | Intel Corporation | TCP traffic adaptation in wireless systems |
US10944636B2 (en) * | 2016-09-28 | 2021-03-09 | Mcafee, Llc | Dynamically identifying criticality of services and data sources |
US11483009B2 (en) * | 2019-05-08 | 2022-10-25 | Intel Corporation | Self-checking compression |
JP2022546102A (ja) * | 2019-09-10 | 2022-11-02 | 華為技術有限公司 | パケット処理方法および装置、ならびにチップ |
US11606264B2 (en) * | 2021-03-24 | 2023-03-14 | Cisco Technology, Inc. | Application of network layer FEC during predicted network events |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061650A (en) * | 1996-09-10 | 2000-05-09 | Nortel Networks Corporation | Method and apparatus for transparently providing mobile network functionality |
US6243846B1 (en) * | 1997-12-12 | 2001-06-05 | 3Com Corporation | Forward error correction system for packet based data and real time media, using cross-wise parity calculation |
CN1360796A (zh) * | 1999-07-09 | 2002-07-24 | 艾利森电话股份有限公司 | 面向分组的信息网络中具有实时需求的压缩信息的传输 |
CN1482779A (zh) * | 2002-09-13 | 2004-03-17 | 北京威速科技有限公司 | 互联网多媒体实时通信中的前向纠错方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU665716B2 (en) * | 1993-07-05 | 1996-01-11 | Mitsubishi Denki Kabushiki Kaisha | A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame |
US5432787A (en) * | 1994-03-24 | 1995-07-11 | Loral Aerospace Corporation | Packet data transmission system with adaptive data recovery method |
EP0823153A4 (en) * | 1995-04-27 | 1999-10-20 | Stevens Inst Technology | HIGH INTEGRITY TRANSPORT METHOD FOR TIME-CRITICAL MULTIMEDIA NETWORK APPLICATIONS |
US6765904B1 (en) * | 1999-08-10 | 2004-07-20 | Texas Instruments Incorporated | Packet networks |
US6151628A (en) * | 1997-07-03 | 2000-11-21 | 3Com Corporation | Network access methods, including direct wireless to internet access |
US6445717B1 (en) * | 1998-05-01 | 2002-09-03 | Niwot Networks, Inc. | System for recovering lost information in a data stream |
JP2000078197A (ja) * | 1998-09-03 | 2000-03-14 | Toshiba Corp | 通信ノード及びパケット転送方法 |
US6771674B1 (en) * | 1998-12-28 | 2004-08-03 | 3Com Corporation | Method and system for forward error correction based on parallel streams |
US6748441B1 (en) * | 1999-12-02 | 2004-06-08 | Microsoft Corporation | Data carousel receiving and caching |
US6732314B1 (en) * | 2000-05-26 | 2004-05-04 | 3Com Corporation | Method and apparatus for L2TP forward error correction |
US7151754B1 (en) * | 2000-09-22 | 2006-12-19 | Lucent Technologies Inc. | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding |
US7095729B2 (en) | 2000-12-22 | 2006-08-22 | Intel Corporation | Method for multimedia communication over packet channels |
US6601208B2 (en) * | 2001-04-17 | 2003-07-29 | William W. Wu | Forward error correction techniques |
US20030045308A1 (en) * | 2001-08-30 | 2003-03-06 | Ikhlaq Sidhu | Wireless data access infrastructure based upon an open platform |
KR100458878B1 (ko) * | 2002-05-03 | 2004-12-03 | 학교법인 경희대학교 | Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법 |
US6851084B2 (en) * | 2002-06-10 | 2005-02-01 | Harris Corporation | Forward error correction method and system for reliable transmission of real time data over a packet based network |
WO2004036760A1 (en) * | 2002-10-15 | 2004-04-29 | Koninklijke Philips Electronics N.V. | System and method for providing error recovery for streaming fgs encoded video over an ip network |
WO2005046125A1 (en) * | 2003-10-28 | 2005-05-19 | Docomo Communications Laboratories Usa, Inc. | Method for supporting scalable and reliable multicast in tdma/tdd systems using feedback suppression techniques |
JP4328602B2 (ja) * | 2003-11-20 | 2009-09-09 | 富士通株式会社 | パケットエラー訂正装置及び方法 |
-
2004
- 2004-04-13 US US10/824,181 patent/US7328393B2/en active Active
-
2005
- 2005-04-08 CN CN2005800119240A patent/CN101010880B/zh not_active Expired - Fee Related
- 2005-04-08 WO PCT/US2005/011799 patent/WO2005101717A2/en active Application Filing
- 2005-04-08 EP EP05734360.0A patent/EP1741221B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061650A (en) * | 1996-09-10 | 2000-05-09 | Nortel Networks Corporation | Method and apparatus for transparently providing mobile network functionality |
US6243846B1 (en) * | 1997-12-12 | 2001-06-05 | 3Com Corporation | Forward error correction system for packet based data and real time media, using cross-wise parity calculation |
CN1360796A (zh) * | 1999-07-09 | 2002-07-24 | 艾利森电话股份有限公司 | 面向分组的信息网络中具有实时需求的压缩信息的传输 |
CN1482779A (zh) * | 2002-09-13 | 2004-03-17 | 北京威速科技有限公司 | 互联网多媒体实时通信中的前向纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
US7328393B2 (en) | 2008-02-05 |
CN101010880A (zh) | 2007-08-01 |
WO2005101717A3 (en) | 2006-10-26 |
EP1741221B1 (en) | 2017-12-13 |
WO2005101717A2 (en) | 2005-10-27 |
EP1741221A4 (en) | 2011-05-04 |
US20050229074A1 (en) | 2005-10-13 |
EP1741221A2 (en) | 2007-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101010880B (zh) | 可靠地传输数据的方法、装置和网络以及实时数据传递系统 | |
EP2528289B1 (en) | System and method for achieving accelerated throughput | |
JP4564228B2 (ja) | ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法 | |
US10419329B2 (en) | Switch-based reliable multicast service | |
US6625773B1 (en) | System for multicast communications in packet switched networks | |
US6934257B2 (en) | Transferring transmission control protocol packets | |
CN102299899B (zh) | 一种恶劣信道下的tcp加速方法 | |
CN101444032B (zh) | 用于高速数据处理的重发装置和方法 | |
WO2003013067A1 (en) | Forward error correction system and method for packet based communication systems | |
CN101494585B (zh) | 一种实现通用路由封装隧道可靠传输的方法及设备 | |
US7305605B2 (en) | Storage system | |
US7116634B1 (en) | TCP sequence number recovery in a redundant forwarding system | |
EP0494037A2 (en) | Early frame release in modified HDLC protocol | |
CN108183767A (zh) | 一种适用于空间dtn网络的可靠传输方法 | |
US7100078B1 (en) | Method and apparatus for restoration of lost blocks in a multicast data transmission | |
CN113612737A (zh) | 一种基于分组与重传机制的长报文可靠传输方法 | |
ES2301868T3 (es) | Tecnica para manejar unidades de informacion obsoletas. | |
Saha et al. | StorageFlow: SDN-enabled efficient data regeneration for distributed storage systems | |
Krimchansky et al. | The Geostationary Operational Satellite R Series SpaceWire Based Data System Architecture | |
Watson | Chapter 7. IPC interface and end-to-end (transport) protocol design issues | |
Hiles et al. | A systematic method for the selection of a transport level protocol | |
Melvin et al. | Network and erasure coding for improved packet delivery | |
KR20020038376A (ko) | 전송속도 향상된 슬라이딩 윈도우 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111130 Termination date: 20210408 |