# | Vídeo | Duració |
---|---|---|
1 | Creació de subxarxes | 06:57 |
2 | Temps de transmissió i de propagació | 04:22 |
3 | Retard de transferència d'un paquet | 07:10 |
4 | Transmissió d'un fitxer extrem a extrem | 08:32 |
Part IV: Transmissió d'un fitxer extrem a extrem
Per finalitzar aquest conjunt d’exemples, l’última cosa que veurem és, com a continuació de l’exemple anterior, la transmissió d’un fitxer. De fet, a la transparència adjunta, teniu també les dades d’aquest fitxer i la idea que ens demanen en aquest cas és: quant triguem a transmetre aquest fitxer des d’A fins a C? Dibuixarem la xarxa un altre vegada, així podem contextualitzar-ho tot. En aquest cas, des d’A enviem paquets de dades a C, i respon amb un ACK, amb un paquet que reconeix que he rebut el paquet anterior, són paquets de dades. Tenim un fitxer aquí, que té una mida FL = 1*10^9 Bytes. Recordeu que un Byte no és més que 8 bits, per tant, la mida d’aquest fitxer en bits serà de 8 Gbits i ens pregunten: quant trigarem a transmetre tot aquest fitxer des d’A fins a C?, tenint en compte que per cada paquet que C rep ens envia un ACK i quan A rep aquest ACK envia aquest paquet.
Per resoldre el problema de l’exemple, tornarem a fer el dibuix, igual que abans i intentem veure com funciona el sistema. Igual que abans, tenim el node A, tenim el Router i tenim el node C. Dibuixem el temps en un eix vertical i agafem un valor de referència on enviem el primer paquet. En aquest cas, aquest paquet s’enviaria per l’enllaç 1; això seria l’enllaç 1, això, l’enllaç 2. Es processa al Router i s’envia cap a C. Què fa C un cop ha rebut aquest paquet? Hem dit que contesta amb un ACK, per tant, el que faria en sentit contrari és enviar aquest paquet de reconeixement, que com veieu a les transparències, si aquest paquet eren 12.000 bits, aquest paquet d’aquí són només 120 bits, simplement per reconèixer que aquest paquet ha estat ben rebut. Aquest ACK s’envia en direcció contrària: primer passa pel Router, on també es processa, i després s’envia un altre cop cap a A, on també es processa. Per tant, en aquest punt d’aquí tenim que A es conscient que el paquet que s’ha enviat abans es rep bé i pot començar a transmetre un segon paquet. Si això era el paquet 1, ara començaria a transmetre el paquet 2 i així seguirà fent.
Per tant, per poder respondre quant de temps trigaria en transmetre tot aquest fitxer, necessitaríem dues coses. Primer de tot saber quant de temps necessitem per cada paquet, i en aquest cas aquest temps és des d’aquest punt d’aquí fins que A sap que el paquet que ha enviat ha estat ben rebut. Què hauríem de fer?: sumar aquest terme d’aquí amb aquest d’aquí, això és el temps de propagació sobre l’enllaç 1, el temps de transmissió sobre l’enllaç 1, temps de processament al Router, temps de transmissió als dos enllaços (les dades), temps de propagació sobre l’enllaç 2, temps de processament en l’enllaç 2 i repetir tot el mateix sobre l’ACK. Temps de transmissió de l’ACK, temps de propagació de l’ACK, temps de processament de l’ACK al Router, temps de transmissió de l’ACK a l’enllaç 1, temps de propagació de l’ACK a l’enllaç i temps de processament al node A.
Fixeu-vos que els temps de propagació són independents de la mida del paquet, per tant, en aquest cas, aquest valor d’aquí serà exactament igual al valor que teniu aquí, és a dir, aquest interval d’aquí serà el mateix que el que teniu aquí. I de la mateixa manera, aquest interval d’aquí serà el mateix que aquest interval d’aquí. Teniu escrits tots els termes diferents però bàsicament és repetir el mateix que hem vist abans, però tant com pel paquet com per l’ACK. En tot cas, si tenim el temps d’un paquet i ens demanen el temps que necessitarem per transmetre tot el fitxer, un altre cosa que haurem de saber és quants paquets hem d’enviar. Això seria el temps per enviar un paquet. I podem anomenar N al nombre de paquets que ens falta enviar. Si la imatge té 1Gbit, i cada paquet té una longitud de 12.000 bits, dels quals 200 són capçaleres, vol dir que només 10.000 són de dades, el número del paquet es calcula com la mida del fitxer dividit per la mida de les dades de cada paquet. Aquí, un error molt típic és dividir per la mida total, simplement tingueu compte i sigueu conscients que només s’ha de dividir per la mida de les dades. Si fem aquesta divisió, en aquest cas és senzilla, són 10.000 bits per la mida de les dades. 8 Gbit serien 8 milions de bits de la mida del fitxer. Això ho podem simplificar i ens queden 800 mil paquets. Fixeu-vos que 8 Gbits poden ser la mida d’una pel·lícula, o qualsevol fitxer d’aquest tipus, i això implica transmetre paquets de dades de 8.000 bits que hem de transmetre en 800.000. Per tant, com calcularem el temps total de la transferència?: doncs simplement multiplicant el retard d’un paquet pel número de paquets que tenim.
Imagineu-vos que aquest retard d’aquí és d’aproximadament mig segon, això vol dir que multiplicat per aquest valor d’aquí pot ser que ens doni uns quants milers de segons i a la pràctica això vol dir unes quantes hores. Per què ens pot donar un valor tan gran quan calculem això? Bàsicament fixeu-vos que aquest enllaç de dos té una capacitat molt baixa, només de 250 Kbits, molt baixa per valors actuals, però pot ser que fa 10 anys fos un valor molt normal, i si avui baixar-nos una d’aquestes pel·lícules que pot ser qüestió d’una hora o dues, pot ser que fa 10 anys fos qüestió de 12 hores o més, i veureu que aquest resultat va en aquesta línia.
Obra amb llicència Creative Commons Reconeixement-NoComercial-NoDerivats 3.0 Unported License.