WO1998020647A1 - Method and apparatus to translate data streams among multiple parties - Google Patents

Method and apparatus to translate data streams among multiple parties Download PDF

Info

Publication number
WO1998020647A1
WO1998020647A1 PCT/US1997/020449 US9720449W WO9820647A1 WO 1998020647 A1 WO1998020647 A1 WO 1998020647A1 US 9720449 W US9720449 W US 9720449W WO 9820647 A1 WO9820647 A1 WO 9820647A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
group
data structure
routing
packets
Prior art date
Application number
PCT/US1997/020449
Other languages
French (fr)
Inventor
Imran Chaudhri
Srini Wishnu Seetharam
Original Assignee
Integrated Telecom Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Integrated Telecom Technology filed Critical Integrated Telecom Technology
Priority to CA002278447A priority Critical patent/CA2278447A1/en
Publication of WO1998020647A1 publication Critical patent/WO1998020647A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1836Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Definitions

  • the present invention relates to electronic circuits and to digital communication. More particularly, the present invention relates to an advanced method for handling data units (packets) within a communication device by efficiently
  • the present invention has a number of applications in advanced telecommunication systems and networks .
  • One envisioned application of the invention is in a state-of-the-
  • 35 art router for handling data packets in multiparty communications. These data packets may be constructed according to a number of well-known packet transmission protocols in a layered protocol suite. Routers are packet switching devices characterized by their ability to perform intelligent routing of packets on a per-packet basis. Routers generally can handle packets or frames of data formatted according to a number of different protocols.
  • a layer three switch is a type of router that performs layer three routing of packets largely or exclusively using dedicated logic circuitry.
  • data is transmitted among network devices and processed within devices as a series of independent packets, each packet containing at least one header having at least a destination address specifying an ultimate destination and generally also having a source address. Headers may also include other handling information such as an indication of the different protocols used to format a packet, a transmission priority, etc.
  • Fig. 1 depicts an example of a packet as it may be transmitted on a network.
  • the example shown is essentially an Ethernet packet, having an Ethernet header 202 and a 48-bit Ethernet address (such as 00: 85 : 8C: 13 : AA) 204, and an Ethernet trailer 230.
  • an IP packet represented by IP header 212, containing a 32 bit IP address 214 (such as 199.22.120.33).
  • Packet 200 contains a data payload 220 which holds the data the user is interested in receiving or holds a control message used for configuring the network.
  • IP header 212 containing a 32 bit IP address 214 (such as 199.22.120.33).
  • Packet 200 contains a data payload 220 which holds the data the user is interested in receiving or holds a control message used for configuring the network.
  • Many other types and configurations of packets are presently known in the networking art and it is assumed that additional packet protocols will be developed in the future.
  • a number of the networking standards referenced above provide a mechanism for a source in LAN or WAN to transmit a packet to all the nodes in the network. This situation may be referred to as a multipoint to multipoint communication .
  • a multipoint to multipoint communication is one where multiple calling parties are communicating with multiple called parties (e.g., a party line, or a conference call).
  • a packet generated by any one party must be (possibly duplicated) and sent to all the other parties so that they can all participate in the conversation. This is known as a multicast operation.
  • the party that generated the packet must also receive the packet it generated. This gives that party an indication that the packet it generated was multicast to all the parties in the communication. Within the same communication, it is also the case that certain parties may need this "echo" back to the generator of the packet, while other parties do not.
  • each of the parties in the communication may be located on different types of networks.
  • the encapsulation of the packet is based on the network that is carrying it. For example, if the packet was generated on network type A, then it consists of a message section M and the encapsulation A (A:M) . If the message must be transported to two different networks B and C, then the packet on those networks will be in the format B:M and C:M, respectively. In addition, the original packet A:M may be sent back to the party on network A.
  • translations between protocols are accomplished individually within a network device.
  • a prior art network device will typically store three data structures, each having two substructures.
  • a data structure will be defined for each possible transmitter, A, B, and C, and a substructure will be defined for each translation, such as A->B, A->C, B->A, B->C, C->A, C->B.
  • Adding a new party to the conversation, such as D in such a prior art system will require adding a new data structure with three substructures, D->A, D->B, D->C, and also adding substructures to each of the existing transmitters A->D, B->D, C->D.
  • the present invention comprises techniques and devices for an improved handling of unitized or packetized data in a multipoint or similar transmission environment. More specific applications of the invention include handling of multicast packet data in a network device such as a router or layer three switch.
  • a multicast group G is defined. This group consists of all the parties that are participating in the communication. As parties join the communication, they are allowed to join G and each party can leave G when it desires.
  • the representation of G is a circular linked list. Each party has one entry in the linked list, therefore the entire structure has N substructures for N participants. This provides a number of advantages over prior art systems that typically require N 2 substructures for N participants. Each entry has five fields. The first field indicates the amount of encapsulation that must be removed from the incoming packet to extract the message M. Note that this is different for each party because each one exists on a different type of network.
  • the second field indicates the amount and content of encapsulation that must be added to the message M in order to create a packet for that type of network.
  • the third field indicates the amount and content of encapsulation that must be added to the message M in order to create a packet for that type of network.
  • the third field is the "echo" bit that indicates if the packet must be sent back to the originator of the message.
  • the fourth field is the pointer to the next entry of the group G.
  • the fifth field indicates the destination address of the packet.
  • the routine used to move through the circular linked-list and to translate data packets is performed by dedicated hardware logic, thereby allowing fast searching.
  • the search is performed using a data structure stored in modifiable memory locations or registers. Thus, fast but flexible searching on packets may be performed.
  • FIG. 1 is a diagram of a packet as an example of a type of data unit upon which the invention may be effectively employed.
  • FIG. 2 is a diagram illustrating a layered network protocol.
  • FIG. 3 is a flow chart illustrating a method of the invention.
  • FIG. 4 is a block diagram of a network device incorporating aspects of the invention.
  • FIG. 5 illustrates an example circular linked-list data structure within a memory according to the invention.
  • FIG. 6 is a block diagram of a search engine and memory according to a specific embodiment of the invention.
  • FIG. 7 is a block diagram of an alternative network device incorporating aspects of the invention
  • FIG. 8 is a diagram of a network according to one embodiment of the invention.
  • FIG. 3 is a flow chart showing a multicast routing search operation according to one embodiment of the present invention
  • FIG. 4 is a block diagram of a network device (or element) 100 according to a specific embodiment of the invention.
  • a multicast engine 104 looks up the data structure for the group address of the packet, indexed by the source address of the packet (Step S2) .
  • the data structure indicates whether the packet needs to be echoed, and the packet is eventually echoed if so indicated by the data structure (possibly without stripping the heading from the packet) either before, during, or after other forwarding of the packet (Step S3) .
  • the engine reads the data structure to determine what operation must be performed on the incoming packet to translate the packet to a shared group format M, which will generally be the message portion of the packet (Step S4) , and then performs that translation (Step S5) .
  • the engine looks in a pointer in the data structure to fetch the next data structure in the circular list (Step S6) .
  • This data structure specifies what must be added to M to get a packet of the appropriate format for that destination (Step S7) .
  • the engine performs the operation and forwards the packet (Step S7) , and then moves to the next data structure (Step S8) . Processing is repeated for each retrieved data structure until the data structure that the packet started with (Step S9) is reached.
  • this single multicast group data structure is all the information storage that is required to implement multipoint to multipoint on multiprotocol networks.
  • the packet originates on network A.
  • the multicast processor recognizes this and identifies the multicast group G.
  • the processor remembers the origin of the packet was on network A.
  • the processor then strips off the encapsulation of A and saves the shared format portion.
  • the processor traverses down the linked list to the entry for B. It creates the encapsulation for B using the second field in the entry. It then proceeds down the linked list to the entry for C. The encapsulation for C is created using the second field in this entry.
  • the processor traverses the link to the entry for A. The processor knows that this is the origin of the packet. If the echo bit is set, then the processor creates an encapsulation for A and it then stops traversing the linked list. If the echo bit is not set, the process stops traversing the list without creating a packet to be sent back to the origin on network A. Once all the required packets (encapsulating plus message) are ready, they are sent to the destinations as indicated in the fifth field of the entry.
  • This single group G handles packets originating from all parties participating in the multipoint to multipoint communication.
  • FIG. 6 shows a more detailed block diagram of routing engine 104 and memory 110 according to various specific embodiments of the invention.
  • engine 104 including registers or similar memory locations for storing translation parameters such as header removal field 117a, header addition field 117b, echo flag 117c, pointer 117d, and destination address 117e.
  • Engine 104 also includes a mechanism for storing an extracted message (M) 112 and a translated packet 116.
  • M extracted message
  • these registers are the alterable parameters of engine 104 which will otherwise perform its function using fast dedicated custom logic circuits. These alterable registers may be set up to default values by a management program.
  • engine 104 is able to very quickly translate and then route a data packet according to the values specified in the registers 117a-e.
  • the invention provides a number of benefits in high performance network devices or in computer systems handling similar data.
  • individual transmitters or receivers may be trivially added or dropped from the group.
  • a new transmitter or receiver is simply added to the circular list by creating a single data structure for that transmitter or receiver, and then changing just one pointer in the existing circular list while copying the previously chained pointer into it's own pointer field.
  • the format of the shared format M can be adjusted for different groups depending on whether the group members all have a common protocol or all reside on a subpart of the LAN, potentially simplifying processing.
  • the invention also allows for distributed and parallel processing of multiple incoming packets by using multiple engines, each referring to the same linked list, an example of which is shown in FIG. 7.
  • one implementation of the invention will allow for designing of dedicated fast logic circuitry to perform the translation of packets according to the data stored in the linked list, allowing the actual configuration of translation to be programmably configurable through setting data in the multipoint group data structure.
  • the invention may be incorporated into a wide area network (WAN) or local area network (LAN) as shown in FIG. 8 to allow efficient handling of group traffic.
  • FIG. 8 shows the invention as embodied in a network with a WAN backbone 300 and LANS 310a-c.
  • LAN 310s may be connected to the WAN backbone by a local router 304.

Abstract

Multiparty communications are handled in a digital device according to a data structure where a formatted packet from a particular transmitter is translated into a shared format M which is then retranslated to various destinations. Handling of group address packets can be accomplished with customized circuitry. Flexibility is achieved by allowing parameters of the routing routine to be specified in memory which can be programmably altered. In a specific embodiment, the representation of a group is a circular linked list. Each party has one entry in the linked list, therefore the entire structure has N substructures for N participants.

Description

METHOD AND APPARATUS TO TRANSLATE DATA STREAMS
AMONG MULTIPLE PARTIES
5
This application claims priority from provisional patent application 60/030,728 filed 11/8/96, which is incorporated herein by reference. Related background information is discussed in related coassigned patent 0 application serial number 08/ ^j ] ^ I °} , filed September 15,
1997, entitled METHOD AND APPARATUS TO IDENTIFY FLOWS IN DATA
STREAMS, which is incorporated herein by reference and which was filed with a microfiche appendix of 169 frames on two sheets comprising a preliminary user manual and programming 5 information for an apparatus related to the invention. This appendix is also incorporated by reference.
A portion of the disclosure of this patent document contains material which is subject to copyright protection.
The copyright owner has no objection to the facsimile 0 reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
25. BACKGROUND OF THE INVENTION
The present invention relates to electronic circuits and to digital communication. More particularly, the present invention relates to an advanced method for handling data units (packets) within a communication device by efficiently
30 translating data units to different formats among multiple parties using a simplified and efficient method.
The present invention has a number of applications in advanced telecommunication systems and networks . One envisioned application of the invention is in a state-of-the-
35 art router (or layer three switch) for handling data packets in multiparty communications. These data packets may be constructed according to a number of well-known packet transmission protocols in a layered protocol suite. Routers are packet switching devices characterized by their ability to perform intelligent routing of packets on a per-packet basis. Routers generally can handle packets or frames of data formatted according to a number of different protocols. A layer three switch is a type of router that performs layer three routing of packets largely or exclusively using dedicated logic circuitry.
Other applications of the invention include fast processing of any kind of discreet data unit streams quickly into multiple formats. Explanation of both the prior art and the invention will be better understood with reference to specific examples, however this should not be taken to limit the invention to the particular examples described. The invention is generalizable to other similar types of communication devices or to other computing devices handling data in ways that are analogous to data handling in modern networks. The invention should therefore not be limited except as provided in the attached claims.
Networking Devices Standards
This specification presumes familiarity with the general concepts, protocols, and devices currently used in LAN networking and WAN internetworking applications as discussed in the above referenced applications.
Packets
In the most common LANs and WANs in use today, data is transmitted among network devices and processed within devices as a series of independent packets, each packet containing at least one header having at least a destination address specifying an ultimate destination and generally also having a source address. Headers may also include other handling information such as an indication of the different protocols used to format a packet, a transmission priority, etc.
Fig. 1 depicts an example of a packet as it may be transmitted on a network. The example shown is essentially an Ethernet packet, having an Ethernet header 202 and a 48-bit Ethernet address (such as 00: 85 : 8C: 13 : AA) 204, and an Ethernet trailer 230. Within the Ethernet packet 200 is contained, or encapsulated, an IP packet, represented by IP header 212, containing a 32 bit IP address 214 (such as 199.22.120.33). Packet 200 contains a data payload 220 which holds the data the user is interested in receiving or holds a control message used for configuring the network. Many other types and configurations of packets are presently known in the networking art and it is assumed that additional packet protocols will be developed in the future.
Multiple-Destination Data Units
A number of the networking standards referenced above provide a mechanism for a source in LAN or WAN to transmit a packet to all the nodes in the network. This situation may be referred to as a multipoint to multipoint communication .
A multipoint to multipoint communication is one where multiple calling parties are communicating with multiple called parties (e.g., a party line, or a conference call). In a packet-based communication system, a packet generated by any one party must be (possibly duplicated) and sent to all the other parties so that they can all participate in the conversation. This is known as a multicast operation. In some cases, the party that generated the packet must also receive the packet it generated. This gives that party an indication that the packet it generated was multicast to all the parties in the communication. Within the same communication, it is also the case that certain parties may need this "echo" back to the generator of the packet, while other parties do not.
In a multiprotocol environment, each of the parties in the communication may be located on different types of networks. Where the eventual message content of each packet must be identical, the encapsulation of the packet is based on the network that is carrying it. For example, if the packet was generated on network type A, then it consists of a message section M and the encapsulation A (A:M) . If the message must be transported to two different networks B and C, then the packet on those networks will be in the format B:M and C:M, respectively. In addition, the original packet A:M may be sent back to the party on network A. In prior art systems, translations between protocols are accomplished individually within a network device. For example, in a multipoint conversation between A, B, and C, each communicating over a different protocol, a prior art network device will typically store three data structures, each having two substructures. A data structure will be defined for each possible transmitter, A, B, and C, and a substructure will be defined for each translation, such as A->B, A->C, B->A, B->C, C->A, C->B. Adding a new party to the conversation, such as D, in such a prior art system will require adding a new data structure with three substructures, D->A, D->B, D->C, and also adding substructures to each of the existing transmitters A->D, B->D, C->D. In general, in these prior art systems, a multiparty conversation between N nodes requires N2 data substructures for routing. This somewhat cumbersome system is necessary because prior art network devices generally handle routing all packets by first looking up a data structure for the transmitter of the packet and then processing the packet according to just that particular data structure. What is needed is a mechanism that would allow a high performance communication device to quickly perform multipoint routing, possibly in hardware, while allowing the operation of the routing function and multicast group assignment to be specified and configured programmably so that it can be easily changed and can flexibly respond to different translation requirements of different network protocols.
SUMMARY OF THE INVENTION In general terms, the present invention comprises techniques and devices for an improved handling of unitized or packetized data in a multipoint or similar transmission environment. More specific applications of the invention include handling of multicast packet data in a network device such as a router or layer three switch.
According to the present invention, a multicast group G is defined. This group consists of all the parties that are participating in the communication. As parties join the communication, they are allowed to join G and each party can leave G when it desires. In a specific embodiment, the representation of G is a circular linked list. Each party has one entry in the linked list, therefore the entire structure has N substructures for N participants. This provides a number of advantages over prior art systems that typically require N2 substructures for N participants. Each entry has five fields. The first field indicates the amount of encapsulation that must be removed from the incoming packet to extract the message M. Note that this is different for each party because each one exists on a different type of network. The second field indicates the amount and content of encapsulation that must be added to the message M in order to create a packet for that type of network. The third field indicates the amount and content of encapsulation that must be added to the message M in order to create a packet for that type of network. The third field is the "echo" bit that indicates if the packet must be sent back to the originator of the message. The fourth field is the pointer to the next entry of the group G. The fifth field indicates the destination address of the packet.
In a specific embodiment, the routine used to move through the circular linked-list and to translate data packets is performed by dedicated hardware logic, thereby allowing fast searching. However, the search is performed using a data structure stored in modifiable memory locations or registers. Thus, fast but flexible searching on packets may be performed.
The invention also comprises a network operating with devices having multipoint processing as described herein. Additional aspects of the invention will be better understood upon reference to the following description of specific embodiments and the attached claims. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram of a packet as an example of a type of data unit upon which the invention may be effectively employed. FIG. 2 is a diagram illustrating a layered network protocol.
FIG. 3 is a flow chart illustrating a method of the invention.
FIG. 4 is a block diagram of a network device incorporating aspects of the invention.
FIG. 5 illustrates an example circular linked-list data structure within a memory according to the invention. FIG. 6 is a block diagram of a search engine and memory according to a specific embodiment of the invention. FIG. 7 is a block diagram of an alternative network device incorporating aspects of the invention
FIG. 8 is a diagram of a network according to one embodiment of the invention.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
Multicast Routing Operation
FIG. 3 is a flow chart showing a multicast routing search operation according to one embodiment of the present invention and FIG. 4 is a block diagram of a network device (or element) 100 according to a specific embodiment of the invention.
When a packet 101 comes in on a port (Step SI) , a multicast engine 104 looks up the data structure for the group address of the packet, indexed by the source address of the packet (Step S2) . The data structure indicates whether the packet needs to be echoed, and the packet is eventually echoed if so indicated by the data structure (possibly without stripping the heading from the packet) either before, during, or after other forwarding of the packet (Step S3) . The engine reads the data structure to determine what operation must be performed on the incoming packet to translate the packet to a shared group format M, which will generally be the message portion of the packet (Step S4) , and then performs that translation (Step S5) . The engine looks in a pointer in the data structure to fetch the next data structure in the circular list (Step S6) . This data structure specifies what must be added to M to get a packet of the appropriate format for that destination (Step S7) . The engine performs the operation and forwards the packet (Step S7) , and then moves to the next data structure (Step S8) . Processing is repeated for each retrieved data structure until the data structure that the packet started with (Step S9) is reached.
One specific example of a data structure for storing information about each member of a multicast group is shown in FIG. 5. As shown in the figure, the example data structure includes a first translation parameter for removing the A header to get M, a second translation parameter for adding an A header to M, an echo bit, a pointer to a next data structure in the circular list, and a destination address for A. According to an embodiment of the invention, this single multicast group data structure is all the information storage that is required to implement multipoint to multipoint on multiprotocol networks. Using the example of three networks A, B, and C, the packet originates on network A. The multicast processor recognizes this and identifies the multicast group G. The processor remembers the origin of the packet was on network A. The processor then strips off the encapsulation of A and saves the shared format portion. The processor traverses down the linked list to the entry for B. It creates the encapsulation for B using the second field in the entry. It then proceeds down the linked list to the entry for C. The encapsulation for C is created using the second field in this entry. The processor traverses the link to the entry for A. The processor knows that this is the origin of the packet. If the echo bit is set, then the processor creates an encapsulation for A and it then stops traversing the linked list. If the echo bit is not set, the process stops traversing the list without creating a packet to be sent back to the origin on network A. Once all the required packets (encapsulating plus message) are ready, they are sent to the destinations as indicated in the fifth field of the entry. This single group G handles packets originating from all parties participating in the multipoint to multipoint communication.
FIG. 6 shows a more detailed block diagram of routing engine 104 and memory 110 according to various specific embodiments of the invention. In this embodiment is depicted engine 104 including registers or similar memory locations for storing translation parameters such as header removal field 117a, header addition field 117b, echo flag 117c, pointer 117d, and destination address 117e. Engine 104 also includes a mechanism for storing an extracted message (M) 112 and a translated packet 116. According to one embodiment of the invention, these registers are the alterable parameters of engine 104 which will otherwise perform its function using fast dedicated custom logic circuits. These alterable registers may be set up to default values by a management program. According to the invention, engine 104 is able to very quickly translate and then route a data packet according to the values specified in the registers 117a-e.
While memory locations are shown within engine 104 for sake of illustration of an embodiment, it will be understood that these alterable values may be stored in any type of memory to which engine 104 has fast access, including in a portion of system memory 110.
Other Characteristics
The invention, in various embodiments, provides a number of benefits in high performance network devices or in computer systems handling similar data. According to the circular list of the invention, individual transmitters or receivers may be trivially added or dropped from the group. A new transmitter or receiver is simply added to the circular list by creating a single data structure for that transmitter or receiver, and then changing just one pointer in the existing circular list while copying the previously chained pointer into it's own pointer field. According to another aspect of the invention, the format of the shared format M can be adjusted for different groups depending on whether the group members all have a common protocol or all reside on a subpart of the LAN, potentially simplifying processing. The invention also allows for distributed and parallel processing of multiple incoming packets by using multiple engines, each referring to the same linked list, an example of which is shown in FIG. 7.
It will also be apparent from the invention within the context of the prior art, that one implementation of the invention will allow for designing of dedicated fast logic circuitry to perform the translation of packets according to the data stored in the linked list, allowing the actual configuration of translation to be programmably configurable through setting data in the multipoint group data structure.
In one embodiment, the invention may be incorporated into a wide area network (WAN) or local area network (LAN) as shown in FIG. 8 to allow efficient handling of group traffic. FIG. 8 shows the invention as embodied in a network with a WAN backbone 300 and LANS 310a-c. LAN 310s may be connected to the WAN backbone by a local router 304.
The invention has now been explained in accordance with specific embodiments, however many variations will be obvious to those of skill in the art. In particular, the memory and data structure may be organized differently so long the general translation and linked-list method described herein may be performed. Also, the block diagram of FIG. 4 and the description organize and group functional blocks in a particular way to provide a clear example. However, other organizations are possible. These enumerated examples are not exhaustive of possible alternative embodiments of the invention. The invention should therefore not be limited except as provided in the attached claims.

Claims

WHAT IS CLAIMED IS:
1. A method of routing data units in a digital device to multiple destinations comprising: receiving a data unit from a source addressed to a group; retrieving a data structure for said source to said group, said data structure containing translation instructions to a shared message component and a pointer to a next data structure in a linked list; translating said data unit to a shared message component according to said translation instructions; retrieving a second data structure according to said pointer, said data structure containing translation instructions from a shared message component and a pointer to a next data structure; and translating said data unit from a shared message component according to said translation instructions.
2. The method according to claim 1 wherein said translating is performed by dedicated logic circuits.
3. The method according to claim 1 wherein parameters used in said translation are stored in memory and may be configured by operating system software of said digital device.
4. The method according to claim 1 further comprising repeatedly performing said second retrieving and translating steps until a pointer to the initial data structure is retrieved.
5. The method according to claim 1 wherein said translation may be performed by a plurality of translation engines in parallel such that a plurality of data units may be processed in parallel.
6. The method according to claim 1 wherein said translation is performed on data units consisting of encapsulated packets.
7. The method according to claim 1 wherein an incoming data unit is processed into a shared message component by: removing header information from said data unit according to a rule stored in a register; storing a resultant shared message component.
8. The method according to claim 1 wherein a substructure is created for each node added to a group of multiple destinations, such that the total number of data substructures for N nodes is of the order N.
9. A method of building a data structure for routing data units to multiple destinations comprising: receiving a request from a node P to join a group G; creating a substructure for said node P defining translation rules between said node P and a group message M; and attaching said substructure to a linked list for said group G; such that a group G consisting of N nodes comprises order N data substructures.
10. A method for processing packets having multiple destinations comprising: setting up parameters in modifiable registers for translating incoming packets into a single shared format and for retranslating outgoing packets into different formats for different destinations; and using dedicated logic circuits to apply said parameters to said packets to route packets to multiple destinations.
11. A network device for routing data units comprising: an input for receiving a data unit directed to a group; a search memory for storing a data structure for said group; a search engine for performing a search for a group data structure; and a packet processing routing unit for routing packets .
12. The device according to claim 11 wherein said data structure is stored in said memory as a linked list of entries, one entry for each destination belonging to a group.
13. A network for communicating data comprising: a plurality of network devices capable of routing network data units between sources and destinations; at least one network device comprising: an input for receiving a data unit directed to a group; a search engine for performing a search for a group data structure; a search memory for storing a data structure for said group; and a packet processing routing unit for routing packets.
14. A network according to claim 13 further comprising: at least one network device capable of detecting a flow identification on an incoming data unit and routing said data unit according to said flow identification.
15. A network according to claim 14 further comprising: at least one network device capable of adding a flow identification to an outgoing data unit.
PCT/US1997/020449 1996-11-08 1997-11-07 Method and apparatus to translate data streams among multiple parties WO1998020647A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002278447A CA2278447A1 (en) 1996-11-08 1997-11-07 Method and apparatus to translate data streams among multiple parties

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3072896P 1996-11-08 1996-11-08
US60/030,728 1996-11-08
US93712997A 1997-09-24 1997-09-24
US08/937,129 1997-09-24

Publications (1)

Publication Number Publication Date
WO1998020647A1 true WO1998020647A1 (en) 1998-05-14

Family

ID=26706400

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/020449 WO1998020647A1 (en) 1996-11-08 1997-11-07 Method and apparatus to translate data streams among multiple parties

Country Status (2)

Country Link
CA (1) CA2278447A1 (en)
WO (1) WO1998020647A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001001257A2 (en) * 1999-06-28 2001-01-04 Sangate Systems Inc. Intelligent splitter, system, and methods of use
GB2354913A (en) * 1999-09-28 2001-04-04 Ibm Information broker with dedicated processing of messages from different publishers
EP1109417A1 (en) * 1999-12-17 2001-06-20 Nortel Networks Limited System and method for unifying the implementation and processing mobile communications and a unified mobility manager for providing such communications
WO2003030461A1 (en) * 2001-09-28 2003-04-10 Intel Corporation Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
WO2003055169A1 (en) * 2001-12-12 2003-07-03 Grundig Aktiengesellschaft System for transmitting a data steam over a network to receivers that support different network protocols
US6735636B1 (en) * 1999-06-28 2004-05-11 Sepaton, Inc. Device, system, and method of intelligently splitting information in an I/O system
US6782401B2 (en) 2001-07-02 2004-08-24 Sepaton, Inc. Method and apparatus for implementing a reliable open file system
EP1280306A3 (en) * 2001-07-23 2004-11-24 Primary Network, Inc. d/b/a Acme Packet, Inc. Rapid rerouting of multimedia flows
US7376731B2 (en) 2002-01-29 2008-05-20 Acme Packet, Inc. System and method for providing statistics gathering within a packet network
US7536546B2 (en) 2001-08-28 2009-05-19 Acme Packet, Inc. System and method for providing encryption for rerouting of real time multi-media flows
US7764679B2 (en) 2001-07-23 2010-07-27 Acme Packet, Inc. System and method for determining flow quality statistics for real-time transport protocol data flows
US9128818B2 (en) 1999-12-27 2015-09-08 Intel Corporation Memory mapping in a processor having multiple programmable units

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0598969A1 (en) * 1992-11-27 1994-06-01 International Business Machines Corporation Inter-domain multicast routing
EP0666670A2 (en) * 1993-12-30 1995-08-09 International Business Machines Corporation General transport layer gateway for heterogeneous networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0598969A1 (en) * 1992-11-27 1994-06-01 International Business Machines Corporation Inter-domain multicast routing
EP0666670A2 (en) * 1993-12-30 1995-08-09 International Business Machines Corporation General transport layer gateway for heterogeneous networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"UNIVERSAL PROTOCOL CONVERSION", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 38, no. 12, 1 December 1995 (1995-12-01), pages 323/324, XP000588157 *
NGOH L H ET AL: "MULTICAST COMMUNICATION FACILITIES FOR DISTRIBUTED MULTIMEDIA INFORMATION SYSTEMS", SECOND IEE NATIONAL CONFERENCE ON TELECOMMUNICATIONS, 2 April 1989 (1989-04-02), UK, pages 271 - 276, XP000130145 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735636B1 (en) * 1999-06-28 2004-05-11 Sepaton, Inc. Device, system, and method of intelligently splitting information in an I/O system
WO2001001257A2 (en) * 1999-06-28 2001-01-04 Sangate Systems Inc. Intelligent splitter, system, and methods of use
WO2001001257A3 (en) * 1999-06-28 2001-06-28 Sangate Systems Inc Intelligent splitter, system, and methods of use
US6636908B1 (en) 1999-06-28 2003-10-21 Sangate Systems, Inc. I/O system supporting extended functions and method therefor
GB2354913B (en) * 1999-09-28 2003-10-08 Ibm Publish/subscribe data processing with publication points for customised message processing
GB2354913A (en) * 1999-09-28 2001-04-04 Ibm Information broker with dedicated processing of messages from different publishers
US7103680B1 (en) 1999-09-28 2006-09-05 International Business Machines Corporation Publish/subscribe data processing with publication points for customized message processing
EP1109417A1 (en) * 1999-12-17 2001-06-20 Nortel Networks Limited System and method for unifying the implementation and processing mobile communications and a unified mobility manager for providing such communications
US6563919B1 (en) 1999-12-17 2003-05-13 Nortel Networks Limited System and method for unifying the implementation and processing of mobile communications and a unified mobility manager for providing such communications
US9830284B2 (en) 1999-12-27 2017-11-28 Intel Corporation Memory mapping in a processor having multiple programmable units
US9824038B2 (en) 1999-12-27 2017-11-21 Intel Corporation Memory mapping in a processor having multiple programmable units
US9824037B2 (en) 1999-12-27 2017-11-21 Intel Corporation Memory mapping in a processor having multiple programmable units
US9830285B2 (en) 1999-12-27 2017-11-28 Intel Corporation Memory mapping in a processor having multiple programmable units
US9128818B2 (en) 1999-12-27 2015-09-08 Intel Corporation Memory mapping in a processor having multiple programmable units
US6782401B2 (en) 2001-07-02 2004-08-24 Sepaton, Inc. Method and apparatus for implementing a reliable open file system
US7764679B2 (en) 2001-07-23 2010-07-27 Acme Packet, Inc. System and method for determining flow quality statistics for real-time transport protocol data flows
US7633943B2 (en) 2001-07-23 2009-12-15 Acme Packet, Inc. System and method for providing rapid rerouting of real-time multi-media flows
US7031311B2 (en) 2001-07-23 2006-04-18 Acme Packet, Inc. System and method for providing rapid rerouting of real-time multi-media flows
EP1280306A3 (en) * 2001-07-23 2004-11-24 Primary Network, Inc. d/b/a Acme Packet, Inc. Rapid rerouting of multimedia flows
US7536546B2 (en) 2001-08-28 2009-05-19 Acme Packet, Inc. System and method for providing encryption for rerouting of real time multi-media flows
CN1593041B (en) * 2001-09-28 2011-06-29 英特尔公司 Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
WO2003030461A1 (en) * 2001-09-28 2003-04-10 Intel Corporation Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
KR100918908B1 (en) 2001-12-12 2009-09-23 그룬디히 멀티메디아, 베.파우. System for transmitting a data stream over a network to receivers that support different network protocols
WO2003055169A1 (en) * 2001-12-12 2003-07-03 Grundig Aktiengesellschaft System for transmitting a data steam over a network to receivers that support different network protocols
US7376731B2 (en) 2002-01-29 2008-05-20 Acme Packet, Inc. System and method for providing statistics gathering within a packet network

Also Published As

Publication number Publication date
CA2278447A1 (en) 1998-05-14

Similar Documents

Publication Publication Date Title
US6049546A (en) System and method for performing switching in multipoint-to-multipoint multicasting
US6735201B1 (en) Efficient network multicast switching apparatus and methods
US5781534A (en) Method and apparatus for determining characteristics of a path
EP0836781B1 (en) Method and apparatus for synchronizing data transmission with on-demand links of a network
US5345558A (en) Topology independent broadcast of cells in an ATM network or the like
JP3340846B2 (en) ATM-LAN, server and ATM address management method
US5487064A (en) Network layer packet structure
US5910955A (en) Switching hub capable of controlling communication quality in LAN
JP3737517B2 (en) Method and apparatus for filtering multicast packets based on a transparent intermediate system on a LAN
US7596101B2 (en) Device, network, and system for forwarding frames between geographically dispersed user networks
CA2105040C (en) Inter-domain multicast routing
US6275861B1 (en) Method and apparatus to identify flows in data systems
US6147999A (en) ATM switch capable of routing IP packet
US7327688B2 (en) Digital communications system
US7643507B2 (en) Multicast packet processing apparatus and method
CN108768866B (en) Cross-card forwarding method and device for multicast message, network equipment and readable storage medium
US5434855A (en) Method and apparatus for selective interleaving in a cell-switched network
JPH02501880A (en) packet switching network
CN108028801B (en) SDN-based ARP implementation method and device
WO1998020647A1 (en) Method and apparatus to translate data streams among multiple parties
KR100904156B1 (en) Method and apparatus for maintaining multicast lists in a data network
RU2581558C1 (en) Communication unit, communication system, control device, packet forwarding method and program
US20020073222A1 (en) Packet transfer control method
US5802049A (en) Method of selecting route in cell switch
CN112866143A (en) Device and chip for realizing 802.1CB protocol

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2278447

Country of ref document: CA

Ref country code: CA

Ref document number: 2278447

Kind code of ref document: A

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase