Modern network units, by which one principally means switches and routers, have reached a substantial degree of sophistication and can be realized in a considerable variety of architectures. It is not intended to limit the invention to any particular architecture. Broadly, units of this nature can switch packets in accordance with either media access control address data (layer 2 in the OSI Model) or network address data (layer 3 in the OSI Model) and/or possibly information in higher layers. For this purpose a received packet may be temporarily stored, either in temporary storage associated with a respective ingress port, or in central memory which may have memory space or buffers permanently or temporarily associated with respective ports, in queues which may be constituted by the packets themselves along with status data or which may be constituted by pointers to locations in memory. Header information from the packets is subject to a look-up in order to obtain, with recourse to a database, forwarding information for the packet. This forwarding information may be subject to post-processing in accordance with a variety of rules, such as VLAN matching, quality of service, spanning tree rules and others which are important but have no direct bearing on the present invention. The intended result is always to determine, on the assumption that the packet is to be forwarded from the unit, which port or (in the case of a multicast packet) ports are to be selected for the forwarding of the packet from that unit. A switching engine typically is controlled by a port mask, obtained as a result of the look-up. The port mask identifies, directly or indirectly, the ports of the unit by number and (for a unicast packet) the port from which the packet should be forwarded. Generally speaking, ‘switches’ or ‘bridges’ are terms applied to units that switch in layer 2 and ‘routers’ is a term generally employed for switching in layer 3, since media access control data is employed to determine a device to which the packets should be forwarded whereas network address data relates to a network to which a packet should be forwarded. However, usage of these terms is not exclusive, because units capable of both bridging and routing are known. Accordingly, in the present application ‘network unit’ is employed to refer to a device which performs the forwarding of data to a selected port or ports having regard to address data in the packet and, optionally, other data which may relate to the type of packet and/or other data which may affect the forwarding decision.
Cascade Systems
Network units are made with a fixed number of ports which are employed for the reception of packets from and the forwarding of packets to the external network. It is generally now considered convenient to manufacture switches in a comparatively small number of individual ‘sizes’, in terms of the number of ports, and to provide in effect a network unit with a much larger number of ports by means of a ‘cascade’ system, wherein a multiplicity of multiport units are connected and organized so that they appear to the external network as a single switching or routing entity.
Various desirable features in modern network practice, the existence of a variety of forwarding rules, and the practical importance of employing ‘resilience’, has led to the development of sophisticated cascade systems.
‘Resilience’, as previously mentioned, is the feature characteristic of a system which can tolerate the powering-down or failure of a unit or a connecting link and which will maintain the ‘cascade’ or ‘stack’ in operation as far as the other units in the cascade are concerned. A good example is the system described in GB-A-2365718. That document describes a cascade system in which the network units in a stack are coupled by a special connector, known as a T-piece, which can provide continuity of a data path for packets in a ring connecting the units notwithstanding the powering-down or failure of a unit to which it is coupled. For that purpose the connectors contain a system of multiplexers which are under the control of control logic which determine the status of the various network units by means of the exchange of control frames with the network units.
Although a system as described in that document is satisfactory in operation, the reliance on special connectors imposes a hardware overhead and, moreover, constrains the cascade system to have the configuration of a ring. In practice also, the network units have to be in reasonably close proximity. Furthermore, the traffic volume for packets between the units is limited by the capacity of the data path through the connectors.
In a network unit which is in a cascade connection, a look-up has in general three possible results. The address may be ‘unknown’ in that there is no entry in the database which can determine the port or ports from which the packets should be forwarded. Such a result may have the consequence of ‘flooding’: the packet is transmitted out of all the ports of the switch, or possibly out of a group associated with a particular virtual segment of the network, if partitioning in the form of virtual LANs is used. A response from a destination conforming to the destination address may be established by means of an address resolution protocol (ARP). Second, the destination may be by way of a port on the respective unit, that is to say by way of a ‘local’ port. In such circumstances the packet can be forwarded out of the relevant port without recourse to the cascade connection. Thirdly, the destination may be by way of a port on another switch in the cascade, in which case the port number in the forwarding data would usually be a cascade port or possibly a ‘logical’ port connected to a group of cascade ports.
It is customary for look-up databases to include an address learning facility. Typically the source address data of an incoming packet is checked against entries in the database and if the source address is unknown it can be ‘learnt’ against the port by which it is received. It is also possible to insert entries in such databases.
One object of the present invention is to permit network units to be in a cascade system which may have a wide variety of configurations, and in particular a general mesh which provides a multiplicity of potential paths between units.
Additionally or alternatively, a further object of the invention is to permit the network units which constitute the cascaded system to be substantially widely spaced, for example in different buildings. Such a facility would substantially extend the versatility of cascade systems.
A further object of the invention is to control the forwarding of packets within the cascade in a manner which tolerates and indeed facilitates a variety of configurations including meshes.
A yet further object of the invention is to facilitate trunking between different units in the cascade connection; i.e. the provision of a multiplicity of parallel connections between units to increase the traffic capacity between them.