COMMUNICATION SYSTEM
The invention relates to a communication system for establishing communication between two end points such as two end station ports, two devices within an end station, or the like where each end point is coupled to a respective communication medium, with each medium operating in accordance with a different communication protocol.
In recent years, local area networks (LTANs) have been developed to handle the communication of data between end stations, such as PCs, using certain network protocols such as token ring or ATM. Each different network protocol handles data in a different format and as a consequence, the data of one protocol is incompatible with that of another. This prevents direct communication between end stations operating under different protocols. Communication can therefore only be achieved indirectly by having an intermediate router stage. This determines the route the data must take through the subsequent network and alters the data format from that of original protocol to that of subsequent network.
For a given network connection, this method can result in data being sent over different routes within the network. This can result in the data being delivered out of sequence. This is generally unacceptable for real time data, such as audio and video, due to the resulting delays caused by the additional processing required to resequence the received data at the receiving end station.
Examples of known methods are described in WO-A- 97/16007, US-A-5208811 and JP-A-62130049.
In accordance with one aspect of the present invention, we provide a communication system for establishing communication between two end points, the system comprising at least two communication media operating in accordance with different communication protocols and connected to respective ones of the end points in use, an interface for coupling together the at
least two communication media, and a control system connected to each of the end points and to the interface, wherein the control system is responsive to a request to establish a communication connection between the end points to configure the interface and the end points such that a connection path is defined between the end points via the communication media along which messages can subsequently be sent .
In accordance with a second aspect of the present invention, we provide a method of operating a communication system for establishing communication between two end points, each end point being coupled to a respective communication medium, the media operating in accordance with different communication protocols and being coupled together by an interface, the method comprising configuring the interface and the end points such that a connection path is defined between the end points, via the communication media along which messages can subsequently be sent . We have devised a method and apparatus that allows direct communication between end points located on media operating under different communication protocols.
The end points may be constituted by end stations such as PCs, servers and the like or by devices within an end station, for example a telephone interface card, MVIP card or NIC card. Where the end points comprise end stations, the media will comprise communication networks while if both end points comprise devices within the same end station then the communication media will comprise communication buses . More generally, the invention enables connection to be achieved between a device within an end station and another device within another end station in which case the communication media will comprise a mixture of buses and networks . In order to transfer data from one end point to another, it is necessary for the data transferred to be addressed to the receiving end point. Because the format
of data packets used by any network or bus protocol differs between protocols, it is not possible to address the end point of a network or bus operating under a different protocol unless there is a higher level of control which resolves incompatible addresses.
The present invention operates to overcome this problem by configuring the end points and the interface between the two media to define a connection path between the end points, via the media, prior to sending any data over the media. As a consequence, the data that is sent over the media need not specify the address of the end point to which it is sent but rather can be simply sent to follow a pre-specified route that will terminate at the end point required. This enables data to be transferred directly from one end point to another end point, across LANs and buses operating different protocols.
As a direct consequence of this, it is possible for forms of communication such as voice, video and the like to be transferred as data directly from one end point to another.
Typically, the control system of the communication system comprises a connection controller coupled to at least the interface and the end points for determining possible connection paths between the end points. The connection controller then selects one of the possible connection paths and configures the end points and interface to establish the connection path. The use of a connection controller provides an overall view of the media and the connection of the end points and interfaces thereto. From this, it is possible to determine the possible connection paths that could be made and from these the connection controller selects the most preferable route to connect end points.
Preferably, the control system comprises a number of local controllers, with each local controller being coupled to the connection controller and to one of the end points or the interface. The local controllers then configure the
respective end point or interface in accordance with a request from the connection controller. This optimises the operation of the system by requiring that the connection controller merely generates a request that a certain connection route be established. The local controllers then ensure that the relevant end points and interfaces are configured as required. Whilst all this could be carried out by the connection controller, this would increase the amount of information that the connection controller would have to handle resulting in a slowing down in the establishment of a connection.
Preferably, the local controller provides information on the local configuration, such as cost and configuration, to the connection controller to aid the connection controller in establishing the optimum route.
The end points may be of any form, but typically they are suitable for forms of communication such as voice, video communication and the like.
Preferably, the control system also has a call controller coupled to end points and the connection controller. The term "call" is to be understood to include any type of communication including machine-to-machine, voice-to-voice, machine-to-voice and the like. The call controller is used to receive a request to establish communication between the end points and subsequently cause the connection controller to determine possible connection paths and then select one of the possible connection paths. Again, this could be directly achieved by the connection controller but it is preferable to have a separate system thereby reducing the processing requirements placed on the connection controller and providing an abstraction between calls and the connection between physical devices.
Typically, the method of operating the communication system involves determining possible connection paths between the end points, selecting one of the possible connection paths and configuring each end point and the interface to establish a connection between the end points,
via the media, using the selected connection path. It will be realised, however, that the method could involve simply selecting any path that connects the two end points although this may result in a busy path being selected whilst a less busy path is available.
In the case where the connection controller is coupled to each of the end points, the method typically involves monitoring the end points for a request to establish communication between the end points, determining possible connection paths between the end points, selecting one of the possible connection paths and configuring the end points and the interfaces to establish a connection between the end points, via the media, using the selected connection path. An example of a communication system according to the invention will now be described with reference to Figure 1 which is a schematic diagram of the communication system.
Figure 1 shows a communication system including two local area networks (L7ANs) 1,2. In this example, LAN 1 is an Ethernet network while LAN 2 is ATM. However, this invention is applicable to any combination of heterogeneous networks (or buses) . The LANs 1,2 are coupled together by an interface 3. The interface 3 comprises two network interface cards (NICs) 4,5 connected to a bus 6. The bus 6 operates to pass data between the NICs 4,5. In this example, NIC 4 is configured to communicate over an Ethernet network while NIC 5 is configured to communicate over an ATM network.
The LAN 1 is also coupled to an end station 7 by means of a NIC 8. The end station will generally be a personal computer suitable for carrying out voice and video communication as required. The NIC 8 is connected to a telephone interface card 9 by means of a bus 10. This connection is shown only schematically. More details will be described with reference to the end station 12. The telephone interface card 9 is connected to a telephone 11.
The L7AN 2 is also coupled to an end station 12 by means of a NIC 13. The NIC 13 is connected to a telephone interface card 14 via a PC data bus 15, an MVIP card 28, and a MVIP bus 30. The telephone interface card 14 is connected to a telephone 16. The buses 6,10,15,30, NICs 4,5,8,13 and the MVIP card 28 are coupled to local connection controllers 21,22,23,31,17,18,19,20,29 respectively which are coupled to a central connection controller 24. The cards 9,14 are coupled to local call controllers 25,26 respectively which together with the central connection controller 24 are coupled to a central call controller 27.
The following example of this invention is based on establishing a telephone connection between the two end stations 7,12 and involves coupling heterogeneous networks and buses .
On initialisation of the end stations 7,12 and the interface 3, the devices for controlling the media sources (telephones 11,16), in this example the cards 9,14, register with the central call controller 27 via the respective local call controllers 25,26. The cards 9,14 provide call controller 27 with information relating to the startup and stop routines of the cards, the media each card supports and the relative priority assigned to the media. Each end station 7,12 registers its designated ID with the connection controller 24. The network endpoints, in this example the NICs 4,5,8,13 and the end station endpoints
(MVIP card 28) register with the connection controller 24 via their respective local connection controllers. The NICs 4,5,8,13 provide the connection controller 24 with information on the attached network type, and a cost associated with using the endpoint .
In order for a call to be made from end station 7 to end station 12, a user of the end station 7 will input a request, using either the phone 11 to dial a predetermined number assigned to end station 12 or by using a phone application (not shown) running on end station 7. The
request will include information on the type of media, which in this example will be voice. The end station 7 will pass, via the local call controller 25, this request to the call controller 27. The call controller 27 will assign this call with an identification number (Call ID) . The call controller 27 checks the status of end station 12. If the end station 12 can accept the call, for example end station 12 has a phone 16 connected which is not in use, the call controller 27 sends end station 12 an alert signal which will instruct the local call controller 26 to instruct the card 14 to ring the phone 16. If phone 16 is answered, the call controller 27 instructs the cards 9,14 to start and for each card to create a source and sink to allow a full duplex connection to be established between the cards 9,14. The phonecard 9 requests, via the local call controller 25, the connection controller 24 to establish a call. Included with the request is information on the end station ID and Call ID, having been provided to the local call controller 25 by the call controller 27. The card 14 requests the connection controller 24 to establish a call providing the connection controller 24 with the call ID provided by the call controller 27 and the end station ID. As the call ID from end stations 7 and 12 will be the same, the connection controller 24 is able to establish that end stations 7 and 12 are the endpoints for this given call.
As the connection controller 24 now knows the end points for this particular call, the connection controller 24 is able to determine the most appropriate route to establish the connection. Having established the route, the connection controller 24 instructs the local connection controllers to set up a data path between end stations 7 and 12. In this example, the local connection controller 22 will, for this call, establish a connection between the designated source and sink on the card 9 with the NIC 8. The local connection controllers 19 and 17 establish a connection between the NICs 4 and 8 over the network 1
using the Ethernet protocol. To set up this connection, the connection controller 24 provides NIC 8 with NIC 4 network address and vice versa. Local connection controller 21 will establish a connection between NICs 4 and 5 over the bus 6. The local connection controllers 18 and 20 establish a connection between the NICs 5 and 13 over the network 2 using the relevant ATM NIC addresses provided by connection controller 24. Local connection controller 23 will establish a connection between NIC 13 and the MVIP card 28 over the PC data bus 15 while local controller 31 establishes a connection between the MVIP card 28 and phone card 14 via MVIP bus 30. Each connection is associated with the call ID provided by the call controller 27. Each connection is dependent on the relevant network or bus protocol, for example over the ATM network a VP/VC will be assigned for this call. Once the connection path has been established, data will flow bi- directionally between phone card 9 and 14.
In more detail, each local connection controller maintains, for its given domain, a routing table for each call that has been set up, i.e. for each call the relevant local connection controller maintains a table associating the connections of the different media. For example, if a user makes a call using telephone 11 to call telephone 16, a source and sink will be started on the telephone interface card 14 and connections will be established between telephones 11 and 16 as described above, this call will be given a specific call ID. As part of this process, local connection control 25 will maintain a table for this call ID which associates the source and sink with the relevant connection that has been set up on bus 10, while local connection control 22 maintains a table for this call ID which associates the connection on bus 10 with the connection that has been set up on Ethernet 1 and so on. Each device, e.g. network interface card, translates from one communication protocol to another as it passes from one media to another. By using this method, a communication
path is established between the telephones 11 and 16. Equally, the connection routing tables could be maintained in the central connection controller 24 using information provided by the local connection controllers. The most appropriate route is decided by the connection controller 24 in accordance with a number of predefined criteria. These criteria may include factors such as the cost of the connection, the rate of data transmission which is required, the time and date at which the connection is made and the current utilization of the network. Usually, the best connection is the one that offers the fastest data transmission rate for the lowest cost .
However, in certain circumstances, the user of the end station may desire that a particular data transmission speed or particular cost profile be met. This can be achieved by having the user input any requirements on cost or transmission rate when the call is initially requested.