13 d’octubre 2007

Understanding Internet 1

Bé, continuant amb el macro-internet-tutorial... Aquest cop canviarem el Hub per Switch i veurem què passa.

Recordar que el Hub tot paquet que rebia, l'enviava per a totes les seves interfícies (lleeixis ports), en canvi, el Switch tant sols fa això quan rep un paquet que va dirigit a una adreça física (MAC) que no sap en quina interfície correspon [si no sap on enviar-ho ho envia a tothom].

El Switch doncs, per aprendre's en quin port ha d'enviar un paquet dirigit a l'@MAC X (on X és un nombre de 48 bits, usualment escrit en hexadecimal i agrupat en parelles de dígits i separats per guions "-" o ":") el que fa és apuntar-se l'@MAC orígen dels paquets, si rep un paquet que li ve del port 1, agafa l'adreça origen daquest paquet i s'apunta que aquesta adreça va pel port 1. I així es va apuntant totes les adreces MAC que va rebent.

I perquè es vol apuntar les adreces MAC de tothom? Doncs per no tenir que enviar els paquets a tothom i sobretot, per poder permetre que A i B puguin parlar, sense impedir que C es pugui comunicar amb D (on D és un PC d'un amic que a vingut perquè es vol copiar la peli porno de C). Així doncs, A i B poden parlar tranquil·lament, mentres C i D es copien la peli porno I tots ells aprofitant la màxima velocitat del Switch (o de les seves targetes de xarxa): sense col·lisions. [Bua les col·lisions, m'ho he deixat xDD].

I com que queda això molt curt, explico les col·lisions. Com que tenim diferents PC's connectats a un sol medi (HUB, Switch o router), es pot dir que els PC's no poden parlar a l'hora [bé acabem de veure que amb els switchos un cop apreses les adreces sí que poden :P]. Doncs un podria pensar, doncs repartim el temps d'ús de la connexió entre tots els PC's. Però clar, A i B només es volen enviar un parell de missatges, en canvi D i C es volen copiar tota una pel·lícula esgotadora de dues hores de duració! Per tant, el medi estarà 3/4 parts sense usar (la copia és de C cap a D, de moment considerem que només parla C, encara no hem vist el protocol TCP :P). Mal aguanyat, o pitjor encara, imagineu que tenim 100 PC's!! i que la resta de PC's estant callats!!

Així doncs, que es va decidir que tothom faria servir el medi, com si fós per ell sol. Però què apssa, que quan dos o més usuaris envien un paquet hi ha una col·lisió. I aleshores què fem, doncs, afortunadament per hardware es pot detectar que hi ha hagut una col·lisió, amb lo qual, fem una mica d'estadística, tirem un dau, i si ens toca podem tornar a enviar el paquet inmediatament, si no, ens esperem [NO és broma, es genera un número aleatori i si et toca bingo!], si tot seguit es torna a fer una interrupció, el dau és més gran [fins a un tope no gaire gran que si no, ens espararíem per res].

És important notar, la importància de poder detectar per hardware que hi ha hagut una interrupció, doncs per wireless no és així, i com a conseqüència tenim un futimer de paquets de control terrible. Per molt que diguin wireles a 108Mbps: MENTIRA!! la velocitat real és mooooolt inferior i si hi ha més de dos PC's baixa en picat.