Google+ Quarta Info B: Socket, IP e altro

lunedì 4 febbraio 2013

Socket, IP e altro

Per prima cosa, come avviene il collegamento tra generalmente due computer? Per collegare tra di loro 2 computer abbiamo bisogno di una socket, cioè un canale virtuale che permette a due processi su due macchine distinte di scambiarsi dei dati.
Per gestire correttamente questo scambio di dati ho bisogno di un protocollo (cioè un insieme di regole) per far sì che la comunicazione tra i due processi avvenga correttamente. 
Uno dei protocolli fondamentali è l' IPv4 (Internet Protocoll version 4) , cioè un protocollo che associa un indirizzo di rete al computer.
Nel caso dell' IPv4 l'indirizzo è composto da 4 numeri (che vanno da 0 a 255) separati da dei punti.
Un esempio può essere il seguente:  192.168.1.254
Già da tempo il protocollo IPv4 doveva essere sostituito dall'IPv6, visto l'esaurimento degli indirizzi IPv4.
Insieme all'indirizzo IP (prenderemo in considerazione gli indirizzi IPv4, per comodità essendo quello più diffuso) si utilizza anche una mask, un maschera.
La maschera suddivide l'IP della rete in tre classi distinte:
-Classe c ->Si utilizza come maschera 255.255.255.0
-Classe b ->Si utilizza come maschera 255.255.0.0
-Classe a ->Si utilizza come maschera 255.0.0.0
 Questa maschera ha lo scopo di dividere l'indirizzo IP nell'indirizzo vero e proprio della macchina è l'indirizzo della rete dove è collegato il computer, questo avviene facendo una AND bit per bit tra indirizzo IP e maschera.

IP = 192.168.1.254    Mask = 255.255.255.0

    1100000 | 10101000 | 00000001 | 11111110     Facendo la AND bit a bit 
    1111111 | 11111111 | 11111111 | 00000000
=      192           168               1                 0 

Come si vede, quel che ne risulta è l'indirizzo della rete ( o net address) , mentre l'indirizzo del computer non viene visualizzato. L'host address invece (che è 254) è nascosto.
Quindi, se 192.168.1.0 identifica una rete, l'host address 254 identifica quel determinato computer in quella rete.
Gli host utilizzabili vanno da 1 a 254, il 255 è un broadcast, cioè se invio dei dati all'host 255 è come se lo inviassi a tutti gli host presenti nella rete.
Oltre a questi esistono indirizzi di rete specifici che sono privati come 192.168.0.0 , 172.16.0.0 , 10.0.0.0 
Gli indirizzi privati si possono vedere tra di loro solo se sono nella stessa rete.
Il router permette il coesistere sia le reti private sia le reti pubbliche, il router ha un IP che si chiama gateway.
Altri protocolli che il S.O. utilizza per inviare i dati sono il TCP (Transfer Control Protocol) e l'UDT.

Per creare una socket devo avere:
- L'indirizzo di rete di entrambi i computer
- Le porte dove i processi sono in ascolto

Le porte sono valori a 64 bit (quindi può avere valori da 0 a 65535), però le porte da 0 a 1023 sono riservate al S.O.

Una socket può essere indicata così
8.8.8.8:1015 | 1.2.5.7:10

8.8.8.8 e 1.2.5.7 sono gli IP dei due computer, mentre 1015 e 10 sono le porte dove i processi sono in ascolto.
Altra cosa, l'S.O. tramite la scheda di rete è quello che gestisce tutte le socket.

1 commento: