ES2924311T3 - Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros - Google Patents

Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros Download PDF

Info

Publication number
ES2924311T3
ES2924311T3 ES20716986T ES20716986T ES2924311T3 ES 2924311 T3 ES2924311 T3 ES 2924311T3 ES 20716986 T ES20716986 T ES 20716986T ES 20716986 T ES20716986 T ES 20716986T ES 2924311 T3 ES2924311 T3 ES 2924311T3
Authority
ES
Spain
Prior art keywords
network
parameters
node
coefficients
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES20716986T
Other languages
English (en)
Inventor
Kerim Fouli
Muriel Medard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Code On Network Coding LLC
Original Assignee
Code On Network Coding LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Code On Network Coding LLC filed Critical Code On Network Coding LLC
Application granted granted Critical
Publication of ES2924311T3 publication Critical patent/ES2924311T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Abstract

Un nodo de red que tiene un receptor para recibir paquetes de entrada, una memoria de nodo local donde se almacenan uno o más parámetros para la codificación, un codificador para crear paquetes codificados a partir de los paquetes de entrada usando codificación de red lineal y un transmisor para transmitir los paquetes codificados. Cada coeficiente de la codificación de red lineal es un parámetro de uno o más parámetros o una función predeterminada de uno o más parámetros. También se presentan un método relacionado y una red. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros
ESTADO DE LA TÉCNICA ANTERIOR
La codificación lineal de red es un proceso que aplica coeficientes lineales a entradas para obtener una salida codificada. La codificación lineal de red es un procedimiento aplicado en nodos de red de transporte y almacenamiento de datos, para permitir la comunicación y mejorar la eficiencia, de manera que los nodos en una red de datos funcionan como codificadores y decodificadores.
En particular, un nodo que funciona como un codificador no se limita a reenviar (es decir, retransmitir o replicar) información recibida de un enlace de entrada, sino que también codifica dicha información. La codificación en un nodo de una red se conoce como codificación de red. Las redes se pueden modelizar como grafos con enlaces dirigidos, una o varias fuentes, y uno o varios receptores, tal como se muestra en el documento de R. Koetter y M. Medard, "An algebraic approach to network coding", IEEE/ACM Transactions on Networking, volumen 11, edición 5, octubre de 2003. Un problema de comunicación común en las redes es el problema de conexión de multidifusión, donde los datos de origen tienen que ser transmitidos a cada uno de los nodos receptores.
La codificación de red permite conexiones que no son posibles limitándose al reenvío. En particular, en el documento de R. Ahlswede, N. Cai, S.-Y. R. Li y R. W. Yeung, "Network Information Flow”, IEEE Transactions on Information Theory, volumen 46, páginas 1204 a 1216 (2000), se ha mostrado que, en general, no es óptimo simplemente enrutar o replicar la información a transmitir. Por el contrario, utilizando codificación en los nodos, generalmente se puede ahorrar ancho de banda.
Una red se puede representar como un grafo dirigido, tal como se muestra en el documento de R. Koetter y M. Medard, "Beyond Routing: An Algebraic Approach to network coding', Proceedings of the 2002 IEEE Infocom (2002). El grafo comprende nodos de origen y nodos receptores, donde los datos son transmitidos de los nodos de origen a los nodos receptores. En la referencia anterior se da a conocer un algoritmo para encontrar una solución de codificación lineal a un determinado problema de conexión de multidifusión, utilizando el conocimiento de la topología de toda la red.
Sin embargo, en aplicaciones donde la comunicación está limitada o es costosa, puede ser preferible determinar el comportamiento de cada nodo de manera distribuida. La determinación del comportamiento de los nodos de manera distribuida se basa en información disponible localmente en cada nodo y/o en señalización de control mínima, sin requerir una coordinación centralizada o el conocimiento de la topología global de la red. En el documento de T. Ho, R. Koetter, M. Medard, D. R. Karger y M. Effros, "The Benefits of Coding over Routing in a Randomized Setting", International Symposium on Information Theory (ISIT) 2003, se ha mostrado que el problema de conexión de multidifusión se puede resolver de manera distribuida por medio de codificación lineal de red aleatoria.
En la referencia anterior, la codificación lineal de red utiliza la generación de coeficientes aleatorios sobre flujos de datos, donde un nodo combina flujos linealmente asignando a cada flujo un coeficiente aleatorio. En este caso, un coeficiente se define como un elemento de un campo finito que está asociado con un determinado flujo de datos como su multiplicador, donde la suma de los flujos de datos así multiplicados forma una combinación lineal de flujos (es decir, un flujo codificado).
La selección aleatoria, o arbitraria, de coeficientes se puede realizar de manera dinámica o predeterminada. La utilización de construcciones de código predeterminadas puede simplificar el funcionamiento de la red. Se han propuesto construcciones de código predeterminadas, como códigos simplificados para resolver el problema de conexión de multidifusión en redes de multidifusión inalámbricas, ver el documento de Anna H Lee, “Simplified Random Network Codes for Multicast Networks”, M. Eng. Thesis, MIT, mayo de 2005 (en adelante, Lee).
CARACTERÍSTICAS
La presente invención se refiere a un nodo de red configurado para comunicarse con otros nodos de red, y a un procedimiento correspondiente, según las reivindicaciones adjuntas.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Los dibujos adjuntos, que se incorporan a esta descripción y constituyen una parte de la misma, muestran una o varias realizaciones de la presente invención y, junto con la descripción de las realizaciones de ejemplo, sirven para explicar los principios e implementaciones de la invención.
La figura 1 muestra un ejemplo de la técnica anterior de código univariable en una configuración de codificación de red interflujos.
La figura 2 muestra reutilización de parámetros, según una realización de la presente invención.
La figura 3 muestra una arquitectura del nodo de la figura 2.
La figura 4 muestra reutilización de parámetros, según otra realización de la presente invención.
La figura 5 muestra una arquitectura del nodo de la figura 4.
La figura 6 es un diagrama de flujo que muestra un posible conjunto secuencial de las operaciones conducidas por el nodo de las figuras anteriores.
La figura 7 muestra reutilización de múltiples parámetros, según otra realización de la presente invención.
La figura 8 muestra una red a modo de ejemplo, según la presente invención, con diferentes parámetros a través de los nodos de red.
La figura 9 muestra un ejemplo de un código ahorrativo en una red.
La figura 10 muestra una secuencia de paquetes transmitidos por algunos de los nodos de la figura 9.
DESCRIPCIÓN DETALLADA
Las realizaciones de la presente invención están dirigidas a simplificar los nodos fabricados en masa (por ejemplo, nodos de sensor) incluyendo un simple código en rutinas preprogramadas de un nodo o mediante la inicialización del nodo. Esto simplifica tanto el funcionamiento de los nodos -por ejemplo, eliminando la generación de coeficientes aleatorios- como el proceso de diseño de los nodos, incluyendo un código preprogramado.
Los procedimientos descritos en el presente documento no están limitados por una única variable o coeficiente. Por el contrario, se caracterizan por un número limitado de variables que son preprogramadas (en el hardware o programadas) o distribuidas inicialmente a los nodos. También se caracterizan por la ausencia de aleatoriedad en el proceso de selección de los coeficientes de codificación de red, de ahí su calificación de predeterminados.
La codificación lineal se puede aplicar a flujos o unidades de datos, donde los flujos son secuencias de unidades de datos con las mismas características de enrutamiento (por ejemplo, habitualmente tienen información de direccionamiento similar).
Cada unidad de datos es un conjunto de bits. La codificación lineal se aplica habitualmente a conjuntos de bits de igual tamaño, denominados símbolos. El tamaño del símbolo depende del tamaño del campo donde se aplica la codificación. Este documento supone una conversión adecuada entre unidades de datos y símbolos, un proceso que reside dentro de los módulos de codificación y decodificación y que involucra, habitualmente, relleno, segmentación y generación de cabeceras. Los procedimientos descritos en la presente memoria son independientes del tamaño del campo.
Aunque la presente invención utiliza los términos “unidad de datos” y “paquete” de manera intercambiable, los procedimientos descritos en la presente memoria son aplicables a unidades de datos en cualquier capa, incluyendo tramas física y de enlace de datos, paquetes de la capa de red, segmentos de la capa de transporte, o unidades de datos de la capa de aplicación y subdivisiones del flujo de bits. En aplicaciones de almacenamiento, las unidades de datos representan habitualmente porciones de archivos o sectores de disco. Además, los procedimientos descritos en la presente memoria se pueden aplicar por medio de software o de hardware.
La codificación de red interflujo es la aplicación de codificación de red entre flujos, donde se asignan coeficientes a los flujos en lugar de a sus unidades de datos constitutivas. La codificación de red intraflujo es la aplicación de codificación de red dentro de flujos, donde los coeficientes se asignan a unidades de datos individuales. En la codificación lineal intraflujo, un coeficiente se define como un elemento de un campo finito que está asociado con una determinada unidad de datos (por ejemplo, un paquete) como su multiplicador, donde la adición de las unidades de datos así multiplicadas forma una combinación lineal de unidades de datos (es decir, una unidad de datos codificada).
Los procedimientos descritos en el presente documento abarcan la codificación intraflujo por medio de un número limitado de parámetros que puede ser necesario que un nodo reutilice para generar coeficientes para cada unidad de datos. La reutilización de parámetros se lleva a cabo en los nodos por medio de funciones de generación de coeficientes. Los parámetros y las funciones de generación de coeficientes están preprogramados en la fabricación del dispositivo o bien son introducidos en el nodo durante procesos de inicialización de un nodo o de la red. Los códigos que utilizan un conjunto limitado de parámetros y funciones se describen en el presente documento como códigos ahorrativos.
Los códigos ahorrativos son códigos de red lineales que evitan la utilización de un generador de números pseudoaleatorios en línea para la generación de coeficientes. En lugar de esto, se utilizan parámetros y funciones predeterminadas en los nodos para generar coeficientes. Los códigos ahorrativos reducen la complejidad del proceso de codificación que un nodo necesita llevar a cabo, reduciendo el número de operaciones que se requieren para generar coeficientes de codificación. Esto reduce el uso de energía del nodo.
Los códigos ahorrativos se pueden desplegar en nodos de comunicación individuales como medios simples de implementar codificación lineal de red aleatoria (RLNC, random linear network coding). Las aplicaciones incluyen todos los sistemas que transportan o almacenan datos, incluyendo redes de área extensa (WAN, wide area network) y comunicación troncal, redes ópticas, redes por satélite, redes de acceso y metropolitanas (MAN, metropolitan area network), redes móviles y celulares inalámbricas, redes de área local (LAN), redes domésticas, redes de área personal (PAN, personal area networks), redes de área corporal, redes de área de almacenamiento (SAN, storage area networks), redes en la nube, redes de almacenamiento corporativo, sistemas de centro de datos y conjuntos de servidores, etc. En particular, la reducción de la complejidad y del uso de energía facilitan el despliegue de códigos ahorrativos en sistemas y redes que utilizan los dispositivos de impacto reducido, tal como se describe a continuación.
El término “nodo” representa cualquier elemento de comunicación de una infraestructura de comunicación inalámbrica o cableada, incluyendo Bluetooth, WiFi, celular (por ejemplo, LTE), servidores y sistemas de centro de datos, enrutadores troncales y de acceso, nodos de computación en la nube y tarjetas de interfaz de red (NIC, network interface cards) para redes vehiculares, industriales, por satélite y de ordenadores. En particular, los nodos se pueden implementar dentro de diversos dispositivos electrónicos de consumo, tales como ordenadores personales, productos informáticos, portátiles, teléfonos, tabletas, etc. Los procedimientos descritos en la presente memoria son particularmente atractivos para dispositivos de impacto reducido fabricados en masa, debido a la sensibilidad de dichos dispositivos al coste, el consumo de energía y la complejidad. Dichos dispositivos incluyen dispositivos utilizados en sistemas de sensores, redes locales, redes de internet de las cosas (loT, Internet of Things), sistemas incorporados, redes de malla, redes móviles ad hoc (MANET, mobile ad-hoc networks), sistemas móviles, redes celulares, sistemas de factor de forma pequeño (SFF, small form factor) y cualquier dispositivo que requiera un bajo consumo de potencia, que utilice microchips transceptores de bajo coste o que tenga una baja capacidad computacional. Por lo tanto, en la presente invención, el término “nodo” se refiere a una estación base, un terminal móvil, un ordenador personal o dispositivos electrónicos similares que puedan procesar datos, donde estos dispositivos son capaces de interactuar en red y de comunicarse entre sí.
La presente solicitud se puede relacionar con la Patente US 9,699,104 y la Patente US 9,258,084. Aunque la Patente US 9,699,104 no especifica un procedimiento para generar coeficientes en los nodos, esta solicitud da a conocer realizaciones concretas para crear coeficientes y generar unidades de datos codificadas en los nodos.
A diferencia de la Patente US 9,258,084, no se genera ni se utiliza ningún libro de códigos en la puesta en funcionamiento del sistema en esta solicitud. Además, a diferencia de la Patente US 9,258,084, esta solicitud no requiere que los nodos utilicen una única función que sea universalmente conocida en toda la red. Por el contrario, se pueden utilizar diferentes funciones, y no es necesaria ninguna coordinación en la definición de funciones entre nodos. Además, esta solicitud requiere que las funciones utilicen y reutilicen un número limitado de parámetros para la generación de coeficientes en el nodo.
Lee, descrito ya brevemente en la sección de Estado de la técnica anterior de la presente solicitud, presenta una construcción de código de coeficiente único (“univariable”) para la codificación de red en una configuración inalámbrica de multidifusión distribuida. El término “univariable” se refiere a un código que utiliza una única variable. En Lee, la variable única requerida para la codificación es el coeficiente a. El principio es que todos los nodos utilizan el mismo coeficiente (preprogramado) (a) para la codificación de red. En realidad, Lee propone utilizar el coeficiente unitario (1) para flujos generados localmente y el coeficiente preprogramado a para todos los flujos entrantes, creando de ese modo una medida de diversidad de coeficientes. (Ver, por ejemplo, la figura 1).
Lee reconoce explícitamente la diversidad de coeficientes como un factor limitativo de los códigos univariables, dado que la ausencia de diversidad de coeficientes tiene como resultado una dependencia lineal en los receptores y una incapacidad de decodificación, que conduce a códigos no viables. Lee explora otros paradigmas de diversidad. Por ejemplo, se explora la diversificación de código introduciendo un segundo parámetro (f) que representa una fracción de flujos a los que se les asigna el coeficiente unitario. Lee explora asimismo la eficiencia del código de valores de coeficiente diferentes para diferentes tamaños de campo finito impares y pares.
Lee se centra exclusivamente en resolver el problema de la conexión de multidifusión, donde la red es modelada como un conjunto de fuentes de multidifusión, sumideros y nodos intermedios que vehicula flujos de información. Por lo tanto, el modelo considera solamente la codificación de red interflujo, donde los nodos combinan flujos entrantes (y locales) para formar flujos salientes, y se aplica la codificación de red al nivel de los flujos.
En particular, la figura 1 (reproducida de Lee) muestra un ejemplo de código univariable en una configuración de codificación de red interflujo. En este ejemplo, un nodo combina señales de entrada y locales, o flujos, utilizando codificación lineal. La tabla de la figura 1 muestra los coeficientes utilizados en la combinación lineal. Los coeficientes utilizados para señales de entrada y señales locales son a y 1, respectivamente.
Lee no considera la codificación de red intraflujo, el proceso de codificación individual de unidades de datos (por ejemplo, paquetes) del mismo flujo.
La codificación de red intraflujo ha mostrado ventajas significativas de eficiencia y rendimiento, en particular para borrado de paquetes/corrección de errores, reducción de latencia, multidifusión, funcionamiento con trayectos múltiples y red en malla.
La codificación de red intraflujo tiene una amplia variedad de aplicaciones y beneficios en redes que involucran dispositivos de factor de forma pequeño, que van desde el ahorro de energía hasta la eficiencia y robustez de la red. Los procedimientos descritos en la presente memoria extienden el concepto de “univariable” descrito por Lee, a la codificación de red intraflujo. Estos presentan realizaciones que están asimismo motivadas por la simplicidad del código, con códigos que son fáciles de programar en masa y que son más adecuados para dispositivos más pequeños (por ejemplo, sensores) y dispositivos con limitaciones computacionales.
Inicialización y reutilización de parámetros
Los parámetros son elementos de un campo finito que son almacenados en la memoria del nodo a la inicialización del nodo, donde inicialización se define como un proceso mediante el cual el nodo pasa estar operativo en la red. El número de parámetros y funciones debería limitarse para agilizar la fabricación de nodos, y para reducir la utilización de memoria y la complejidad del cálculo de coeficientes. La utilización de un parámetro y una función sería ideal. Sin embargo, para diversidad de coeficientes puede ser necesaria la disposición de más de uno de cada. La inicialización consiste en la preprogramación de todos los nodos con un número limitado de parámetros. La inicialización incluye asimismo la preprogramación de cada nodo con un número limitado de funciones a utilizar para generar coeficientes a partir del parámetro o los parámetros. En una realización diferente, una autoridad central (por ejemplo, controlador de red o unidad de gestión de red) puede distribuir/diseminar el parámetro o los parámetros y la función o las funciones a los nodos, antes de la comunicación (por ejemplo, configuración de red, descubrimiento de nodos, etc.). Alternativamente, todos los nodos se pueden programar para seleccionar sus propios parámetros a partir de información que está disponible para el nodo en el momento de la inicialización (por ejemplo, utilizar una parte o la integridad de un parámetro en el hardware del nodo, tal como un número de serie, una dirección de red, etc.).
Reutilización de parámetros se refiere a la utilización repetida del mismo parámetro o los mismos parámetros para generar múltiples coeficientes. Cada operación de codificación conduce a la creación de un paquete codificado. Un nodo reutilizará su parámetro o sus parámetros en cada operación de codificación, para generar coeficientes de codificación para cada una de las unidades de datos (por ejemplo, paquetes) a codificar, donde cada coeficiente es un parámetro o una función del mismo.
Cada operación de codificación (es decir, la creación de un paquete codificado) requiere habitualmente múltiples coeficientes. Si la función utilizada para crear los coeficientes es una secuencia (por ejemplo, una secuencia aritmética o geométrica), puede ser reinicializada en cada nueva operación de codificación o bien continuada (por ejemplo, continuando al siguiente múltiplo o potencia de parámetro). En una realización, la función puede ser reinicializada para cada distinto flujo de paquetes (por ejemplo, un video).
Se generan coeficientes a partir de los parámetros utilizando una función predeterminada. La función predeterminada es una función matemática o algoritmo que puede estar almacenado en la memoria del nodo (por ejemplo, como parte de su software programado). Este es conocido por el nodo desde la inicialización del nodo. Tanto la función como los parámetros pueden haberse recibido desde la red (por ejemplo, nodo central) o haberse seleccionado localmente. Los parámetros y las funciones pueden ser modificados a continuación, pero esto ocurre ocasionalmente como un evento de gestión de la red (es decir, no a la frecuencia de los paquetes entrantes).
La reutilización se muestra en la figura 2 (200), donde el nodo n1 (210) genera paquetes codificados c1 y c2 (230) a partir de paquetes de entrada p1, p2 y p3 (220). Los parámetros son almacenados en la memoria local del nodo (212).
Cada vez que se necesita un nuevo coeficiente, los parámetros almacenados (212) son reutilizados por el nodo (210) para generar el nuevo coeficiente (213).
Los coeficientes (213) pueden adoptar la forma de una secuencia matemática de números generados por la función utilizando los parámetros. Por ejemplo, cada coeficiente (excepto para un conjunto inicial de uno o varios coeficientes) puede ser una función de uno o varios coeficientes anteriores. Por lo tanto, puede ser necesario que los coeficientes anteriores (213) requeridos para generar el siguiente coeficiente se almacenen temporalmente, hasta que se genere el siguiente coeficiente.
La figura 3 muestra una posible realización (300) de la arquitectura de un nodo (310) reutilizando uno o varios parámetros a efectos de codificación lineal de red. Los parámetros son almacenados en la memoria local (315) del nodo.
Los paquetes entrantes (320) llegan al nodo desde diferentes puertos de entrada a través de una unidad de receptor (RX) (311). A continuación son almacenados en memoria tampón para su codificación y retransmisión en una unidad de almacenamiento en memoria tampón (313). Cuando se requiere codificación, se generan coeficientes (316) a partir de los parámetros almacenados (315) y se utilizan en la unidad de codificación (314) para generar paquetes codificados. A continuación, los paquetes codificados son almacenados en la memoria tampón en la unidad de almacenamiento en memoria tampón (313) para su transmisión por medio de la unidad de transmisión (TX) (312) a los puertos de salida. Los paquetes salientes (330) pueden contener paquetes codificados y no codificados.
Los paquetes recibidos pueden ser enviados directamente desde la unidad de receptor a la unidad de codificación, o desde la unidad de codificación a la unidad de transmisión, sin almacenamiento en memoria tampón. Asimismo, aunque no se representa, el mapeo de cada paquete saliente a uno o varios puertos de salida (es decir, conmutación o multidifusión) se puede llevar a cabo en la unidad de transmisión (TX).
El ejemplo de un nodo de sensor se puede utilizar para ilustrar la arquitectura de la figura 3. Además de su fuente de potencia y de los sensores, los nodos de sensor pueden contener una unidad de controlador central que se implementa habitualmente utilizando un microcontrolador, aunque algunos diseños de sensor utilizan microprocesadores de propósito general, procesadores de señal digital, FPGA o ASIC. Los nodos de sensor utilizan asimismo un transceptor de radio, infrarrojos u óptico a efectos de comunicación. Su memoria externa es usualmente una memoria flash (es decir, almacenamiento informático no volátil electrónico de estado sólido). Haciendo referencia a la figura 3, la unidad de codificación (314) se puede implementar en la unidad de controlador del nodo de sensor. La memoria local que contiene los parámetros (315) y los coeficientes (316) puede corresponder a la memoria de microcontrolador en el chip del nodo del sensor. La unidad de almacenamiento en memoria tampón (313) puede ser parte de la memoria externa del nodo. El transceptor combina las funcionalidades de las unidades de transmisor (312) y receptor (311).
Ejemplos de reutilización de parámetros
Un ejemplo de reutilización de parámetros se proporciona en las figuras 4 y 5. En la figura 4 (400), el nodo n1 (410) genera paquetes codificados c1 y c2 (430) a partir de paquetes de entrada p1, p2 y p3 (420). El nodo n1 utiliza a como un parámetro predeterminado, donde a es un elemento del campo finito Fq y q es un tamaño de campo. El parámetro a es almacenado en la memoria local (411) del nodo.
Para generar coeficientes (413), n1 puede generar una secuencia C(i) de números a partir de Fq, por medio de la función g1 enunciada continuación.
9i: C(i)= ia [q]
donde i>=1 es un índice y [.] es el operador módulo.
En la presente invención, se supone que las funciones omiten el coeficiente cero. Esto se puede realizar sustituyendo automáticamente cero por un número fijo (por ejemplo, uno) en el cálculo de coeficientes.
La figura 5 (500) muestra una posible realización de la arquitectura. El parámetro a se almacena en la memoria local (515) del nodo. Los paquetes entrantes (520), que llegan al nodo desde diferentes puertos de entrada por medio de una unidad de receptor (RX) (511), son almacenados en memoria tampón para su codificación y retransmisión en una unidad de almacenamiento en memoria tampón (513). Cuando se requiere codificación, se genera un lote de coeficientes de codificación a partir del parámetro almacenado (515) y del coeficiente anterior (516) utilizando la función g1. Estos coeficientes se utilizan en la unidad de codificación (514) para generar paquetes codificados. En una implementación simple, el nodo itera en bucle a través del campo finito Fq utilizando el parámetro a (515) como el primer coeficiente, y creando nuevos coeficientes sumando a al coeficiente anterior. Los coeficientes generados son los elementos del conjunto {a, 2a, 3a,...}. El último valor del coeficiente anterior se puede almacenar en el módulo (516) de coeficientes.
A continuación, los paquetes codificados son almacenados en memoria tampón en la unidad de almacenamiento en memoria tampón (513) para su transmisión por medio de la unidad de transmisión (TX) (512) a los puertos de salida.
En el ejemplo de las figuras 4 y 5, el parámetro fijo a es reutilizado por el nodo para generar coeficientes.
Diagrama de flujo de muestra
El diagrama de flujo (600) de la figura 6 muestra una posible realización de las operaciones conducidas por el nodo.
En la inicialización del nodo, el nodo lee (610) el parámetro o los parámetros desde su memoria, para preparar el proceso de codificación. A continuación, el nodo espera paquetes entrantes.
Cada vez que un nuevo paquete es recibido, almacenado en memoria tampón (620) y (opcionalmente) transmitido (630), se activa una etapa de decisión (640) donde el nodo determina si se requiere un nuevo paquete codificado. Si no se requieren paquetes codificados, el nodo vuelve a esperar paquetes entrantes.
Si se requiere un paquete codificado, el nodo reutiliza (650) el parámetro o los parámetros almacenados y el coeficiente o los coeficientes anteriores, si los hay, para generar el nuevo coeficiente. En otros términos, el primer coeficiente es función de los parámetros del nodo. Todos los coeficientes subsiguientes pueden ser función de los coeficientes anteriores, así como de los parámetros del nodo (por ejemplo, el código de secuencia de la figura 5).
La creación de un paquete codificado requiere habitualmente más de un coeficiente, dado que la creación de un paquete codificado requiere un coeficiente para cada paquete original/nativo que es introducido a la unidad de codificación. Por ejemplo, si un conjunto de B paquetes almacenados en memoria tampón es seleccionado para su codificación, entonces la creación de cada paquete codificado a partir de dicho conjunto de entrada de paquetes requiere B coeficientes.
El proceso (650) de generación de uno o varios coeficientes se repite, por lo tanto, siempre que se requieran (660) nuevos coeficientes para crear el paquete codificado. Una vez se ha generado un número suficiente de coeficientes, el paquete codificado es creado, almacenado en memoria tampón (670) y, opcionalmente, transmitido (680). El nodo vuelve a continuación a esperar paquetes entrantes.
En una realización alternativa, en lugar de por llegadas de paquete, la etapa de decisión (640) puede activarse por factores que son internos del nodo, tales como límites de tiempo (por ejemplo, un activador periódico regular), una estimación de pérdidas de paquetes en la red, o por factores externos, tales como retroalimentación de protocolo (por ejemplo, solicitud de un paquete codificado, información sobre pérdidas de paquete).
Las realizaciones de las figuras 3, 5 y 6 pueden ser nodos basados íntegramente en software, que se implementan utilizando matrices de puertas programables en campo (FPGA), o radios definidas por software, por ejemplo. Alternativamente, son posibles diseños de nodo basados en hardware (por ejemplo, implementados utilizando circuitos integrados específicos de aplicación (ASIC, application-specific integrated circuits) dedicados) o una combinación de chips dedicados y programables.
Otros ejemplos
Los nodos pueden tener más de un parámetro. Esto se muestra en la figura 7 (700). El nodo n1 (710) genera paquetes codificados c1 y c2 (730) a partir de paquetes de entrada p1, p2 y p3 (720). El nodo n1 utiliza dos parámetros a y k (712), donde a y k son elementos del campo finito Fq y q es un tamaño de campo. Los parámetros a y k se almacenan en la memoria local (711) del nodo. Para generar coeficientes, n1 puede generar una secuencia C(i) de números a partir de Fq a través de la función g2 enunciada continuación.
g2: C(1) = a
C(¡+1) = {C(¡)+k} [q],
donde i>=1 es un índice y [.] es el operador módulo.
Por lo tanto, la función g2 itera en bucle a través del campo finito sumando una constante k al coeficiente anterior, comenzando en a. Los coeficientes generados son los elementos del conjunto {a, a+K, a+2K, a+3K,...}. En otras palabras, g2: C(i)= a+(i-1)K [q], i>=1.
Los parámetros (a,K) son, de este modo, reutilizados por el nodo para generar coeficientes. La figura 8 es un ejemplo que muestra que los parámetros y las funciones pueden ser diferentes en los nodos de red. La figura 8 representa una red de malla (800) donde cuatro nodos, n1 (810), n2 (820), n3 (830) y n4 (840), utilizan distintos parámetros. Mientras que n1 y n4 se inicializaron con el parámetro a (811, 841), n2 y n3 se inicializaron con el parámetro p (821,831).
Las funciones pueden también diferir. En la figura 8, n2 puede utilizar la función gi, conduciendo a coeficientes {p, 2p, 3p,...}, mientras que n3 puede utilizar la función g2 con k=1, conduciendo a coeficientes {p, p+1, p+2,...}.
Ejemplos de códigos “ahorrativos”
Código de un solo coeficiente: un código de un solo coeficiente es el código ahorrativo más simple a implementar. Este utiliza un solo parámetro a como el único coeficiente para cualquier operación de codificación, tal como en la figura 4. Sin embargo, a diferencia de la figura 5, para cada nuevo paquete codificado que se va a crear, puede asignar el coeficiente único a a todos los paquetes a codificar. Este código puede tener aplicabilidad limitada debido a su anticipada ausencia de diversidad (es decir, una alta probabilidad de dependencia lineal entre paquetes codificados).
Código de conjunto de coeficientes: en este código ahorrativo, los parámetros se toman como coeficientes predeterminados, sin cálculo adicional. La función asigna coeficientes seleccionados directamente a partir del conjunto de parámetros (por ejemplo, en la figura 7, donde el nodo tiene dos parámetros). Por ejemplo, la función puede asignar coeficientes de la lista almacenada de parámetros en modo por turnos (“round-robin”), seleccionando el siguiente parámetro como el coeficiente del siguiente paquete a codificar, y volviendo al inicio de la lista de parámetros cada vez que se recorre la lista, si se necesitan más coeficientes. Alternativamente, la función puede mapear parámetros en base a una definición de subconjuntos entre paquetes a codificar. Por ejemplo, una función dentro de un nodo con parámetros a y k (tal como en la figura 7) puede categorizar paquetes a codificar en dos categorías: paquetes que llegan y paquetes previamente almacenados en memoria tampón. La función puede, a continuación, utilizar el coeficiente a para paquetes entrantes y el coeficiente k para paquetes almacenados en memoria tampón.
Código de secuencia: un código de secuencia utiliza uno o varios parámetros como entrada a una secuencia matemática (por ejemplo, secuencia aritmética o geométrica). Por ejemplo, una función de un solo parámetro puede asignar potencias de a (1, a, a2, a3, etc.) o múltiplos de a (1, a, 2a, 3a, etc.) a los paquetes a codificar. (El código de la última secuencia se muestra en la figura 5.) En el diagrama de flujo de la figura 6 se proporciona un código de secuencia como ejemplo de la etapa de reutilización de parámetros (650). Naturalmente, se pueden definir secuencias utilizando más de un parámetro (por ejemplo, ver la figura 7 con la función g2 definida anteriormente). Los códigos pueden tomar elementos de códigos de secuencia y de códigos de conjunto de coeficientes. Por ejemplo, una función puede utilizar 1 en paquetes entrantes y calcular el siguiente elemento de una secuencia como un coeficiente para paquetes almacenados en memoria tampón (por ejemplo, paquetes situados en la unidad de almacenamiento en memoria tampón (313) de un nodo).
La asignación de coeficientes puede estar afectada por la complejidad de la codificación o por la política de almacenamiento en memoria tampón del nodo. Por ejemplo, un nodo puede almacenar en memoria tampón (313) solamente paquetes codificados, dado que los paquetes codificados ofrecen una representación más diversa de los datos que los paquetes no codificados. En la recodificación de paquetes codificados (es decir, la recodificación de un paquete codificado), una función puede seleccionar un coeficiente para un paquete codificado en base al número de paquetes no codificados que se combinaron para crear dicho paquete codificado (es decir, su densidad). El objetivo, en este caso, puede ser la reducción de la complejidad de la codificación (por ejemplo, el número de operaciones de campo requeridas para el proceso de codificación). Por ejemplo, puede ser más probable que se asigne el coeficiente 1 a paquetes densos que a paquetes dispersos o no codificados. Por lo tanto, un nodo que almacena en memoria tampón (313) tanto paquetes codificados como no codificados puede utilizar distintos conjuntos de coeficientes cuando toma paquetes de una categoría o de otra, en función de consideraciones tales como la complejidad.
Códigos de funciones compuestas: la descripción más general de un código ahorrativo es un código que utiliza una función preprogramada y un número limitado de parámetros preprogramados (713) para generar coeficientes (714) para codificación lineal, donde la definición de función puede variar con cada generación de coeficiente. Para cada paquete codificado a crear, la función genera un coeficiente por cada paquete a codificar, en base a los parámetros. En un código de función compuesta, la propia función puede ser reutilizada como un elemento de secuencia. Además, esta se puede definir por medio de diferentes parámetros u operaciones para cada coeficiente generado. Los ejemplos siguientes muestran funciones compuestas.
Reutilización de funciones: un nodo (210) puede reutilizar su función para generar coeficientes (213) por medio de composición de funciones (es decir, utilizar compuestos de su función). Por ejemplo, un código univariable con el parámetro a (por ejemplo, ver la figura 4) y la función g pueden generar coeficientes (413) siguiendo la secuencia (g(a), g2(a), g3(a), ...) o, para mayor diversidad, (1, g(a), g2(a), g3(a), ...), donde g2(a)= g(g(a)).
Múltiples parámetros: un nodo puede alternar entre un conjunto de parámetros mientras se desplaza a compuestos de orden superior de una función. Por ejemplo, un nodo con la función g y el conjunto de parámetros {a, k} (por ejemplo, ver la figura 7) puede utilizar la secuencia de coeficientes (1, g(a), g(K), g2(a), g2(K), g3(a), g3(K),...) como sus coeficientes (713).
Múltiples funciones: una función de nodo se puede definir por medio de compuestos de múltiples subfunciones. Por ejemplo, un código univariable con parámetro a (por ejemplo, ver la figura 4) puede generar coeficientes (413) que siguen la secuencia (1, g(a), g'(a), g2(a), g'2(a), g3(a), g'3(a), ...), donde g y g' son distintas subfunciones. Una función de nodo puede asimismo definirse mediante alternar entre múltiples composiciones de subfunciones. Por ejemplo, un código univariable con parámetro a (por ejemplo, ver la figura 4) puede generar coeficientes (413) que siguen la secuencia (1, g(a), g'(g(a)), g(g'(g(a))), ...). Los códigos pueden combinar elementos de dos o más de los procedimientos anteriores.
Ejemplo de código ahorrativo en red de saltos múltiples
Las redes de saltos múltiples son redes en las que las unidades de datos tienen que recorrer más de un salto desde el origen hasta el destino. Las redes en línea, o de conexión en cadena, se utilizan habitualmente para ilustrar el comportamiento de múltiples saltos. La figura 9 muestra una red en línea (900) formada por tres nodos: un nodo de origen n1 (910), un nodo intermedio n2 (920) y un nodo de destino n3 (930). El mismo parámetro a=3 se programó en las memorias de n1 (911), n2 (921) y n3 (931), donde las operaciones se realizaron en el campo F32 (es decir, q=32).
Cuando se realiza codificación lineal, todos los nodos seleccionan coeficientes C(i) utilizando la siguiente función:
g3: C(1)=1
C(i+1) = {C(i)+a} [q],
donde i>=1 es un índice y [.] es el operador módulo.
Código: por lo tanto, la función es cíclica en un modo por turnos a través del campo finito siguiendo la secuencia {1, a, 2a, 3a, ...}, donde a=3. La secuencia no se interrumpe para cada nuevo paquete codificado.
Escenario y política de transmisión: un bloque de 3 paquetes que contiene los paquetes (p1, p2, p3) se va a transmitir de n1 a n3. En cada enlace, dos de cada cinco paquetes se pierden debido a fluctuaciones en la calidad del canal. Para proteger los paquetes transmitidos, se introducen paquetes de redundancia después del segundo y el tercer paquetes transmitidos (tasa de código = 3/5).
La figura 10 muestra la secuencia de paquetes no codificados y codificados, transmitidos por los nodos n1 (912) y n2 (922).
El nodo n1 genera los paquetes c1 y c2 a partir de los paquetes de entrada p1, p2 y p3 y envía los cinco paquetes (912), según la política de transmisión descrita anteriormente. A continuación, los paquetes p2 y c1 se pierden (912).
El nodo n2 recibe los paquetes p1, p3 y c2 (912). Este utiliza estos tres paquetes introducidos para generar y transmitir dos paquetes codificados adicionales, c3 y c4, según la misma política de transmisión. El nodo n2 transmite, por lo tanto, la secuencia de paquetes {p1, p3, c3, c2, c4} (912). Posteriormente, los paquetes p1 y c2 se pierden (922). El nodo n3 recibe tres de los cinco paquetes transmitidos por n2 (922).
La tabla de la figura 10 muestra los coeficientes de todos los paquetes codificados en el escenario de la figura 9, donde cualquier paquete está representado por un triplete en F32 [a, b, c], que representa la combinación lineal L = ap1 bp2 cp3. Los tres paquetes recibidos en el destino son (p3, c3, c4) = ([0,0,1], [1,0,3], [30,12,1]), tres combinaciones independientes que permiten la decodificación de los tres paquetes originales. Esto muestra que un código ahorrativo puede producir satisfactoriamente independencia lineal en comunicaciones intraflujo.
Aumento de diversidad de código y robustez
Múltiples procedimientos pueden ser aplicados para aumentar la diversidad de código (es decir, reducir la probabilidad de recibir paquetes linealmente dependientes en el receptor). Estos son algunos ejemplos:
Fracciones: los paquetes a codificar se dividen en dos subconjuntos: una fracción fija f de paquetes utiliza el parámetro a como coeficiente, mientras que el resto 1-f utiliza 1. Este es el procedimiento descrito por Lee pero aplicado en la configuración intraflujo. En el contexto de esta solicitud, la fracción f sería parte de la definición de función. La determinación de si se debe asignar a un paquete el coeficiente a o 1 se puede llevar a cabo utilizando procedimientos no probabilísticos (por ejemplo, asignar el coeficiente en base a la actualización permanente de una fracción flotante).
Fracciones y funciones: se asigna g(a) a una fracción fija f de paquetes a codificar, asignándose g'(a) al resto 1-f.
Funciones de nodo: diseminar/programar un único parámetro/coeficiente y múltiples funciones. Cada nodo o grupo de nodos aplica una función diferente al coeficiente. Esto se menciona en la discusión de la figura 8. Otras características de nodo (por ejemplo, la dirección de red) pueden asimismo utilizarse como un parámetro adicional para contribuir a la diversidad de los coeficientes generados.
Los ejemplos expuestos anteriormente se dan a conocer a los expertos en la materia como una invención completa y una descripción de cómo realizar y utilizar las realizaciones de la invención, y no están destinados a limitar el alcance de aquello que el inventor o los inventores consideran su invención.
Se prevé que las modificaciones de los modos descritos anteriormente para llevar a cabo los procedimientos y sistemas dados a conocer en la presente memoria, que sean obvias para los expertos en la materia, están dentro del alcance de las reivindicaciones siguientes. Todas las patentes y publicaciones mencionadas en esta memoria descriptiva son indicativas de los niveles de cualificación de los expertos en la materia a que pertenece la invención. Se debe entender que la invención no se limita a procedimientos o sistemas particulares que pueden, por supuesto, variar. Se debe entender asimismo que la terminología utilizada en la presente memoria tiene solamente el propósito de describir realizaciones particulares, y no pretende ser limitativa. Tal como se usan esta descripción y en las reivindicaciones adjuntas, las formas singulares “un”, “uno”, “una”, “el”, y “la” incluyen referentes plurales salvo que el contexto indique claramente lo contrario. El término “serie” incluye dos o más referentes, salvo que el contexto indique claramente lo contrario. Salvo que se definan de otro modo, todos los términos técnicos y científicos utilizados en la presente memoria tienen el mismo significado que entiende normalmente un experto en la materia a la que pertenece la invención.

Claims (13)

REIVINDICACIONES
1. Nodo de red configurado para comunicarse con otros nodos de red, que comprende:
un receptor para recibir paquetes de entrada;
memoria local del nodo, donde se almacenan uno o varios parámetros para la codificación;
un codificador para crear paquetes codificados a partir de paquetes de entrada utilizando uno o varios coeficientes de una codificación lineal de red, donde cada coeficiente de la codificación lineal de red es generado en el nodo de red por medio de una función predeterminada del uno o varios parámetros, que puede ser seleccionada localmente en el nodo de red sin coordinación con los otros nodos de red; y
un transmisor para transmitir los paquetes codificados, caracterizado por que el nodo de red está configurado para generar el uno o varios parámetros por medio de la función predeterminada, según una de las opciones A, B o C:
A) el uno o varios parámetros comprenden un parámetro a que es un elemento de un campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función go, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de manera que
para cada entero i > 0, C(i) = ai;
B) el uno o varios parámetros comprenden un parámetro a que es un elemento del campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función gi, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de manera que
para cada entero i > 1, C(i) = r*a[q], siendo [.] el operador módulo;
C) el uno o varios parámetros comprenden parámetros a y k que son elementos del campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función g2, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de tal modo que para cada entero i > 1, C(+1) = (C(i) + K)[q], siendo [.] el operador módulo, y C(1) = a.
2. Nodo de red, según la reivindicación 1, en el que el codificador está configurado para crear los paquetes codificados a partir de copias, almacenadas en memoria tampón, de paquetes de entrada o de paquetes codificados previamente.
3. Nodo de red, según cualquiera de las reivindicaciones 1 a 2, en el que el codificador está configurado para utilizar uno o varios coeficientes generados previamente y almacenados localmente, para calcular un coeficiente de la codificación lineal de red.
4. Nodo de red, según cualquiera de las reivindicaciones 1 a 3, en el que el uno o varios parámetros o la función predeterminada son seleccionados por el nodo de red en una configuración de red o un descubrimiento de nodo.
5. Nodo de red, según cualquiera de las reivindicaciones 1 a 4, en el que el uno o varios parámetros o la función predeterminada son inicializados en una configuración de red o un descubrimiento de nodo, mediante una unidad de gestión de red, y a continuación se fijan.
6. Nodo de red, según cualquiera de las reivindicaciones 1 a 3, en el que el uno o varios parámetros o la función predeterminada se preprograman y se fijan en la fabricación del dispositivo.
7. Nodo de red, según cualquiera de las reivindicaciones 1 a 3, en el que el uno o varios parámetros o la función predeterminada son inicializados en una configuración de red o un descubrimiento de nodo, y se pueden modificar o actualizar mediante el nodo de red o mediante una unidad de gestión de red.
8. Nodo de red, según cualquiera de las reivindicaciones 1 a 7, en el que la función predeterminada es reinicializada para cada operación de codificación o para cada flujo o lote de paquetes.
9. Nodo de red, según cualquiera de las reivindicaciones 1 a 8, en el que la función predeterminada es un compuesto de dos o más subfunciones.
10. Serie de nodos de red en comunicación, comprendiendo la serie de nodos de red:
un primer nodo de red y un segundo nodo de red, cada uno según la reivindicación 1,
donde el primer nodo de red está configurado para comunicarse con el segundo nodo de red.
11. Serie de nodos de red, según la reivindicación 10, en la que el uno o varios parámetros del primer nodo de red pueden ser seleccionados localmente sin coordinación con el segundo nodo de red.
12. Procedimiento para procesar paquetes introducidos en un nodo de red que está configurado para comunicarse con otros nodos de red, comprendiendo el procedimiento:
leer uno o varios parámetros de una memoria local;
determinar si se requiere un paquete codificado;
reutilizar el uno o varios parámetros para generar uno o varios coeficientes requeridos para la codificación lineal de red; y
crear paquetes codificados a partir de paquetes de entrada utilizando el uno o varios coeficientes generados, donde cada uno del uno o varios coeficientes se genera en el nodo de red a partir del uno o varios parámetros por medio de una función predeterminada que puede ser seleccionada localmente en el nodo de red sin coordinación con los otros nodos de red,
estando el procedimiento caracterizado por que:
el uno o varios parámetros y la función predeterminada son según una de las opciones A, B o C:
A) el uno o varios parámetros comprenden un parámetro a que es un elemento de un campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función go, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de manera que
para cada entero i > 0, C(i) = ai;
B) el uno o varios parámetros comprenden un parámetro a que es un elemento del campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función gi, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de manera que
para cada entero i > 1, C(i) = r*a[q], siendo [.] el operador módulo;
C) el uno o varios parámetros comprenden los parámetros a y k que son elementos del campo finito Fq, siendo q un tamaño de campo del campo finito Fq, y
la función predeterminada es una función g2, utilizada por el codificador para generar una secuencia indexada de coeficientes C(/), de manera que
para cada i > 1, C (+1) = (C(i) + K)[q], siendo [.] el módulo operador, y C(1) = a.
13. Procedimiento, según la reivindicación 12, en el que la determinación se basa en una solicitud externa de un paquete codificado o en un factor interno.
ES20716986T 2019-04-30 2020-02-28 Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros Active ES2924311T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/399,552 US11108705B2 (en) 2019-04-30 2019-04-30 Linear network coding with pre-determined coefficient generation through parameter initialization and reuse
PCT/US2020/020427 WO2020222903A1 (en) 2019-04-30 2020-02-28 Linear network coding with pre-determined coefficient generation through parameter initialization and reuse

Publications (1)

Publication Number Publication Date
ES2924311T3 true ES2924311T3 (es) 2022-10-05

Family

ID=70166122

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20716986T Active ES2924311T3 (es) 2019-04-30 2020-02-28 Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros

Country Status (5)

Country Link
US (1) US11108705B2 (es)
EP (1) EP3909160B1 (es)
CN (1) CN113728572A (es)
ES (1) ES2924311T3 (es)
WO (1) WO2020222903A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123336A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 通信方法和设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU767627B2 (en) 2000-01-17 2003-11-20 Samsung Electronics Co., Ltd. Apparatus and method for allocating channel using OVSF code for uplink synchronous transmission scheme in a W-CDMA communication system
US9819449B2 (en) 2002-05-14 2017-11-14 Genghiscomm Holdings, LLC Cooperative subspace demultiplexing in content delivery networks
US7574518B2 (en) 2003-06-23 2009-08-11 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US7408938B1 (en) 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US7349440B1 (en) 2003-10-15 2008-03-25 Microsoft Corporation System and method for broadcasting information over a network
US7706365B2 (en) 2003-11-25 2010-04-27 California Institute Of Technology Randomized distributed network coding
US7756051B2 (en) 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US7529198B2 (en) 2005-04-07 2009-05-05 Microsoft Corporation Scalable overlay network
CA2562202C (en) 2005-10-05 2013-06-18 Lg Electronics Inc. Method of processing traffic information and digital broadcast system
EP1801979B1 (en) 2005-12-22 2010-06-09 Microsoft Corporation Encoding and decoding optimisations for network coding
WO2007140437A2 (en) 2006-05-31 2007-12-06 Cornell Research Foundation, Inc. Methods and systems for space-time coding for distributed cooperative communication
US8705345B2 (en) 2007-11-26 2014-04-22 Iowa State University Research Foundation, Inc. Network protection using network coding
US8260952B2 (en) 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming
US7916665B2 (en) 2008-03-18 2011-03-29 Canon Kabushiki Kaisha Method and device for building of a network coding scheme for data transmission, corresponding computer program product and storage means
DE602008002147D1 (de) 2008-03-28 2010-09-23 Ntt Docomo Inc Verfahren und Vorrichtung zur Erhöhung des Datendurchsatzes in einem Kommunikationsnetzwerk
US8204086B2 (en) 2008-05-19 2012-06-19 Microsoft Corporation Natural network coding for multi-hop wireless network
US8509288B2 (en) 2008-06-04 2013-08-13 Polytechnic Institute Of New York University Spatial multiplexing gain for a distributed cooperative communications system using randomized coding
FR2939584B1 (fr) * 2008-12-08 2011-02-18 Canon Kk Procede de codage reseau dans un reseau maille, produit programme d'ordinateurs, moyen de stockage et noeuds de communication correspondants.
EP2264930B1 (en) 2009-06-15 2014-05-14 Canon Kabushiki Kaisha Distributed code generation method and device
CN102088331B (zh) * 2009-12-03 2015-01-14 株式会社Ntt都科摩 一种数据传输方法及网络节点
EP2360863B1 (en) 2010-02-12 2014-04-09 Canon Kabushiki Kaisha Method and device for transmitting data symbols
US8824470B2 (en) 2010-06-02 2014-09-02 Microsoft Corporation Multiparty real time content delivery
US8693501B2 (en) * 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
CN102487306B (zh) * 2010-12-06 2014-07-16 南京邮电大学 一种无线mesh网络编码方法
EP2873197B1 (en) 2012-07-16 2020-09-02 Code on Network Coding, LLC Deterministic distributed network coding
JP2016502794A (ja) * 2012-11-08 2016-01-28 キュー ファクター コミュニケーションズ コーポレーション 通信ネットワークにおいてtcp及び他のネットワークプロトコルのパフォーマンスを向上させる方法及び装置
CN103166965B (zh) * 2013-03-06 2015-10-28 北京航空航天大学 一种基于子空间属性的多源网络编码污染防御方法
CN103986661B (zh) * 2014-05-30 2017-11-07 上海珉智信息科技有限公司 一种支持网络编码的组播路由方法

Also Published As

Publication number Publication date
CN113728572A (zh) 2021-11-30
EP3909160B1 (en) 2022-06-29
US20200351220A1 (en) 2020-11-05
US11108705B2 (en) 2021-08-31
EP3909160A1 (en) 2021-11-17
WO2020222903A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
Shi et al. Concurrent entanglement routing for quantum networks: Model and designs
ES2834108T3 (es) Codificación de red distribuida determinista
US9246810B2 (en) Hash-based load balancing with per-hop seeding
Ostovari et al. Network coding techniques for wireless and sensor networks
Lucani et al. Fulcrum: Flexible network coding for heterogeneous devices
ES2399220T3 (es) Procedimiento de recuperación de paquetes perdidos para protocolos de transmisión de paquetes
Hansen et al. Network coded software defined networking: Enabling 5G transmission and storage networks
EP2962428B1 (en) Method and apparatus for improving performance in a wireless network
Xie et al. QoS multicast routing in cognitive radio ad hoc networks
US20190363976A1 (en) EMERGENCY PACKET TRANSMISSION ALLOCATION WITHIN TIME MULTIPLEXED CHANNEL HOPPING FOR LLNs
EP2106073B1 (en) Method and apparatus for increasing throughput in a communication network
Lucani et al. Fulcrum network codes: A code for fluid allocation of complexity
Robertazzi Introduction to computer networking
Dong et al. Delay minimization for relay-based cooperative data exchange with network coding
US20120230194A1 (en) Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection
Ji et al. Fundamental limits of distributed caching in multihop D2D wireless networks
ES2924311T3 (es) Codificación lineal de red con generación predeterminada de coeficientes por medio de inicialización y reutilización de parámetros
US10868625B2 (en) Time multiplexed channel hopping for LLNs
US11748297B2 (en) Reconfigurable security hardware and methods for internet of things (IOT) systems
Robertazzi Basics of computer Networking
Wu et al. STAC: Simultaneous transmitting and air computing in wireless data center networks
Beniwal et al. MM-SPEED: Multipath multi-speed routing protocol in 6LoWPAN networks
AT&T
Al Agha Network Coding
US11588547B2 (en) Seam abstraction in communications networks