The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
Embodiments of the present invention may include apparatus for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium. The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
Applicant has realized that much of the complexity of edge networks may be reduced by concentrating on the services to be provided rather than on the topology of the network and/or the line configuration. This may significantly simplify the operation as well as the type of hardware used for edge routers.
As shown in
For example, as shown in
David may also have ordered cable news service BTV from his carrier. Like all other subscribers for this service, David's set-top box 26 may continually read from mailbox 22B as the BTV news company may continually write to it. Since this is a video service, mailbox 22B may be large enough to sustain 2 Mbps download rates with minimal packet loss and high priority to reduce latency. Moreover, mailbox 22B may serve all or a portion of the subscribers to this service, as the subscribers may have read access to mailbox 22B. Thus, there may be little security on mailbox 22B.
David may also have voice over IP (VoIP) telephones.
Finally, the Smith family may have a video on demand (VoD) service from which they order videos from video servers 28. For this service, the network may have allocated a 3 Mbps mailbox 22E to which the relevant video server 28 may send the video and from which the Smith family's VoD set-top box 29 may read the video. The security level of mailbox 22E may be high and the allowed packet loss may be low.
The allocation of mailboxes may be straightforward from tables of services that the carriers maintain anyway. Such tables may exist for billing, for customer service, for bandwidth allocation, etc. The edge network of the present invention may access such tables to define the size and quality of service (QoS) requirements for its mailboxes 22 and may store such information in its own table 30 of services, shown in
Table 30 of services may list the number of each mailbox 22, its user, the selected service(s), the size of the mailbox, and the quality of service requirements. The latter may be a specific rating or one of a plurality of set types. In the example of
Point-to-point services, like the VoIP or the Internet access, may utilize a mailbox per consumer. These mailboxes may be relatively small. For voice, the quality of service may be of the B type and may require that there be very little jitter. For data, the quality of service may be of the A type which may allow a certain amount of packet loss.
Point-to-multipoint services, like the BTV videostream, a stock market tickertape or other publication services, may utilize a single mailbox for the service that many subscribers may access. For video services, the quality of service, of the C type, may be more stringent, allowing no or a minimal amount of packet loss.
Multipoint-to-multipoint services, like a video conference or carrier supported peer-to-peer file sharing services, may utilize a single mailbox that multiple consumers may write to and that multiple consumers may read from. If these services are video services, they may also be of the C type of service. If the service is a voice conference, the quality of service may be of the B type.
Reference is now made to
Each POP 42 may comprise an external interface unit (EIU) 44 and a mailbox unit (MU) 46. Each external interface unit 44 may provide connections to its associated customers and to ring 41 and each mailbox unit 46 may hold and manage mailboxes 22. However, because edge network 40 may be a distributed network, the mailboxes 22 of the associated customers of one external interface unit 44 may not necessarily be stored in the mailbox unit 46 of the same POP 42. The location of each mailbox may be a function of the type of service being provided and whether or not it needs to be located near the customer or near the source for efficient operation.
For each incoming data packet, each external interface unit 44 may determine which mailbox unit 46 may manage the mailbox 22 for the service being transmitted by the data packet. Each external interface unit 44 may perform a hashing function on at least some of the information in a header of the data packet. The resultant hash value may be the mailbox number within edge network 40 for the service carried by the data packet. With the mailbox number, the external interface unit 44 may directly write (typically using remote DMA (rDMA)) the data packet to the indicated mailbox 22.
Mailbox units 46 may comprise a multiplicity of buffers, for the mailboxes, and management units to add and delete mailboxes as required by the table of services 30. Alternatively, mailbox units 46 may comprise a data structure for queues of packets plus housekeeping information such as the rate, quality of service information and where to forward the data stored therein.
It will be appreciated that the allocation of mailboxes may be very dynamic. If necessary, an address resolution protocol may be implemented among external interface units 44 to balance the allocation among mailbox units 46, to ensure that no one mailbox unit 46 has most of mailboxes 22. In this embodiment, the mailbox address may be static, but the mailbox unit 46 which houses the addressed mailbox may be dynamic as the load changes and/or upon insertion or failure of a mailbox unit 46.
When a customer may want the service of a mailbox (i.e. when he wants to watch a video, get the news, access the Internet, join a video conference, etc.), he may login to edge network 40, either through DHCP (dynamic host configuration protocol) for most IP sessions or through IGMP (IP group management protocol) to join a point-to-multi-point session. The external interface unit 44 to which the customer connects may utilize the IGMP addresses to determine the addresses of the mailbox(es) to the multipoint services to which the customer subscribes and may connect the customer to them. External unit 44 may utilize the DHCP address to define the point services which the customer desires and may ask the relevant mailbox unit 46 to instantiate all relevant mailboxes for the customer. For the latter action, mailbox unit 46 may check table 30 of services for the connection and quality of service information of the mailboxes. Edge network 40 may then list the instantiated mailbox(es) 22 in table 30. After that, edge network 40 may send all data packets for the requested service to the instantiated mailbox(es) 22.
For example, the Smith Family, labeled 50, may request the news from BTV, labeled 52. BTV 52 may send its video news datastream to POP 42A, the POP closest to it. External interface unit 44A may hash the destination address, that of the Smith Family, and may determine that the Smith Family's mailbox for BTV 52, mailbox 22B, may be located in mailbox unit 46B. Accordingly, external interface unit 44A may write the datastream to mailbox 22B in mailbox unit 46B. When the Smith Family's set-top box may connect to POP 42B, the POP closest to it, mailbox unit 46B may send the packets stored in mailbox 22B to the Smith Family's set-top box, via external interface unit 44B.
For the example of Dana and Ann talking over VoIP, Dana Smith's mailbox 22C may be located in mailbox unit 46B, close to her house, while Ann's mailbox 22D may be located in a different mailbox unit, for example 46C.
When Ann talks on her VoIP telephone, her computer may send her voice datastream to POP 42C, the POP with which she is associated. External interface unit 44C may hash the destination address, that of Dana Smith, and may determine that Dana Smith's mailbox for VoIP, mailbox 22C, may be located in mailbox unit 46B. Accordingly, external interface unit 44C may write the datastream to mailbox 22C in mailbox unit 46B and mailbox unit 46B may forward the packets to Dana's VoIP telephone through external interface unit 44B.
Similarly for Ann's half of the conversation. When Dana speaks on her VoIP telephone, her computer may send her voice datastream to here POP, 42B. External interface unit 44B may hash the destination address, that of Ann, and may determine that Ann's mailbox for VoIP, mailbox 22D, may be located in mailbox unit 46C. Accordingly, external interface unit 44B may write the datastream to mailbox 22D in mailbox unit 46C and mailbox unit 46C may forward the packets to Ann's VoIP telephone through external interface unit 44C.
Depending on the type of mailbox 22, the data packet may or may not be deleted from mailbox 22 upon forwarding. Data packets may be deleted only for point-to-point services. All other services may remove packets as a function of time. For such services, the buffers may fill up and the newer data packets may push out the older data packets.
In accordance with a preferred embodiment of the present invention, external interface units 44 and mailbox units 46 may be fairly simple to implement as their operations are not complicated. They read the packet headers, hash an address (some combination of the destination and/or source address, as described hereinbelow) and then write the packet to the relevant mailbox 22. Such operations are relatively simple and thus, do not require very complicated hardware or lookups in large lookup tables. These operations may be done using standard tables, with the header reading being the only operations handled by the CPU (central processing unit) of units 44. The payloads of the data packet may be written using DMA or rDMA protocols. Given these simple operations, external interface units 44 may be implemented on standard personal computers.
Thus, they may be implemented as blade servers, a standard type of server used in server farms, such as for websites. Such servers are standard PCs (personal computer). An exemplary type of blade server is the BladeCenter, manufactured by IBM of the USA. It will be appreciated that such servers are significantly less complicated than the types of proprietary hardware used in the past for edge routers. It will further be appreciated that, in the present invention, adding more services merely involves adding the services to table 30, providing any relevant hashing functions for the data packets of the service and ensuring that there is sufficient storage capacity for the additional mailboxes to be instantiated. The only knowledge needed about the service is the size of the mailboxes needed and the quality of service requirements that the service has.
To read the headers of the data packets, external interface units 44 may have knowledge of the many types of data packets flowing through them. Most data packets have a protocol bit, indicating the type of service or protocol to which the data packet adheres. Upon reading this bit, external interface units 44 may decode the header, according to the protocol, in order to determine the source and destination addresses, which are utilized for the hashing functions.
The hashing functions performed by external interface units 44 may be of any suitable sort, depending on the size of the network and the information available in the incoming data packets. In one embodiment, the hashing function may be a function of the source and/or destination addresses and a broadcast bit also found in the headers of data packets. In this embodiment, if the service is a point-to-multipoint service, as indicated by the broadcast bit, the mailbox for the service may be placed close to the source of the data and thus, the hashing may be performed on the source address. If the service is a multipoint-to-multipoint service, as indicated by the broadcast bit, the mailbox for the service may be placed anywhere and thus, the hashing may be performed on a combination of the source and destination addresses. If the service is a point-to-point service, the hashing may be performed on the source address or on the destination address, as desired. An exemplary hashing function may be “modulo 1000”.
Reference is now made to
In this embodiment, the source, labeled 60, may provide a single datastream to the POP nearest it, for example, POP 42A. Since there are a significant number of customers for the datastream located throughout the metropolitan area served by edge network 40, external interface unit 44A may write each data packet of the datastream in a single transmission, as a multi-cast packet, to multiple mailboxes 22, at least one in each mailbox unit 46 of edge network 40. This may ensure that each customer receives the data packet from the POP 42 nearest him. In exemplary
Reference is now made to
In the embodiment of
In accordance with a preferred embodiment of the present invention, administrative domains may be defined over the edge network of the present invention. Each domain may belong to a different vendor and may have its own table of services and its own hashing function but all the domains may utilize the same edge network. As described hereinabove, each domain allows plug and play access connections for devices and for data and media centers. Each device and/or center is added merely by adding the services they offer into the table of services. Moreover, each domain may route traffic anywhere in the metropolitan area, per subscriber per service.
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
This application claims benefit from U.S. Provisional Patent Application No. 60/833,475, filed Jul. 27, 2006, which is hereby incorporated in its entirety by reference.
Number | Date | Country | |
---|---|---|---|
60833475 | Jul 2006 | US |