MX2008003407A - Comunicaciones tolerantes a fallas en redes dirigidas. - Google Patents
Comunicaciones tolerantes a fallas en redes dirigidas.Info
- Publication number
- MX2008003407A MX2008003407A MX2008003407A MX2008003407A MX2008003407A MX 2008003407 A MX2008003407 A MX 2008003407A MX 2008003407 A MX2008003407 A MX 2008003407A MX 2008003407 A MX2008003407 A MX 2008003407A MX 2008003407 A MX2008003407 A MX 2008003407A
- Authority
- MX
- Mexico
- Prior art keywords
- path
- node
- packet
- network
- further characterized
- 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/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2005—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- 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/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
Un metodo para proveer comunicaciones de red tolerantes a fallas entre una pluralidad de nodos para una aplicacion, que consiste en proveer una pluralidad de trayectorias de comunicaciones iniciales a traves de una pluralidad de redes acopladas a la pluralidad de nodos, recibir un paquete de datos en un nodo de envio desde la aplicacion, el nodo de envio es una de la pluralidad de nodos, el paquete de datos esta destinado por la aplicacion a una direccion en una de la pluralidad de nodos, y seleccionar una primera trayectoria seleccionada para el paquete de datos de entre una pluralidad de trayectorias de comunicaciones iniciales en donde la primera trayectoria seleccionada es una trayectoria preferida.
Description
COMUNICACIONES TOLERANTES A FALLAS EN REDES DIRIGIDAS
Antecedentes de la Invención En un entorno de redes de computadora, múltiples nodos pueden comunicarse entre sí en una red. En caso de que la red experimentara fallas, la comunicación entre los nodos puede verse interrumpida. Breve Descripción de la Invención A continuación se presenta un resumen simplificado de la descripción con el fin de proveer un entendimiento básico al lector. Este resumen no es un panorama extenso de la descripción y no identifica elementos clave o críticos de la invención o delinea el alcance de la invención. Su único propósito es presentar algunos conceptos descritos en la presente en una forma simplificada como una introducción a la descripción más detallada que se presenta más adelante. Los siguientes ejemplos proveen comunicación de red de computadora tolerante a fallas mediante arquitecturas de red únicas que requieren consideración mínima por programa de aplicación que opera en nodos en redes. Muchas de las características se apreciarán más fácilmente conforme se entiendan mejor por referencia a la siguiente descripción detallada considerada en conjunto con los dibujos que la acompañan.
Breve Descripción de las Figuras La presente descripción se entenderá mejor a partir de la siguiente descripción detallada leída en conjunto con los dibujos que la acompañan, en los que: La figura 1 es un diagrama de bloque que muestra una arquitectura de red ejemplar. La figura 2 es un diagrama de bloque que muestra un entorno de computadora en red incluyendo dos nodos ejemplares acoplados a través de dos redes. La figura 3 es un diagrama de bloque que muestra un controlador de comunicaciones tolerante a fallas, NETFT. La figura 4 es un diagrama de bloque que muestra una arquitectura de comunicaciones tolerante a fallas incluyendo NETFT y una aplicación. La figura 5 es un diagrama de flujo que muestra datos que fluyen a través de un entorno de comunicaciones tolerante a fallas incluyendo un nodo fuente y un nodo destino acoplado mediante una Trayectoria A sobre una red 1 y una Trayectoria B sobre una red 2. La figura 6 es un diagrama de flujo que muestra datos a través del entorno de comunicaciones tolerante a fallas mostrado en la figura 5 con la adición de varias fallas de comunicaciones posibles. La figura 7 es un diagrama de bloque que muestra otro ejemplo de un controlador de comunicaciones tolerante a fallas, NETFT. La figura 8 es un diagrama de bloque que muestra una arquitectura de comunicaciones tolerante a fallas incluyendo NETFT y una aplicación. La figura 9 es un diagrama de flujo que muestra datos que fluyen a través de un entorno de comunicaciones tolerante a fallas incluyendo un nodo de fuente y un nodo destino acoplado mediante una Trayectoria A sobre una red 1 y una Trayectoria B sobre una red 2. La figura 10 es un diagrama de flujo que muestra datos que fluyen a través de un entorno de comunicaciones tolerante a fallas mostrado en la figura 9 con la adición de varias fallas de comunicaciones posibles. La figura 11 es un diagrama de bloque que muestra un entorno de computación ejemplar en el que puede implementarse la tecnología descrita con anterioridad. Números de referencia iguales se usan para designar partes iguales en los dibujos adjuntos. Descripción Detallada de la Invención La descripción detallada provista adelante en conjunto con los dibujos intenta ser una descripción de los ejemplos presentes y no pretende representar la única forma en la que los ejemplos pueden construirse o utilizarse. La descripción establece las funciones de ios ejemplos y la secuencia de pasos para construir y operar los ejemplos. Sin embargo, las mismas funciones o equivalentes y las secuencias pueden lograrse por diferentes ejemplos. Aunque los ejemplos de ia presente se describen e ilustran como implementados en un sistema de red y cómputo, el sistema descrito se provee como un ejemplo y no como una limitación. Como será evidente para los expertos en la técnica, los ejemplos de la presente son adecuados para aplicarlos en una variedad de diferentes tipos de sistemas de cómputo y redes. La figura 1 es un diagrama de bloque que muestra una arquitectura de red ejemplar 100. Una pila de red ("pila") generalmente se acopla con las aplicaciones de software a través de las interfaces de pila de red y/u otras interfaces para proveer funcionalidad de comunicaciones en red a las aplicaciones. Típicamente se dice que una aplicación está en (o acoplada a) la parte "superior" de la pila. Normalmente se dice que una red está en (o acoplada a) la parte "inferior" de la pila. Varios elementos de una pila de red puede referirse como en o cerca de la parte superior o inferior de la pila, o más arriba o abajo en la pila en relación entre sí. Por ejemplo, en la figura 1, el controlador de protocolo 130 está más arriba en la pila que NIC 180 que se muestra en la parte inferior de la pila en esta figura en particular. Varias ilustraciones de una pila de red pueden o no incluir ciertos elementos de pila, o pueden agrupar, ordenar o nombrar los elementos en diversas formas, dependiendo del propósito o enfoque de la ilustración, como se entiende por un experto en la técnica. El término "controlador" como se usa en la presente se refiere a un programa de control o similar que permite a un nodo operar con un dispositivo particular, tal como una impresora, tarjeta de interfaz de red, u otro subsistema de computadora, u operar con uno o más programas tales como pilas de red, controladores de protocolo, y/u otros programas de computadora o programación en firme o similares. Por ejemplo, un controlador de protocolo típicamente opera con una pila de red. Una aplicación puede pasar un paquete de datos a una pila destinada para una aplicación que opera en otro nodo. En este caso, los datos se dice que fluyen "hacia abajo" de la pila y son enviados sobre una red. Los daros recibidos por un nodo se dice fluyen "hacia arriba" de la pila hasta que alcanzan la aplicación destino. Dichos sistemas de redes son bien conocidos por los expertos en la técnica. En un ejemplo una pila se basa en la Especificación de Interfaz de Controlador de Red ("NDIS", por sus siglas en inglés) la cual define una interfaz de programación de aplicación estándar ("API") para tarjetas de interfaz de red ("NICs"), tales como NIC 180, y abstrae el hardware de la red de los consoladores de red. Los NDIS también especifican una interfaz estándar entre los controladores de red en capas, abstrayendo así controladores de nivel más bajo que administran hardware, tal como un controlador de minipuerto, de controladores de nivel más alto, tales como controladores de protocolo. Múltiples controladores de protocolo que se adaptan a NDIS también pueden coexistir en un solo nodo. Además, si un nodo incluye múltiples NICs, quizá porque está conectado a más de una red, las NDIS dirigen el tráfico de la red a la NIC adecuada a través de su controlador relacionado como se indica por el tráfico. Se muestra una ilustración de las NDIS en la figura 1. Otros estándares, tecnologías y/o arquitecturas de pilas de redes, tal como la Interfaz de enlace de datos abierta ("ODI"), la Interfaz de proveedor de enlace de datos ("DLPI"), la Interfaz de Controlador Uniforme ("UDI"), u otras tecnologías, pueden usarse con los siguientes ejemplos así como con modificaciones adecuadas, como entenderán los expertos en la técnica. Como cuestión de conveniencia, la terminología de NDIS y NDIS se usa con ejemplos a lo largo de la descripción, pero otros estándares, tecnologías y/o arquitecturas pueden usarse en todos estos ejemplos con las modificaciones adecuadas, a menos que se especifique de otra forma. Como se muestra en la figura 1, junto con la NIC 180 a través de NDIS 120 está el controlador de minipuerto 160. Un controlador de minipuerto típicamente interactúa con NDIS a través de una interfaz de minipuerto NDIS 162. El controlador de minipuerto 160 puede estar relacionado con la NIC 180 y puede administrar sus operaciones, incluyendo enviar y recibir datos a través de la NIC. El controlador de minipuerto 160 típicamente se interconecta con controladores de nivel más alto, tal como el controlador intermedio 140 y el controlador de protocolo 130. Un controlador de minipuerto se considera un controlador de NIC. Los minipuertos de NIC generalmente llevan a cabo las operaciones específicas de hardware necesarias para administrar una NIC particular con funcionalidad común o independiente de NIC provista por la NDIS. Un nodo puede incluir múltiples NICs con cada NIC generalmente asociado con un controlador de NIC. Algunos ejemplos en esta descripción muestran el uso del controlador de minipuertos pero, como será evidente para los expertos en la técnica, cualquier tipo de controlador de NIC o similar puede ser usado en estos ejemplos, a menos que se especifique de otra forma. El controlador de protocolo o transporte 130 se acopla a las NDIS 120 a través de una interfaz de protocolo NDIS 134. Los controladores de protocolo o los controladores de protocolo de transporte generalmente proveen la funcionalidad para crear, enviar y recibir paquetes de datos que son enviados de un nodo a otro a través de la pila de red y sobre una red. Como se conoce por los expertos en la técnica, un protocolo de transporte de suministro confiable o garantizado común puede ser TCP/IP (Protocolo de Control de Transmisión / Protocolo de Internet). El UDP (Protocolo de Datagrama de Usuario) sobre IP puede ser un protocolo de suministro no confiable o no garantizado común. Los TCP, UDP y/u otros protocolos tales como IPX/SPX (Intercambio de Paquetes entre Redes / Intercambio de Paquetes Secuenciados), pueden usarse con los siguientes ejemplos a menos que se establezca lo contrario. Los controladores intermediarios de NDIS ("IM") 140 se muestran entre los controladores de protocolo 130 y los minipuertos NIC de NDIS 160 en la figura 1. Para los controladores de protocolo IM, los controladores parecen ser minipuertos NDIS mientras que para los controladores NIC parecen controladores de protocolo. Los paquetes de datos que fluyen hacia arriba o abajo de la pila de red pasan a través de un controlador IM 140 que puede ignorar, inspeccionar, filtrar, reenviar, redirigir y/o modificar los paquetes de datos. Un controlador intermedio 140 también puede ser conocido como un controlador de filtro. La figura 2 es un diagrama de bloque que muestra un entorno de cómputo en red 200 incluyendo dos nodos de ejemplo 210 y 260 acoplados a través de dos redes 202 y 282. Los nodos 210 y 260 pueden ser las dos computadoras personales ("PCs"), computadoras de clientes, servidores, huéspedes, laptops, dispositivos portátiles, dispositivos electrónicos de consumo, o cualquier otro tipo de dispositivo de cómputo o procesamiento, máquinas o sistemas. Un ejemplo no limitativo de un tipo de sistema de cómputo se describe a detalle abajo con respecto a la figura FIG. 11. Los círculos 212, 214, 262, y 264 representan NICs relacionadas con sus nodos respectivos. Un ejemplo no limitativo de un tipo de NIC se describe abajo con respecto a la figura 11 como un adaptador de red 1113. Como se usa en la presente, el término nodo se refiere a cualquier sistema de cómputo, dispositivo o proceso que es atendible de forma única, o de otra manera identificable de manera única, en una red (e.g., red 202) y que es operable para comunicar con otros nodos en la red. Por ejemplo, y sin limitar, un nodo puede ser una computadora personal, una computador de servidor, un dispositivo manual o laptop, un dispositivo de tableta, un sistema multiprocesador, un sistema basado en microprocesador, un decodificador, un dispositivo electrónico de consumo, una PC en red, una minicomputadora, una computadora mainframe, o similar. Un ejemplo no limitativo de un nodo 210, en la forma de un sistema de cómputo, se establece más adelante con respecto a la figura 11. Las redes 202 y 282 pueden ser la misma red, pueden existir en las mismas o diferentes subredes, pueden acoplarse o aislarse lógica o físicamente entre sí, pueden usar tecnologías de red similares o diferentes, etc. En particular, las redes 202 y 282 pueden ser redes dirigidas, es decir, las redes incluyendo enrutadores que reenvían paquetes de protocolo dirigibles. Los protocolos dirigibles típicamente se consideran protocolos de comunicación utilizados para dirigir datos de una red a otra. Un ejemplo de un protocolo dirigible es TCP/IP. El envío de un paquete de datos en una forma dirigible implica usar un protocolo de transporte dirigible para dar formato y/o enviar el paquete de datos. Los expertos en la técnica estarán familiarizados con los protocolos dirigibles y las topologías, sistemas y arquitecturas de redes. En un ejemplo, las redes 202 y 282 pueden ser independientes entre sí de tal forma que si hay un problema o falla con una red es poco probable que afecte la condición operativa de la otra. En otros ejemplos, pueden usarse tres o más redes. En ejemplos en los que se desean grados mayores de tolerancia a fallas, puede emplearse un gran número de redes junto con la conectividad relacionada de nodos a esas redes, incluyendo un número similar de NICs instaladas en un nodo. NIC 212, relacionada con el nodo 210, se muestra con una dirección ejemplar de 172.56.48.37 y está acoplada con la red 1202. NIC 214, también relacionada con el nodo 210, se muestra con una dirección ejemplar de 197.71.48.38 y está acoplada a la red 2282. NIC 262, relacionada con el nodo 260, se muestra con una dirección ejemplar de 172.56.48.38 y también está acoplada a la red 1202. NIC 264, también relacionada con le nodo 260, se muestra con una dirección ejemplar de 197.71.48.39 y también es acoplada a la red 2282.
Estas direcciones pueden, en la práctica, ser direcciones IPv4 o IPv6 o similares, o cualquier otro tipo de dirección de red típicamente relacionado con el protocolo utilizado. Cada nodo puede incluir una o más NICs. Las flechas 201 y 203, también mostradas en la figura 11 como la flecha 1114, representan una primera ruta o trayectoria de comunicaciones ("Trayectoria A") sobre la red 1202 entre los nodos 210 y 260. Las flechas 281 y 283 representan una segunda ruta o trayectoria de comunicaciones ("Trayectoria B") sobre la red 2282 entre los nodos 210 y 260. En la práctica, puede haber una o más trayectorias sobre una o más redes entre los dos o más nodos en el entorno 200. El término "trayectoria" como se usa en la presente se define como una ruta de comunicaciones, o enlace de comunicaciones, entre los nodos en una red. Dicha ruta o enlace puede ser dinámico en que la ruta exacta entre nodos puede cambiar en el transcurso del tiempo. Los bloques 216 y 266 representan una aplicación y una pila de red, incluyendo un controlador de comunicaciones tolerante a fallas ("FT"), provisto en cada uno de los nodulos 210 y 260. El controlador FT del bloque 216 se muestra con una dirección ejemplar de 10.0.0.1 y el controlador FT de bloque 266 se muestra con una dirección ejemplar de 10.0.0.2. Estas direcciones se consideran típicamente direcciones virtuales, Estas direcciones pueden ser direcciones IPv4 o IPv6 o similares, o cualquier otro tipo de red o dirección de comunicación. Los controladores FT pueden o no tener direcciones virtuales como se muestran en los diversos ejemplos siguientes. Una pila de red tolerante a fallas es una pila de red que incluye un controlador FT, tal como NETFT descrito abajo en relación con la figura 3, o similar. Un controlador FT, tal como NETFT, que opera en combinación con una pila de red típicamente permite que los nodos se comuniquen entre sí vía una o más trayectorias de comunicaciones, tal como la Trayectoria A y la Trayectoria B, sobre una o más redes. En caso de que fallara cualquiera de estas trayectorias de comunicaciones, los nodos pueden continuar comunicándose en al menos una trayectoria operativa. Dicha falla en la trayectoria puede resultar de la falla de una NIC o la falla de cualquier elementos de una trayectoria, incluyendo conexiones, cableado u otros medios de comunicación (incluyendo radiofrecuencia ("RF") o infrarrojo ("IR") y similar), enrutadores, núcleos, interruptores, cortafuegos, Proveedores de Servicios de Internet ("ISPs"), falla de energía en cualquier nodo, dispositivo o sistema de la red, o similares. En un ejemplo, una falla de comunicación puede dar como resultado en un evento de plug-and-play ("PnP"). Un evento PnP puede indicar la eliminación de una NIC de su nodo o un cambio de sentido en el medio. Una desconexión del sentido en el medio, por ejemplo, normalmente resulta de una falla que provoca que la NIC pierda la señal o vehículo en el medio de red, tal como un cable de red, enlace RF o IR o similar. Una desconexión en el sentido del medio puede ser provocada al desconectar el cable de red o vehículo de la NIC o al apagar el otro extremo del cable (un núcleo o interruptor, por ejemplo). Una conexión de sentido en el medio es típicamente lo opuesto, tal como reconectar el cable, re-energizar el núcleo o interruptor o similar. Estos tipos de eventos, también conocidos como eventos de conectividad, son generalmente eventos locales ya que ocurren en o están próximos al propio nodo. Dichos eventos de conectividad local típicamente resultan en una indicación de evento, tal como un evento PnP o similar, sobre un nodo. En otro ejemplo, una falla en la comunicación puede detectarse al usar paquetes heartbeat enviados entre nodos. El fracaso de dicho paquete heartbeat puede indicar la falla de una trayectoria entre nodos. Los paquetes heartbeat tienden a ser marcados de tal forma que el controlador FT puede detectarlos al recibirlos y retirarlos del flujo del paquete que pasa hacia la pila de red. En un ejemplo, los paquetes heartbeat pueden implementarse usando el protocolo de control de ruta ("RCP") al formar paquetes RCP. Dichos paquetes heartbeat pueden usarse para validad la condición operativa de extremo a extremo de una trayectoria. Es decir, al enviar un paquete heartbeat del nodo 210 sobre la Trayectoria A al nodo 260 y por el nodo 210 recibir una respuesta al paquete heartbeat enviado del nodo 260, generalmente se considera que la Trayectoria A es operativa de extremo a extremo. En caso de que falle el paquete heartbeat (no se recibe contestación en respuesta al heartbeat enviado), dicha falla puede indicar que la Trayectoria A no es operativa, quizá debido a la falla de algún elemento de la red 1202 tal como enrutador, interruptor, conexión, o similar, o debido a la propia falla del nodo receptor. En particular, el nodo 210 puede tener una NIC operativa 212 y sentido de medio válido, indicando que está adecuadamente conectado a la red, pero que todavía puede detectar una falla heartbeat debido a cierta falla en la red o en el sistema en la línea. La figura 3 es un diagrama de bloque que muestra un controlador de comunicaciones tolerante a fallas ejemplar, NETFT 300. El NETFT 300 puede implementarse como un controlador de minipuerto NDIS (figura 1, 160) para usarse con una pila de red NDIS y para proveer comunicaciones de red entre los nodos tolerantes de fallas de trayectoria. Esto es, las comunicaciones entre dos o más nodos pueden continuar cuando cada uno está usando un NETFT a pesar de la falla de cualquier componente en la trayectoria siempre y cuando al menos una trayectoria se mantenga operativa. En un ejemplo, la implementación del controlador FT como un controlador de minipuerto NDIS provee al menos dos beneficios. El primero, debido a que dicho controlador FT generalmente yace por debajo de cualquier controlador de protocolo en la pila, la confiabilidad del protocolo tiende a ser provista por cualquier controlador de protocolo confiable a un nivel más alto que generalmente no es afectado por la adición de tolerancia a fallas a nivel de enlace provista por un controlador FT. Por ejemplo, al utilizar un controlador FT en combinación con un controlador de protocolo tal como un controlador TCP/IP, el controlador FT típicamente detectará las trayectorias fallidas y los paquetes de datos sobre la trayectorias operativas de extremo a extremo independientes de cualquier controlador de protocolo. En caso de que ocurra cualquier pérdida de paquete debido al intercambio de trayectorias, el controlador de protocolo TCP/IP, que generalmente yace sobre el controlador FT en la pila, tiende a detectar dichas pérdidas y llevar a cabo cualquier reintento o reenvío de operaciones para asegurarse de que el protocolo confiable tenga éxito en la entrega del paquete. Un segundo beneficio de colocar el controlador FT por debajo del controlador de protocolo en la pila es que típicamente no se presenta degradación de la viabilidad del protocolo. Cuando se configura de tal forma, cualquier operación de encapsulación (tunneling) que un controlador FT realiza sobre un paquete de datos puede emplear un protocolo dirigible, tal como TCP o UDP, asegurando así que dicha información es dirigible, además de ser tolerante a fallas a nivel de enlace. "Encapsular de forma dirigible" un paquete de datos es encapsular un paquete de datos usando un protocolo dirigible. NETFT, como parte de una pila de red, generalmente se acopla a una aplicación de software a través de NDIS u otras interfaces de pila de red. Tal acoplamiento generalmente permite a las aplicaciones enviar y recibir paquetes de datos sobre redes acopladas a la parte inferior de la pila. En un ejemplo, las aplicaciones tienden a usar direcciones virtuales como la dirección fuente para sus paquetes de datos, esta dirección virtual es conocida como NETFT y es aplicada y comunicada a otros nodos en la red como se describen más adelante. Como se muestra en la figura 3, NETFT incluye un adaptador de minipuerto 302 (también conocido como un elemento de procesamiento) una base de datos de ruta 304, y uno o más adaptadores de monitor de ruta 306 y adaptadores de túneles 308. El adaptador de túnel 308 típicamente representa una NIC en el nodo local (o, en algunos casos, una NIC virtual) y mantiene un socket usado para encapsular paquetes a NETFT en el nodo objetivo. Típicamente hay un adaptador de túnel 308 asociado con cada NIC en el nodo local con cada NIC siendo acoplado a una red que provee una trayectoria a otro nodo. Cada red puede o no estar aislada de cualquier otra red. Un adaptador de túnel 308 típicamente se asocial con un controlador de protocolo de encapsulación y paquetes de datos de túneles a través de un protocolo de encapsulación de y hacia su NIC asociado a través de interfaces NDIS. Un ejemplo de un protocolo de encapsulación es UDP. Alternativamente, otros protocolos, tales como TCP, IPX, o SPX, pueden usarse para encapsulación. Un adaptador de túnel 308 puede volverse inactivo si la NIC o conexión de medios relacionados se vuelven inactivos. Una base de datos de ruta 304, como se implementa en
NETFT, es típicamente una estructura de datos simple, que puede localizarse en la memoria del sistema, que incluye entradas que aplican a una dirección virtual para una o más trayectoria a una NETFT similar sobre otro nodo. En un ejemplo, las aplicaciones son representadas por adaptadores de monitor de ruta tal como el adaptador de monitor de ruta 306 que típicamente está asociado con un adaptador de túnel 308. Generalmente una base de datos de ruta tal como una base de datos de ruta 304 incluirá un grupo de adaptadores de ruta para cada adaptador de túnel, cada adaptador de ruta está asociado con un nodo objetivo diferente alcanzable sobre una trayectoria relacionada con el adaptador de túnel. Al usar el TCP/IP, por ejemplo, la base de datos puede trazar una dirección virtual destino a una dirección física de un nodo remoto específico. Una base de datos de ruta 304 puede incluir también información de prioridad para cada trayectoria. Dicha información de prioridad puede usarse para indicar una trayectoria primaria o preferida a otro nodo y/o puede incluir información acerca de la velocidad de la trayectoria u otras características. Una trayectoria preferida es la trayectoria calculada por NETFT a ser usada sobre otras posibles trayectorias, cuando sea posible, con base en información de prioridad y/o condición de la trayectoria. La información de prioridad puede indicar alternativamente un algoritmo de equilibrio de carga round-robin para hacer uso de múltiples trayectorias para un nodo objetivo para equilibrar la carga de tráfico sobre las trayectorias, o permitir algún otro esquema de priorización de la trayectoria. Un ejemplo de una tabla de trazado de la base de datos de la tabla de ruta 304 se muestra en la tabla 1.
Tabla 1
Con referencia a la tabla 1 y a la figura 2, la tabla 1 muestra una tabla de trazado ejemplar como la que se usaría para el NETFT que opera en el nodo 216. La tabla 1 muestra la dirección de destino virtual 1 0.0.0.2, la dirección virtual como se muestra para el nodo 266, trazado para la dirección física 172.56.48.38 relacionada con la Trayectoria A al nodo 266 y la dirección física 197.71.48.39 asociada con la Trayectoria B al nodo 266. La trayectoria A se muestra con la primera prioridad y la Trayectoria B con la segunda prioridad. La tabla 1 se provee como un ejemplo y no pretende ser limitativa. Al enviar información del nodo 216 al nodo 266, dicha tabla de trazado se usa típicamente para encapsular un paquete destinado a la dirección destino virtual 10.0.0.2 al reenviar el paquete a través del protocolo de túnel, tal como UDP, a la dirección destino física 1 72.56.48.38, encapsulando así el paquete del nodo 216 sobre la Trayectoria A al nodo 266. Una tabla de trazado similar puede crearse en la base de datos de ruta (FIG.3, 304) para cada grupo de trayectorias entre dos nodos. Dicha tabla de trazado puede implementarse en diversas formas, usar varios esquemas de prioridad y/o almacenar otra información incluyendo la condición operativa de la trayectoria. La estructura de la tabla de trazado, el número de trayectorias, los formatos de direcciones, etc. que se muestran en la Tabla 1 se proveen como ejemplos y no intentan ser limitativos. La dirección virtual del nodo local, las direcciones virtuales del nodo remoto, y la prioridad así como otra información de trayectoria típicamente se proveen a los nodos mediante un mecanismo fuera de banda y pasan a NETFT a través de sus interfaces de NDIS. Este mecanismo fuera de banda puede ser tan simple como un administrador de sistemas usando una aplicación de administración para especificar la información, o puede ser un sistema automatizado o similar. Dichos mecanismos fuera de banda son bien conocidos por los expertos en la técnica. Como se muestra en la figura 3, el adaptador de minipuerto 302 (también conocido como el elemento de procesamiento del controlador) típicamente analiza un paquete de datos que fluye hacia abajo de la pila de red, examina la dirección virtual destino del paquete y usa información de la base de datos de ruta 304 para determinar cual adaptador de túnel 308 dirigirá el paquete de datos. Los paquetes entrantes, o paquetes de datos que fluyen de la pila, son reenviados de la pila hacia su dirección virtual de destino, el protocolo de túnel habiendo eliminado previamente los encabezados del paquete de túnel. En particular, el adaptador de túnel 308 inspecciona los paquetes entrantes y reenvía los paquetes heartbeat a un adaptador de monitor de ruta 306 y reenvía otros paquetes a la fila a través de un adaptador de minipuerto 302. Los aspectos de los paquetes de datos de encapsulación que usan un protocolo de encapsulación y la forma en la que los encabezados de protocolo son agregados y retirados por los controladores de protocolo son bien conocidos por los expertos en la técnica. El adaptador de monitor de ruta 306 típicamente representa un nodo remoto accesible sobre una trayectoria específica identificada por un adaptador de túnel asociado. El adaptador de monitor de ruta 306 típicamente proveerá una dirección física para el nodo remoto, la dirección física también corresponde a una trayectoria específica al nodo remoto. Esta dirección física se usa típicamente para trazar en una base de datos de ruta 304. Típicamente hay un adaptador de monitor de ruta para cada trayectoria diferente a un nodo remote, cada adaptador de monitor de ruta está asociado con un adaptador de túnel que representa una trayectoria. En un ejemplo, con referencia de nuevo a la figura 2, el nodo 210 se muestra acoplado al nodo 260 sobre dos trayectorias, una a través de la red 1202 ("Trayectoria A") y la otra a través de la red 2282 ("Trayectoria B"). NETFT que opera en el nodo 210 puede incluir un primer adaptador de monitor de ruta ("RMA-A") proveyendo un nodo remoto 260 de la dirección física 172.56.48.38 asociado con su NIC 262. RMA-A puede estar relacionado con un primer adaptador de túnel ("TA-A") en el nodo 210 que puede estar asociado con la Trayectoria A. NETFT en el nodo 210 también puede incluir un segundo adaptador de monitor de ruta ("RMA-B") proveyendo un nodo remoto 260 de la segunda dirección física 1 97.71 .48.39 asociada con su NIC 264. RMA-B puede estar asociado con un segundo adaptador de túnel ("TA-B") en el nodo 210 que puede estar asociado con la Trayectoria B. Con referencia a la figura 3, el adaptador de monitor de ruta 306 típicamente monitorea la salud de una trayectoria a un nodo remoto e indica una trayectoria fallida o no operativa en la base de datos de ruta 304. El monitoreo típicamente incluye recibir cualquier indicación de evento y/o notar cualquier falla de heartbeat y actualizar la base de datos 304 de forma correspondiente. En un ejemplo, un evento que indica la falla de una NIC o conexión de medios puede resultar en la desactivación del adaptador de túnel 308. En otro ejemplo, una falla en heartbeat puede dar como resultado la desactivación del adaptador de monitor de ruta 306 asociado con el nodo remoto específico para el que falló el heartbeat. La figura 4 es un diagrama de bloque que muestra un ejemplo de arquitectura de comunicaciones tolerante a fallas
216 incluyendo NETFT 300 y una aplicación 402. En este ejemplo, la aplicación 402 envía paquetes de datos a NETFT
300 a través de la pila usando una dirección de fuente virtual
217 y una dirección destino virtual que representa el nodo destino. Dichos paquetes de datos salientes fluyen hacia la trayectoria 480 de la aplicación y a través de la pila de red al controlador 300. El controlador 300 típicamente determina cuál de las posibles trayectorias deberá tomar cada paquete, en general usando información de prioridad e información de condición operativa de la trayectoria almacenada en la base de datos de ruta, y encapsula el paquete al nodo objetivo sobre la trayectoria seleccionada usando la dirección fuente física apropiada 422 o 424. La aplicación 402 puede enviar un paquete de datos a través de NETFT 300 mediante el protocolo de TCP, como se muestra en la figura 4. Alternativamente puede usarse UDP o cualquier otro protocolo. Además, como se muestra, NETFT 300 puede usar el protocolo UDP para encapsular paquetes al nodo objetivo. Alternativamente, puede usarse TCP o cualquier otro protocolo para encapsulación. Además, ejemplos alternativos pueden no hacer uso del adaptador de minipuertos o controladores NDIS pero puede usar otros mecanismos o arquitecturas para desempeñar funciones similares. Por último, los diversos elementos de la pila de red y similares pueden operar en el Modo de Usuario o un Modo Kernel, ya sea como se muestra o de otra forma, o en sistemas con o sin modos equivalentes de operación. La figura 5 es un diagrama de flujo que muestra datos que fluyen a través de un entorno de comunicaciones tolerante a fallas 500 incluyendo un nodo fuente 216 y un nodo destino 266 acoplado a través de la Trayectoria A sobre la red 1202 y la Trayectoria B sobre la red 2282. En este entorno ejemplar 500, los datos se muestran enviados desde la aplicación que opera en el nodo 216 a la aplicación que escucha en la dirección virtual destino en el nodo 266. Los paquetes de datos fluyen hacia debajo de la pila de red que opera en el nodo 216 usando el protocolo TCP en NETFT como lo muestra la trayectoria 501.
Dando por hecho, como se muestra, que la Trayectoria A es la trayectoria seleccionada, NETFT traza los paquetes de datos de dirección virtual fuente siendo usada por la aplicación a la Trayectoria A y encapsula los datos a través del protocolo UDP usando la dirección física destino de la Trayectoria A para el nodo objetivo 266, fuera NIC 1 del nodo 216 como se muestra por la trayectoria 501 y hacia la red 1202 a través del enlace 201. Los datos entonces fluyen a través de la red 1202, sobre el enlace 203 y al nodo 266, fluyendo hacia arriba de la pila de red que opera en el nodo 266 como lo muestra la trayectoria 503. Los datos fluyen entonces a través del UDP controlador de protocolo, el mismo protocolo que se usó en el lado de envío como el protocolo de encapsulación, en donde los encabezados de protocolo UDP son deshechos de los paquetes de datos que después pasan a NETFT que opera en el nodo 266. NETFT reenvía después los paquetes de datos hacia la pila a la aplicación que está escuchando en la dirección virtual destino. Las respuestas tienden a fluir en el orden inverso. La figura 6 es un diagrama de flujo que muestra datos que fluyen a través del entorno de comunicaciones tolerante a fallas 500 mostrado en la figura 5 con la adición de las diversas fallas de comunicaciones posibles 610, 612, 620, 622, y 630. Otras fallas de comunicación también son posibles. La falla 610 indica una falla de NIC 1 operando en el nodo de envío 216. Dicha falla puede ocurrir en caso de que NIC 1 sea retirado del nodo, si falla el controlador de NIC 1, si falla la propia NIC 1, o similar. La falla puede detectarse por NETFT a través de una indicación de evento, tal como un evento PnP o similar, y/o una falla heartbeat. En tal situación la Trayectoria A típicamente se considera que ha fallado y NETFT seleccionará una trayectoria operativa de extremo a extremo alternativa. Una trayectoria operativa de extremo a extremo es típicamente una trayectoria que puede entregar exitosamente datos del nodo fuente y la aplicación al nodo destino y aplicación. La falla 620 indica una falla de los medios de red que se acopla con la NICI del nodo 216. Esta falla puede deberse a un cable que ha sido desconectado de NIC 1, del cable que se desconecta de cierto dispositivo de red 1202, cuando el dispositivo de cable que está conectado en el lado de la red es apagado o falla, o similar. Este tipo de falla también puede ser detectada por NETFT a través de una indicación de evento, tal como un evento PnP o similar, y/o una falla heartbeat y una trayectoria alternativa seleccionada. La falla 630 indica una falla de algún tipo dentro de la red 202 que da como resultado paquetes de datos que no alcanzan el nodo destino 266. En este caso de falla, el nodo de envío 216 puede estar todavía acoplado a la red 202 con una indicación de sentido de medio apropiado, aunque la Trayectoria A se ha interrumpido más debajo de la red. En vista de tal falla, NETFT que opera en el nodo de envío 216 puede no detector la falla a través de una indicación de evento si las indicaciones locales muestran conectividad a la red 202 como buena, pero pueden detectar la falla a través de la falla heartbeat Trayectoria A. La falla 622 del enlace 203 y la falla 612 de NIC 1 que opera en el nodo de recepción 266 tienden a ser similar a las fallas correspondientes mostradas para el nodo 216. Pero estas fallas, no siendo locales al nodo 216 pueden no ser detectadas a través de indicaciones de evento pero sí detectadas a través de la falla heartbeat. Cualquiera de estas fallas, y otras fallas, pueden detectarse por NETFT que opera en el nodo 216 y resulta en seleccionar una trayectoria operativa de extremo a extremo alternativa, tal como la Trayectoria B sobre la red 2282. En este ejemplo, como se muestra en la figura 6, NETFT encapsula los datos hacia la trayectoria alternativa 681 y sobre la red 2282 para recibir el nodo 266. En caso de que la condición de falla sea corregida y la condición operativa de extremo a extremo restaurada en la Trayectoria A, NETFT que opera en el nodo de envío 216 puede detectar la recuperación y de nuevo hacer uso de la Trayectoria A. Además, cualquier respuesta del nodo 266 de vuelta al nodo 216 puede ser encapsulada en un modo tolerante a fallas similar por NETFT. La figura 7 es un diagrama de bloque que muestra otro ejemplo de un controlador de comunicaciones tolerante a fallas, NETFT 700. Este ejemplo es similar al ejemplo mostrado en la figura 3 pero incluye variaciones como se describe más adelante. En este ejemplo, una aplicación de software puede no necesitar el uso de direcciones virtuales. En vez de esto, una aplicación puede usar una dirección física destino a los paquetes de datos de dirección al nodo objetivo. El adaptador de protocolo 710 generalmente se acopla al adaptador de minipuerto 702 (también conocido como el elemento de procesamiento del controlador) y a un adaptador de NIC de minipuerto (no se muestra). Existe típicamente un adaptador de protocolo para cada NIC instalada en el nodo, cada adaptador de protocolo está relacionado con una NIC a través de su adaptador de NIC. Al igual que cada adaptador de protocolo está relacionado con una NIC, también está asociado con la trayectoria acoplada a la NIC. El adaptador de protocolo 710 es operable para aceptar paquetes de datos de una aplicación a través del elemento de procesamiento 702 y pasa los paquetes de datos a la NIC relacionada sin la necesidad de encapsular. El elemento de procesamiento 702 típicamente analiza un paquete de datos que fluye hacia abajo de la pila de red, examina la dirección de destino física para el paquete y usa la información de la base de datos de ruta 704 para determinar si el paquete puede ser reenviado sobre un adaptador de protocolo 710 o necesita ser encapsulado sobre un adaptador de túnel 308 al nodo objetivo. Generalmente, si la trayectoria indicada por la dirección física destino es operativa de extremo a extremo, el paquete de datos se enviará sobre esa trayectoria. De otra manera una trayectoria alternativa puede seleccionarse sobre el paquete que será encapsulado. En este ejemplo la base de datos de ruta 704 mantiene trazados de las direcciones y trayectorias físicas, junto con la prioridad y otra información como se describe con anterioridad.
Un ejemplo de una tabla de trazado de la base de datos de ruta 704 se muestra en la tabla 2.
Tabla 2
Con referencia a la tabla 2 y a la figura 2, la tabla 2 muestra una tabla de trazado ejemplar como la que se usaría para el NETFT que opera en el nodo 216. La tabla 2 muestra un trazado que incluye la dirección física de destino 172.56.48.38 relacionada con la Trayectoria A al nodo 266 y la dirección física de destino 197.71.48.39 asociada con la Trayectoria B al nodo 266. La trayectoria A se muestra con la primera prioridad y la Trayectoria B con la segunda prioridad. Al enviar información del nodo 216 al nodo 266, dicha tabla de trazado se usa típicamente para reenviar (o encapsular si es necesario) un paquete de datos destinado a la dirección física de destino 172.56.48.38 o nodo 266. Si la trayectoria relacionada con la dirección destino original es operativa, el paquete de datos tiende a ser reenviado al nodo destino sin encapsulación. Si dicha trayectoria no está disponible, entonces el paquete de datos es enviado sobre la trayectoria alternativa a la dirección física de destino 197.71 .48.39 del nodo 266 mediante encapsulación. Otros aspectos de NETFT 700 son generalmente similares a los de NETFT como se describen para la figura 3. La figura 8 es un diagrama de bloque que muestra una arquitectura de comunicaciones tolerante a fallas ejemplar 216 incluyendo NETFT 700 y una aplicación 402. En este ejemplo, la aplicación 402 envía paquetes de datos a NETFT 700 a través de la pila usando una dirección física fuente y una dirección física destino 801 representando el nodo destino. Tales paquetes de datos de salida fluyen a través de la trayectoria 880 de la aplicación y a través de la pila de red al controlador 700. El controlador 700 típicamente determina cuáles de las posibles trayectorias deberá tomar cada paquete, en general usando información de prioridad y condición operativa de la trayectoria almacenada en la base de datos de ruta, y ya sea que reenvíe el paquete al nodo objetivo sobre la trayectoria indicada por la dirección física destino original o, si dicha trayectoria no es de operación de extremo a extremo, encapsula el paquete sobre una trayectoria alternativa como se indica en este ejemplo por la ruta 882 y NIC 2892. La aplicación 402 puede enviar paquete de datos a través de NETFT 700 mediante el protocolo TCP, como se muestra en la figura 8. Alternativamente se puede usar UDP o cualquier otro protocolo. Además, como se muestra, NETFT 700 puede usar el protocolo UDP para encapsular paquetes de túnel al nodo objetivo. De manera alternativa, puede usarse TCP o cualquier otro protocolo para encapsulación. Además, otros ejemplos podrían no utilizar los NDIS controladores sino otros mecanismos o arquitecturas para realizar funciones similares. Por ultimo, los diversos elementos de la pila de red y similares pueden operar ya sea en un Modo de Usuario o un Modo Kernel, ya sea como se muestra o de otra forma, o sobre sistemas con o sin modos equivalentes de operación. La figura 9 es un diagrama de flujo que muestra datos que fluyen mediante un entorno de comunicaciones tolerante a fallas 900 incluyendo un nodo fuente 816 y un nodo destino 966 acoplado a través de la Trayectoria A sobre la red 1202 y la Trayectoria B sobre la red 2282. En este entorno ejemplar 900, los datos se muestran enviados desde la aplicación que opera en el nodo 216 a la aplicación que escucha en la dirección física destino en el nodo 266. Los paquetes de datos fluyen hacia debajo de la pila de red que opera en el nodo 216 usando el protocolo TCP en NETFT como lo muestra la trayectoria 901. Dando por hecho, como se muestra, que la Trayectoria A es la trayectoria seleccionada, NETFT envía los paquetes de datos usando la dirección física destino provista por la aplicación a través de la NIC 1 del nodo 216 sobre la Trayectoria A y la red 1202 a través del enlace 201. Después los datos fluyen a través de la red 1202, sobre el enlace 203 y al nodo 966, fluyendo hacia arriba de la pila de red en el nodo 966 como lo muestra la trayectoria 903. Después los datos fluyen a través de NETFT y el controlador de protocolo (un controlador de protocolo para el mismo protocolo que se usó en el lado de envío como el protocolo de envío) y hasta la aplicación. Las respuestas tienden a fluir en orden inverso. La figura 10 es un diagrama de flujo que muestra datos que fluyen a través del entorno de comunicaciones tolerante a fallas 900 mostrado en la figura 9 con la adición de varias fallas de comunicación posibles 1010, 1012, 1020, 1022, y 1030. Otras fallas de comunicación también son posibles. La falla 1010 indica una falla de NIC 1 que opera en el nodo de envío 816. Tal falla puede ocurrir si la NIC 1 es retirada del nodo, si falla el controlador de NIC 1, si falla la propia NIC 1, o similar. La falla puede detectarse por NETFT a través de una indicación de evento, tal como un evento PnP o similar, y/o una falla heartbeat. En tal situación la Trayectoria A típicamente se considera que ha fallado y NETFT seleccionará una trayectoria operativa de extremo a extremo alternativa.
La falla 1020 indica una falla de los medios de red que se acopla con la NICI del nodo 816. Esta falla puede deberse a un cable que ha sido desconectado de NIC 1, del cable que se desconecta de cierto dispositivo de red 1202, cuando el dispositivo de cable que está conectado en el lado de la red es apagado o falla, o similar. Este tipo de falla también puede ser detectada por NETFT a través de una indicación de evento, tal como un evento PnP o similar, y/o una falla heartbeat y una trayectoria alternativa seleccionada. La falla 1030 indica una falla de algún tipo dentro de la red 202 que da como resultado paquetes de datos que no alcanzan el nodo destino 966. En este caso de falla, el nodo de envío 816 puede estar todavía acoplado a la red 202 con una indicación de sentido de medio apropiado, aunque la Trayectoria A se ha interrumpido más debajo de la red. En vista de tal falla, NETFT que opera en el nodo de envío 816 puede no detectar la falla a través de una indicación de evento si las indicaciones locales muestran conectividad a la red 202 como buena, pero pueden detectar la falla a través de la falla heartbeat Trayectoria A. La falla 1022 del enlace 203 y la falla 1012 de NIC 1 que opera en el nodo de recepción 966 tienden a ser similares a las fallas correspondientes mostradas para el nodo 816. Pero estas fallas, no siendo locales al nodo 816 pueden no ser detectadas a través de indicaciones de evento pero sí detectadas a través de la falla heartbeat. Cualquiera de estas fallas, y otras fallas, pueden detectarse por NETFT que opera en el nodo 816 y resulta en seleccionar una trayectoria operativa de extremo a extremo alternativa, tal como la Trayectoria B sobre la red 2282. En este ejemplo, como se muestra en la figura 10, NETFT encapsula los datos hacia la trayectoria alternativa 1081 y sobre la red 2282 para recibir el nodo 966. En caso de que la condición de falla sea corregida y la condición operativa de extremo a extremo restaurada en la Trayectoria A, NETFT que opera en el nodo de envío 816 puede detectar la recuperación y de nuevo hacer uso de la Trayectoria A. Además, cualquier respuesta del nodo 966 de vuelta al nodo 816 puede ser reenviada o encapsulada, dependiendo de la condición operativa de la Trayectoria A y la Trayectoria B, en un modo tolerante a fallas similar por NETFT.
La figura 11 es un diagrama de bloque que muestra otro ejemplo de un entorno de cómputo 1100 en el que implementa la tecnología descrita con anterioridad. Puede implementarse un entorno de cómputo adecuado con numerosos sistemas de propósitos generales o sistemas de propósitos especiales. Ejemplos de sistemas bien conocidos pueden incluir, pero no limitarse a, computadoras personales ("PC"), dispositivos portátiles a mano o laptop, sistemas basados en microprocesadores, sistemas de multiprocesadores, servidores, estaciones de trabajo, dispositivos electrónicos de consumo, decodificadores, y similares. El entorno de cómputo 1100 generalmente incluye un sistema de cómputo de propósitos generales en la forma de un dispositivo de cómputo 1101 acoplado con varios dispositivos periféricos 1102, 1103, 1104 y similares. El sistema 1100 puede acoplarse a varios dispositivos de entrada 1103, incluyendo teclados y dispositivos de puntero, tal como un ratón o una trackball, a través de una o más interfaces l/O 1112. Los componentes del dispositivo de cómputo 1101 pueden incluir uno o más procesadores (incluyendo unidades de procesamiento central ("CPU"), unidades de procesamiento de gráficos ("GPU"), microprocesadores ("uP"), y similares) 1107, memoria de sistema 1109, y un bus de sistema 1108 que típicamente acopla los diversos componentes. El procesador 1107 típicamente procesa o ejecuta varias instrucciones ejecutables por computadora para controlar la operación del dispositivo de cómputo 1101 y para comunicar con otros dispositivos electrónicos y/o de cómputo, sistemas o entorno (no se muestra) a través de varias conexiones de comunicación tal como una conexión de red 1114 o similar. El bus del sistema 1108 representa cualquier número de varios tipos de estructuras de bus, incluyendo un bus de memoria o controlador de memoria, bus periférico, bus serial, un puerto de gráficos acelerado, un procesador o bus local usando cualquiera de una variedad de arquitecturas de bus, y similares.
El sistema de memoria 1109 puede incluir medios legibles por computadora en la forma de memoria volátil, tal como la memoria de acceso aleatorio ("RAM"), y/o memoria no volátil, tal como memoria de sólo lectura ("ROM") o memoria instantánea ("FLASH"). Un sistema de entrada/salida básico ("BIOS") puede almacenarse en no volátil o similar. El sistema de memoria 1109 típicamente almacena datos, instrucciones ejecutables por computadora y/o módulos de programa que comprenden instrucciones ejecutables por computadora que son inmediatamente accedidas y/o actualmente operadas por uno o más de los procesadores 1107. Los dispositivos de almacenamiento masivo 1104 y 1110 pueden acoplarse al dispositivo de cómputo 1101 o incorporarse en el dispositivo de cómputo 1101 a través del acoplamiento al bus del sistema. Dichos dispositivos de almacenamiento masivo 1104 y 1110 pueden incluir una unidad de disco magnético que lee de y/o escribe a un disco magnético removible, no-volátil (e.g., un "disco flexible ") 1105, y/o una unidad de disco óptico que lee de y/o escribe a un disco óptico no volátil tal como un CD ROM, DVD ROM 1106. De forma alternativa, un dispositivo de almacenamiento masivo, tal como un disco duro 1110, puede incluir medios de almacenamiento no removibles. Otros dispositivos de almacenamiento masivo pueden incluir tarjetas de memoria, barras de memoria, dispositivos de almacenamiento de cinta, y similares.
Cualquier número de programas de computadora, archivos, estructuras de datos, y similares pueden almacenarse en el disco duro 1110, otros dispositivos de almacenamiento 1104, 1105, 1106 y memoria del sistema 1109 (típicamente limitada por el espacio disponible) incluyendo, a manera de ejemplo, sistemas operativos, programas de aplicación, archivos de datos, estructuras de directorio, e instrucciones ejecutables por computadora. Los dispositivos de salida, tal como el dispositivo de pantalla 1102, pueden acoplarse al dispositivo de cómputo 1101 a través de una ¡nterfaz, tal como el adaptador de video 1111. Otros tipos de dispositivos de salida pueden incluir impresoras, salidas de audio, dispositivos táctiles u otros mecanismos de salida sensoriales, o similares. Los dispositivos de salida pueden permitir que el dispositivo de cómputo 1101 interactúe con los operadores humanos u otras máquinas o sistemas. Un usuario puede interconectarse con un entorno de cómputo 1100 a través de un número de diferentes dispositivos de entrada 1103 tal como un teclado, ratón, palanca de mando, almohadilla de juego, puerto de datos y similares. Estos y otros dispositivos de entrada pueden acoplarse al procesador 1107 a través de interfaces de entrada/salida 1112 que pueden ser acopladas al bus del sistema 1108, y pueden acoplarse por otras interfaces y estructuras de bus, tales como un puerto paralelo, puerto de juego, bus serial universal ("USB"), cable de fuego, puerto infrarrojo, y similares. El dispositivo de cómputo 1101 puede operar en un entorno de red a través de conexiones de comunicaciones a uno o más dispositivos de cómputo remotos a través de una o más redes de área local ("LAN"), redes de área amplia ("WAN"), redes de área de almacenamiento ("SAN"), Internet, enlaces de radio, enlaces ópticos y similares. El dispositivo de cómputo 1101 puede acoplarse a una red vía el adaptador de red 1113 o similar, o alternativamente, vía un módem, enlace de línea de suscriptor digital ("DSL"), enlace de red digital de servicios integrados ("ISDN"), enlace a Internet, enlace inalámbrico, o similar. La conexión de comunicaciones 1114, tal como una conexión de red, típicamente provee un acoplamiento a los medios de comunicación, tal como una red. Los medios de comunicación típicamente proveen instrucciones legibles por computadora y ejecutables por computadora, estructuras de datos, archivos, módulos de programa y otros datos que usan una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte. El término "señal de datos modulada" típicamente significa una señal que tiene una o más características establecidas o cambiadas de tal manera que codifiquen información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación pueden incluir medios alámbricos, tales como una red alámbrica o conexión alámbrica directa o similar, y medios inalámbricos, tal como mecanismos acústicos, radiofrecuencia, infrarrojo u otros mecanismos de comunicaciones inalámbricas. Los expertos en la técnica reconocerán que los dispositivos de almacenamiento usados para proveer instrucciones legibles por computadora o ejecutables por computadora y datos que pueden distribuirse en una red. Por ejemplo, una computadora remota o dispositivo de almacenamiento puede almacenar instrucciones legibles por computadora e instrucciones ejecutables por computadora en la forma de aplicaciones de software y datos. Una computadora local puede acceder la computadora remota o el dispositivo de almacenamiento a través de la red y descargar parte o toda la aplicación de software o datos y puede ejecutar cualquier instrucción ejecutable por computadora. De forma alternativa, la computadora local puede bajar piezas del software o datos como sea necesario, o procesar distribuidamente el software al ejecutar algunas de las instrucciones en la computadora local y algunas en las computadoras remotas y/o dispositivos. Será evidente para los expertos en la técnica que, al utilizar las técnicas convencionales, todas o partes de las instrucciones ejecutables por computadora del software pueden llevarse a cabo por un circuito electrónico dedicado tal como un procesador de señal digital ("DSP"), una disposición lógica programable ("PLA"), circuitos discretos, y similares. El término "aparato electrónico" puede incluir dispositivos de cómputo o dispositivos electrónicos de consume que comprenden cualquier software, firmware o similar, o dispositivos electrónicos o circuitos que no comprenden software, firmware o similar. El término "firmware" típicamente se refiere a instrucciones ejecutables, códigos o datos mantenidos en un dispositivo electrónico tal como una ROM. El término "software" generalmente se refiere a instrucciones ejecutables, códigos, datos, aplicaciones, programas, o similares que se mantienen en cualquier forma de medio legible por computadora. El término "medios legibles por computadora" típicamente se refiere a memoria del sistema, dispositivos de almacenamiento y otros medios asociados, medios de comunicación, y similares.
Claims (1)
- REIVINDICACIONES 1. Un método para proveer una aplicación con comunicaciones de red tolerantes a fallas entre una pluralidad de nodos, que consiste en: proveer una pluralidad de trayectorias de comunicaciones iniciales a través de una pluralidad de redes acopladas a la pluralidad de nodos; recibir un paquete de datos en un nodo de envío desde la aplicación, el nodo de envío es una pluralidad de nodos, el paquete de datos está dirigido por la aplicación a una dirección en uno de la pluralidad de nodos; y seleccionar una primera trayectoria seleccionada del paquete de datos de entre la pluralidad de trayectorias de comunicaciones iniciales en donde la primera trayectoria seleccionada es una trayectoria preferida. 2. El método de conformidad con la reivindicación 1, caracterizado además porque comprende: detectar un evento de conectividad local relacionado con una de la pluralidad de trayectorias de comunicaciones iniciales; e indicar si la pluralidad de trayectorias de comunicaciones iniciales es operativa con base en el evento de conectividad local. 3. El método de conformidad con la reivindicación 1, caracterizado además porque comprende: enviar un paquete heartbeat dirigible sobre una de la pluralidad de trayectorias de comunicaciones iniciales; monitorear una respuesta al paquete heartbeat dirigible para determinar una condición operativa de extremo a extremo de una de la pluralidad de trayectorias de comunicaciones iniciales; e indicar si la una de la pluralidad de trayectorias de comunicaciones iniciales es operativa de extremo a extremo con base en el monitoreo de la respuesta. 4. El método de conformidad con la reivindicación 1, caracterizado además porque la dirección es una dirección de Protocolo de Internet versión 4 o una dirección de Protocolo de Internet versión 6. 5. El método de conformidad con la reivindicación 1, caracterizado además porque el paquete de datos recibido de la aplicación es un paquete de Protocolo de Control de Transmisión o un paquete de Protocolo de Datagrama de Usuario. 6. El método de conformidad con la reivindicación 1, caracterizado además porque las instrucciones ejecutables por computadora para ejecutar el método se almacenan en un medio legible por computadora. 7. El método de conformidad con la reivindicación 1, caracterizado además porque la dirección es una dirección virtual. 8. El método de conformidad con la reivind icación 7, caracterizado además porque comprende encapsular el paquete de datos sobre la primera trayectoria seleccionada sin requerir q ue la aplicación esté pendiente de que la pluralidad de trayectorias de comunicaciones iniciales sea la trayectoria seleccionada. 9. El método de conformidad con la reivind icación 8 , caracterizado además porque el paquete de datos dirigible encapsu lado sobre la primera trayectoria seleccionada es u n paquete de Paquete de Protocolo de Control de Transm isión o u n Paquete de Protocolo de Datagrama de Usuario. 1 0. El método de conformidad con la reivind icación 7, caracterizado además porque comprende: detectar u na falla de la primera trayectoria seleccionada; seleccionar una segunda trayectoria seleccionada de entre la pl ural idad de trayectorias de comunicaciones in iciales en donde la segu nda trayectoria seleccionada es tanto operativa de extremo a extremo como una trayectoria preferida; y encapsu lar de forma dirigible el paquete de datos sobre la segunda trayectoria seleccionada sin requerir la aplicación está al tanto de q ue la una o más trayectorias de com unicaciones iniciales es la segu nda trayectoria seleccionada. 1 1 . El método de conformidad con la reivind icación 1 , caracterizado además porq ue la primera trayectoria seleccionada se elige con base en una dirección física destino incluida con el paquete de datos. 12. El método de conformidad con la reivindicación 11, caracterizado además porque comprende enviar el paquete de datos sobre la primera trayectoria seleccionada sin requerir que la aplicación esté al tanto de cual de la pluralidad de trayectorias de comunicaciones iniciales es ia primera trayectoria seleccionada. 13. El método de conformidad con la reivindicación 11, caracterizado además porque comprende: detectar una falla de la primera trayectoria seleccionada; seleccionar una segunda trayectoria seleccionada de una pluralidad de trayectorias de comunicaciones iniciales en donde la segunda trayectoria seleccionada es tanto operativo de extremo a extremo como una trayectoria preferida; y encapsulado dirigible del paquete de datos sobre la segunda trayectoria seleccionada sin requerir que la aplicación esté al tanto de cual de la una o más trayectorias de comunicaciones iniciales es la segunda trayectoria seleccionada. 14. El método de conformidad con la reivindicación 13, caracterizado además porque el paquete de datos encapsulado de forma dirigible sobre la segunda trayectoria seleccionada es un paquete de Protocolo de Control de Transmisión o un paquete de Protocolo de Datagrama de Usuario. 15. Un método para proveer una aplicación con comunicaciones de red tolerantes a fallas entre una pluralidad de nodos, que consiste en proveer una pluralidad de trayectorias de comunicaciones iniciales a través de una pluralidad de redes acopladas a la pluralidad de nodos; recibir un paquete de datos en un nodo de recepción, el nodo de recepción incluye una pila de red tolerante a fallas y es una pluralidad de nodos, el paquete de datos está destinado a la aplicación; determinar si el paquete de datos se encapsuló de forma dirigible; y si el paquete de datos se encapsuló de forma dirigible, reenviar el paquete de datos arriba a la pila de red tolerante a fallas. 16. El método de conformidad con la reivindicación 15, caracterizado además porque comprende: recibir un paquete heartbeat dirigible en el nodo de recepción sobre una de la pluralidad de trayectorias de comunicaciones iniciales; y responder con una respuesta al paquete heartbeat dirigible para indicar una condición operativa de extremo a extremo de la una de la pluralidad de trayectorias de comunicaciones iniciales. 17. El método de conformidad con la reivindicación 15, caracterizado además porque el paquete de datos es un Paquete de Protocolo de Control de Transmisión o un Paquete de Protocolo de Datagrama de Usuario. 18. El método de conformidad con la reivindicación 15, caracterizado además porque las instrucciones ejecutables por computadora para ejecutar el método se almacenan en un medio legible por computadora. 19. Un sistema para proveer una aplicación con comunicaciones de red tolerantes a fallas entre una pluralidad de nodos, que comprende: un primer controlador tolerante a fallas acoplado a una primera pila de red y que opera en un primer nodo, el primer nodo es una de la pluralidad de nodos; un segundo controlador tolerante a fallas acoplado a una segunda pila de red y que opera en un segundo nodo, el segundo nodo es una de la pluralidad de nodos; y el primer controlador tolerante a fallas y el segundo controlador tolerante a falles son acoplados a través de una pluralidad de trayectorias de comunicaciones iniciales sobre una pluralidad de redes. 20. El sistema de conformidad con la reivindicación 19, caracterizado además porque el primer controlador tolerante a fallas comprende: un elemento de procesamiento acoplado con la aplicación a través de una primera pila de red; una base de datos de ruta acoplada al elemento de procesamiento que incluye: una entrada que representa una trayectoria para el segundo nodo incluyendo una dirección física del segundo nodo, la trayectoria es una de la pluralidad de trayectorias de comunicaciones iniciales; y una indicación de una condición operativa de extremo a extremo de la trayectoria para el segundo nodo; un adaptador de protocolo acoplado al elemento de procesamiento y acoplado a una de la pluralidad de redes a través de la primera pila de red, la una de la pluralidad de redes está asociada con la trayectoria al segundo nodo; y un adaptador de túnel asociado con la trayectoria al segundo nodo y acoplado al elemento de procesamiento y acoplado a la una de la pluralidad de redes a través de una primera pila de red.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US71612205P | 2005-09-12 | 2005-09-12 | |
| US11/275,185 US7821930B2 (en) | 2005-09-12 | 2005-12-16 | Fault-tolerant communications in routed networks |
| PCT/US2006/035497 WO2007033179A2 (en) | 2005-09-12 | 2006-09-11 | Fault-tolerant communications in routed networks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MX2008003407A true MX2008003407A (es) | 2008-03-27 |
Family
ID=37854967
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| MX2008003407A MX2008003407A (es) | 2005-09-12 | 2006-09-11 | Comunicaciones tolerantes a fallas en redes dirigidas. |
Country Status (12)
| Country | Link |
|---|---|
| US (7) | US7821930B2 (es) |
| EP (1) | EP1932289A4 (es) |
| JP (1) | JP4794629B2 (es) |
| KR (1) | KR20080055805A (es) |
| CN (1) | CN101263686B (es) |
| AU (1) | AU2006291046B2 (es) |
| BR (1) | BRPI0615816A2 (es) |
| CA (1) | CA2618227A1 (es) |
| MX (1) | MX2008003407A (es) |
| NO (1) | NO20080708L (es) |
| RU (1) | RU2420897C2 (es) |
| WO (1) | WO2007033179A2 (es) |
Families Citing this family (50)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10117078B1 (en) | 2005-04-12 | 2018-10-30 | Ehud Mendelson | Medical information communication method |
| US7821930B2 (en) * | 2005-09-12 | 2010-10-26 | Microsoft Corporation | Fault-tolerant communications in routed networks |
| US8467390B2 (en) * | 2006-12-14 | 2013-06-18 | Oracle America, Inc. | Method and system for network stack tuning |
| US20090073990A1 (en) * | 2007-09-14 | 2009-03-19 | Hewlett-Packard Development Company, L.P. | Method of replacing a router in a layer 3 network |
| US20110040911A1 (en) * | 2009-08-13 | 2011-02-17 | Anil Vasudevan | Dual interface coherent and non-coherent network interface controller architecture |
| JP5841133B2 (ja) | 2010-06-02 | 2016-01-13 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 照明システム及び制御方法 |
| EP2426858B1 (en) * | 2010-09-01 | 2012-10-31 | Alcatel Lucent | Method and apparatus for restoring a connection through a provider network upon request |
| US20130028257A1 (en) * | 2011-07-27 | 2013-01-31 | Raytheon Company | Message Gateway and Methods for Using the Same |
| RU2460123C1 (ru) * | 2011-08-09 | 2012-08-27 | Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени маршала Советского Союза С.М. Буденного" Министерства Обороны Российской Федерации (Минобороны России) | Способ сравнительной оценки структур сетей связи |
| CN102291311B (zh) * | 2011-08-30 | 2017-03-29 | 中兴通讯股份有限公司 | 以太网接口保护方法及网络侧设备 |
| JP6035726B2 (ja) * | 2011-11-02 | 2016-11-30 | 富士通株式会社 | 接続制御装置、ストレージシステム及び接続制御装置の制御方法 |
| IN2014MN01023A (es) * | 2011-12-08 | 2015-05-01 | Qualcomm Technologies Inc | |
| CN102447632A (zh) * | 2011-12-30 | 2012-05-09 | 四川川大智胜软件股份有限公司 | 一种具有数据容错能力的网络传输方法 |
| US20160050104A1 (en) * | 2013-03-15 | 2016-02-18 | Hewlett-Packard Development Company, L.P. | Network device architecture adjustments |
| WO2014144182A2 (en) * | 2013-03-15 | 2014-09-18 | Terascala, Inc. | A data transfer method and apparatus |
| WO2014182475A1 (en) * | 2013-05-07 | 2014-11-13 | Bally Gaming, Inc. | System, apparatus and method for dynamically adjusting a video presentation based upon age |
| EP3008880A4 (en) * | 2013-06-13 | 2017-01-11 | TSX Inc. | Apparatus and method for failover of device interconnect using remote memory access with segmented queue |
| WO2015085480A1 (zh) * | 2013-12-10 | 2015-06-18 | 华为技术有限公司 | 一种运营商共享网络中的故障处理方法及装置 |
| CN104980348A (zh) | 2014-04-04 | 2015-10-14 | 中兴通讯股份有限公司 | 业务链路由方法及系统、及系统中的设备 |
| US9838858B2 (en) | 2014-07-08 | 2017-12-05 | Rapidsos, Inc. | System and method for call management |
| EP3195563B1 (en) | 2014-09-19 | 2021-12-15 | Rapidsos Inc. | Method for emergency call management |
| CN108476260A (zh) | 2015-11-02 | 2018-08-31 | 快速求救公司 | 用于紧急响应的态势感知的方法和系统 |
| JP2019505117A (ja) | 2015-12-17 | 2019-02-21 | ラピッドエスオーエス,インク. | 効率的な緊急呼出のためのデバイス及び方法 |
| WO2017112820A1 (en) * | 2015-12-22 | 2017-06-29 | Rapidsos, Inc. | Systems and methods for robust and persistent emergency communications |
| US9986404B2 (en) | 2016-02-26 | 2018-05-29 | Rapidsos, Inc. | Systems and methods for emergency communications amongst groups of devices based on shared data |
| MX2018013187A (es) | 2016-04-26 | 2019-08-12 | Rapidsos Inc | Sistemas y metodos para comunicaciones de emergencia. |
| US20170325056A1 (en) | 2016-05-09 | 2017-11-09 | Rapidsos, Inc. | Systems and methods for emergency communications |
| US10841206B2 (en) * | 2016-05-31 | 2020-11-17 | 128 Technology, Inc. | Flow modification including shared context |
| WO2018039142A1 (en) | 2016-08-22 | 2018-03-01 | Rapidsos, Inc. | Predictive analytics for emergency detection and response management |
| US10715350B2 (en) | 2016-09-19 | 2020-07-14 | Simmonds Precision Products, Inc. | Automatic addressing of networked nodes |
| US10425511B2 (en) * | 2017-01-30 | 2019-09-24 | 128 Technology, Inc. | Method and apparatus for managing routing disruptions in a computer network |
| US10362631B2 (en) * | 2017-04-03 | 2019-07-23 | Level 3 Communications, Llc | Last resource disaster routing in a telecommunications network |
| JP2018181170A (ja) * | 2017-04-20 | 2018-11-15 | 富士通株式会社 | 情報処理装置、情報処理システムおよびプログラム |
| US10375558B2 (en) | 2017-04-24 | 2019-08-06 | Rapidsos, Inc. | Modular emergency communication flow management system |
| EP3721402A4 (en) | 2017-12-05 | 2021-08-04 | Rapidsos Inc. | EMERGENCY MANAGEMENT SOCIAL MEDIA CONTENT |
| US10924331B2 (en) * | 2018-01-05 | 2021-02-16 | WeRide Corp. | Controller area network communication system |
| US10820181B2 (en) | 2018-02-09 | 2020-10-27 | Rapidsos, Inc. | Emergency location analysis system |
| WO2019204228A1 (en) | 2018-04-16 | 2019-10-24 | Rapidsos, Inc. | Emergency data management and access system |
| EP3803774A4 (en) | 2018-06-11 | 2022-03-09 | Rapidsos, Inc. | SYSTEMS AND USER INTERFACES FOR EMERGENCY DATA INTEGRATION |
| US11917514B2 (en) | 2018-08-14 | 2024-02-27 | Rapidsos, Inc. | Systems and methods for intelligently managing multimedia for emergency response |
| US10977927B2 (en) | 2018-10-24 | 2021-04-13 | Rapidsos, Inc. | Emergency communication flow management and notification system |
| WO2020172612A1 (en) | 2019-02-22 | 2020-08-27 | Rapidsos, Inc. | Systems & methods for automated emergency response |
| US11146680B2 (en) | 2019-03-29 | 2021-10-12 | Rapidsos, Inc. | Systems and methods for emergency data integration |
| EP3949467A4 (en) | 2019-03-29 | 2023-01-25 | Rapidsos Inc. | EMERGENCY DATA INTEGRATION SYSTEMS AND PROCEDURES |
| US11228891B2 (en) | 2019-07-03 | 2022-01-18 | Rapidsos, Inc. | Systems and methods for emergency medical communications |
| JP7339037B2 (ja) * | 2019-07-10 | 2023-09-05 | ファナック株式会社 | 制御装置、診断方法及び診断プログラム |
| CN110336744B (zh) * | 2019-08-09 | 2021-05-04 | 合肥工业大学 | 一种无线片上网络中区域故障感知的容错路由方法 |
| RU2720553C1 (ru) * | 2019-10-18 | 2020-05-12 | Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук | Способ организации системной сети в виде отказоустойчивого неблокируемого трехмерного разреженного р-ичного гиперкуба |
| US11330664B1 (en) | 2020-12-31 | 2022-05-10 | Rapidsos, Inc. | Apparatus and method for obtaining emergency data and providing a map view |
| US12363035B2 (en) | 2021-09-29 | 2025-07-15 | Juniper Networks, Inc. | Opportunistic mesh for software-defined wide area network (SD-WAN) |
Family Cites Families (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2047899C1 (ru) * | 1991-06-21 | 1995-11-10 | Научно-исследовательский институт "Научный центр" | Способ обеспечения отказоустойчивости вычислительных систем |
| US5774640A (en) * | 1991-10-21 | 1998-06-30 | Tandem Computers Incorporated | Method and apparatus for providing a fault tolerant network interface controller |
| US20040264402A9 (en) * | 1995-06-01 | 2004-12-30 | Padcom. Inc. | Port routing functionality |
| US5923854A (en) * | 1996-11-22 | 1999-07-13 | International Business Machines Corporation | Virtual internet protocol (IP) addressing |
| US6314525B1 (en) * | 1997-05-13 | 2001-11-06 | 3Com Corporation | Means for allowing two or more network interface controller cards to appear as one card to an operating system |
| US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
| EP1055177A1 (en) * | 1998-01-22 | 2000-11-29 | Intelogis, Inc. | Method and apparatus for universal data exchange gateway |
| JP3787029B2 (ja) * | 1998-03-03 | 2006-06-21 | 富士通株式会社 | 通信装置,通信手段選択方法及びコンピュータ可読媒体 |
| FI105978B (fi) * | 1998-05-12 | 2000-10-31 | Nokia Mobile Phones Ltd | Menetelmä langattoman päätelaitteen kytkemiseksi tiedonsiirtoverkkoon ja langaton päätelaite |
| US6988274B2 (en) | 1998-06-12 | 2006-01-17 | Microsoft Corporation | Method, system, and computer program product for representing and connecting an underlying connection-oriented device in a known format |
| US6130890A (en) * | 1998-09-11 | 2000-10-10 | Digital Island, Inc. | Method and system for optimizing routing of data packets |
| US6272113B1 (en) * | 1998-09-11 | 2001-08-07 | Compaq Computer Corporation | Network controller system that uses multicast heartbeat packets |
| US6308282B1 (en) * | 1998-11-10 | 2001-10-23 | Honeywell International Inc. | Apparatus and methods for providing fault tolerance of networks and network interface cards |
| US6567377B1 (en) * | 1999-03-18 | 2003-05-20 | 3Com Corporation | High performance load balancing of outbound internet protocol traffic over multiple network interface cards |
| US6392990B1 (en) * | 1999-07-23 | 2002-05-21 | Glenayre Electronics, Inc. | Method for implementing interface redundancy in a computer network |
| US6430622B1 (en) * | 1999-09-22 | 2002-08-06 | International Business Machines Corporation | Methods, systems and computer program products for automated movement of IP addresses within a cluster |
| US6874147B1 (en) * | 1999-11-18 | 2005-03-29 | Intel Corporation | Apparatus and method for networking driver protocol enhancement |
| AU4170001A (en) * | 2000-02-25 | 2001-09-03 | Honeywell Int Inc | Multiple network fault tolerance via redundant network control |
| US6732189B1 (en) * | 2000-03-20 | 2004-05-04 | International Business Machines Corporation | Method and apparatus for fault tolerant tunneling of multicast datagrams |
| US7000012B2 (en) * | 2000-04-24 | 2006-02-14 | Microsoft Corporation | Systems and methods for uniquely identifying networks by correlating each network name with the application programming interfaces of transport protocols supported by the network |
| US6728780B1 (en) * | 2000-06-02 | 2004-04-27 | Sun Microsystems, Inc. | High availability networking with warm standby interface failover |
| US6609213B1 (en) * | 2000-08-10 | 2003-08-19 | Dell Products, L.P. | Cluster-based system and method of recovery from server failures |
| CA2420907A1 (en) * | 2000-08-31 | 2002-03-07 | Padcom, Inc. | Method and apparatus for routing data over multiple wireless networks |
| US7386610B1 (en) * | 2000-09-18 | 2008-06-10 | Hewlett-Packard Development Company, L.P. | Internet protocol data mirroring |
| US6665812B1 (en) * | 2000-12-22 | 2003-12-16 | Emc Corporation | Storage array network backup configuration |
| US20040213220A1 (en) * | 2000-12-28 | 2004-10-28 | Davis Arlin R. | Method and device for LAN emulation over infiniband fabrics |
| US6868083B2 (en) | 2001-02-16 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Method and system for packet communication employing path diversity |
| US6672167B2 (en) * | 2001-04-23 | 2004-01-06 | The Aerospace Corporation | Method and system for processing laser vibrometry data employing bayesian statistical processing techniques |
| JP2003008581A (ja) * | 2001-06-26 | 2003-01-10 | Yokogawa Electric Corp | 通信制御装置 |
| US7581048B1 (en) * | 2001-06-29 | 2009-08-25 | Emc Corporation | Method and apparatus for providing continuous communication between computers |
| US7020796B1 (en) * | 2001-07-27 | 2006-03-28 | Ciena Corporation | High availability communication system |
| JP2003234749A (ja) * | 2001-12-03 | 2003-08-22 | Oki Electric Ind Co Ltd | Lan間の通信ルート切替方法、ルート切替プログラム、ゲートウェイ及び端末 |
| US20040078625A1 (en) | 2002-01-24 | 2004-04-22 | Avici Systems, Inc. | System and method for fault tolerant data communication |
| US7492787B2 (en) * | 2002-03-29 | 2009-02-17 | Fujitsu Limited | Method, apparatus, and medium for migration across link technologies |
| JP2003348134A (ja) * | 2002-05-28 | 2003-12-05 | Nec Soft Ltd | 通信経路選択システム |
| JP2004031287A (ja) * | 2002-06-28 | 2004-01-29 | Pioneer Electronic Corp | プラズマディスプレイパネル |
| US7254109B2 (en) | 2002-07-12 | 2007-08-07 | Baypackets, Inc. | Fault tolerant correlation engine method and system for telecommunications networks |
| US20040062195A1 (en) | 2002-09-30 | 2004-04-01 | Intel Corporation | Algorithm for dynamic provisioning of fail-over support in generalized multi-protocol label switching enabled networks |
| US7191235B1 (en) * | 2002-11-26 | 2007-03-13 | Cisco Technology, Inc. | System and method for communicating data in a loadbalancing environment |
| EP1443399B1 (en) * | 2003-01-23 | 2009-05-20 | Supercomputing Systems AG | Fault tolerant computer controlled system |
| WO2004098143A1 (en) * | 2003-04-28 | 2004-11-11 | Chantry Networks Inc. | System and method for mobile unit session management across a wireless communication network |
| US7861002B2 (en) * | 2003-05-22 | 2010-12-28 | Adtran, Inc. | Network router that efficiently switches between a primary data path and a backup data path |
| JP2005057472A (ja) * | 2003-08-04 | 2005-03-03 | Nippon Telegr & Teleph Corp <Ntt> | 通信方法及びシステム |
| JP2005327186A (ja) * | 2004-05-17 | 2005-11-24 | Nec Corp | コンピュータシステムの複数経路情報管理方法及び装置 |
| US9491084B2 (en) * | 2004-06-17 | 2016-11-08 | Hewlett Packard Enterprise Development Lp | Monitoring path connectivity between teamed network resources of a computer system and a core network |
| US7990849B2 (en) * | 2004-06-17 | 2011-08-02 | Hewlett-Packard Development Company, L.P. | Automated recovery from a split segment condition in a layer2 network for teamed network resources of a computer system |
| JP2008507928A (ja) | 2004-07-23 | 2008-03-13 | サイトリックス システムズ, インコーポレイテッド | ネットワークノード間の通信を最適化するためのシステムおよび方法 |
| JP4148931B2 (ja) * | 2004-08-16 | 2008-09-10 | 富士通株式会社 | ネットワークシステム、監視サーバ及び監視サーバプログラム |
| US7668962B2 (en) | 2005-02-07 | 2010-02-23 | Symantec Operating Corporation | System and method for connection failover using redirection |
| US7872965B2 (en) * | 2005-08-01 | 2011-01-18 | Hewlett-Packard Development Company, L.P. | Network resource teaming providing resource redundancy and transmit/receive load-balancing through a plurality of redundant port trunks |
| US8036105B2 (en) * | 2005-08-08 | 2011-10-11 | International Business Machines Corporation | Monitoring a problem condition in a communications system |
| US7821930B2 (en) | 2005-09-12 | 2010-10-26 | Microsoft Corporation | Fault-tolerant communications in routed networks |
-
2005
- 2005-12-16 US US11/275,185 patent/US7821930B2/en not_active Expired - Fee Related
-
2006
- 2006-09-11 BR BRPI0615816-1A patent/BRPI0615816A2/pt not_active IP Right Cessation
- 2006-09-11 RU RU2008109226A patent/RU2420897C2/ru not_active IP Right Cessation
- 2006-09-11 AU AU2006291046A patent/AU2006291046B2/en not_active Ceased
- 2006-09-11 CA CA 2618227 patent/CA2618227A1/en not_active Abandoned
- 2006-09-11 EP EP20060814525 patent/EP1932289A4/en not_active Withdrawn
- 2006-09-11 CN CN200680033111.6A patent/CN101263686B/zh not_active Expired - Fee Related
- 2006-09-11 KR KR20087005079A patent/KR20080055805A/ko not_active Abandoned
- 2006-09-11 JP JP2008531252A patent/JP4794629B2/ja active Active
- 2006-09-11 MX MX2008003407A patent/MX2008003407A/es active IP Right Grant
- 2006-09-11 WO PCT/US2006/035497 patent/WO2007033179A2/en not_active Ceased
-
2008
- 2008-02-08 NO NO20080708A patent/NO20080708L/no unknown
-
2010
- 2010-09-16 US US12/884,101 patent/US8369208B2/en not_active Expired - Fee Related
- 2010-09-16 US US12/884,096 patent/US8169894B2/en not_active Expired - Fee Related
-
2012
- 2012-07-02 US US13/540,527 patent/US20120272092A1/en not_active Abandoned
- 2012-07-02 US US13/540,548 patent/US8958325B2/en not_active Expired - Lifetime
-
2014
- 2014-12-30 US US14/586,919 patent/US9253293B2/en not_active Expired - Lifetime
-
2016
- 2016-01-21 US US15/002,717 patent/US20160142289A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| AU2006291046B2 (en) | 2010-03-04 |
| US8958325B2 (en) | 2015-02-17 |
| US8169894B2 (en) | 2012-05-01 |
| JP2009508443A (ja) | 2009-02-26 |
| WO2007033179A3 (en) | 2007-05-18 |
| US20120272093A1 (en) | 2012-10-25 |
| AU2006291046A1 (en) | 2007-03-22 |
| BRPI0615816A2 (pt) | 2011-05-24 |
| US7821930B2 (en) | 2010-10-26 |
| US20150113165A1 (en) | 2015-04-23 |
| EP1932289A2 (en) | 2008-06-18 |
| EP1932289A4 (en) | 2013-04-10 |
| RU2420897C2 (ru) | 2011-06-10 |
| RU2008109226A (ru) | 2009-10-10 |
| US9253293B2 (en) | 2016-02-02 |
| CA2618227A1 (en) | 2007-03-22 |
| WO2007033179A2 (en) | 2007-03-22 |
| US20120272092A1 (en) | 2012-10-25 |
| KR20080055805A (ko) | 2008-06-19 |
| US20110004783A1 (en) | 2011-01-06 |
| CN101263686A (zh) | 2008-09-10 |
| JP4794629B2 (ja) | 2011-10-19 |
| US20160142289A1 (en) | 2016-05-19 |
| US8369208B2 (en) | 2013-02-05 |
| NO20080708L (no) | 2008-04-14 |
| US20110004782A1 (en) | 2011-01-06 |
| US20070058528A1 (en) | 2007-03-15 |
| CN101263686B (zh) | 2014-11-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| MX2008003407A (es) | Comunicaciones tolerantes a fallas en redes dirigidas. | |
| CN113454598B (zh) | 提供具有访客vm移动性的服务 | |
| US6581166B1 (en) | Network fault detection and recovery | |
| US6535990B1 (en) | Method and apparatus for providing fault-tolerant addresses for nodes in a clustered system | |
| US8867375B2 (en) | Failback to a primary communications adapter | |
| JP5765623B2 (ja) | ネットワークシステム | |
| CN108965123A (zh) | 一种链路切换方法和网络通信系统 | |
| CN102119510A (zh) | 一种多路径网络 | |
| KR100831639B1 (ko) | 정보 처리 장치, 통신 부하 분산 방법 및 통신 부하 분산프로그램을 기록한 기록 매체 | |
| WO2016033193A1 (en) | Distributed input/output architecture for network functions virtualization | |
| US11252018B2 (en) | Service chaining with service path monitoring | |
| US9521014B2 (en) | Network system and data transmission method | |
| JP4636247B2 (ja) | パケットネットワークおよびレイヤ2スイッチ | |
| CN116155795A (zh) | 路由更新方法及装置 | |
| US12494991B2 (en) | Traffic protection with predetermined reroute and adaptive failure detection for use of applications hosted on virtual private clouds | |
| JP2005354424A (ja) | Vpls装置、管理装置およびvplsシステム | |
| CN116455730A (zh) | 一种主备切换方法、系统及控制器 | |
| Chinchani et al. | Handling Failures and DOS Attacks Using Network Device Groups |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FG | Grant or registration |