b"\n_START_ARTICLE_\nDIAMETER\n_START_PARAGRAPH_\nIn informatica e telecomunicazioni Diameter \xc3\xa8 un protocollo AAA (Authentication, Authorization and Accounting) successivo a RADIUS, anche se non \xc3\xa8 direttamente retrocompatibile all'indietro. RADIUS \xc3\xa8 un protocollo AAA client-server tra un NAS (Network Access Server) e un server RADIUS centralizzato, basato sul protocollo di livello di trasporto TCP; Diameter \xc3\xa8 un protocollo AAA peer-to-peer e consiste di un protocollo di base (specificato nell'RFC 3588) e di un set di estensioni chiamate applicazioni Diameter. Il protocollo base non pu\xc3\xb2 essere utilizzato da solo, ma sempre associato a qualche applicazione Diameter specifica del servizio da fornire (Mobile IP, NASREQ, Strong Security, ecc.). \xc3\x88 basato sui protocolli di trasporto TCP o SCTP, e richiede l'utilizzo obbligatorio di IPsec.\n_START_SECTION_\nStruttura\n_START_PARAGRAPH_\nDiameter \xc3\xa8 definito in termini di un protocollo base e di un set di applicazioni. Questa progettazione consente al protocollo di essere esteso a nuove tecnologie d'accesso. Il protocollo base fornisce meccanismi di base per un trasporto affidabile, delivery dei messaggi e gestione degli errori, e deve essere utilizzato in concomitanza con un'applicazione Diameter. Ogni applicazione si affida ai servizi del protocollo base per supportare uno specifico tipo di accesso alla rete. Le due principali applicazioni sono Mobile IPv4 e NASREQ (Network Access Server Requirements). L'applicazione NASREQ supporta PPP/IP dial-in ed \xc3\xa8 inteso come sostituto di RADIUS._NEWLINE_Il protocollo base definisce il formato di un messaggio Diameter di base. I dati sono trasportati nel messaggio Diameter come collezione di AVP (Attribute Value Pair); un AVP \xc3\xa8 l'equivalente di un attributo RADIUS e consiste di campi multipli: AVP Code, Length, Flags e Data. Alcuni AVP sono utilizzati dal protocollo base di Diameter; altri AVP servono alle applicazioni Diameter; altri ancora possono essere usati dall'applicazione di alto livello dell'end system che impiega Diameter._NEWLINE_Diameter, a differenza di RADIUS, opera su un layer di trasporto affidabile (TCP o SCTP) che fornisce controllo di flusso, conferme a livello trasporto e ritrasmissioni. Mentre TCP \xc3\xa8 universalmente noto, Stream Control Transmission Protocol (SCTP) \xc3\xa8 qualcosa di simile ad un nuovo protocollo di trasporto IP, esistente allo stesso livello di UDP o TCP. Nel 2000 SCTP \xc3\xa8 stato proposto come standard ed \xc3\xa8 specificato nella RFC 2960.\n_START_SECTION_\nSpecifiche\n_START_PARAGRAPH_\nUn messaggio Diameter consiste di un header di lunghezza fissa di 20 byte, seguito da un numero variabile di AVP. Il formato dell'header \xc3\xa8 il seguente:_NEWLINE_0                   1                   2                   3_NEWLINE_0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|   Version     |                                             |_NEWLINE_|0 0 0 0 0 0 0 1|              Message Length                 |_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|     Flags     |                                             |_NEWLINE_|R P E T x x x x|              Command-Code                   |_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|                      Application-ID                         |_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|                      Hop-by-hop Identifier                  |_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|                      End-to-End Identifier                  |_NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+_NEWLINE_|   AVPs ..._NEWLINE_+-+-+-+-+-+-+-+-+-+-+-+-+-_NEWLINE_L'header del messaggio Diameter contiene due identificatori da 32 bit. L'Hop-by-hop Identifier aiuta nella corrispondenza tra richieste e risposte. Nelle richieste, questo identificatore \xc3\xa8 sostituito ad ogni hop fin quando il messaggio non viene inoltrato alla sua destinazione finale. Il mittente del messaggio di risposta restituisce lo stesso valore che ha trovato nella corrispondente richiesta. L\xe2\x80\x99End-to-end Identifier, assieme all'identit\xc3\xa0 dell'host di origine, \xc3\xa8 utilizzato per riconoscere messaggi di richiesta duplicati, e non viene mai modificato fino all'arrivo a destinazione della richiesta. Il mittente della risposta restituisce lo stesso valore che ha trovato nella richiesta corrispondente._NEWLINE_Diameter ammette tipi di dati come Integer32, Unsigned32, Integer64, Unsigned64, Float32, Float64, Float128, OctetString e Grouped; un AVP Grouped \xc3\xa8 un AVP i cui dati sono una sequenza di AVP._NEWLINE_Sono definiti anche tipi di dati derivati: enumerativi (derivati da integer32), DiameterIdentity (derivati da octetstring), temporali (derivati da unsigned32), UTF8String (derivati da octetstring), IPFilterRule (derivati da octetstring), e QoSFilterRule (derivati da octetstring)._NEWLINE_Ogni processo Diameter che gira su un host genera una Diameter Identity, che \xc3\xa8 una stringa con la sintassi di un Uniform Resource Identifier (URI) che rappresenta il FQDN (Fully Qualified Domain Name) dell'host, una delle porte in ascolto per connessioni in entrata, il protocollo di trasporto (TCP o SCTP), il protocollo AAA (Diameter), e il security transport (nessuno o TLS)._NEWLINE_Poich\xc3\xa9 l'identit\xc3\xa0 trasporta il FQDN dell'host, e poich\xc3\xa9 pi\xc3\xb9 processi Diameter su un singolo host non possono stare in ascolto sulla stessa porta di un dato protocollo, il DiameterIdentity di ogni processo ha la garanzia di essere unico._NEWLINE_Per quanto riguarda i messaggi, ce ne sono di due tipi: Richiesta e Risposta. Ogni messaggio di risposta include un Result-Code AVP, il cui valore \xc3\xa8 un intero che indica se una particolare richiesta \xc3\xa8 stata completata con successo oppure se si \xc3\xa8 verificato un errore. Ciascun messaggio Diameter contiene la Diameter Identity del processo mittente nell'host di origine, ed anche il dominio di tale processo. I messaggi di richiesta possono essere \xe2\x80\x9cproxiable\xe2\x80\x9d o \xe2\x80\x9cnon-proxiable\xe2\x80\x9d, a seconda di uno dei flag nell'header. Le richieste non-proxiable sono intese strettamente per il next-hop peer, e non vengono mai inoltrate oltre. Le richieste proxiable sono instradabili, e instradate a seconda del dominio. Ogni richiesta proxiable contiene il dominio target nel Destination-Realm AVP._NEWLINE_Un messaggio Diameter pertinente a una specifica sessione utente include un Session-Id AVP, un valore costante per tutta la vita della sessione. Questo valore \xc3\xa8 una stringa di testo globalmente ed eternamente unica, atta a identificare univocamente una sessione utente senza far riferimento a nessun'altra informazione. Il client Diameter che avvia la sessione crea il Session-Id, il quale inizia con la stringa Diameter Identity del mittente e continua con una sequenza che garantisce unicit\xc3\xa0 sia topologica sia temporale."