Language selection

Search

Patent 2206737 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2206737
(54) English Title: COMPUTER NETWORK ARCHITECTURE
(54) French Title: ARCHITECTURE EN RESEAU DE MACHINE INFORMATIQUE
Status: Deemed expired
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 15/173 (2006.01)
  • H04L 61/10 (2022.01)
  • H04L 67/1001 (2022.01)
  • H04L 67/1008 (2022.01)
  • H04L 29/06 (2006.01)
  • H04L 29/12 (2006.01)
(72) Inventors :
  • JOUBERT, PHILIPPE (France)
  • LECONTE, THIERRY (France)
  • ROCHAT, BRUNO (France)
(73) Owners :
  • BULL S.A. (France)
(71) Applicants :
  • BULL S.A. (France)
(74) Agent: LAVERY, DE BILLY, LLP
(74) Associate agent:
(45) Issued: 2000-12-05
(22) Filed Date: 1997-06-03
(41) Open to Public Inspection: 1998-09-27
Examination requested: 1997-06-03
Availability of licence: N/A
(25) Language of filing: French

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
97 03778 France 1997-03-27

Abstracts

English Abstract

The invention concerns a computer network architecture and focuses in particular on data server load distribution. A data server (3) comprises at least two server machines (1, 2) which provide the same services. The servers (1, 2) have the same MAC0 physical address to which the same protocolar network address is assigned to establish client machine connections with the server (3) considered a single virtual machine. Each server comprises filtering devices so that each connection of a client machine (5, 6, 7, 8, 9, 10) with the virtual machine corresponds to a single effective connection with only one server machine (1 or 2). The filtering devices in each server computer (1, 2) take into account at least an indication of the status of each server machine (1, 2) with the same MAC0 physical address.


French Abstract





L'invention concerne une architecture en réseau de machine informatique et
s'intéresse plus particulièrement à la répartition de charge de serveurs de données.
Un serveur de données (3) est constitué d'au moins deux machines informatiques
serveuses (1,2) aptes à fournir les mêmes services. Les machines informatiques
serveuses (1,2) possèdent la même adresse physique MAC0 à laquelle est attribuéeune même adresse protocolaire réseau pour établir des connexions de machines
clientes avec le serveur (3) considéré comme une machine virtuelle unique. Chaque
machine informatique serveuse comprend des moyens de filtrage de façon à ce que
chaque connexion d'une machine cliente (5,6,7,8,9,10) avec la machine virtuelle
corresponde à une unique connexion effective avec une et une seule machine
informatique serveuse (1 ou 2). Les moyens de filtrage de chaque machine
informatique serveuse (1,2) prennent en compte au moins une indication d'état dechaque machine informatique serveuse (1,2) possédant la même adresse physique
MAC0.

Claims

Note: Claims are shown in the official language in which they were submitted.



21
Revendications:
1. Architecture en réseau comprenant un serveur de données (3) constitué d'une
machine informatique initiale (1), à laquelle sont ajoutées n machines
informatiques
(2,35,36,37) supplémentaires, n étant un nombre entier supérieur ou égal à un,
comprenant des moyens pour répartir la charge d'utilisation du dit serveur (3)
entre
les dites machines (1,2,35,36,37), et des moyens pour réorienter une charge
d'utilisation de l'une du nombre n+1 de machines ainsi constitué vers l'une ou
plusieurs des machines restées disponibles lorsque l'une dite des n+1 machines
est
en défaut, caractérisée en ce que
- au moins deux machines informatiques serveuses (1,2) possèdent une même
adresse physique MACO et les dits moyens pour répartir la charge
d'utilisation,
- une adresse protocolaire réseau IPV est affectée à ladite adresse physique
MACO
pour établir des connexions de machines clientes avec le serveur de données
(3)
virtuellement vu comme une machine unique.
2. Architecture en réseau selon l'une des revendications 1 comprenant un
serveur
(3) de données constitué de plus d'une machine informatique serveuse (1,2),
caractérisée en ce que
- chaque machine informatique serveuse comprend des moyens de filtrage de
façon
à ce que chaque connexion d'une machine cliente (5,6,7,8,9,10) avec ladite
machine
virtuelle corresponde à une unique connexion effective avec une et une seule
machine informatique serveuse (1 ou 2),
- les dits moyens de filtrage de chaque machine informatique serveuse (1,2)
prennent en compte au moins une indication d'état de chaque machine
informatique
serveuse (1,2) possédant la même adresse physique MACO.
3. Architecture en réseau selon la revendication 2, caractérisée en ce que les
dits
moyens de filtrage dédient une connexion (IPC,NPC,IPV,NPS) à une machine
serveuse unique à l'aide d'un critère déterministe sur la valeur de l'adresse
protocolaire réseau IPC de chaque machine cliente.


22
4. Architecture en réseau selon la revendication 2, caractérisée en ce que les
dits
moyens de filtrage dédient une connexion (IPC,NPC,IPV,NPS) à une machine
serveuse unique à l'aide d'un critère déterministe sur la valeur des ports NPC
des
machines clientes.
5. Procédé pour établir au moins une connexion (IPC,NPC,IPV,NPS) d'un port NPC
d'une machine cliente d'adresse protocolaire inter-réseau IPC avec un port NPS
d'un serveur (3) d'adresse protocolaire inter-réseau IPV constitué d'au moins
deux
machines informatiques ayant une même adresse physique MACO,
ledit procédé comprenant une étape pour rendre effective la connexion
(IPC,NPC,IPV,NPS) avec une unique machine informatique d'adresse MACO en
fonction d'un critère sur la valeur IPC ou NPC déterminé par la machine
informatique
d'adresse MACO sur laquelle la connexion est effective et en fonction de
l'état des
autres machines d'adresse MACO.
6. Procédé pour établir au moins une connexion (IPC,NPC,IPV,NPS) selon la
revendication 5 comprenant une étape transitoire sur changement d'état d'une
machine d'adresse MACO dans laquelle des paquets de réinitialisation, émis sur
détection de paquets ne correspondant pas à une connexion effective, ne sont
pas
transmis de la couche réseau à la couche physique.
7. Procédé pour établir au moins une connexion (IPC,NPC,IPV,NPS) selon la
revendication 6 comprenant une étape de régime établi succédant à ladite étape
transitoire lorsqu'une durée suffisament longue s'est produite sans émission
de
paquets de réinitialisation, étape de régime établi dans laquelle les paquets
de
réinitialisation émis sur détection de paquets ne correspondant pas à une
connexion
effective, sont transmis de la couche réseau à la couche physique.

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02206737 1997-06-03
1
L'invention concerne une architecture en réseau de machine informatique et
s'intéresse plus particulièrement à la répartition de charge de serveurs de
données.
En l'absence de précision spécifique, on entend ici par machine informatique
une
machine physiquement constituée telle que par exemple un ordinateur.
Un serveur informatique permet d'offrir un ensemble de services à des
utilisateurs disposant de machines clientes reliées à ce serveur au moyen de
réseaux dont l'interconnexion constitue un réseau étendu. Un nombre croissant
d'utilisateurs permet de diminuer les coûts d'élaboration des services offerts
en
lo répartissant ces coûts entre les différents utilisateurs. Cependant ce
nombre
croissant d'utilisateurs nécessite d'augmenter la capacité de charge du
serveur.
D'autre part, pour satisfaire les utilisateurs, le serveur doit présenter une
certaine
fiabilité dans l'offre de ses services, par exemple en termes de tolérances
aux
fautes.
Si un serveur constitué d'une machine informatique permet de satisfaire une
capacité de charge initiale d'utilisation sans défaillance de cette machine,
il est
possible d'obtenir une certaine fiabilité en ajoutant une deuxième machine
informatique, disponible pour agir en secours de la machine initiale en cas de
2o défaillance de la machine initiale. La machine initiale devient à son tour
disponible
comme machine de secours après sa réparation. L'état de la technique propose
différentes solutions pour faire prendre le relais d'une machine défaillante
par une
machine de secours, telles que des réplications actives ou des réplications
passives
d'applications exécutables sur ces machines pour satisfaire des services
demandés
dans les limites de la charge donnée d'utilisation. Cependant, la mise en
oeuvre
d'une deuxième machine nécessite d'augmenter en conséquence l'investissement
matériel qui se répercute inévitablement sur les coûts des services offerts,
alors que
la machine de secours reste inutilisée en l'absence de défaillances de la
machine
initiale.
Si un serveur constitué d'une machine informatique permet de satisfaire une
capacité de charge initiale d'utilisation de cette machine, il est possible
d'augmenter
cette capacité de charge initiale en ajoutant une deuxième machine
informatique et


CA 02206737 1997-06-03
2
en répartissant la charge d'utilisation entre la machine initiale et la
deuxième
machine, celles-ci fonctionnant simultanément.
Pour obtenir une certaine fiabilité du serveur à capacité de charge
augmentée, on pourrait adjoindre à chaque machine se répartissant la nouvelle
capacité de charge, une machine de secours. Ceci présenterait l'inconvénient
de
multiplier par quatre le coût d'investissement matériel. Pour limiter
l'augmentation
d'investissement matériel résultant, une solution est de n'ajouter que deux
machines
à la machine initiale, une première machine pour augmenter la capacité de
charge et
lo une deuxième machine pour servir de secours en cas de panne de la machine
initiale ou de la première machine pour augmenter la capacité de charge.
L'ajout de deux machines informatiques pour constituer un serveur permet
ainsi d'augmenter sa capacité et d'obtenir une certaine fiabilité du serveur.
On sait que chaque machine informatique connectée sur un réseau local
possède une adresse physique qui permet de la distinguer physiquement sur ce
réseau local. Cette adresse physique est connue dans la littérature sous le
nom
d'adresse MAC (abréviation de Medium Access Control en anglais qui signifie
2o Contrôle d'Accès au Support). Cette adresse nécessite essentiellement
d'être
connue du protocole propre au réseau local qui fait parvenir des paquets de
données d'un message destinés à une machine spécifiquement concernée. Chaque
réseau local possède un protocole propre, de type connu sous le nom Ethernet,
TokenRing ou autre, adapté à sa configuration matérielle. L'échange de
messages
Zs avec des machines d'autres réseaux locaux distants, connectés au moyen d'un
réseau étendu, nécessite une couche protocolaire supérieure qui identifie
chaque
machine au moyen d'une adresse telle que par exemple celle communément
appelée adresse IP dans la littérature pour désigner "protocole inter-réseau".
Les
explications qui suivent se réfèrent à la couche protocolaire IP, on peut
envisager de
30 les retranscrire pour se référer à d'autres couches protocolaires de même
niveau
telles que par exemple DECNET ou SNA. Ceci permet de s'affranchir de la
disparité
de protocoles et de configurations matérielles des réseaux locaux. La
connaissance
de l'adresse IP d'une machine suffit alors à identifier cette machine sur le
réseau
étendu. Un routeur comprend une table de translation qui permet de faire


CA 02206737 1997-06-03
3
correspondre une adresse IP à une adresse MAC pour chaque machine appartenant
au réseau local qu'il gère. Les machines directement connectées à un même
réseau
local pourraient communiquer au moyen de leurs adresses MAC. Cependant, pour
rendre transparent aux couches applicatives le fait que les machines
appartiennent
s au réseau local ou au réseau étendu, il est préférable de les faire
communiquer au
moyen de leurs adresses IP sur le réseau local. Chaque machine comprend alors
une table de translation assimilable à celle du routeur sur le réseau local.
Plusieurs
adresses IP différentes peuvent correspondre à une mëme adresse MAC pour
permettre de voir une même machine physique comme plusieurs machines
virtuelles
lo distinctes. Par contre, l'inverse n'est pas vrai car si plusieurs adresses
MAC
correspondaient à une même adresse IP, le routeur ne saurait pas vers quelle
machine physique émettre finalement un paquet de données.
Pour réaliser un serveur au moyen de trois machines informatiques tel que
Is souhaité précédemment, la possibilité s'offre à l'homme du métier
d'affecter à
l'adresse de chaque machine MAC1, MAC2, MAC3, une adresse IP1, IP2, IP3 dans
le routeur qui gère un réseau local auquel appartiennent ces trois machines.
En
autorisant un sous ensemble de machines clientes du réseau étendu à accéder au
serveur par l'adresse IP1 et un sous ensemble complémentaire à accéder au
2o serveur par l'adresse IP2, l'homme du métier peut réaliser une répartition
de charge
sur les deux machines constituant le serveur avec les adresses MAC1 et MAC2.
La
machine d'adresse MAC3 reste alors disponible comme machine de secours. Si par
exemple, la machine d'adresse MAC2 présente un défaut, il suffit d'affecter
l'adresse
IP2 à la machine 3 et dans le routeur, de faire correspondre l'adresse IP2 à
2s l'adresse MAC3, en prenant bien entendu les précautions qui s'imposent dans
le
basculement de la machine d'adresse MAC2 sur la machine d'adresse MAC3.
Les solutions envisageables à partir des connaissances générales de
l'homme du métier présentent cependant l'inconvénient de nécessiter un
3o investissement matériel dans deux machines supplémentaires pour satisfaire
simultanément le besoin d'augmentation de capacité de charge et de fiabilité.
Un premier objet de l'invention est de satisfaire simultanément l'augmentation
de capacité de charge et la fiabilité d'un serveur informatique en ajoutant
une seule


CA 02206737 1997-06-03
machine pour constituer ce serveur, permettant ainsi de réaliser une économie
sur
les coûts induits par l'évolution du dit serveur.
L'invention consiste alors en une architecture en réseau comprenant un
s serveur de données constitué d'une machine informatique initiale à laquelle
est
ajoutée une machine informatique supplémentaire, caractérisée en ce qu'elle
comprend des moyens pour répartir la charge d'utilisation du dit serveur entre
ladite
machine initiale et ladite machine supplémentaire, et des moyens pour
réorienter la
charge d'utilisation de l'une des deux machines vers l'autre machine lorsque
l'une
io dite des deux machines est en défaut.
Ainsi, la nouvelle capacité fournie par une seule machine supplémentaire est
pleinement utilisable en absence de défaut sur les machines du serveur et ne
revient à sa capacité initiale que le temps nécessaire à remettre en
fonctionnement
is la machine défaillante.
Un avantage supplémentaire procuré par l'invention est de permettre
d'augmenter la capacité de charge d'un serveur de façon fiable au delà de
celle
offerte par deux machines, par itérations successives de l'enseignement ci-
dessus
2o décrit.
L'invention consiste alors en une architecture en réseau comprenant un
serveur de données constitué d'une machine informatique initiale, à laquelle
sont
ajoutées n machines informatiques supplémentaires, n étant un nombre entier
2s supérieur ou égal à un, caractérisée en ce que sont mis en oeuvre dans
chaque
machine, des moyens pour répartir la charge d'utilisation du dit serveur entre
les
dites machines, et des moyens pour réorienter la charge d'utilisation de l'une
du
nombre n+1 de machines ainsi constitué vers l'une ou plusieurs des machines
restées disponibles lorsque l'une dite des n+1 machines est en défaut.
Nous avons vu précédemment qu'un moyen possible pour réaliser une
répartition ou inclusivement une réorientation de charge entre différentes
machines
du réseau comprenant le serveur de données, est de créer a priori différents
sous
ensembles de machines clientes sur le réseau étendu, chaque sous ensemble se


CA 02206737 1997-06-03
s
connectant à une machine distincte qui constitue le serveur. Une répartition
équitable des ressources offertes par les machines du serveur aux différents
sous
ensembles de machines clientes nécessite de prévoir au mieux la charge du
serveur
induite par ces différents sous ensembles. Toute défaillance de l'une des
machines
s qui constituent le serveur, a des répercussion sur l'état du routeur qui
doit modifier
en conséquence ses tables de translation d'adresses IP vers adresses MAC.
D'autre
part, une telle répartition de charge est figée et non maîtrisée par les
machines
serveuses car elle dépend des machines clientes.
io On obtiendrait une plus grande souplesse si toutes les machines clientes
voyaient l'ensemble des machines qui constituent le serveur comme une seule
machine virtuelle, accessible au moyen d'une unique adresse IP, dite adresse
IPV
pour désigner une correspondance virtuelle. Le problème se pose alors de faire
correspondre différentes adresses MAC à cette mëme adresse IPV. On peut
Is concevoir d'intercaller entre machines clientes et machines serveuses, une
couche
applicative qui réalise une translation d'une adresse IPV vers différentes
adresses
IPP en fonction de critères logiciels de répartition de charge, chaque adresse
IPP
désignant l'une des machines serveuses.
2o La solution évoquée présente cependant certains inconvénients. La
translation IPV vers IPP nécessite un traitement supplémentaire qui se
ressentira
inévitablement sur les temps d'accès aux différentes machines du serveur.
D'autre
part, l'application qui effectue la translation IPV vers IPP nécessite une
machine
pour s'exécuter. On pourrait utiliser un routeur spécialisé possédant des
2s fonctionalités pour exëcuter cette application, cependant cette solution
n'est pas
envisageable avec un routeur quelconque ne possédant pas ces fonctionalités.
Exécuter cette application dans l'une des machines du serveur, augmente le
temps
d'accès à la machine finale par transit intermédiaire d'un paquet à
transmettre sur la
machine qui exécute l'application précédemment mentionnée, avant d'atteindre
la
3o machine finale. Un inconvénient supplémentaire se présente si la machine
qui
exécute ladite application, est défaillante. II est alors nécessaire de
transférer
l'exécution de l'application sur une autre machine. Ceci risque de perturber
l'accessibilité au serveur.


CA 02206737 1997-06-03
6
Un objet particulier de l'invention est de rendre transparent aux machines
clientes d'un serveur de données informatiques la répartition de charge sur
différentes machines qui constituent ledit serveur, quelques soient les
modifications
s de capacité de charge offerte par ces différentes machines du dit serveur,
et ceci
sans nécessiter de couche supplémentaire aux couches protocolaires réseau
existantes si le serveur était constitué d'une unique machine.
L'invention consiste alors en une architecture en réseau comprenant un
lo serveur de données constitué de plus d'une machine informatique serveuse,
caractérisée en ce que
- au moins deux machines informatiques serveuses possèdent la même
adresse physique MAC,
- une adresse protocolaire réseau IPV est affectée à ladite adresse physique
is MAC pour établir des connexions de machines clientes avec une machine
virtuelle
unique,
- chaque machine informatique serveuse comprend des moyens de filtrage de
façon à ce que chaque connexion d'une machine cliente avec ladite machine
virtuelle corresponde à une unique connexion effective avec une et une seule
2o machine informatique serveuse,
- les dits moyens de filtrage de chaque machine informatique serveuse
prennent en compte au moins une indication d'état de chaque machine
informatique
serveuse possédant la même adresse physique MAC.
2s Ainsi, les couches réseau et transport ne distinguent pas physiquement les
machines informatiques serveuses, virtuellement vues, et ce jusqu'au niveau
physique des liaisons, comme une seule machine informatique. Pour se
différencier
physiquement des autres machines adressées physiquement de façon identique,
c'est chaque machine physique qui détermine son adaptabilité à rendre une
liaison
3o effective en fonction de l'état des machines informatiques possédant la
même
adresse.
L'invention est particulièrement utile dans un procédé pour établir au moins
une connexion (IPC,NPC,IPV,NPS) d'un port NPC d'une machine cliente d'adresse


CA 02206737 1997-06-03
7
protocolaire inter-réseau IPC avec un port NPS d'un serveur d'adresse
protocolaire
inter-réseau IPV constitué d'au moins deux machines informatiques ayant la
même
adresse physique MACO. Le procédé comprend une étape pour rendre effective la
connexion (IPC,NPC,IPV,NPS) avec une unique machine informatique d'adresse
s MACO en fonction d'un critère sur la valeur IPC ou NPC déterminé par la
machine
informatique d'adresse MACO sur laquelle la connexion est effective et en
fonction
de l'état des autres machines d'adresse MACO.
Un avantage supplémentaire est procuré lorsque les moyens de filtrage
lo assurent qu'aucune rupture de connexion ne s'effectue en cas d'arrêt
programmé ou
de démarrage d'une machine serveuse. Pour ce faire, le procédé comprend une
étape transitoire sur changement d'état d'une machine d'adresse MACO dans
laquelle des paquets de réinitialisation, émis sur détection de paquets ne
correspondant pas à une connexion effective, ne sont pas transmis de la couche
is réseau à la couche physique.
Un mode préféré de mise en oeuvre de l'invention, décrit en référence aux
figures qui suivent, permet de mieux comprendre l'invention et l'enseignement
qui en
résulte.
La figure 1 présente une architecture avec un serveur constitué de deux
machines informatiques ayant chacune une adresse physique distincte.
La figure 2 présente une architecture avec un serveur constitué de deux
2s machines informatiques, physiquement distinctes, ayant une même adresse
physique.
La figure 3 présente un exemple de moyen de filtrage pour deux machines
ayant la même adresse physique.
La figure 4 présente une architecture avec un serveur constitué de plus de
deux machines informatiques, physiquement distinctes, ayant une même adresse
physique.


- CA 02206737 1997-06-03
8
La figure 5 présente un exemple de moyen de filtrage pour plus de deux
machines ayant la même adresse physique.
s Sur la figure 1, un serveur 3 de données informatiques est constitué de deux
machines informatiques 1 et 2 raccordées sur un réseau local 4. Chacune des
machines 1 et 2 est équipée d'une carte réseau avec des adresses respectives
MAC1 et MAC2 qui permettent de distinguer chacune des machines au niveau de la
couche physique du réseau local 4.
lo
Ainsi, une machine cliente 10 raccordée sur le réseau local 4 peut émettre
des paquets de données vers la machine 1, respectivement la machine 2, en
plaçant
dans l'entête d'un paquet la valeur de l'adresse MAC1, respectivement la
valeur de
l'adresse MAC2. La machine cliente 10 étant équipée d'une carte réseau avec
une
is adresse MAC6, les machines 1 et 2 peuvent émettre des paquets de données
vers
la machine 10, en plaçant dans l'entête d'un paquet, la valeur de l'adresse
MAC6.
Les machines clientes 5 à 9 ne sont pas raccordées directement au réseau
local 4 et ne connaissent pas à priori les adresses MAC des machines 1 et 2
qui
2o sont propres à la constitution physique du réseau local 4
On définit alors une couche supérieure à la couche physique précédemment
décrite de façon à ce que les machines 5 à 9 puissent établir des connexions
avec
les machines 1 et 2 au moyen d'un réseau étendu 12. Cette couche supérieure,
2s connue sous le nom de couche réseau affecte à chaque machine 1, 2, 5, 6, 7,
8, 9,
respectivement une adresse IP1, IP2, IPC1, IPC2, IPC3, IPC4, IPCS, IPC6 de
façon à distinguer chacune des machines sur le réseau étendu 12,
indépendamment
des connexions physiques qui relient ces machines.
3o Un routeur 13 est destiné à faire une corrélation entre la couche réseau et
la
couche physique sur le réseau local 4. Pour cela, il dispose d'une table de
translation d'adresse qui, à chaque adresse de protocole inter-réseau IP1,
IP2, IPC6
d'une machine 1, 2, 10 directement raccordée sur le réseau local 4, associe
l'adresse MAC1, MAC2, MAC6 de la couche physique.


CA 02206737 1997-06-03
9
Ainsi, lorsqu'un paquet de données se présente avec, dans son entéte, une
adresse IP concernant une machine du réseau local 4, le routeur 13 consulte sa
table de translation pour déterminer l'adresse MAC correspondant à l'adresse
IP de
s destination. II place l'adresse ainsi déterminée dans l'entête du paquet de
donnée.
De cette façon, la machine destinatrice du paquet de donnée le réceptionne au
moyen de sa carte réseau lorsqu'elle voit passer ce paquet de données sur le
réseau local 4. La table de translation est remplie grâce au protocole ARP.
Io La machine cliente 5 peut établir une connexion avec par exemple la machine
1, au moyen des adresses IP via le routeur 13. Les explications qui suivent
restent
valables pour la machine 2.
La machine 1 offre l'accès à différents services identifiés chacun au moyen
Is d'un numéro de port serveur NPS. Pour accéder à l'un de ces services, la
machine
cliente 5 établit une connexion avec la machine 1. Cette connexion est
identifiée au
moyen d'un quadruplé (IPC1, NPC, IP1, NPS) où NPC est un numéro de port client
qui permettra à la machine 5 de reconnaître à quelle requête d'accès
correspond la
connexion établie. La machine cliente génère les numéros NPC suivant un
2o algorithme qui lui est propre, très souvent en les choisissant dans une
liste de
numéros successifs disponibles.
Dans le quadruplé (IPC1, NPC, IP1, NPS), les valeurs IPC1 et IP1 permettent
au routeur 13 d'établir physiquement la connexion entre la machine 1 et la
machine
2s 5 au moyen de l'adresses MAC1 et de liaisons physiques sur le réseau étendu
12.
Le mécanisme précédemment expliqué reste valable pour les machines
clientes 6 à 9 sur le réseau étendu 12 et pour la machine 10 sur le réseau
local 4
qui, possèdant sa propre table de translation d'adresses, ne fait pas passer
ses
3o paquets par le routeur 13.
Toutes les machines du serveur 3 sont aptes à offrir tous les services du
serveur 3, chaque service étant identifié par un port NPS. Pour effectuer un
partage
de charge des connexions sur les machines 1 et 2 du serveur 3, il suffit de


CA 02206737 1997-06-03
demander par exemple aux machines 5, 7 et 9 d'établir des connexions avec
l'adresse IP1 et aux machines 6; 8 et 10 d'établir des connexions avec
l'adresse IP2.
Si la machine 2 est mise en défaut, il est possible d'affecter à ce moment les
s deux adresses IP2 et IP1 à la machine 1. Au moyen du protocole ARP, le
routeur 13
modifie sa table de translation et l'adresse IP2 correspond à l'adresse MAC1.
Ainsi,
la mise en défaut de la machine 2 reste transparente aux machines clientes qui
continuent à établir des connexions avec les adresses IP1 et IP2 qui leur sont
permises. Lorsque la machine 2 redevient valide, le routeur 13 met en oeuvre
le
lo protocole ARP de façon à revenir à la table de translation initiale dans
laquelle les
adresses IP2 et IP1 correspondent respectivement aux adresses MAC2 et MAC1.
Le mécanisme précédemment expliqué s'applique de façon symétrique si la
machine 1 est mise en défaut.
ls
Lors de la première mise en service d'une machine supplémentaire pour
constituer le serveur 3, il faut informer les machines clientes d'une nouvelle
répartition de façon à équilibrer la charge entre les différentes machines
constituant
le serveur 3. Un gestionnaire du serveur 3 définit un nouveau sous ensemble de
2o machines clientes auxquelles il demande de se connecter sur la nouvelle
machine
serveuse. La répartition de charge reste soumise aux décisions des machines
clientes de se connecter effectivement sur la machine serveuse supplémentaire,
ce
dont n'est pas réellement maître le gestionnaire du serveur 3. Par contre la
mise en
défaut d'une machine ne remonte que jusqu'au routeur 13 et reste donc
2s transparente sur le réseau étendu 12.
Un avantage supplémentaire de l'invention est procuré par l'adressage de
toutes les machines constituant le serveur 3 au moyen d'une seule adresse IPV
sur
le réseau étendu 12, comme nous l'expliquons à présent en référence à la
figure 2
3o pour deux machines.
Chacune des machines 1 et 2 est équipée d'une carte réseau avec la même
adresse MACO. Ainsi, cette adresse commune MACO ne permet pas de distinguer
chacune des machines au niveau de la couche physique sur le réseau local 4.


CA 02206737 1997-06-03
11
Les machines clientes établissent des connexions avec le serveur 3 au
moyen d'une seule adresse de protocole inter-réseau nommée IPV car le serveur
3
est vu virtuellement comme une seule machine, bien que constitué de deux
s machines informatiques 1 et 2 différentes.
II est possible d'affecter plusieurs adresses IP de protocole inter-réseau à
une
même adresse physique MAC. La machine 1 possède alors une adrésse IP1 de
protocole inter-réseau pour lui réserver des connexions non partagées, au
niveau de
lo la couche réseau, avec la machine 2. De même, la machine 2 possède une
adresse
IP2 de protocole inter-réseau pour lui réserver des connexions non partagées,
au
niveau de la couche réseau, avec la machine 1. La table de translation
d'adresses
du routeur 13 fait correspondre aux trois adresses IP1, IP2 et IPV la même
adresse
physique MACO.
ls
Quelle que soit l'adresse IP1, IP2 ou IPV figurant dans l'entête d'un paquet
circulant sur le réseau local 4, ce paquet est réceptionné physiquement par
les deux
machines 1 et 2 car la table de translation le destine à l'adresse physique
MACO
commune aux deux machines.
La réception d'un paquet adressé au moyen de l'adresse IPV ne pose pas de
problème car chacune des deux machines 1 et 2 reconnaît que l'adresse IPV
correspond bien à l'adresse MACO dont elle est détentrice. Cependant, les
paquets
sont reçus sur les deux machines. II faut noter dans ce cas que la réception
d'un
2s paquet adressé au moyen de l'adresse IP1 par la machine 2, respectivement
d'un
paquet adressé au moyen de l'adresse IP2 par la machine 1, risque d'engendrer
un
défaut émis par la machine 2, respectivement émis par la machine 1, car
l'adresse
IP1, respectivement l'adresse IP2, ne correspond pas à l'adresse MACO dans la
machine 2, respectivement dans la machine 1.
II convient d'empêcher l'émission du défaut précédemment cité pour ne pas
perturber les connexions.


CA 02206737 1997-06-03
12
II est possible de filtrer les paquets de données non destinés à une machine,
en entrée de cette machine. II est alors nécessaire que la machine 1,
respectivement la machine 2, détecte dans l'entête du paquet de données,
l'adresse
IP2, respectivement l'adresse IP1 avant le passage du paquet de données de la
s couche physique à la couche réseau. Nous verrons dans la suite de la
description
que l'enseignement de l'invention peut s'étendre à plus de deux machines, il
est
alors nécessaire de filtrer, dans une machine considérée, les paquets de
données
pour toutes les adresses IP, détenues par les autres machines avec la même
adresse MACO, qui ne sont pas détenues par la machine considérée.
lo
II est encore possible de filtrer l'émission d'un défaut (ICMP redirect)
généré
par l'incompatibilité d'une adresse IP avec l'adresse MACO d'une machine
considérée, en sortie de cette machine.
ls Si la réception d'un paquet, adressé au moyen de l'adresse IPV, par toutes
les machines, ne pose pas de problème, il faut cependant prendre garde au fait
que
toutes les machines recevant ce paquet peuvent être tentées d'émettre des
paquets
de données en réponses au paquet reçu. Si les paquets de données en réponse au
paquet reçu sont identiques pour toutes les machines, cela ne pose pas de
2o problème supplémentaire car les protocoles de niveau supérieur tels TCP
sont
prévus de façon standard pour gérer la perte et la duplication de paquets de
données.
Si les paquets de données en réponse au paquet reçu sont différents pour au
2s moins deux machines, un problème se pose de savoir quels sont les paquets
val ides.
Ce problème est résolu en dotant chacune des machines 1, 2, de moyens de
filtrage de façon à ce que chaque connexion définie par un quadruplé (IPC,
NPC,
3o IPV, NPS) ne soit effective qu'avec une seule des machines constituant le
serveur 3.
La figure 3 présente un exemple préféré de moyens de filtrage à mettre en
oeuvre.


CA 02206737 1997-06-03
13
Ces moyens de filtrage sont décrit à l'aide d'un graphe d'états propre à
chaque machine 1, 2 et mis en oeuvre au moyen d'un logiciel exécuté dans
chaque
machine 1, 2.
Les conventions suivantes sont utilisées pour lire ce graphe. Une flèche
descendante fait passer l'état de la machine d'une étape à la suivante si la
transition, représentée par un trait horizontal qui traverse cette flèche, est
valide. Un
double trait horizontal représente une disjonction logique de prise en compte
lo d'étapes précédentes ou d'activation d'étapes suivantes. Un simple trait
horizontal
auquel arrivent ou duquel partent plusieurs flèches, représente une
conjonction
logique de prise en compte de plus d'une étape précédente ou d'activation de
plus
d'une étape suivante.
ls L'étape 15 représente l'état inactif de la machine, c'est-à-dire
essentiellement
que la machine ne réceptionne ni n'émet aucun paquet de données sur le réseau
local 4.
La transition 16 démarre la machine pour la placer dans un état
2o correspondant à l'activation de l'étape 17, jusqu'à ce que la machine
revienne dans
l'état de l'étape 15, elle émet à intervalles réguliers des paquets de données
sur le
réseau local 4 pour signaler qu'elle est dans un état actif, c'est-à-dire apte
à
accepter des connexions. Ces paquets de données sont par exemple adressés à
toutes les machines qui constituent le serveur 3, au moyen de l'adresse IPV et
sont
2s caractéristiques de la machine qui les émets. Jusqu'à ce que la machine
considérée
revienne dans l'état de l'étape 15, elle réceptionne les paquets
caractéristiques des
états de chacune des machines constituant le serveur 3. Si la machine
considérée
détecte que l'autre machine est active, la transition 18 active l'étape 19. Si
la
machine considérée détecte que l'autre machine est inactive, la transition 20
active
30 l'étape 21.
En étape 19, la machine considérée accepte toute nouvelle connexion de
type (IPC, NPC, IPV, NPS) qui lui est dédiée et ceci jusqu'à désactivation de
l'étape
23. Différentes possibilités s'offrent pour dédier une connexion à la machine


CA 02206737 1997-06-03
14
considérée. Par exemple, les connexions avec NPC impaire sont dédiées à la
machine 1 et les connexions avec NPC paire sont dédiées à la machine 2.
Une même machine cliente peut être servie par la machine 1 ou la machine 2,
s si la machine cliente incrémente son numéro NPC à chaque connexion, elle est
alors alternativement servie par la machine 1 et la machine 2. II est possible
aussi
de dédier les connexions avec IPC impaire à la machine 1 et avec IPC paire à
la
machine 2, une même machine cliente est alors servie systématiquement par la
machine 1 ou systématiquement par la machine 2.
lo
Le choix sur une adresse inter-réseau IPC ou sur un numéro de port NPC
d'une machine cliente constitue un critère déterministe pour dédier une
connexion à
une machine serveuse unique parmi celles constituant le serveur 3.
ls A partir de l'étape 17, la machine considérée reçoit tous les paquets de
données adressés physiquement sur l'adresse MACO. A partir de l'étape 19, la
machine considérée filtre les paquets dont, soit l'adresse IPC, soit le numéro
de port
NPC, sont ceux de connexions qui ne lui sont pas dédiées. C'est-à-dire que la
machine considérée ne réceptionne pas, au niveau de la couche réseau, ces
2o paquets. Elle peut par exemple constamment libérer la place mémoire que
viennent
occuper ces paquets.
Cependant, en étape 19, la machine considérée ne réceptionne pas encore
tous les paquets dont, soit l'adresse IPC, soit le numéro de port NPC, sont
ceux de
zs connexions qui lui sont normalement dédiées. En effet, il se peut que
certains de ces
paquets soient liés à des connexions établies avec l'autre machine avant que
la
machine considérée n'atteigne l'étape 19. La machine considérée réceptionne
alors
les seuls paquets liés à une connexion établie avec elle. La machine
considérée
interprète les paquets reçus non liés à une connexion établie comme une erreur
et
3o émet de ce fait un paquet de réinitialisation de connexion.
Comme nous l'avons vu précédemment, les paquets de réinitialisation sont
filtrés en sortie, c'est-à-dire qu'ils ne sont pas transmis à la couche
physique de
communication. Ces paquets sont en fait déviés pour remettre à zéro un
compteur


CA 02206737 1997-06-03
d'horloge dont l'atteinte d'un seuil prédéterminé est interprétée comme une
probabilité nulle de recevoir des paquets de données non liés à une connexion
établie avec la machine considérée. la transition 22 active alors l'étape 23.
s En étape 23, la machine considérée réceptionne tous les paquets dédiés. Les
paquets de réinitialisation, sur détection de paquets réceptionnés non liés à
une
connexion établie, ne sont plus filtrés en sortie, c'est-à-dire que le
contrôle de
sécurité sur la compatibilité des paquets reçus avec les connexions établies,
fonctionne à nouveau. La machine considérée continue à accepter
l'établissement
lo de nouvelles connexions dédiées. Dès l'activation de l'étape 19, un
compteur CPTD
non représenté, est incrémenté par chaque établissement de connexion dédiée et
décrémenté par chaque destruction de connexion dédiée.
Sur demande d'arrët de l'autre machine, la transition 24 active l'étape 21.
Sur
ls demande d'arrêt de la machine considérée, la transition 28 active l'étape
29.
En étape 21, la machine considérée accepte toute nouvelle connexion,
dédiée ou non dédiée. Un compteur CPTND non représenté, est incrémenté par
chaque établissement de connexion non dédiée et décrémenté par chaque
2o destruction de connexion non dédiée.
En étape 21, la machine considérée ne réceptionne pas encore
nécessairement tous les paquets. En effet, il se peut que certains de ces
paquets
soient liés à des connexions établies avec l'autre machine avant que la
machine
2s considérée n'atteigne l'étape 21. La machine considërée réceptionne alors
les seuls
paquets liés à une connexion établie avec elle. La machine considérée
interprète les
paquets reçus non liés à une connexion établie comme une erreur et émet de ce
fait
un paquet de réinitialisation de connexion.
3o Pour éviter de signaler des erreurs à mauvais escient, les paquets de
réinitialisation ne sont pas transmis à la couche physique de communication
mais
déviés vers un compteur d'horloge qui fonctionne à la manière d'une
temporisation
en s'incrémentant régulièrement dans le temps. A chaque détection d'émission
d'un
paquet de réinitialisation, le compteur est remis à zéro. Ainsi l'atteinte
d'un seuil


- CA 02206737 1997-06-03
16
prédéterminé signifie qu'aucun paquet de réinitialisation n'a été émis pendant
la
durée liée à ce seuil prédéterminé. Ceci est interprété comme l'absence de
connexions établies sur l'autre machine. La transition 26 active alors l'étape
27.
s En étape 27, la machine considérée réceptionne tous les paquets, dédiés ou
non dédiés. Les paquets de réinitialisation sur détection de paquets
réceptionnés
non liés à une connexion établie, ne sont plus filtrés en sortie, c'est-à-dire
que le
contrôle de sécurité, sur la compatibilité des paquets reçus avec les
connexions
établies, fonctionne à nouveau. La machine considérée continue à accepter
lo l'établissement de toute nouvelle connexion, dédiée ou non dédiée. Sur
demande
d'arrêt de la machine considérée, la transition 28 active l'étape 29. Au
démarrage de
l'autre machine, la transition 30 active l'étape 31.
Au passage de la transition 28, la machine considérée informe l'autre
ls machine de sa demande d'arrêt.
En étape 29, la machine considérée refuse l'établissement de toute nouvelle
connexion et filtre tout paquet autre qu'un paquet lié à une connexion
précédemment établie. Dès que tous les paquets liés à une connexion ont été
reçu
20 ou émis, cette connexion est détruite. Ceci décrémente ainsi le compteur
CPTD ou
le compteur CPTND.
Les compteurs CPTD et CPTND à zéro indiquent que plus aucune connexion
n'est active sur la machine considéré. La transition 32 ramène alors la
machine dans
2s l'état de l'étape 15.
En étape 31, la machine considérée refuse l'établissement de toute nouvelle
connexion non dédiée et filtre tout paquet non dédié, autre qu'un paquet lié à
une
connexion précédemment établie. Dès que tous les paquets liés à une connexion
3o non dédiée ont été reçus ou émis, cette connexion est détruite. Ceci
décrémente le
compteur CPTND.


- CA 02206737 1997-06-03
17
Le compteur CPTND à zéro indique que plus aucune connexion non dédiée
n'est active sur la machine considérée. La transition 34, puis les transitions
18 et 22,
ramènent la machine considérée dans l'état de l'étape 23.
s En se référant à la figure 2, ni les machines clientes 5 à 9, ni le routeur
13,
n'ont connaissance de l'état des machines 1 et 2.
Si les connexions (IPC1, NPC, IPV, NPS), (IPC3, NPC, IPV, NPS), (IPCS,
NPC, IPV, NPS) sont dédiées à la machine 1, les connexions seront traitées par
la
lo machine 1, lorsque celle-ci sera dans l'étape 23 et par la machine 2
lorsque la
machine 1 sera dans l'étape 15 avec la machine 2 dans l'étape 27.
Si les connexions (IPC2, NPC, IPV, NPS), (IPC4, NPC, IPV, NPS) sont
dédiées à la machine 2, les connexions seront traitées par la machine 2
lorsque
ls celle-ci sera dans l'étape 23 et par la machine 1 lorsque la machine 2 sera
dans
l'étape 15 avec la machine 1 dans l'étape 27.
Nous voyons ainsi que chacune des machines 1 et 2 dans l'étape 23 de son
graphe d'état respectif, réalise un partage de charge des connexions. La
machine 1
2o dans l'étape 27 avec la machine 2 dans l'étape 15 réalise la fonction de
secours de
la machine 2 par la machine 1. De même fa machine 2 dans l'étape 27 avec la
machine 1 dans l'étape 15 réalise la fonction de secours de la machine 1 par
la
machine 2.
2s La machine 1 dans l'étape 19 et la machine 2 dans l'étape 31 correspondent
à un état transitoire précédant le partage de charge. La machine 1 dans
l'étape 29 et
la machine 2 dans l'étape 21 correspondent à un état transitoire précédant le
secours de la machine 1 par la machine 2.
3o On peut encore prévoir que lorsqu'une des machines clientes 5 à 9 établi
une
connexion avec le serveur 3 au moyen de l'adresse IPV, une connexion avec un
port
client NPC paire soit dédiée à la machine 2 et une connexion avec un port
client
NPC impaire soit dédiée à la machine 1. Les explications ci-dessus restent
valables.


CA 02206737 2000-02-03
18
Sur la figure 4, le serveur 3 est constitué de n machines informatiques 1, 2,
35, 36, 37. Ici n=5, cependant les explications qui suivent restent valables
pour un
nombre quelconque de machines.
Plusieurs machines clientes 5 à 10 établissent des connexions avec le
serveur 3 via le réseau étendu 12, au moyen du routeur 13. Chacune des
machines
clientes 5 à 10 étant identifiée par le routeur 13 au moyen d'un adresse de
protocole
inter-réseau IPC1 à IPC6, il est sans importance que les machines 8 et 9 ne
soient
io pas physiquement raccordées sur le réseau local 4 ou que la machine 10 soit
physiquement raccordée sur le réseau local 4.
Pour envoyer une requête au serveur 3 et en recevoir une réponse, une
machine cliente 5 établit une connexion avec une machine informatique du
serveur.
Un avantage essentiel de l'invention est de pouvoir établir des connexions
avec une
machine quelconque du serveur 3 au moyen d'une unique adresse de protocole
inter-réseau IPV, commune à toutes les machines du serveur 3. Toutes les
machines du serveur 3 sont aptes à offrir tous les services du serveur 3,
chaque
service étant identifié par un port NPS. Pour envoyer une requête et recevoir
une
Zu réponse sur l'un de ses ports NPC, la machine 5 établit une connexion
identifiable
par un quadruplé (IPCS, NPC, IPV, NPS).
Cependant, la connexion (IPCS, NPC, IPV, NPS) est physiquement établie
avec une seule machine du serveur 3 au moyen d'une fonction de filtrage, mise
en
oeuvre dans chaque machine.
La figure 5 présente un exemple préféré de moyens de filtrage à mettre en
oeuvre.
,c~ Considérons l'une des machines 1, 2, 35, 36, 37 dans laquelle est mise en
oeuvre la fonction de filtrage.
Au démarrage de la machine considérée, la transition 38 met la machine dans
l'état de l'étape 39 où sont déterminées les connexions dédiées à cette
machine.


CA 02206737 1997-06-03
19
A partir de l'étape 39, la machine considérée communique son état aux autres
machines par émission régulière de paquets d'état semblables à ceux décrits en
référence à la figure 3. Les paquets d'état émis par les autres machines du
serveur
s 3 permettent de déterminer un nombre k de machines actives.
La détermination des connexions dédiées peut se faire à partir des adresses
IPC ou des numéros de port NPC. Les explications qui suivent sur un exemple de
détermination à partir des numéros de port NPC sont valables pour une
lo détermination à partir des adresses de machines clientes IPC.
Les connexions dédiées sont déterminées comme étant celles dont le reste
de la division par k est égal à un nombre J, lui-même déterminé par la machine
considérée.
Si un nombre J avait été déterminé avant modification du nombre k par
démarrage ou arrêt d'une machine du serveur 3 et que ce nombre J est inférieur
au
nombre k actuel, celui-ci reste inchangé. Sinon, le nombre J est pris égal au
nombre k.
Le couple (J, k) ayant ainsi défini une nouvelle répartition de connexions
dédiées, la transition 40 active l'étape 41 et l'étape 43.
Dans l'étape 41, la machine considérée accepte toute nouvelle connexion qui
2s lui est dédiée et filtre les autres. A chaque nouvelle connexion qui se
présente, la
machine considérée divise le numéro de port NPC de cette connexion par k et
compare le reste de la division au nombre J. Si le reste de la division est
égal au
nombre J, la connexion est acceptée.
3o Dans l'étape 41, les paquets de données acceptés sont ceux liés à une
nouvelle connexion dédiée, acceptée après avoir franchi la transition 40.
Comme
expliqué précédemment, la machine considérée émet des paquets de
réinitialisation
lorsqu'elle reçoit des paquets de données sensés être liés à une connexion
dédiée
mais pour lesquels il n'existe aucune connexion établie dans la machine
considérée


CA 02206737 1997-06-03
parce que la connexion pour ces paquets de données a été établie dans une
autre
machine avant le franchissement de la transition 40. Ces paquets de
réinitialisation
ne sont pas transmis à la couche physique mais servent à réarmer une
temporisation. Lorsque la temporisation est écoulée, on considère qu'il
n'existe plus
s de connexions dédiées sur les autres machines et la transition 42 est
valide.
Dans l'étape 43, la machine refuse toute nouvelle connexion non dédiée.
Cependant il peut exister des connexions non dédiées établies avec la machine
considérée avant le franchissement de la transition 40. Ces connexions sont
lo comptabilisées dans un compteur décrémenté à chaque destruction d'une de
ces
connexions. Le passage à zéro du compteur valide la transition 44.
Avant de franchir la transition 44, la machine considérée reçoit des paquets
de données liés à des connexions non dédiées. Pour les paquets de données liés
à
Is une connexion non dédiée qui n'est pas établie avec la machine considérée,
la
machine considérée émet des paquets de réinitialisations filtrés en sortie,
c'est-à-
dire non transmis à la couche physique du réseau local 4.
Le franchissement des transitions 42 et 44 active l'étape 45.
Dans l'étape 45, il n'existe plus de connexions non dédiées avec la machine
considérée et il n'existe plus de connexions dédiées avec les autre machines.
Tous
les paquets dédiés reçus sont normalement liés à une connexion établie avec la
machine considérée. Les paquets de réinitialisation ne sont plus filtrés en
sortie.
A tout moment, l'arrêt ou le démarrage d'une machine constituant le serveur
3, valide la transition 38 pour réactiver l'étape 39. Si l'arrët est celui de
la machine
considérée, aucune connexion ne lui sera dédiée.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2000-12-05
(22) Filed 1997-06-03
Examination Requested 1997-06-03
(41) Open to Public Inspection 1998-09-27
(45) Issued 2000-12-05
Deemed Expired 2002-06-03

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $400.00 1997-06-03
Application Fee $300.00 1997-06-03
Registration of a document - section 124 $100.00 1997-08-19
Maintenance Fee - Application - New Act 2 1999-06-03 $100.00 1999-05-17
Maintenance Fee - Application - New Act 3 2000-06-05 $100.00 2000-05-23
Final Fee $300.00 2000-08-30
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
BULL S.A.
Past Owners on Record
JOUBERT, PHILIPPE
LECONTE, THIERRY
ROCHAT, BRUNO
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Cover Page 2000-03-01 2 59
Description 2000-02-03 20 1,016
Description 1997-06-03 20 1,013
Claims 2000-02-03 2 96
Cover Page 2000-11-01 2 60
Abstract 1997-06-03 1 29
Claims 1997-06-03 2 90
Drawings 1997-06-03 5 80
Representative Drawing 1998-09-29 1 6
Representative Drawing 2000-11-01 1 5
Assignment 1997-06-03 4 111
Correspondence 1997-08-12 1 34
Assignment 1997-08-19 3 102
Fees 2000-05-23 1 38
Prosecution-Amendment 1999-10-12 2 5
Prosecution-Amendment 2000-02-03 5 202
Correspondence 2000-08-30 1 34
Fees 1999-05-17 1 41