Sesto Articolo
TCP/IP, protocolli ed altri misteri
Parte 6
ANCORA SUL LIVELLO 2
Nella puntata precedente abbiamo analizzato le problematiche del
livello 2 nella parte di accesso al canale comune e le severe
limitazioni di efficienza dovute al non rispetto dei presupposti
su cui si basa questa tecnica. Di questi il pi— appariscente Š
l'efficienza massima del solo 18% in caso di nodi nascosti sul
canale con l'effetto a catena di un peggioramento progressivo in
caso di richieste maggiori di traffico (= blocco del canale).
Ora esamineremo un ulteriore effetto negativo dovuto a come il
KISS Š stato implementato. Nelle prossime puntate ci
concentreremo sulla parte LLC (Logical Link Control) per capirne
il funzionamento, le limitazioni e le possibili alternative.
Ritornando per un attimo ad esaminare la figura 2.3 (R.R. 5/90)
si vede come nelle strutture a livelli avvengano dei colloqui
logici fra i demoni dello stesso livello ma in computer diversi
(comunicazioni fra pari entit…: peer to peer). Fisicamente,
per•, i dati fluiscono secondo la verticale: se prendiamo, ad
esempio, il confine fra il terzo ed il quarto livello, vediamo
che su questa interfaccia i messaggi viaggiano nelle due
direzioni con un qualche meccanismo (protocollo) di
sincronizzazione delle attivit…. Infatti occorre che un livello
superiore vada bene d'accordo con quello immediatamente sotto in
modo da non saturalo per poterne sfruttare bene i servizi.
Un modo alternativo di vedere le cose Š quello di pensare un
livello che st… sopra (N+1) come un utente del livello
immediatamente sotto (N) (Fig. 6.1)
Il livello N+1 fa una "Richiesta" al livello N. Questa
Richiesta, fluendo attraverso la rete, diventa una "Indicazione"
di richiesta che il livello N remoto fa al proprio livello
N+1.(Sistema B).
Tale livello N+1 reagisce alla Indicazione con una "Risposta"
che, ritornando indietro attraverso la rete, diventa una
"Conferma" (positiva o negativa) alla Richiesta iniziale.
In sostanza, tutte le volte che un livello N+1 chiede un
servizio al proprio livello sottostante N, quest'ultimo reagisce
con un messaggio di conferma dell'avvenuto servizio.
Nella pratica del nostro sistema TCP/IP via radio il computer
Š collegato ad un TNC messo in modo KISS. La funzione LLC viene
realizzata all'interno del computer ( N+1), mentre l'accesso al
canale radio (N) viene svolto dal programma KISS del TNC.
KISS st… per "Keep It Simple, Stupid !", ma, alle volte, mi
viene il dubbio che significhi "Keep It Simply Stupid". Infatti
chi ha realizzato il KISS si Š dimenticato di completare il
protocollo bidirezionale fra PC e TNC: se il PC vuole mandare in
radio un pacchetto lo invia al TNC in un apposito formato, ma
non Š stato previsto alcun riscontro tramite il quale far sapere
al PC che quel pacchetto Š stato effettivamente irradiato.
Manca, cioŠ, la "Conferma" dell'avvenuto invio.
L'effetto Š pessimo per l'efficienza del canale radio,
soprattutto in caso di traffico intenso. Vediamo cosa succede
in realt…:
Il PC manda al TNC il messaggio nø3 (un numero a caso) ed
immediatamente fa partire il timer di ritrasmissione. Se l'OK
(RR) non arriver… prima che il timer sia scaduto il pacchetto
nø3 sar… considerato perso e ritrasmesso. Supponiamo ora che il
canale radio sia piuttosto carico e che quindi la presenza di
portanti costringa il pacchetto nø3 ad una lunga permanenza
dentro il TNC. Il timer scade ma il pacchetto nø3 Š ancora
dentro il TNC ed il PC, credendo che questo si sia perso in una
collisione, ne manda una seconda copia che andr… ad aggiungersi
alla prima.
Ora, fortunatamente, avviene una piccola pausa sul canale radio:
il TNC allora invia di seguito le due copie del pacchetto nø3
che serviranno solo ad intasare ulteriormente il povero canale.
In pratica si assiste, alle volte, a trasmissioni di 5 o 6
pacchetti uguali di fila, con evidente deterioramento
dell'efficienza.
L'errore consiste nel fatto che il timer non parte quando il
pacchetto Š effettivamente irradiato, ma quando questo viene
passato al TNC. Il PC, anche volendo, non potrebbe fare
altrimenti, perchŠ nella definizione del KISS manca un messaggio
da TNC a PC per dire che un certo pacchetto Š stato
effettivamente irradiato.
Si pu• risolvere questo problema solo modificando il KISS ed il
programma sul PC in accordo. Questa Š un'altra di quelle
attivit… a disposizione degli OM volenterosi per migliorare la
qualit… del sistema.
Una soluzione alternativa e drastica consiste nel non usare
affatto un TNC in modo KISS, ma un'apposita scheda TNC che va
direttamente sul bus del PC (la DRSI). Questa scheda viene
direttamente pilotata dal software di KA9Q ed il problema dianzi
esaminato, non si verifica.
La connessione fra PC e TNC, dicevamo, avviene via seriale RS232
che Š un livello fisico 1 intermedio fra l'LLC e l'Accesso al
Canale, dopo di che il TNC passa i dati al livello 1 principale
che si occupa della trasmissione radio, cioŠ la modulazione.
Sembrerebbe che le cose si stiano un p• ingarbugliando, ma se si
ripensa alla struttura OSI ed al principio di sezionabilit…
orizzontale le cose dovrebbero ritornare chiare. Il secondo
livello, infatti, Š un blocco unico visto nella catasta OSI, ma,
in questo caso, Š stato realizzato con due sottolivelli
interconnessi, per necessit…, da un livello fisico. Il resto
dei livelli OSI non se ne accorgono.
Anche i livelli fisici fra PC e TNC dovrebbero utilizzare delle
regole di dialogo in modo da andare d'accordo, ma questo non
succede per tutte le implementazioni del KISS. In pratica il
dialogo su questa connessione dovrebbe rispettare le regole che
normalmente sono in uso fra terminali e modem, cioŠ fra DTE e
DCE (Data Terminal Equipment, Data Communication Equipment). La
procedura comune Š che quando il DTE (il PC) vuole trasmettere
mette attivo il filo RTS (Request to Send, piedino 4). Se il
DCE (il TNC) Š pronto a ricevere i dati lo fa sapere mettendo
attivo il filo CTS (Clear to Send, piedino 5). Se ad un certo
punto il DCE non ha pi— spazio per i dati, ha cioŠ il buffer
pieno, si protegge disattivando il CTS ed il PC si astiene
dall'inviare altri dati finchŠ il CTS non ritorner… attivo.
Questa sequenza si chiama "Hardware Handshake". Orbene, non
tutte le implementazioni del KISS la applicano. In particolare
i TNC della AEA, escluso il PK80, almeno nelle versioni che ho
avuto per le mani, non proteggono il proprio buffer col
risultato che se il PC manda una gran sequenza di messaggi
successivi i TNC suddetti vanno in tilt mandando in radio strani
pacchetti o bloccandosi del tutto.
Il modo per verificare la corretta gestione del livello 1 dei
TNC pu• essere fatto in due modi diversi. Un modo semplice
consiste del fare in modo che il TNC non vada mai in
trasmissione facendogli sentire una portante fissa sul canale
radio e, dall'altro lato, col programma NET.EXE del TCP/IP far
si che vengano inviati una gran quantit… di dati. Se il TNC
sopravvive a questo trattamento vuol dire che Š stato ben
realizzato. Un metodo alternativo, che mi Š venuto come
sottoprodotto di un altro lavoro, consiste nello scriversi un
programma ad hoc che invii al TNC una lunga sequenza di dati da
trasmettere ad una velocit… maggiore di quanti ne riescano ad
uscire dal lato radio, rispettando, ovviamente, l'handshake.
Quest'ultimo Š il metodo pi— efficace per stimolare il KISS.
All'inizio del TCP/IP via radio si usava una versione di KISS
che veniva scaricata nel TNC all'accensione. A parte la
seccatura di questo caricamento quella versione era forse la
migliore. Di seguito sono uscite delle versioni di EPROM per il
TNC2 col KISS incorporato e tutte hanno avuto qualche diverso
problemino. Sulla 1.1.5 ed 1.1.6 il KISS era incapace del Full
Douplex inteso come capacit… di trasmettere e ricevere
contemporaneamente. Se si provava a mettere il loop la
trasmissione con la ricezione ( JMP7 o JMP10 sul TNC2) i dati
ricevuti sono tutti corrotti. Il KISS della versione 1.1.7 Š si
capace del full douplex totale, ma se settato in Half Douplex
raramente rispetta la regola di non trasmettere se il DCD Š
acceso: Š un ottimo generatore di collisioni. La 1.1.7,
inoltre, ogni tanto si pianta autoresettandosi o ritornando nel
modo AX.25.
Su tutte le versioni di KISS per TNC2 che ho potuto provare, in
modo occasionale, vengono trasferiti al PC pacchetti corrotti.
La cosa pu• essere facilmente verificata controllando la lista
delle stazioni ricevute. Si vedranno spesso strani nominativi
formati da caratteri semigrafici.
Il Protocollo col KISS
PoichŠ non ci sono in giro molte descrizioni su come PC e TNC in
KISS si parlano, ne dar• di seguito una breve descrizione
desunta dalla documentazione che accompagna il programma
NET.EXE.
PC e TNC si scambiano dei frame, cioŠ delle sequenze di byte, in
asyncrono: ogni byte ha il suo bit di start e di stop. I frame
sono delimitati dal carattere FEND che Š l'esadecimale C0. Una
oppurtuna tecnica di "byte stuffing" fa si che il carattere C0
non venga mai usato all'interno di un frame. Se infatti i dati
contengono il carattere C0, questo viene sostituito dai due byte
DB DC, detti rispettivamente FESC e TFESC. Se si deve poi
trasmettere effettivamente FESC questo viene sostituito dalla
sequenza DB DD, detti FESC TFESC.
Questa tecnica Š semplicissima e garantisce la sincronizzazione
al primo frame correttamente ricevuto.
Il primo byte di ogni frame indica la funzione del frame stesso.
ÚÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄ¿
³FEND ³ Funz.³...dati.... ³FEND ³
ÀÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÙ
Se il primo byte Š 0 allora quelli che seguono sono i dai da o
per la radio. Se siamo in trasmissione il TNC prender… questi
dati, vi aggiunger… il CRC e lo trasmetter… in radio
implementando la procedura di accesso al canale che abbiamo gi…
discusso. In ricezione il TNC invia con la stessa tecnica al PC
solo i frame ricevuti senza errori.
Se il primo byte Š diverso da 0 allora segue un solo altro byte
che fa da parametro per i comandi che il PC pu• mandare al TNC.
Ecco i significati dei vari comandi:
1 TX Delay
2 P-Persistance
3 Slottime
4 TX Tail
5 Full/Half douplex
255 AX.25
Questi parametri sono inviati al TNC normalmente dal programma
del TCP/IP quando legge nel file di configurazione i comandi
PARAM.
Per evitare il problema di cui si diceva sopra sull'errato
funzionamento del timer di ritrasmissione, occorrerebbe numerare
i frame dati come nel LLC AX.25 e poi inventare un messaggio di
servizio da TNC a PC che segnali la partenza di ogni frame
indicandone al PC il numero.
Es. FEND 0 N. ...dati... FEND -->
FEND 10 N. FEND <--
( Cercasi OM volenteroso per modificare il KISS. )
Per molti TNC l'uscita dal KISS sembra un'operazione
problematica. PoichŠ e' scomodo entrare nel programma del
TCP/IP solo per dare il comando "PARAM 255 0" conviene farsi un
programmino in BASIC per fare questo servizio od usare il
programma gi… fatto da IK2OYD (ex IW2BSG) che Š disponibile e di
pubblico dominio.
----- *** ----
DA GENNAIO SI CAMBIA !
Accogliendo i suggerimenti, da pi— parti espressi, per un
cambiamento della tecnica di numerazione della rete IP al fine
di facilitare l'instardamento dei datagram da un gateway
all'altro, abbiamo deciso che dal primo gennaio '91 entrer… in
vigore un nuovo sistema.
Questo che segue Š un estratto del bollettino che ha girato
per i BBS italiani.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ E Cambio del piano di numerazione della rete TCP/IP F ³
³ ³
³ ³
³ La rete IP e' una rete logica che associa svariate reti fisiche ³
³ di diversa natura (Netrom/TheNet, ROSE, ETHERNET ecc.). Poiche' ³
³ presto sara' possibile avere il software capace della funzione ³
³ "Gateway", che consiste nella capacita' di instradare i Datagram ³
³ da una rete all'altra, si rende necessaria una modifica della ³
³ struttura della numerazione (indirizzi IP) per adeguarla alle ³
³ necesita' dei futuri gateway. ³
³ ³
³ Il nuovo piano di numerazione e' stato studiato per permettere ³
³ una semplice ed efficace compilazione delle tabelle di Routing ³
³ per il territorio italiano ed in modo che ogni OM possa cambiare ³
³ il proprio numero senza dover interpellare il numeratore ³
³ regionale. I numeratori regionali rimarranno comunque a ³
³ disposizione per eventuali consigli e suggerimenti e si ³
³ accerteranno che tutti abbiano recepito la novita'. ³
³ ³
³ La nuova numerazione entrera' in vigore dal 1 gennaio 1991, c'e' ³
³ quindi tutto il tempo per la diffusione della nuova normativa. ³
³ ³
³ La novita' riguarda solo il terzo numero (byte) dei quattro che ³
³ compongono l'indirizzo IP. ³
³ ³
³ es: 44.134.2.2 diventera' 44.134.160.2 ³
³ ^ ^ ³
³ ³
³ Il terzo numero, in realta' e' la rappresentazione in decimale ³
³ di una sequenza di 8 bit. Con la nuova numerazione i primi 4 ³
³ bit (i piu' significativi) dovranno essere cambiati secondo le ³
³ regole spiegate piu' avanti. I restanti 4 bit rimangono a ZERO ³
³ e verranno utilizzati in futuro, se necessario, qualora si ³
³ riescano ad individuare eventuali "bacini di propagazione" di ³
³ gateway, oppure per far fronte all'esaurimento dei 254 possibili ³
³ valori del quarto numero. ³
³ ³
³ L'Italia, con la nuova numerazione, viene divisa in 4 zone. ³
³ Queste zone vengono individuate dai primi due bit. Ogni zona ³
³ viene, a sua volta divisa in quattro "regioni" individuate dai ³
³ due bit successivi. ³
³ ³
³ Le zone sono : ³
³ NORD 1 0 ³
³ CENTRO-NORD 1 1 ³
³ CENTRO 0 0 ³
³ SUD 0 1 ³
³ ³
³ Il NORD viene suddiviso in: ³
³ ³
³ Piemonte e Val d'Aosta 1 0 0 0 0 0 0 0 = 128 ³
³ Liguria 1 0 0 1 0 0 0 0 = 144 ³
³ Lombardia I2 1 0 1 0 0 0 0 0 = 160 ³
³ Venezie I3 1 0 1 1 0 0 0 0 = 176 ³
³ ³
³ ³
³ ³
³ ³
³ Il CENTRO-NORD viene suddiviso in: ³
³ ³
³ I4 1 1 0 0 0 0 0 0 = 192 ³
³ I5 1 1 0 1 0 0 0 0 = 208 ³
³ Umbria 1 1 1 0 0 0 0 0 = 224 ³
³ Marche 1 1 1 1 0 0 0 0 = 240 ³
³ ³
³ Il CENTRO viene suddiviso in : ³
³ ³
³ Riserva 0 0 0 0 0 0 0 0 = 0 ³
³ Sardegna 0 0 0 1 0 0 0 0 = 16 ³
³ Lazio 0 0 1 0 0 0 0 0 = 32 ³
³ Abruzzo 0 0 1 1 0 0 0 0 = 48 ³
³ ³
³ Il SUD viene suddiviso in: ³
³ ³
³ I7 0 1 0 0 0 0 0 0 = 64 ³
³ I8 (esclusa Calabria) 0 1 0 1 0 0 0 0 = 80 ³
³ Calabria 0 1 1 0 0 0 0 0 = 96 ³
³ Sicilia 0 1 1 1 0 0 0 0 = 112 ³
³ ³
³ La sottorete "Riserva" attualmente contiene tutti i numeri gia' ³
³ assegnati che quindi non genereranno confusione coi nuovi numeri ³
³ qualora qualche ritardatario all' 1 Gennaio '90 non abbia ³
³ provveduto a modificare la propria installazione. In seguito, ³
³ passato il transitorio, la sottorete 0 sara' adibita ad usi ³
³ eccezionali tipo CER od altro. ³
³ ³
³ In seguito a questo nuovo piano di numerazione, dicevo, il ³
³ quarto numero gia' assegnato, rimane invariato. I vuoti cosi' ³
³ creati nella sequenza (per es. in Piemonte e Liguria) verranno ³
³ riempiti dai numeratori con le assegnazioni successive al ³
³ 1/1/91. ³
³ ³
³ Con questa nuova numerazione, purtroppo, non sara' piu' ³
³ immediato per l'umano, capire la regione...ma le tabelle di ³
³ routing vengono lette dai computer che capiscono bene i bit !! ³
³ ³
³ Questo piano e' stato studiato da I2KFX e I0VUQ, dopo aver ³
³ meditato sulla proposta di IW5CJB e IK5FTK, sentiti i ³
³ suggerimenti di IK1CHE e IW0CNB. ³
³ ³
³ La filosofia generale che ha ispirato questo nuovo piano vede un ³
³ certo numero di reti fisiche di piccole dimensioni (una o due ³
³ regioni) eventualmente di tipo diverso (Netrom, ROSE ecc.) ³
³ isolate, a livello radio, fra di loro, ma interconnesse da ³
³ gateway IP. Questa struttura gerarchica a due livelli, uno ³
³ fisico ed uno logico, sembra, al momento attuale, inevitabile a ³
³ causa delle pesanti limitazioni delle Netrom che non permettono ³
³ l'implementazione di grandi reti. (si vedano le argomentazioni ³
³ su RR). Si confida nei Sysop di buona volonta' ed in tutti gli ³
³ appassionati del Packet affiche' questi propositi si tramutino ³
³ in realta'. ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
----- *** -----
''' da stampare in un rettangolo a parte dell'articolo'''
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Partendo dall'identit… ³
³ ³
³ -1 = -1 ³
³ ³
³ si pu• trasformare in: ³
³ ³
³ 1 -1 ³
³ ___ = ____ ³
³ -1 1 ³
³ ³
³ ed ancora ³
³ ³
³ 1 -1 ³
³ ___ = ____ ³
³ -1 1 ³
³ ³
³ ³
³ ed applicando le regole dell'algebra: ³
³ ³
³ ³
³ 1 1 = -1 -1 ³
³ ³
³ ³
³ da cui si deduce che ³
³ ³
³ ÚÄÄÄÄÄÄÄÄ¿ ³
³ ³ 1 = -1 ³ ³
³ ÀÄÄÄÄÄÄÄÄÙ ³
³ ³
³ ³
³ Sconvolti ? Ma allora la matematica Š un'opinione !? ³
³ ³
³ Niente di tutto questo, solo che gli errori alle volte possono ³
³ essere molto sottili e nascondersi molto bene. Quando poi si ³
³ applica la matematica, che Š una disciplina tutta mentale, al ³
³ mondo fisico per tentare di interpretarlo, allora le trappole ³
³ diventano tantissime e assai pericolose: se non si st… pi— che ³
³ attenti si pu• arrivare a dei risultati assai buffi. ³
³ ³
³ Uno degli errori pi— frequenti Š quello di sommare pere con ³
³ mele, ovvero di confrontare grandezze disomogenee. Mi riferisco ³
³ a R.R. 7/90 pp 35 e 36. ³
³ ³
³ I confronti di efficienza andrebbero fatti fra oggetti dello ³
³ stesso tipo: due diverse realizzazioni di un terzo livello, per ³
³ esempio. Confrontare tutta la catasta OSI con la semplice ³
³ connessione punto a punto Š del tutto privo di significato. Chi ³
³ mai confronterebbe le performance di un TIR con quelle di una ³
³ 500 ? Sebbene viaggino entrambe sulle autostrade compiono ³
³ servizi assai diversi. Non si deve dimenticare, inoltre, che i ³
³ vari livelli sono stati creati per svolgere delle funzioni utili ³
³ ed indispensabili e che il prezzo di tali servizi si paga in ³
³ termini di caratteri aggiunti..."Non ci sono pranzi gratis". Se ³
³ non si aggiungono byte per individuare gli errori di ³
³ trasmissione i dati arrivano a destinazione corrotti e quindi ³
³ inutilizzabili. Se non si aggiungono byte per instradare i ³
³ pacchetti attraverso le reti i pacchetti stessi non verranno mai ³
³ recapitati ecc. ³
³ ³
³ Nella fisica delle reti intervengono fenomeni non lineari e di ³
³ retroazione. Tentare di comprendere questi fenomeni cos ³
³ complessi col semplice intuito Š vano perchŠ il cervello umano ³
³ si Š evoluto per migliaia di anni risolvendo solo semplici ³
³ problemi lineari. Le efficienze, per esempio, non crescono ³
³ linearmente, ma hanno massimi e minimi. Se prendiamo il solo ³
³ livello 2 LLC non Š vero che l'efficienza aumenta allungando i ³
³ pacchetti, perchŠ il rumore Š sempre presente e i pacchetti ³
³ lunghi hanno pi— probabilit… di esserne affettti, inoltre ³
³ l'affidabilit… del controllo degli errori col CRC diminuisce su ³
³ frame molto lunghi col rischio che dei pacchetti corrotti ³
³ passinino per buoni. Si pu• solo supporre che, data una certa ³
³ distribuzione casuale degli errori, esistano delle lunghezze ³
³ ottimali. Valori quantitativi si possono dare solo con adeguate ³
³ simulazioni. ³
³ ³
³ Certamente c'Š ancora tanto da lavorare per rendere le cose ben ³
³ funzionanti ed efficienti: si possono migliorare i modem, le ³
³ apparecchiature radio; si debbono scegliere i protocolli giusti ³
³ in funzione delle particolari situazioni ecc. ma, soprattutto, ³
³ occorre che tutte le persone coinvolte in queste attivit…, ³
³ acquisiscano una sempre migliore conoscenza dei principii di ³
³ fondo della teoria delle telecomunicazioni. ³
³ ³
³ Lo studio appassionato, lo scambio di esperienze e la ³
³ riflessione sono alcuni degli ingredienti per raggiungere, ³
³ divertendosi, l'obbiettivo. Un altro fattore importante Š la ³
³ discussione critica nel tentativo di minimizzare i sempre ³
³ presenti errori. ³
³ ³
³ MORALE: Meglio capire i concetti di fondo che abbandonarsi al ³
³ formalismo matematico. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ