WO1998020647A1 - Method and apparatus to translate data streams among multiple parties - Google Patents
Method and apparatus to translate data streams among multiple parties Download PDFInfo
- 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
Links
Classifications
-
- 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/1836—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture
-
- 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/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- 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/08—Protocols for interworking; Protocol conversion
-
- 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/18—Multiprotocol 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
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.
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)
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)
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 |
-
1997
- 1997-11-07 CA CA002278447A patent/CA2278447A1/en not_active Abandoned
- 1997-11-07 WO PCT/US1997/020449 patent/WO1998020647A1/en active Application Filing
Patent Citations (2)
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)
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)
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 |