Switched Multi-Megabit Data Services e IP
Asynchronous Transfer Mode (ATM) e BISDN
TCP/IP non è trovato spesso come un protocollo isolato. Esso è spesso uno di diversi protocolli usati in ogni rete. Perciò, l’interazione fra TCP/IP e gli altri protocolli che potrebbero lavorare con esso deve essere ben compresa. È più facile comprendere questo argomento partendo dal punto di vista di una rete locale[1] e poi espander il discorso agli internet.
Gli strati di un protocollo TCP/IP , così come di altri protocolli appartenenti al modello OSI[2], sono disegnati per essere dipendenti l’uno dall’altro, abilitando la miscelazione di protocolli. Quando un messaggio[3] deve essere mandato lungo la rete ad una macchina remota[4], ogni strato[5] del protocollo costruisce sul pacchetto di informazioni inviato dallo strato superiore, aggiungendo il suo header personale e poi passando il pacchetto al suo strato inferiore. Dopo essere stato ricevuto (impacchettato[6] in qualunque formato di rete[7] richiesto), il pacchetto viene mandato su per gli strati della macchina ricevente , con la rimozione delle informazioni di header ad ogni strato.
Il rimpiazzo di ogni strato nello stack del protocollo richiede che i nuovi protocolli possono interconnettersi[8] con gli altri strati , così come di effettuare tutte le funzioni richieste da quello strato.
Per esaminare l’interconnessione degli strati e la sostituzione o l’aggiunta di altri, si può usare una semplice installazione[9] come punto di partenza . La figura seguente mostra una semplice architettura[10] a strati usando TCP e IP con una rete Ethernet. La figura mostra inoltre l’assemblaggio dei pacchetti Ethernet[11] mentre essi passano da uno strato all’altro.
Il processo inizia con un messaggio di qualche forma dal Upper Layer Protocol [12](ULP), il quale sta a sua volta passando il messaggio da qualche applicazione[13]. Quando il messaggio è passato a TCP, esso aggiunge le sue informazioni di header e lo passa allo strato IP, che fa la stessa cosa. Quando il messaggio IP è passato allo strato Ethernet, Ethernet aggiunge le sue informazioni davanti e dietro al pacchetto e manda il messaggio in rete.
Sebbene questo semplice modello possa sembrare ideale, esso presenta alcuni problemi. Il più importante è che esso richiede che IP si interfacci direttamente con lo strato Ethernet. Questa interfaccia npn è pulita ma ha molte connessioni che rompono con l’architettura ideale a strati.
Ora occorre una migliore comprensione dell’interfaccia[15] verso lo strato di rete in una LAN. La figura seguente mostra una architettura a strati di una LAN espansa. Questo tipo di architettura si applica a reti CSMA[16] (collision sense multiple access[17]) e CD[18] (collision detect[19]) come Ethernet.
Una LAN coinvolge alcuni strati addizionali. Lo strato Logical Link Control [20](LLC[21]) è un’interfaccia tra lo strato IP e lo strato di rete. Vi sono diversi tipi di configurazioni LLC, ma è sufficiente a questo punto conoscere il suo ruolo di base come buffer tra la rete e lo strato IP sia come un semplice sistema per un servizio senza connessione[22] sia come un sistema elaborato per un servizio basato sulla connessione[23]. LLC è usualmente usato con il collegamento standard High Level Data Link Control[24] (HDLC[25]).per servizi non orientati alla connessione esso usa il frame di messaggi[26] unnambered information[27] (UI), mentre servizi basati sulla connessione usano il frame ABM[28] (asynchronous[29] balanced mode[30]) , supportati entrambi da HDLC. La configurazione di LLC rispetto a TCP/IP è importante.
Lo strato MAC[31] (Media Access Control[32]) è responsabile della gestione del traffico sulla rete , come il rilievo delle collisioni[33] e i tempi di trasmissione[34] . esso inoltre gestisce i timer[35] e le funzioni di ritrasmissione[36] . MAC è indipendente dal mezzo[37] usato dalla rete ma dipende dal protocollo usato dalla rete.
LO strato fisico nell’architettura della rete è composto di diversi servizi. La Attachment Unit Interface[38] (AUI) fornisce un collegamento tra lo strato fisico della macchina e il mezzo della rete. Tipicamente il AUI[39] si trova dove sono localizzate le porte o jack.
IL Medium[40] Attachment[41] Unit[42] (MAU) si compone di due parti: il Physical [43]Medium Attachment [44](PMA[45]) e il Medium Dependent Interface[46] [47](MDI[48]) . il MAU è responsabile di gestire la connessione della macchina al mezzo stesso della LAN, così come di fornire controlli di base sull’integrità dei dati[49] e il monitoraggio del mezzo della rete. Il MAU ha funzioni che controllano la qualità del segnale[50] della rete e testano le routine per verificare la correttezza delle operazioni della rete.
Quando questi strati vengono aggiunti all’architettura a strati di uno stack di protocollo, lo strato IP-Ethernet viene separato. Ciò è mostrato nella figura seguente . questo tipo di configurazione è più comune di quello mostrato nella figura precedente ed è usualmente chiamato configurazione IP/802 (poiché Ethernet è definita dalla specifica[51] IEEE[52] 802[53]).
La LAN IP/802 può essere non orientata alla connessione usando una forma semplice di LLC chiamata LLC Tipo 1[54] , che supporta Unnambered Information (UI). Gli strati LLC e MAC aiutano a separare IP dallo strato fisico. Sono aggiunti più header al pacchetto del messaggio , ma hanno informazioni utili. L’header LLC contiene i service access point[55] (SAP[56]) sia della sorgente che del destinatario per identificare gli strati superiori.
Si usa frequentemente UDP invece di TCP in questo tipo di reti. UDP non è complesso come TCP per cui si riduce la complessità complessiva dell’intera rete. Comunque, UDP non ha funzioni di controllo dell’integrità dei dati al suo interno , così si usa una differente forma di LLC (chiamata LLC Tipo 2[57]) per implementare queste funzioni. LLC tipo 2 fornisce la funzionalità di integrità dei dati che è usualmente fornita da TCP, come il sequenziamento[58], la gestione delle finestre di trasferimento[59], e il controllo di flusso[60]. LO svantaggio è che queste funzioni si trovano ora sotto lo strato IP e non sopra. In caso di problemi fatali con strati LLC, questo può risultare in problemi che devono essere gestiti poi dallo strato di applicazione[61].
Le differenze fra TCP e LLC 1 rispetto a UDP e LLC 2devono essere accuratamente soppesate da un amministratore di sistema. La combinazione TCP/LLC 1è più complessa di UDP/LLC 2 ma offre eccellente affidabilità[62] e integrità[63], mentre UDP/LLC 2 è migliore per reti ad elevato throughput[64].
NetBIOS è un popolare sistema operativo per reti orientate al PC, che può essere facilmente integrato con TCP/IP. La figura seguente mostra l’architettura di rete per questo tipo di LAN. NetBIOS risiede sopra il protocollo TCP o UDP, sebbene abbia usualmente solidi legami in quello strato(così che i due non possono facilmente essere separati). NetBIOS agisce connettendo applicazioni negli strati superiori, fornendo messaggeria e allocazione delle risorse.
Sono allocate tre porte Internet per NetBIOS. Esse sono la porta 137 per il servizio di nome[66] NetBIOS[67], la porta 138 per il servizio datagrammi[68] [69], la porta 139 per il servizio di sessione[70] [71] [72]. Vi è anche la possibilità di un mappaggio tra il Domain Name Service di Internet e il NetBIOS Name Server[73] [74] (NBNS). Il NetBIOS name server è usato per identificare PC che operano in un’area NetBIOS. Nell’interfaccia fra NetBIOS e TCP , il mappaggio[75] fra i nomi è usato per produrre il nome DNS.
IP può essere configurato per operare al di sopra di NetBIOS , eliminando interamente TCP e UDP e usando NetBIOS come un servizio non orientato alla connessione. In questo caso Net BIOS rileva le funzioni dello strato TCP/UDP e i protocolli degli strati superiori devono avere le funzioni di integrità dei dati, sequenziamento del pacchetto, controllo di flusso. Questo è mostrato nella figura seguente . in questa architettura NetBIOS incapsula i datagrammi IP. È necessario un mappaggio forte fra IP e NetBIOS così che i pacchetti NetBIOS riflettono gli indirizzi IP:.
Lo Xerox[77] Network System[78] era ampiamente usato in passato e ancora conserva una ragionevole percentuale delle reti. XNS è popolare poiché Xerox rilasciò il codice al pubblico dominio[79], facendone un sistema valido al punto di vista dei costi.
XNS può essere usato con IP come mostra la figura seguente. Il Sequenced[80] Packet Protocol[81] (SPP[82]) è sopra lo strato IP , fornendo alcune funzioni TCP , sebbene non sia un protocollo completo. Nello strato ULP vi è il protocollo Courier[83] [84], che fornisce i servizi degli strati di presentazione[85] [86] e sessione[87] [88].
XNS usa il termine Internet Transport[89] protocols[90] per far riferimento al set di protocolli usati , incluso IP. Fra questi vi è Routing Information Protocol [91](RIP[92]) ed un protocollo di errore simile al Internet Control Message Protocol[93] (ICMP[94]).
Il prodotto per networking[96] [97] NetWare[98] della Novell[99] ha un protocollo simile a IP chiamato Internet Packet Exchange[100] (IPX)., basato sul XNS della Xerox. L’architettura di IPX è mostrata in figura seguente . IPX in genere usa UDP per un protocollo non orientato alla connessione, sebbene TCP possa essere usato quando combinato con LLC tipo1.
la stratificazione (con IPX sopra UDP) assicura che gli header IP e UDP non siano influenzati, con le informazioni IPX incapsulate come parte del messaggio. Come con latri protocolli, una mappatura è necessaria tra gli indirizzi IP e gli indirizzi IPX[101]. IPX usa numeri di rete e di host di 4 e 6 byte rispettivamente. Essi vengono convertiti quando sono passati ad UDP.
È possibile riconfigurare la rete per usare reti IPX usando TCP invece di UDP e sostituendo il protocollo non orientato alla connessione LLC tipo 1. questo da luogo alla architettura della figura seguente
Quando si usa questa architettura gli indirizzi IP sono mappati usando ARP:
ARCnet è ampiamente usato per le LAN e vi è un RFC per usarlo con IP. L’architettura è simile a quella di reti basate su IPX ma con ARCnet che rimpiazza IPX, come mostrato nella figura seguente. I massaggi provengono da IP e sono incapsulati in datagrammi ARCnet.
UN posizionamento speciale del datagramma IP dietro all’area dati client dell’header ARCnet assicura che è mantenuta la compatibilità IP[103] se il messaggio deve uscire dalla rete ARCnet (attraverso un convertitore[104]). Gli indirizzi IP sono mappati agli indirizzi ARCnet[105] usando ARP. Il protocollo supporta anche RARP[106] in qualche misura.
La Fiber[108] Distributed Data Interface[109] [110] [111](FDDI) è una rete ad alta velocità[112] [113] [114]definita dal ANSI[115] che usa cavi a fibra ottica[116] [117] [118] [119] come mezzo di trasporto[120]. FDDI sta raggiungendo forte supporto a causa dell’elevato throughout[121] che può raggiungere. PER TCP/IP , FDDI usa un’architettura a strati come le altre reti discusse. FDDI differisce leggermente da altri mezzi poiché vi sono due sottostrati[122] per lo strato fisico.
Lo schema di indirizzamento[123] di FDDI è simile a quello di altre reti Ethernet, richiedendo una semplice mappatura, come visto per i sistemi Ethernet. IP ed ARP possono essere entrambi usati con FDDI. IP è usato con il servizio non orientato alla connessione LLC tipo 1.
L’ampiezza del frame per FDDI è posta a 4500 byte[124] , incluso l’header e altre informazioni di framing[125]. Dopo vi sono 4470 byte disponibili per i dati . questa ampia grandezza del pacchetto può creare problemi con qualche gateway, così l’instradamento per i pacchetti FDDI deve essere scelto con cura per prevenire troncamenti o corruzione del pacchetto da parte di un gateway che non può gestire l’ampiezza del pacchetto.
Le reti X.25 modificano l’architettura della rete utilizzando uno strato OSI TP4[127] [128]sopra lo strato IP, e lo strato X.25 Packet Layers Procedures[129] [130] (PLP[131]) sotto IP. Questo è mostrato nella figura seguente. TP4 è un protocollo simile a TCP che non usa identificatori di porta. I campi destinazione[132] e sorgente[133] nel header sono i transport service access point[134] [135] (TSAP[136]). TP4 è più complesso di TCP, il che lotta contro il protocollo.
X.25 non è usato spesso in una LAN ma è usato come connessione ad una rete a commutazione di pacchetto[137] [138] [139]. Un RFC internet definisce le regole per la commutazione dei pacchetti[140] per X.25, incluso i limiti per i datagrammi IP (576 byte) e circuiti virtuali[141] [142] [143].
Integrated Services Digital Network[145] (ISDN) fornisce una rete a commutazione di pacchetto TCP/IP. L’architettura è mostrata nella figura seguente. IP non è nello stack degli strati poiché è usualmente incorporato in CLNP[146].
ISDN ha un’architettura più complessa della maggior parte delle reti, rimpiazzando gateway e router con terminal adapter[147] [148] [149] e nodi ISDN[150] [151].
Il sistema Switched Multi-Megabit Data Services (SMDS[153]) è un servizio pubblico a commutazione di pacchetto non orientato alla connessione che fornisce un grande throughput[154] con elevata ampiezza dei pacchetti.(fino a 9188 byte). SMDS usa un meccanismo di accesso subscriber-to-network e network-to-subscriber per il controllo di flusso.
SMDS supporta sottoreti multiple logiche IP[155] (LIS), che possono essere gestite separatamente ma trattate come una singola unità da SMDS. Questo metodo richiede che tutte le sottoreti abbiano lo stesso indirizzo IP.
Due nuovi protocolli per internet ad alta velocità che stanno diventando popolari sono ATM e BISDN. L’architettura della macchina dell’utente è simile all’architettura TCP/IP , sebbene possano essere aggiunti altri strati per fornire nuovi servizi, come capacità video[157] e suoni[158].
I router, gateway o altri dispositivi che accedono alla rete ad alta velocità sono anch’essi molto complessi. Chiamati terminal adapter come in ISDN, essi forniscono una interfaccia sofisticata tra gli strati utente e gli strati di adattamento[159], che sono specifici per ogni applicazione.
L’approccio usato da Windows è simile a quello usato da Windows NT e OS/2, così la sua conoscenza è utile per molti sistemi operativi su apparecchi client comuni nelle LAN di oggi.
Windows raffina l’architettura di rete usata in Windows for Workgroups[160] [161] e Windows NT[162] [163], dando per risultato maggiori prestazioni[164] e affidabilità[165], così come soddisfacimento[166] per le richieste di diverse reti come il supporto di protocolli multipli. Poiché Windows supporta molti protocolli differenti in versioni Virtual Mode Driver[167] (VxD[168]) a 16 e 32 bit, l’architettura deve fornire flessibilità per accomodare un certo numero di strutture.
L’architettura Windows è a strati, un’architettura a strati è la più comune struttura di una rete. L’architettura di rete usata in windows 95 è nota come Windows Open Services Architecture[169] [170] [171] [172](WOSA[173]) di Microsoft[174]. WOSA fu sviluppato per abilitare le applicazioni a lavorare con diversi tipi di reti, ed include un set di interfacce disegnate per abilitare la coesistenza di diversi componenti di rete.
I componenti di rete software[175] di Windows sono mostrati nei loro strati rispettivi nella figura seguente.
API[176]
: La Application Programming Interface[177]
standard Win32[178]:
la API gestisce operazioni su file remoti[179]
[180]
[181]
[182]
[183]
e risorse remote[184]
(stampanti[185] ed altri
apparecchI). Le API Win32 sono usate per applicazioni di programmazione[186].
Multiple Provider Router[187]
[188]
[189]
[190](MPR[191]) :
il MPR instrada tutte le operazioni di rete per Windows, così come implementa
funzioni di rete comuni a tutti i tipi di rete. Le API comunicano direttamente
con MPR. La MPR è una DLL[192]
a 32 bit in modo protetto[193]
[194]
[195]
[196].
Network Provider[197]:
implementa l’interfaccia del provider del servizio di rete. Solo MPR può
comunicare con il network provider. Il network provider è una DLL a 32 bit in
modo protetto.
Manager IFS[198]
[199]:
il manager IFS instrada richieste di filesystem all’appropriato driver di
filesystem[200] (FSD[201])
Network Filesystem Driver [202](FSD):
FSD implementa le caratteristiche del particolare filesystem remoto[203].
Il FSD può essere usato dal Manager IFS quando il filesystem della macchina
locale e della macchina remota coincidono. Il FSD è VxD a 32 bit in modo
protetto.
Network Transport: il network
transport[204] è un VxD
che implementa il protocollo di trasporto specifico dell’apparecchiatura. La
rete FSD si interfaccia con il trasporto di rete , usualmente con una mappatura
uno ad uno .
Network Driver Interface Specification[205]
[206]
[207]
[208]
[209]
[210](NDIS):
una specifica software indipendente dal venditore che definisce le interazioni
tra il trasporto di rete e il driver dell’apparecchiatura.
Network Adapter Driver[211]
[212]:
il driver VxD adattatore di rete controlla il reale apparecchio di rete
Uno degli aspetti principali di Windows è l’inclusione del supporto per protocolli multipli concorrenti. Il protocollo di default è IPX/SPX di NetWare. Sono inclusi anche i driver NetBIOS e NetBEUI, e un completo VxD a 32 bit per TCP/IP. Tutti questi driver sono abilitati al plug-and-play[213], permettendo il loading e unloading dinamico.
Le reti TCP/IP offrono una serie di servizi opzionali che utenti ed applicazione possono usare. Questi servizi e le porte loro assegnate sono elencati nella seguente tabella
Service |
Port |
Description |
Active
Users [214] |
11 |
Returns
the names of all users on the remote system |
Character
Generator [215] |
19 |
Returns
all printable ASCII characters |
Daytime
[216] |
13 |
Returns the
date and time, day of the week, and month of the year |
Discard
[217] |
9 |
Discards
all received messages |
Echo
[218] |
7 |
Returns
any messages |
Quote
of the Day [219] |
17 |
Returns
a quotation |
Time[220]
|
37 |
Returns the
time since January 1, 1900 (in seconds) |
Il servizio Active Users restituisce un messaggio all’utente originante che contiene una lista di tutti gli utenti attualmente attivi sulla macchina remota. Il comportamento di TCP e UDP è il medesimo. Quando richiesto, il servizio controlla la porta 11 e, dopo avere stabilita una connessione, risponde con una lista degli utenti attivi e poi chiude la porta. UDP manda un datagramma e TCP usa la connessione stessa.
IL Character Generator è disegnato per mandare un set di caratteri ASCII. Dopo il ricevimento di un datagramma (i contenuti del quale vengono ignorati), il servizio restituisce di tutti i caratteri ASCII stampabili. Il comportamento di TCP e UDP è leggermente diverso.
IL Character Generator di TCP effettua il monitoraggio della porta 19 e quando connesso ignora ogni input e manda un flusso di caratteri finché la connessione si interrompe. L’ordine dei caratteri è fissato. Il Character Generator UDP attende alla porta 19 un datagramma (UDP non crea connessioni) e risponde con un datagramma contenente un numero random[221] di caratteri. Possono essere inviati fino a 512 caratteri.
Sebbene questo servizio possa sembrare privo di utilità, esso a scopi diagnostici. Esso assicura che una rete possa trasferire in maniera appropriata tutti e 95 i caratteri ASCII stampabili, e può essere usato per testare stampanti.
Il servizio Daytime restituisce un messaggio con data e ora corrente. Il formato che usa è giorno[222] [223]della settimana, mese[224] [225]dell’anno, giorno del mese[226] , ora e anno[227]. L’ora è specificata nel formato HH:MM:SS. Ogni campo è separato dagli altri mediante spazi.
Sia TCP che UDP controllano la porta 13 e, dopo aver ricevuto un datagramma, inviano il messaggio. Il servizio può essere usato per diversi scopi come il settaggio del calendario di sistema e degli orologi per minimizzare le variazioni. Esso può anche essere usato dalle applicazioni.
Il servizio Discard semplicemente scarta tutto quello che riceve. TCP attende alla porta 9, mentre UDP riceve datagrammi da quella porta. Ogni cosa che arriva viene ignorata. Non viene inviata alcuna risposta.
Potrebbe sembrare un servizio senza alcun senso, ma può essere utile per instradare messaggi test durante il setup del sistema[228] [229] e la configurazione[230]. Può essere anche usato dalle applicazioni in luogo del servizio di scarto del sistema operativo.
Il servizio Echo restituisce tutto quello che riceve. È chiamato attraverso la porta 7. con TCP esso semplicemente restituisce tutto quello che arriva attraverso la connessione , mentre UDP restituisce un datagramma identico (fatta eccezione per gli indirizzi sorgente e destinazione). L’eco continua finché la connessione della porta termina o non sono ricevuti più datagrammi.
Il servizio fornisce un’ottima diagnostica sul funzionamento appropriato della rete e dei protocolli stessi. Il tempo di turnaround[231] fra ricevere e inviare l’eco fornisce un utile metodo per i tempi di risposta[232] e latenza[233] [234] all’interno della rete.
Il servizio restituisce una citazione[236] da un file di citazioni[237] , selezionandone in maniera casuale una al giorno quando arriva una richiesta sulla porta 17. Se non esiste un file di citazioni, il servizio fallisce.
Il servizio time restituisce il numero di secondi che sono trascorsi dal 1 gennaio 1990. E' usata la porta 37 per attendere una richiesta (TCP) o un datagramma (UDP). Quando viene ricevuta la richiesta il tempo viene inviato come un numero a 32 bit. È l’applicazione che riceve a convertire il numero in una forma utile.
Il servizio è spesso usato per sincronizzare le macchine della rete o settare I clock di un’applicazione.
Ai servizi opzionali si può accedere da ogni applicazione . gli utenti possono accedere a questi servizi usando Telnet. Un esempio è il seguente
$ telnet merlin 7
Trying...
Connected to merlin.tpci.com
Escape character is '^T'.
This is a message
This is a message
Isn't this exciting?
Isn't this exciting?
<Ctrl+T>
$ telnet merlin 13
Trying...
Connected to merlin.tpci.com
Escape character is '^T'.
Tues Jun 21 10:16:45 1994
Connection closed.
$ telnet merlin 19
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefg
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefgh
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefghi
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefghij
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefghijk
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefghijkl
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_abcdefghijklm
<Ctrl+T>
$
in questo esempio una connessione alla porta 7 fa partire
il servizio di echo. Ogni cosa digitata dall’utente viene riecheggiata
immediatamente . poi una connessione alla porta 13 fornisce il servizio
Daytime, mostrando la data e l’ora corrente.. la connessione viene interrotta
del servizio una volta che I dati sono stati inviati. Poi si fa partire il
Character Generator. Sia il servizio di echo che il character generator sono
stati interrotti con la sequenza di break di Telnet Ctrl+T.