13 d’octubre 2007

Understanding Internet 0

Ja fa molt que volia fer una col·lecció de posts indicant com funciona tot internet. Però fins ara no sabia per on començar, doncs la veritat és que és una mica enredat d'explicar, però alguna deitat m'ha fet veure la manera més senzilla:

Primer de tot, deixem internet com una porta de moment la tindrem tancada. I començaré a descriure la part de més baix nivell del switch i del HUB (No el router encara no :P).

Tenim dues adreces a tenir en compte: les adreces físiques de 48bits que determinen la nostra targeta de xarxa i l'adreça IP de 32 bits (IPv4) que determina a on està el nostre PC. Si tenim aquestes dues adreces es pot dir que estem treballant sota el protocol IP (Internet Protocol).

Val, val una mica de definicions ràpides: el HUB és el tonto: és un catxarro que rep un paquet i com que no sap què fer-ne ho envia a tot cristo (a tots els altres PC's, routers, Switchs i hub's que té connectats). El switch és una mica més llest i es va aprenent les adreces físiques de tothom (llegeixi's adreces MAC). I el Router, el més llest, qui llegeix l'adreça IP (i a sobre és capaç de canviar-la i decidir quins paquets deixar passar i quins no). Per tant, tenim una família de catxarros on podem connectar diferents cables de xarxa: el llest, el tonto i el més tonto. Cadascun té els seus avantatges (bé el HUB l'única avantatge és que és més barat) i les seves funcions.

Bé, també dono per suposat, que sabeu o que podeu imaginar que els ordinadors es comuniquen per la xarxa a través de paquets (usualment paquets TCP/IP, però n'hi ha d'altres que també anirem veient). Els paquets que envia el vostre ordinador solen tenir 1,5KB com a màxim. Amb aquesta dada ja podeu fer els exercicis de 4art d'EGB per a calcular quants paquets heu d'enviar per poder enviar una foto porno. [bé hi ha el tema de les capçaleres que si són 20 bytes per a IP, no sé quants amb el TCP, però això un cop de wikipedia i au, ja ho veureu]

Molt bé, com que no podem anar per la porta d'internet, imaginem que tenim tres PC's, per ser originals, l'A amb IP 10.0.0.67, el B amb IP 10.0.0.68 i el C amb IP 10.0.0.69. El meu nivell d'originalitat és tal que el nostre PC serà l'A i el PC amb qui ens volem comunicar el B i el C estarà per allà projectant una peli porno que tindrà gravada al disc dur. Tots tres PC's estaran connectats per un HUB.

OK, doncs, l'A vol parlar amb B, però com que tant sols coneix la seva adreça IP (próximament com saber l'@ IP sabent nomeés el nom: frikimodeon.blogspot.com), A necessita saber la seva adreça física. Així que llança un paquet "ARP request" que ve a ser un "qui hi ha a la IP 10.0.0.68?" aquest missatge el veu tant B com C, primera perquè estan connectats a través d'un HUB i segona perquè el paquet ARP és un paquet enviat per broadcast: Enviat expressament a tot cristo.

Per tant, C rep un paquet que li pregunta qui hi ha a la 10.0.068, però com que ell és el 10.0.0.69, no en fa cas, ja que no ho sap. En canvi, el B, que també rep el paquet, respòn a l'A dient-li: "sóc jo i tinc adreça MAC (física) ff-ff-ff-ff-ff-02". A al rebre la resposta, s'ho apunta a la taula ARP.

Així doncs, A envia el paquet que volia enviar a B amb @Mac destí: ff-ff-ff-ff-ff-02 i @IP destí 10.0.0.68 i B rep el missatge. Tot i que per culpa del HUB, C també rep els missatges, però com que C veu que no són per a ell, els descarta.