ITMI20001202A1 - Metodo e dispositivo per tradurre indirizzi ip di reti per telecomunicazioni usando una memoria con oblio controllato. - Google Patents

Metodo e dispositivo per tradurre indirizzi ip di reti per telecomunicazioni usando una memoria con oblio controllato. Download PDF

Info

Publication number
ITMI20001202A1
ITMI20001202A1 IT2000MI001202A ITMI20001202A ITMI20001202A1 IT MI20001202 A1 ITMI20001202 A1 IT MI20001202A1 IT 2000MI001202 A IT2000MI001202 A IT 2000MI001202A IT MI20001202 A ITMI20001202 A IT MI20001202A IT MI20001202 A1 ITMI20001202 A1 IT MI20001202A1
Authority
IT
Italy
Prior art keywords
key
memory
mem
address
time
Prior art date
Application number
IT2000MI001202A
Other languages
English (en)
Inventor
Carlo Costantini
Marco Modena
Original Assignee
Cit Alcatel
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 Cit Alcatel filed Critical Cit Alcatel
Priority to IT2000MI001202A priority Critical patent/IT1319279B1/it
Publication of ITMI20001202A0 publication Critical patent/ITMI20001202A0/it
Priority to EP01401337A priority patent/EP1161059B1/en
Priority to AT01401337T priority patent/ATE308193T1/de
Priority to ES01401337T priority patent/ES2247036T3/es
Priority to DE60114299T priority patent/DE60114299T2/de
Priority to US09/866,837 priority patent/US6795816B2/en
Publication of ITMI20001202A1 publication Critical patent/ITMI20001202A1/it
Application granted granted Critical
Publication of IT1319279B1 publication Critical patent/IT1319279B1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Description

DESCRIZIONE
La presente invenzione riguarda il campo delle telecomunicazioni ed in particolare riguarda la traduzione di indirizzi IP (Internet Protocol) usati entro una privata in indirizzi IP diversi che sono noti entro un'altra rete (pubblica) usando memoria con oblio controllato.
Il crescente sviluppo delle telecomunicazioni, ed in particolare di Internet, crea spesso i problemi legati alla connessione di reti private con reti pubbliche attraverso apparati od elementi di rete. Tali apparati di interconnessione tra una rete e l'altra hanno sostanzialmente lo scopo di smistare le informazioni (o pacchetti) ricevute da un host computer della rete Internet e recapitarle all'host computer della rete privata che ne ha fatto richiesta. Al contrario, gli apparati di connessione devono smistare i pacchetti ricevuti dalla rete privata verso la rete pubblica. In questa operazione, svolta dagli apparati di interconnessione, gioca un ruolo fondamentale la traduzione degli indirizzi IP (Internet Protocol) da Indirizzi di Rete Locale ad Indirizzi di Rete Pubblica e vice versa.
La Traduzione di Indirizzi di Rete (NAT) viene descritta in termini generali in RFC 1631 che descrive la relazione tra NAT e CIDR (Classless Interdomain Routing) come un possibile modo per ridurre il problema dell esaurimento degli indirizzi IP. Tipicamente, una società con una sua rete privata associa gli indirizzi della sua rete privata ad uno o più indirizzi IP noti al mondo esterno. Ciò aiuta anche a migliorare la sicurezza dal momento che ciascuna richiesta entrante o uscente dal nodo di interconnessione deve subire un processo di traduzione che offre l'opportunità di qualificare o autenticare la richiesta o farla coincidere con una richiesta precedente.
Un'evoluzione della funzione di traduzione NAT è costituita dalla funzione NAPT (Network Address and Port Translation) che associa all indirizzo IP anche un identificativo del l'interfaccia (o porta) da cui proviene il pacchetto.
Lo svantaggio principale di entrambe le funzioni di traduzione NAT e NAPT è dato dal fatto che esse sono implementate attraverso programmi software e quindi non sono in grado di gestire tale traduzione in tempo reale (non supporta il cosi detto wire speed). Un ulteriore svantaggio di tali soluzioni note è che il numero di indirizzi IP di rete pubblica corrisponde al numero di accessi contemporanei a Internet che si vuole ottenere e pertanto la riduzione degli indirizzi IP di rete pubblica può non essere così consistente come invece si desidererebbe. Per quanto la situazione migliori con il NAPT, tale problema rimane.
Alla luce delle soluzioni note e dei problemi ad esse associati, è lo scopo principale della presente invenzione sviluppare un'architettura hardware in grado di supportare la funzione di traduzione NAPT con maggiore flessibilità rispetto a quanto fatto dal protocollo NAPT implementato via software.
Questo scopo, oltre ad altri, viene ottenuto mediante un metodo ed un dispositivo aventi le caratteristiche indicate nelle rispettive rivendicazioni indipendenti. Le rivendicazioni dipendenti di metodo e di dispositivo definiscono delle caratteristiche aggiuntive. Tutte le rivendicazioni comunque costituiscono una parte integrante della presente descrizione.
L'idea alla base della presente invenzione consiste nel creare una funzione di traduzione di indirizzi attraverso un'opportuna trasformazione dei parametri caratteristici dei pacchetti in ingresso, assoggettata al superamento di un periodo di tempo prestabilito. I parametri caratteristici del pacchetto includono l’indirizzo IP sorgente, la porta TCP sorgente ed eventualmente la porta fisica dell'apparato di interconnessione. La trasformazione effettuata sui parametri caratteristici può essere definita come un'operazione di "hashing" che verrà spiegata meglio nel seguito. La presente invenzione viene preferibilmente implementata con un apposito apparato, quindi in Hardware.
L'invenzione risulterà certamente chiara alla luce della descrizione dettagliata che segue, data a puro titolo esemplificativo e non limitativo, da leggersi con riferimento alle annesse tavole di disegno, in cui
- Fig. 1 mostra i blocchi principali che costituiscono il dispositivo di traduzione-archiviazione-recupero indirizzi secondo la presente invenzione; e
- Fig. 2 è uno schema a blocchi dell'allocatore.
Prima di descrivere funzionalmente la presente invenzione, si ritiene utile accennare brevemente al concetto di "hashing" che verrà richiamato spesso nella descrizione che segue. Per una migliore comprensione di tale concetto si può comunque riferirsi a "The Art Of Computer Programming-Sorting And Searching" di Donald E. Knuth, Voi. 3, Seconda Edizione, Capitolo 6.4.
"Hashing" è la trasformazione di una stringa di caratteri, detta chiave, in un valore di lunghezza fissa e generalmente più corta della stringa originale. Generalmente l'operazione di hashing viene utilizzata per indicizzare e recuperare oggetti in un database poiché è naturalmente più semplice trovare l'oggetto usando la chiave trasformata più corta piuttosto che trovarlo usando il valore originale. L'algoritmo di hashing è chiamato "funzione hash". Una buona funzione hash non dovrebbe produrre lo stesso valore di hash a partire da due diversi dati di ingresso. Se ciò avviene, si dice che avviene una collisione. Comunque, una funzione hash che offre un rischio di collisione basso può essere considerato accettabile.
Si descriverà ora la presente invenzione basata su un sistema di archiviazione con oblio implicito. Si descriverà inizialmente il sistema in forma astratta per poi proseguire con l'applicazione al NAPT (traduzione, archiviazione e recupero di indirizzi IP).
Un elemento da archiviare, detto chiave (K), si presenta sotto forma di vettore di bit. Con riferimento a Fig. 1, il blocco HC (Hash Computer) calcola N valori,
h(K,i), con 1 <= i <= N e 0 <=h(K,i) <M dove M è il numero di locazioni della memoria che si ha a disposizione, N è il numero di tentavi, cioè è un parametro del sistema, al crescere del quale aumenta la complessità del dispositivo e diminuisce la probabilità che ad un elemento venga rifiutata l'archiviazione. Le h(.) sono le suddette funzioni hash. Sono noti in letteratura vari modi per costruire un insieme di funzioni hash. A titolo di esempio, comunque ben applicabile in questo contesto, si consideri la combinazione del "Polinomial Hashing" descritto a pag. 520 con ’TOpen Addressing With Doublé Hashing" descritto a pag. 528 della sopra indicata pubblicazione.
A valle dei blocco HC viene posto un blocco Allocatore (o Archiviatore) AL che utilizza i valori a(i) = h(K,i) come indirizzi della Memoria MEM. Ogni locazione di questa memoria MEM contiene una chiave K e una data o un istante T (data o istante dell'ultimo accesso). La memoria MEM può essere costituita da due diverse memorie (una memoria KM per le chiavi ed una memoria TM per le date (o gli istanti di tempo) di ultimo accesso o da una sola memoria con due distinti campi per le chiavi e le date.
Se in una delle N locazioni di memoria KM c'è già la chiave K, l'allocatore AL aggiorna la data e seleziona l'indirizzo. Se invece in nessuna delle N locazioni è già presente la chiave K, l'allocatore AL esaminerà nella TM le N date (o istanti di tempo) ad esse associate.
Tra le date che sono antecedenti la data attuale di un intervallo di tempo Δί maggiore o uguale ad un valore prefissato, ne sceglie una. Nella corrispondente locazione viene scritta la chiave K, assieme alla data attuale.
Come ulteriore alternativa, infine, se tra le N locazioni nessuna contiene la chiave K e le date sono tutte recenti, l'archiviazione viene rifiutata. Benché questa terza alternativa sia in effetti possibile, il rischio che ciò accada potrebbe essere limitato fortemente aumentando i valori di M ed N.
Collegato alla memoria MEM vi è un blocco di Recupero o "Retriever" RT. Il Retriever RT legge dalla memoria aH'indirizzo selezionato; ritrova la chiave e tutte le informazioni associate all'elemento e aggiorna il campo data con la data attuale.
Riassumendo, il dispositivo secondo l'invenzione fornisce il servizio di archiviare in memoria e rileggere gli elementi archiviati in modo semplice ed efficiente, e dimentica gli elementi obsoleti (cioè quelli che non sono richiesti da tempo) riutilizzandone così lo spazio in memoria. Proprio per questo motivo la memoria si definisce "ad oblio controllato (od implicito)".
La scelta tra N locazioni con data non recente potrebbe chiaramente essere fatta in vari modi, considerati equivalenti ai fini della presente invenzione. Ad esempio la scelta potrebbe essere fatta a caso o scegliendo la locazione con la data meno recente di tutte o scegliendo la prima locazione con data non recente, ecc. A seconda che si usi l'uno o l'altro criterio di scelta possono cambiare le prestazioni e la complessità del sistema.
Come anticipato sopra, esiste anche il caso che l'archiviazione venga rifiutata. Se ad esempio N=1 è possibile che due diverse chiavi KA e KB richiedenti l'archiviazione puntino allo stesso indirizzo di memoria, poiché può capitare che h(KA) = h(KB). In questo caso solo uno dei due elementi potrà essere archiviato, l'altro viene rifiutato.
Questo è un evento che accade con una certa probabilità, probabilità che diminuisce al crescere della dimensione della memoria. Questa probabilità diminuisce ulteriormente se N aumenta, ad esempio se N=2 è più difficile che accada <* >congiuntamente che
11 numero di bit usati per rappresentare la data è ovviamente finito. Di conseguenza il tempo trascorso dall'ultimo accesso in memoria deve essere calcolato come differenza tra la data attuale e la data archiviata. Quindi, un elemento è dichiarato obsoleto se il tempo trascorso è maggiore di un tempo prefissato.
Si ipotizzi ora che questo dispositivo sia inserito in un apparato di interconnessione, al confine tra una rete privata e una rete pubblica, cioè si consideri l'applicazione al protocollo NAPT.
Come è noto, ogni trama di segnale proveniente da una rete privata, ad esempio una rete Ethernet, destinata a transitare su una rete pubblica deve prevedere un’intestazione comprendente diverse informazioni quali l'indirizzo dell'host sorgente ed anche il numero della porta sorgente del Protocollo di Controllo delle Trasmissioni (TCP).
Quindi, su ogni pacchetto IP destinato alla rete pubblica e proveniente da un rete privata, il dispositivo secondo l'invenzione opera la traduzione dalla stringa [Private EP Source Address, TCP Source Pori; Number] alla stringa [NAPT (Public) IP Source Address, NAPT TCP Pori Number]
cioè l'indirizzo Sorgente IP della rete privata, che non è conosciuto dalle reti pubbliche, viene convertito in un indirizzo sorgente pubblico. Il numero di indirizzi pubblici in cui gli indirizzi privati possono essere convertiti è variabile, al limite è pari ad uno.
A questo punto il pacchetto può essere immesso nella rete pubblica, dal momento che possiede un indirizzo di mittente (SA) pubblico. I pacchetti di risposta avranno come destinatario il "NAPT SA".
Quando il dispositivo riceve i pacchetti di risposta, cioè con destinatario "NAPT SA", il dispositivo secondo l'invenzione deve operare la traduzione inversa, cioè dalla stringa
[NAPT (Public) IP Address, NAPT TCP Port Number] alla stringa [Originai Private IP Source Address, Originai TCP Source Port Number] Il processo di traduzione (diretta e inversa) rimane attivo fintanto che transitano pacchetti tra i due estremi in entrambe le direzioni. Dopo un certo tempo dall'ultimo pacchetto transitato, la connessione viene dichiarata chiusa e il numero "NAPT TCP Port Number" può essere riutilizzato.
Il dispositivo secondo la presente invenzione, che è stato descritto sopra in termini generali, considera come chiave KEY i campi [Private IP Source Address, TCP Source Port Number] ed eventualmente l'identificatore di porta fisica, nel caso in cui più reti private convergano nello stesso nodo prima di essere immesse in una rete pubblica. Questa chiave KEY viene inviata all'Hash Computer HC che ricava una serie di indirizzi di memoria (a,, a^ ..., aj che vengono mandati in ingresso al blocco allocatore, assieme alla chiave originaria e all'istante di tempo corrente (Tc). L'istante Tc sostanzialmente è un numero intero che rapresenta la posizione attuale dell'orologio di sistema o Time Counter TC. L'allocatore, per ogni i = 1, 2, 3...n, consulta la memoria KM e legge i valori (K(i) = K[a(i)]) memorizzati nelle varie locazioni di memoria e i tempi corrispondenti (t(i) = T[a(i)]). I tempi associati ad ogni valore memorizzato corrispondono all'istante di tempo in cui la locazione di memoria è stata aggiornata.
L'allocatore, leggendo nella memoria KM verifica se esiste un valore j tale che K(j) = KEY. Se questo valore esiste, il contenuto di quella locazione di memoria viene riaggiomato, così come viene riaggiomato il valore del corrispondente istante di tempo. In pratica si scrive K[a(j)] = KEY e T[a(j)] = Tc e viene inviato in uscita dall'al locatore AL l'indirizzo selezionato a(j) che sarà l'indirizzo sorgente da utilizzare per inviare i pacchetti sulla rete pubblica.
Tuttavia, se l'allocatore, leggendo nella memoria KM, non trova un valore j tale che K(j) = KEY, cerca comunque un indirizzo associato ad un tempo di aggiornamento vecchio. In altre parole verifica se esiste un numero j tale che (Tc-t(j)) mod. P > At, dove P è il periodo del Time Counter TC che fornisce la base tempi e At è un intervallo di tempo prefissato (il Time Counter TC fornisce il valore dell'ora o della data utilizzando un certo numero di bit). Cioè se esiste una locazione di memoria occupata ma che non è stata aggiornata di recente, il valore in essa contenuto verrà aggiornato con il nuovo valore, così come verrà aggiornato il tempo Tc corrispondente.
Se, al contrario, tutti i tempi sono recenti, la connessione verrà rifiutata. È altresì possibile che vi sia più di un valore j che soddisfa la relazione di cui sopra ed in questo caso se ne dovrà scegliere uno. Questa scelta può avvenire in base a diverse considerazioni, come detto sopra, ad esempio si può considerare la locazione di memoria associata al tempo meno recente.
In ogni caso, una volta scelto il valore di j, si scrive K[a(j)] = KEY e T[a(j)] = Tc e viene inviato in uscita dall’allocatore AL l'indirizzo selezionato [a(j)] che sarà l'indirizzo sorgente (NAPT TCP) da utilizzare per inviare i pacchetti sulla rete pubblica.
La traduzione inversa è operata dal blocco Retriever (RT), che recupera dalla memoria l'indirizzo privato e il numero originario di porta TCP. Il blocco RT riceve in ingresso [NAPT (Public) IP Address, NAPT TCP Pori Number] e indicazioni sull'istante attuale Tc, indicazioni che gli fornisce il Time Counter TC.
Ogni volta che si opera una traduzione, si aggiorna la data (l'istante) corrispondente.
Quando termina il traffico relativo ad una connessione, il corrispondente campo data nella memoria non viene più aggiornato. Dopo un certo tempo (prefissato) il contenuto della locazione diventa obsoleto e lo spazio può essere riutilizzato dall'allocatore per un'altra connessione.
Naturalmente, l'Allocatore ed il Retriever non funzionano contemporaneamente (mentre un pacchetto entra nella rete privata non può uscire nessun pacchetto da questa). Quindi il bus dati bidirezionale che accede alla memoria ed il bus indirizzi (illustrati con una freccia a doppia testa) sono condivisi dall'allocatore e dal retriever e sono separati solo per chiarezza d'illustrazione.
È stato descritto un nuovo metodo ed un nuovo dispositivo per tradurre indirizzi IP che soddisfano tutti gli scopi che ci si era preposti. Molti cambiamenti, modifiche, variazioni e diversi usi della presente invenzione, tuttavia, diverranno chiari a coloro esperti della tecnica dopo aver considerato la presente descrizione e gli annessi disegni che illustrano sue forme di realizzazione preferite. Tutti tali cambiamenti, modifiche, variazioni e diversi usi che non si allontanano dallo spirito e daU'ambito dell'invenzione sono considerati coperti dall'invenzione che è limitata solo dalle rivendicazioni che seguono.

Claims (11)

  1. RIVENDICAZIONI 1. Metodo per tradurre una chiave o prima stringa di caratteri (K) in una seconda stringa di caratteri, detto metodo comprendendo la fase di sottoporre detta chiave ad una funzione hash per ricavare una pluralità di indirizzi di memoria (a,, . .., aj, caratterizzato dalle fasi di: - utilizzare detta pluralità di indirizzi di memoria (a„ ..., aj come indirizzi di una memoria (MEM), detta memoria (MEM) comprendendo una pluralità di locazioni per chiavi e per informazioni temporali relative all'ultimo aggiornamento di dette locazioni; - aggiornare detta memoria (MEM) con la chiave (K[a(j)]) che corrisponde ad uno selezionato (a(j)) di detti indirizzi di memoria (a,, ..., a,,) e con l'istante di tempo e/o la data corrente; - inviare in uscita detto indirizzo di memoria selezionato (a(j)).
  2. 2. Metodo secondo la rivendicazione 1, caratterizzato dal fatto che detto indirizzo di memoria selezionato (a(j)) è quel valore corrispondente ad un numero (j) tale che, nella memoria (MEM), K(j) = KEY e dal fatto di comprendere la fase di scrittura in memoria di K[a(j)] = KEY e T[a(j)] = Tc, ove Tc è ristante di tempo e/o la data corrente.
  3. 3. Metodo secondo la rivendicazione 1, caratterizzato dal fatto che detto indirizzo di memoria selezionato (a(j)) è quel valore corrispondente ad un numero (j) tale che, nella memoria (MEM), K(j) ≠ KEY e (Tc-t(j)) mod. P > At, e dal fatto di comprendere la fase di scrittura in memoria di K[a(j)] = KEY e T[a(j)] = Tc, ove Tc è ristante di tempo e/o la data corrente, P è il periodo di orologio di sistema e At è un intervallo di tempo prefissato.
  4. 4. Metodo secondo la rivendicazione 1, 2 o 3, caratterizzato dalla fase di ricevere detto indirizzo di memoria selezionato (a(j)), accedere alla relativa locazione di memoria (MEM), estrarre la chiave (KEY) ad esso corrispondente e scrivere nella memoria (MEM) KEY = K[a(j)] e Tc = T[a(j)], ove Tc è ristante di tempo e/o la data corrente.
  5. 5. Metodo secondo la rivendicazione 1, caratterizzato dal fatto che detta chiave comprende informazioni relative ad un Indirizzo Sorgente IP Privato e che detta seconda stringa comprende informazioni relative ad un Indirizzo Sorgente IP NAPT Pubblico.
  6. 6. Metodo secondo la Rivendicazione 5, caratterizzato dal fatto che detta chiave (KEY) comprende inoltre informazioni relative ad un Numero di Porta Sorgente TCP ed eventualmente un identificatore di Porta Fisica e che detta seconda stringa comprende informazioni relative ad un numero di Porta TCP NAPT.
  7. 7. Dispositivo per tradurre una chiave o prima stringa di caratteri (KEY) in una seconda stringa di caratteri, detto dispositivo comprendendo: - un hash computer (HC) che riceve in ingresso la chiave (KEY) e invia in uscita una pluralità di indirizzi di memoria (a,, aj; - un Time Counter (TC) che fornisce la posizione attuale di orologio di sistema ad un bloccò Allocatore (AL) e ad un blocco Recuperatore (RT); - un blocco Allocatore (AL) che riceve in ingresso detta pluralità di indirizzi di memoria (a^ a^ ..., a,,), detta chiave (KEY) e detta posizione attuale di orologio di sistema e invia in uscita un indirizzo prescelto (a^); - un blocco Recuperatore (RT) che riceve in ingresso un indirizzo prescelto (aj) e la posizione attuale di orologio di sistema ed invia in uscita la chiave originaria (KEY), detti blocchi Allocatore (AL) e Recuperatore (RT) cooperando con mezzi di memoria (MEM) comprendenti allocazioni per chiavi (KEY) e allocazioni per la posizione di orologio di sistema corrispondente all'ultimo aggiomamento/riscrittura della locazione di chiave (KEY).
  8. 8. Dispositivo secondo la rivendicazione 7, caratterizzato dal fatto che detto indirizzo di memoria selezionato (a(j)) è quel valore corrispondente ad un numero (j) tale che, nella memoria (MEM), K(j) = KEY e dal fatto che detto blocco allocatore (AL) è atto ad aggiornare la memoria scrivendo K[a(j)] = KEY e T[a(j)] = Tc, ove Tc è ristante di tempo e/o la data corrente.
  9. 9. Dispositivo secondo la rivendicazione 7, caratterizzato dal fatto che detto indirizzo di memoria selezionato (a(j)) è quel valore corrispondente ad un numero (j) tale che, nella memoria (MEM), K(j) ≠ KEY e (Tc-t(j)) mod. P > At, ove Tc è l'istante di tempo e/o la data conrente, P è il periodo di orologio di sistema e At è un intervallo di tempo prefissato e dal fatto che detto blocco allocatore (AL) è atto ad aggiornare la memoria scrivendo K[a(j)] = KEY e T[a(j)] = Tc, ove Tc è l'istante di tempo e/o la data corrente.
  10. 10. Dispositivo secondo la rivendicazione 7, 8 o 9, caratterizzato dal fatto che detto Recuperatore (RT) è atto a ricevere detto indirizzo di memoria selezionato (a(j)), accedere alla relativa locazione di memoria (MEM), estrarre la chiave (KEY) ad esso corrispondente e scrivere nella memoria (MEM) KEY = K[a(j)] e Tc = T[a(j)], ove Tc è l'istante di tempo e/o la data corrente.
  11. 11. Dispositivo secondo una qualsiasi delle rivendicazioni 7-10, caratterizzato dal fatto che è inserito in un nodo di rete che collega una o più reti pubbliche con una o
IT2000MI001202A 2000-05-31 2000-05-31 Metodo e dispositivo per tradurre indirizzi ip di reti pertelecomunicazioni usando una memoria con oblio controllato. IT1319279B1 (it)

Priority Applications (6)

Application Number Priority Date Filing Date Title
IT2000MI001202A IT1319279B1 (it) 2000-05-31 2000-05-31 Metodo e dispositivo per tradurre indirizzi ip di reti pertelecomunicazioni usando una memoria con oblio controllato.
EP01401337A EP1161059B1 (en) 2000-05-31 2001-05-22 Method and device for translating telecommunication network IP addresses by a leaky-controlled memory
AT01401337T ATE308193T1 (de) 2000-05-31 2001-05-22 Verfahren und vorrichtung zum übersetzen von ip telekommunikationsnetzwerkadressen mit einem gesteuerten undichten speicher
ES01401337T ES2247036T3 (es) 2000-05-31 2001-05-22 Metodo y dispositivo para traducir direcciones de red de telecomunicaciones ip por una memoria de perdida controlada.
DE60114299T DE60114299T2 (de) 2000-05-31 2001-05-22 Verfahren und Vorrichtung zum Übersetzen von IP Telekommunikationsnetzwerkadressen mit einem gesteuerten undichten Speicher
US09/866,837 US6795816B2 (en) 2000-05-31 2001-05-30 Method and device for translating telecommunication network IP addresses by a leaky-controlled memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT2000MI001202A IT1319279B1 (it) 2000-05-31 2000-05-31 Metodo e dispositivo per tradurre indirizzi ip di reti pertelecomunicazioni usando una memoria con oblio controllato.

Publications (3)

Publication Number Publication Date
ITMI20001202A0 ITMI20001202A0 (it) 2000-05-31
ITMI20001202A1 true ITMI20001202A1 (it) 2001-12-01
IT1319279B1 IT1319279B1 (it) 2003-10-10

Family

ID=11445153

Family Applications (1)

Application Number Title Priority Date Filing Date
IT2000MI001202A IT1319279B1 (it) 2000-05-31 2000-05-31 Metodo e dispositivo per tradurre indirizzi ip di reti pertelecomunicazioni usando una memoria con oblio controllato.

Country Status (6)

Country Link
US (1) US6795816B2 (it)
EP (1) EP1161059B1 (it)
AT (1) ATE308193T1 (it)
DE (1) DE60114299T2 (it)
ES (1) ES2247036T3 (it)
IT (1) IT1319279B1 (it)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965945B2 (en) * 2001-03-07 2005-11-15 Broadcom Corporation System and method for slot based ARL table learning and concurrent table search using range address insertion blocking
TW588532B (en) * 2002-03-29 2004-05-21 Realtek Semiconductor Corp Management device and method of NAT/NAPT session
WO2004051935A1 (ja) * 2002-12-05 2004-06-17 Allied Telesis K.K. ユーザ特定システム、ユーザ特定装置、ユーザ特定方法、アドレス変換装置、及びプログラム
TWI222811B (en) * 2002-11-19 2004-10-21 Inst Information Industry NAPT gateway system and method to expand the number of connections
JP2005045409A (ja) * 2003-07-24 2005-02-17 Pioneer Electronic Corp 情報処理装置、そのシステム、その方法、そのプログラム、および、そのプログラムを記録した記録媒体
BRPI0518528A2 (pt) * 2005-10-26 2008-11-25 Thomson Licensing sistema e mÉtodo para selecionar um endereÇo ip de difusço seletiva
CN102611765A (zh) * 2005-10-26 2012-07-25 汤姆森许可贸易公司 用于选择组播ip地址的系统和方法
US7912049B2 (en) 2007-06-26 2011-03-22 Gary Robert Gutknecht System and method for selecting a multicast IP address
DE102008019033A1 (de) * 2008-04-15 2009-10-22 T-Mobile International Ag Universelle Adressierung eines Kommunikationspartners über transparente statische Zuordnung einer Rufnummer
MX2016007524A (es) * 2013-12-11 2016-09-13 Sca Hygiene Prod Ab Esquema para direccionamiento de estructuras de protocolo hacia dispositivos obtetivo.

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793634B2 (ja) * 1986-11-29 1995-10-09 株式会社東芝 アドレス変換機能付きバスアダプタ
US5027350A (en) * 1988-10-20 1991-06-25 Hewlett-Packard Method and apparatus for providing a local area network bridge
US5287499A (en) * 1989-03-22 1994-02-15 Bell Communications Research, Inc. Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table
US5136580A (en) * 1990-05-16 1992-08-04 Microcom Systems, Inc. Apparatus and method for learning and filtering destination and source addresses in a local area network system
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US5740171A (en) * 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
WO1997040610A2 (en) * 1996-04-24 1997-10-30 Northern Telecom Limited Internet protocol filter
US6233242B1 (en) * 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with shared memory system
TW431094B (en) * 1999-07-16 2001-04-21 Via Tech Inc Memory access of Ethernet
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables

Also Published As

Publication number Publication date
US20020048285A1 (en) 2002-04-25
US6795816B2 (en) 2004-09-21
ES2247036T3 (es) 2006-03-01
ATE308193T1 (de) 2005-11-15
EP1161059B1 (en) 2005-10-26
DE60114299T2 (de) 2006-07-20
EP1161059A2 (en) 2001-12-05
IT1319279B1 (it) 2003-10-10
DE60114299D1 (de) 2005-12-01
ITMI20001202A0 (it) 2000-05-31
EP1161059A3 (en) 2003-06-18

Similar Documents

Publication Publication Date Title
US6389419B1 (en) Storing and retrieving connection information using bidirectional hashing of connection identifiers
JP5624331B2 (ja) コンピュータ実施方法
JP5525273B2 (ja) 階層的に構造化された可変長識別子を有するパケットを転送するためのシステム
KR102072203B1 (ko) 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드
JP3299528B2 (ja) インターネット網等の高速通信網のノードのルーティング表構築のためのプレフィックス分析による情報探索用メモリ
EP1358739B1 (en) Method and apparatus for routing table management
KR100705593B1 (ko) 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US7058642B2 (en) Method and data structure for a low memory overhead database
JP6352290B2 (ja) コンテンツ中心ネットワークにおけるコンテンツ所有者及びノードのパケット送信方法
US6775281B1 (en) Method and apparatus for a four-way hash table
EP0993144B1 (en) Packet relaying apparatus and method and circuit thereof
US7139747B1 (en) System and method for distributed web crawling
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
EP2869536B1 (en) System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9600591B2 (en) Method and apparatus for URL address search in URL list
US20030065812A1 (en) Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
JP3627697B2 (ja) パケットの宛先検索システム
WO2003069509A2 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
CN103067353A (zh) 将来自远程发送者的数据流传递到远程目的地的方法
US6804230B1 (en) Communication device with forwarding database having a trie search facility
ITMI20001202A1 (it) Metodo e dispositivo per tradurre indirizzi ip di reti per telecomunicazioni usando una memoria con oblio controllato.
CN110557335A (zh) 三态内容寻址存储器tcam表项处理方法及装置
EP1777889B1 (en) Method of processing information packets and telecommunication apparatus using the same
US20070088854A1 (en) Apparatus for searching TCP and UDP sockets
US6421660B1 (en) Enhanced searching method and apparatus for variable bit chains