Knowledge Base 0-1  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  Tips&Trick Ritorna all'indice generale Spooler di stampa Per ripulire lo spooler di stampa, apri una finestra DOS e digita: net stop spooler [INVIO] del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*" [INVIO] net start spooler [INVIO] Ritorna all'indice generale Subnet mask Come ragiona il computer all'invio di un pacchetto sulla rete Per capire perche' il solo indirizzo IP non sia una informazione sufficiente per poter interagire con gli altri calcolatori della rete dobbiamo seguire il processo logico che porta alla creazione di un pacchetto. Consideriamo quindi che il nostro computer S (sorgente) con indirizzo IP, per esempio, 195.32.69.2 debba inviare una informazione a un computer D destinatario) che per ora identifichiamo con un indirizzo IP generico AAA.BBB.CCC.DDD. Come detto, l'informazione diventa quindi il payload (e' l'informazione che due calcolatori vogliono scambiarsi e che, nel mondo reale, farebbe le veci del contenuto della lettera) di un pacchetto TCP/IP e viene quindi inserito in una particolare busta TCP/IP. Sulla busta viene messo l'indirizzo del mittente, 195.32.69.2 e quello del destinatario. Immaginiamo, a questo punto, il calcolatore con la busta in mano che si reca nella cassetta postale piu' vicina. Cio' che vedremmo, a questo punto, e che esso si trova a dover fare una scelta. Nel caso reale la cassetta ha due fessure, una per la posta destinata alla propria citta' e l'altra per tutte le altre destinazioni. La stessa cosa accade nella rete. Il computer deve decidere se la lettera e' destinata ad un calcolatore della propria rete locale o se il destinatario e' piu' lontano. Inoltre, mentre nel caso reale si puo' anche commettere un errore e sperare che la lettera venga ugualmente recapitata, nel caso informatico la scelta deve essere esatta. Ma perche' bisogna fare questa scelta? Perche' il pacchetto va trattato in modo differente a seconda della diversa destinazione. Infatti se il pacchetto e' destinato alla rete locale esso puo' essere gia' buttato cosi com'e' sulla rete in quanto il computer D, ivi in ascolto, vedra' il pacchetto a lui destinato in transito e lo recuperera'. Nel caso in cui il destinatario e' remoto, il pacchetto non puo' essere buttato cosi' com'e' sulla rete in quanto D non e' in ascolto su di essa. Il pacchetto, in quest'ultimo caso, va modificato per essere dato in pasto ad un particolare calcolatore della rete locale, il gateway di default. Ed ecco quindi che fa la sua comparsa il secondo parametro fondamentale della configurazione della rete. Il gateway identifica l'accesso al mondo esterno ed e' lui a sapere come raggiungere il resto di Internet ed e' dunque a esso che dobbiamo inviare il pacchetto affinche' venga correttamente inoltrato a D. Allora senza una corretta configurazione del gateway di default potremmo magari raggiungere correttamente i nostri calcolatori locali ma il resto del mondo ci sarebbe interdetto. Una volta chiarito quindi il perche' della necessita' della scelta, bisogna chiarire il come. Come fa il nostro PC a capire se il destinatario e' locale o e' remoto? Nel mondo reale il processo deduttivo sarebbe semplice: S abita nella citta' X. D abita nella citta' X? Se la risposta a questa domanda e' positiva allora la lettera va inviata nella fessura per la stessa citta' altrimenti va imbucata nell'altra. Nel caso virtuale la domanda e' simile: S si trova nella rete X. D si trova nella rete X? Il risultato positivo o negativo di questa domanda decide il modo con cui il pacchetto va inviato, se ad un computer locale o al gateway di default. La netmask risolve il problema di cosa e' locale e cosa e' remoto La domanda a cui dobbiamo quindi saper rispondere contiene pero' ancora una incognita. S ha indirizzo IP 195.32.69.2 ma cosa si intende per rete X? Per calcolare la rete X non basta la conoscenza del solo indirizzo IP. Anche se i piu' scaltri potrebbero rispondere che la rete a cui l'indirizzo IP 195.32.69.2 appartiene e' la rete 195.32.69.0 e questa risposta e' spesso quella giusta, nel mondo dei calcolatori non basta azzeccarci spesso, bisogna azzeccarci sempre. Avrete sicuramente capito che per ricavare l'indirizzo di rete a cui un indirizzo IP appartiene c'e' bisogno di conoscere la netmask. La netmask, identificando la rete a cui un indirizzo IP appartiene, identifica cosa e' locale e cosa e' remoto. Inoltre l'identificazione di cosa e' locale da anche una visualizzazione di qual'e' l'intervallo di indirizzi IP locali e quindi di quanto e' o puo' essere grande la nostra rete nel senso del numero di calcolatori che essa puo' contenere. Un po' di matematica binaria Ora non dobbiamo spaventarci ma per capire in che modo dalla conoscenza dell'indirizzo IP e della netmask derivi l'indirizzo della rete dobbiamo conoscere la matematica binaria. Grazie ai due simboli binari 0 e 1 e' possibile definire qualsiasi numero. Nel sistema di numerazione che noi tutti conosciamo entrano in gioco dieci simboli con cui scriviamo tutti i numeri. La nostra percezione di questa sequenza di cifre e' una percezione posizionale nel senso che questo modo di scrivere da un peso differente alle singole cifre coinvolte cosi che il numero 9 in seconda posizione da sinistra non ha lo stesso valore dell'altro 9. Ogni posizione a sinistra di un altra "pesa" dieci volte di piu' di quella a destra e quindi presi i numeri sopra da destra si avra' che quel numero indica nove volte uno piu' sei volte dieci piu' nove volte cento piu' una volta mille. E' questo e solo questo che indichiamo quando scriviamo "1969". Dieci simboli, incremento posizionale di potenze di dieci, tutto questo ripetersi del valore dieci da il nome al nostro sistema numerico chiamato "decimale". Usualmente si dice che il fatto di avere un sistema decimale deriva dal fatto che abbiamo dieci dita e quindi l'utilizzo di dieci simboli e' solo una convenzione ed e' in realta' possibile utilizzare un numero arbitrario di simboli per scrivere i numeri. In realta', il cosi' detto sistema binario formato appunto dai soli simboli 0 e 1 ricopre un'importanza fondamentale nel mondo dei calcolatori in quanto il calcolatore, lavorando con correnti o campi magnetici e' solo in grado di rilevare la presenza o l'assenza di uno di questi campi in un elemento di memoria e la rilevazione o meno di tali campi viene associata alla lettura nella cella di memoria di un uno o di uno zero. Ma visto che il nostro cervello e' assuefatto al sistema decimale, vediamo innanzitutto come si costruisce una corrispondenza tra i primi numeri del sistema decimale e di quello binario. Lo 0 e 1 sono ovviamente uguali in tutte e due i sistemi. Con il due abbiamo il primo intoppo. Mentre nel sistema decimale esiste un simbolo unico che identifica univocamente tale valore, nel sistema binario abbiamo gia' esaurito tutti i numeri esprimibili con una sola cifra e quindi dobbiamo passare a due cifre. Come nel caso decimale in cui dopo il nove viene il dieci, anche nel caso binario, dopo l'1, si passa a dover usare due cifre e quindi il corrispettivo binario del due decimale e' il 10. Il tre decimale sara' l'11 binario e con il quattro abbiamo finito anche tutti i modi di esprimere in binario un numero con due cifre e quindi passiamo a tre e dunque il quattro decimale e' il 100 binario. Riassumendo e estendendo queste associazioni, indicando con il pedice il tipo di numerazione relativa, si avra' che: Ovviamente anche il sistema binario e' posizionale e, come nella numerazione decimale una posizione a sinistra e' dieci volte maggiore di quella a destra, analogamente nel sistema binario, una posizione a sinistra e' due volte maggiore di quella a destra per cui, per esempio, 1001112 significa, partendo da destra, una volta uno piu' una volta due piu' una volta quattro piu' una volta trentadue e quindi 3910. Bene, ora che conosciamo il punto di vista del calcolatore riguardo ai numeri, siamo in grado di guardare l'indirizzo IP da un nuovo punto di vista mettendoci nei panni di un computer. Quando noi esseri umani diciamo che un calcolatore ha l'indirizzo 195.32.69.2 quello che il computer vede sono quattro sequenze di otto simboli binari separati da un punto. Ogni simbolo binario 0,1 viene chiamato in gergo "bit" e otto bit vanno a formare un nuovo elemento chiamato "byte". Quindi l'indirizzo IP puo' essere visto come una sequenza di 4 byte o, il che e' la stessa cosa, di 32 bit. Perche' abbiamo detto che ogni elemento della sequenza e' formato proprio da 8 bit? Perche' abbiamo gia' detto che i numeri separati dal punto possono andare da 0 a 255 e 255 in binario e': Che questo e' proprio il valore che rappresenta 255 in binario lo si vede senza dover sommare tutti i termini sopra con un semplice trucchetto. Preso il numero: che e' il successivo del numero sopra si ha che questo e' 28 = 256 in decimale e quindi il numero sopra e' 28-1 ossia proprio 255. A questo punto, per puro diletto mostriamo il nostro indirizzo IP usato nell'esempio dal punto di vista del sistema binario: Gia che ci siamo, scriviamo anche la netmask 255.255.255.0 in formato binario. Questa e' molto semplice visto che abbiamo appena visto qual'e' la rappresentazione binaria del numero 255 per cui: Ma perche' ci siamo infilati in tutte queste sfilze di uno e zeri chilometriche? Perche' grazie a queste siamo ora in grado di introdurre l'operatore che ci permettera' di calcolare la rete conoscendo l'indirizzo IP e la netmask. Facciamo quindi la conoscenza con l'operatore AND. Cosa possiamo dire di questo operatore? Beh, innanzitutto che esso e' un operatore binario ossia e' una operazione matematica che va applicata a numeri binari e che esegue una qualche trasformazione sulle cifre binarie del numero trasformandole in qualcos'altro. Il tipo di trasformazione viene definita a parole in questo modo: l'AND tra due cifre binarie da come risultato 1 se e solo se tutte e due le cifre sono 1 altrimenti il risultato e' 0. Visto che le possibili combinazioni di due cifre binarie sono solo quattro e' possibile scrivere il funzionamento dell'operatore AND elencando tutti i possibili casi e quindi scrivendo che: 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 Un modo equivalente per esprimere il funzionamento dell'operatore AND e' dire che applicandolo a un qualsiasi cifra binario e allo 0 da come risultato 0 mentre applicandolo con il numero 1 da la stessa cifra binaria. Calcoliamo la netmask Bene, ora abbiamo tutti gli strumenti per definire e calcolare la rete a cui appartiene un dato indirizzo IP. La rete di un indirizzo IP e' il risultato dell'operatore AND applicato all'indirizzo stesso e alla sua netmask quindi, nel caso specifico, esprimendo per brevita', per ora i due elementi ancora in notazione binaria sara' il risultato dell'operazione rete X = 195.32.69.2 AND 255.255.255.0 Si vede subito che, in questo caso, il calcolo e' molto semplice. Iniziamo infatti ad applicare l'operatore AND sul primo byte dell'indirizzo IP e della netmask per ottenere il primo byte dell'indirizzo di rete 19510 AND 25510= 110000112 AND 111111112 Ma, per quanto detto sopra, l'operatore AND tra un qualsiasi numero binario e 1 e' il numero binario stesso e quindi: 19510 AND 25510= 110000112 AND 111111112= 110000112 = 19510 e si vede quindi subito che il risultato dell'AND sui primi tre byte dell'indirizzo IP sono gli stessi 3 byte iniziali. Andando a calcolare il quarto byte della rete il cui valore e' il risultato dell'operazione: 210 AND 010= 000000102 AND 000000002 che, per quanto detto prima ossia che l'operazione di AND tra un qualsiasi numero e zero da sempre zero ci porta a concludere che: 210 AND 010= 000000102 AND 000000002= 000000002= 010 Quindi siamo giunti al risultato definitivo. La rete a cui appartiene l'indirizzo IP 195.32.69.2 con netmask 255.255.255.0 e' la rete 195.32.69.0. Quali sono quindi gli indirizzi IP locali al nostro computer S? Per come abbiamo fatto i conti sopra si vede subito che sono tutti gli indirizzi della forma 195.32.69.x in quanto, per ogni x il suo AND con zero sara' sempre zero e quindi la rete sara' sempre quella sopra e quindi la stessa di S. Allora siamo ora in grado di decidere se il nostro pacchetto tra S e D va inoltrato tramite il gateway di default o e' per un IP locale. Se AAA.BBB.CCC.DDD e' della forma 195.32.69.x allora la busta e' destinata ad un computer da ricercare direttamente sulla rete locale, altrimenti va inviato al gateway di default per l'instradamento su Internet. A questo punto qualcuno potrebbe pensare che il calcolo dell'indirizzo di rete sia banalmente fatto ponendo a zero l'ultimo byte dell'indirizzo IP. Ma questo non e' vero e lo e' solo e soltanto se la netmask e' quella finora usata ad esempio. Vediamo di chiarire questo con un ulteriore esempio. Prendiamo una comunicazione che coinvolge due calcolatori con indirizzo 195.32.68.2 e 195.32.69.2. Questi appartengono o no alla stessa rete? Pensateci bene un attimo prima di rispondere. La risposta e' che dipende. Dipende dalla netmask assegnata. Se la netmask e' quella considerata finora allora avrete azzeccato la risposta che, per quanto detto sopra, e' ovviamente negativa. Ma vi faccio vedere che spesso conviene fare i conti almeno finche' non si e' presa un po' di dimestichezza e di manualita' con gli IP e le netmask. Consideriamo i due IP sopra ma consideriamo altresi' che sia stata loro assegnata un'altra netmask, 255.255.254.0, e calcoliamo di nuovo la rete a cui i due IP appartengono. Per il primo indirizzo si ha che: 195.32.68.2 AND 255.255.254.0 = 195.32.xxx.0 in quanto, non essendoci mai capitato il calcolo 68 AND 254 non sappiamo a priori quanto faccia. Eseguendo si ha che: 6810 = 010001002 , 25410 = 111111102 e quindi e dunque il risultato e' di nuovo 6810 e dunque la rete a cui appartiene l'indirizzo 195.32.68.2 con netmask 255.255.254.0 sembra verificare ancora la regola empirica vista sopra ossia da come risultato la rete 195.32.68.0. Vediamo ora la rete dell'altro indirizzo. Di nuovo, l'unico calcolo che non abbiamo mai eseguito e' 69 AND 254 ed essendo 6910 = 010001012 si ha che ed ecco la sorpresa 6910 AND 25410 = 6810 Per cui entrambi gli indirizzi IP appartengono alla stessa rete 195.32.68.0 e quindi sono indirizzi che appartengono a due calcolatori della stessa rete locale. Quindi, se la netmask e' 255.255.255.0 allora 195.32.68.2 e 195.32.69.2 appartengono a due reti differenti e i calcolatori si manderanno i pacchetti tramite i loro rispettivi gateway ma se la netmask e' 255.255.254.0 allora il calcolatore mandera' la busta direttamente sulla rete locale aspettandosi che l'altro sia direttamente connesso ad essa. In definitiva possiamo dunque affermare che la netmask e' un elemento discriminante per decidere cosa e' locale e cosa e' remoto e la domanda a quale rete appartiene un indirizzo IP e' mal posta se non si specifica anche la netmask ad esso assegnata. Netmask notevoli Elenchiamo ora alcuni casi notevoli. La netmask 255.255.255.0 detta classe C, quella vista sopra, che ha indirizzi disponibili per 2^8-2 calcolatori (sottraggo due perche' uno e' l'indirizzo di rete inusabile e l'altro e' un altro indirizzo particolare che tutte le reti debbono avere chiamato indirizzo di broadcast) ossia 254 indirizzi usabili per assegnare ai calcolatori della rete. La netmask 255.255.255.192 che divide una classe C in quattro sottoreti di 2^6-2 =62 calcolatori. La netmask 255.255.255.128 che divide una rete di 256 indirizzi in due sottoreti di 2^7-2 =126 calcolatori. La netmask 255.255.255.252 e' la piu' piccola rete usabile con 2^2-2 = 2 indirizzi disponibili, usata spesso nelle punto-punto dove un indirizzo e' l'IP di un lato della connessione e l'altro e' l'indirizzo dell'altro punto (il terzo e' l'indirizzo di rete e il quarto e' il sopra citato indirizzo di broadcast). La netmask 255.255.255.254 e' inusabile in quanto anche qui non c'e' un IP disponibile 2^1-2 = 0. La netmask 255.255.255.255 rappresenta il singolo host in quanto, essendo tutti i bit a 1 da come risultato il solo IP stesso. Relativamente al discorso IP disponibili questo e' un caso degenere con cui non si identifica una rete ma l'indirizzo del computer stesso. La netmask 255.255.0.0 detta classe B che ha indirizzi locali disponibili per 2^16-2 calcolatori formata quindi da 256 classi C. La netmask 255.0.0.0 detta anche classe A ha indirizzi locali disponibili per 2^24-2 calcolatori formata da 256 classi B. La netmask 0.0.0.0 che e' un altro caso "degenere" in quanto essa rappresenta l'intero spazio degli indirizzi IP. In moltissimi casi in cui infatti e' necessario intendere la frase "qualsiasi indirizzo" si usa infatti la notazione 0.0.0.0/0.0.0.0. Piu' in generale la netmask si scrive iniziando a mettere simboli "1" partendo da destra e mettendone tanti quanti ne servono a formare lo spazio di indirizzi IP che si intende utilizzare nella rete locale. Quindi la netmask non puo' assumere tutte le forme possibili utilizzando quattro sequenze di numeri da zero a 255 ma solo le seguenti forme g1.g1.g1.g1 g1.g1.g1.g2 g1.g1.g1.g3 g1.g1.g2.g3 g1.g1.g3.g3 g1.g2.g3.g3 g1.g3.g3.g3 g2.g3.g3.g3 g3.g3.g3.g3 dove g1) 255 g2) 254, 252, 248, 240, 224, 192, 128 g3) 0