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.
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.
UDT = UDP
RispondiElimina