Problema 1
Problema 2
Problema 3
Problema 4
Problema 5
Problema 6
Problema 7
Problema 8
Problema 9
Problema 10
Problema 11
Problema 12
Problema 13
Problema 14
Problema 15 - Correcció
Problema 16
Problema 17
Problema 18
Problema 19
Problema 20
Problema 21
Problema 22
Problema 23
Errors de "Warriors of the net"
1. Quina és la longitud màxima del segment TCP? Tindria sentit considerar un MSS de 65516 bytes? i 65496?
MSS= Longitud màxima del segment TCP = 65536.
65535-65516=19
19! = 20 => Ens faltaria un byte ja que TCP Utilitza 20 bytes de capçelera sense opcions. Per tant no tindria cap sentit.
[04/05]
2. Per a què s’utilitzen els números de port a UDP i a TCP? Com són triats?
S'utilizen per diferenciar la aplicació destí d'una connexió.Els d'ús més comú són els well-known i estan per sota del port 1024 (ports resevats):
ftp |
21/tcp |
||
telnet |
23/tcp |
||
smtp |
25/tcp |
| |
time |
37/tcp |
timserver | |
time |
37/udp |
timserver | |
www |
80/tcp |
http |
WorldWideWeb HTTP |
www |
80/udp |
http |
HyperText Transfer Protocol |
La resta de ports són per a
ús dels usuaris els quals poden posar un procés a un port que coneix
lliure o demanar un port lliure al sistema operatiu.
FONTS:
http://wikipedia.org
Apunts de Classe
index
[07/05]
3. Si volem un servei no orientat a connexió i no fiable utilitzem UDP. Explica amb detall per què no utilitzem directament IP. Per
communicar dos hosts ens fa falta una IP i un port tant d'orígen com de
destí. IP inclou la informació IP dels hosts, però no els ports, així
que UDP es molt simple i serveix per completar l'informació. De fet, la
seva estructura es:
2 bytes |
2 bytes |
Port origen UDP |
Port destí UDP |
Longitud |
CRC |
D.A.D.E.S ... |
Per el CRC s'utilitzen les
direccions IP dels hosts, tant l'origen con destí, cosa que viola
completament el sistema de capes, però es fa així perquè UDP prepara
totalment el datagrama IP per qüestions de rendiment.
4. Quines raons argumentaries per no utilitzar UDP directament per a la transmissió de fitxers?
La raó principal per no utilitzar UDP per a transmetre fitxers és que es tracta d’un protocol no fiable. Si volem enviar un fitxer amb UDP a una certa destinació, no sabrem mai si els datagrames enviats han arribat realment al seu destinatari, ja que no disposem de missatges de ACK que ens ho assegurin.
Per altra banda, l’ordre d’aquests datagrames podria ser qualsevol, ja que no s’ordenen al arribar al seu destí. Aquest protocol no controla la informació que s’intercanvia entre les màquines participants de la comunicació.
En resum, els datagrames enviats per a transmetre fitxers mitjançant UDP poden no arribar, arribar duplicats o arribar fora d’ordre, per tant ens interesaría utilitzar un altre protocol que ens aportés més fiabilitat (TCP, per exemple).
[08/05]
5. Volem enviar 8192 bytes de dades utilitzant UDP en una Ethernet. Quants fragments IP s’enviaran? Indica el tamany i l’offset de cadascun.
Cabecera UDP: 8bytes MTU Ethernet: 1500 bytes Tamany total dades: 8192 bytes
Tamany datagrama UDP: 8192 + 8 = 8200 bytes
Cabecera de cada fragmento: 20 bytes
|
Offset |
Dades |
Tamany total |
Fragment1 |
0 |
1480 |
1500 |
Fragment2 |
185 |
1480 |
1500 |
Fragment3 |
370 |
1480 |
1500 |
Fragment4 |
555 |
1480 |
1500 |
Fragment5 |
740 |
1480 |
1500 |
Fragment6 |
925 |
800 |
820 |
Necessita 6 fragments.
Correcció: -Resultat correcte comprobat a classe-
6. Una aplicació utilitza un datagrama UDP per a enviar dades. El datagrama IP que s’envia és fragmentat en 4 troços. Els fragments 1 i 2 arriben a la destinació, però la resta és perden. L’aplicació torna a re-transmetre el mateix missatge després de 5 segons, i aquesta vegada es perden els fragments 1 i 2. Si assumim que el timeout per la desfragmentació és de 60 segons, el receptor pot reconstruir el datagrama original?
- Correción en clase
Los protocolos UDP y IP no son fiables y la retransmisión de un datagrama se controla a través del nivel de aplicación. Cuando el datagrama se transmite la segunda vez, tiene otro identificador, pues a nivel de enlace no se sabe que son partes del mismo datagrama. Y como no se pide retransmisión a este nivel, luego nada llega a las capas superiores.
7. Quina és la longitud màxima del flux de dades que es pot enviar en una connexió TCP, considerant que els números de seqüència tenen 32 bits?
Podem enviar tants paquets com vulguem pq els números de seq. es poden reutilitzar. Per tant la longitud no té límit.
[04/05]
8. Suposant que el port 34434 està sent utilitzat per una aplicació que ha executat el codi mostrat més avall, podria una altra aplicació utilitzar el mateix número de port per a fer una obertura de connexió passiva TCP? Justifica la teva resposta.
(...)
sai.sin_port=htons(34434);
s=socket( PF_INET, SOCK_DGRAM, IPPROTO_UDP);
if ( bind( s, (struct sockaddr *)&sai, sizeof(sai) ) !=0 ) {
(...)
Sí, ja que el socket declarat utilitza protocols UDP i es podria crear per tant una connexió TCP.
El Sistema Operatiu es l'encarregat de gestionar els ports oberts i pot diferenciar un port UDP d'un TCP.
Correcció:
[11/05] ()
La resposta és CORRECTA ja que el sistema operatiu relaciona (Port,Protocol), per tant (UDP,34434) el SO consideraria que seria diferent a (TCP,34434).
***************************************************************
** Port TCP Port Client **
** --------------------------------------------------------- **
** **
** || 80 || <--- --- --- --- --- --- --- --- --- || 24012 || **
** || 80 || <--- --- --- --- --- --- --- --- --- || 25111 || **
** **
***************************************************************
A classe es va debatir si per a dos clients podrien usar el mateix port TCP alhora i vam arribar a la conclusió de que:
1. Ens saltariem l'estandar, per tant quedaria lleig.
2. També trencariem el que es coneix '''client-servidor''' i hauriem de modificar el SO per a que el ''rebind'' es pugués aplicar dues vegades.
FONTS:
http://wikipedia.org
Apunts de Classe
index
9.
Calcula el throughput màxim teòric de TCP en una Ethernet de 10
Mbits/segon, assumint un MSS de 1024 bytes. Suposa que ni IP ni TCP
porten opcions, i recorda el temps mínim entre trames (9.6 micro-s.) i
la longitud mínima de les dades a Ethernet (46 bytes).
Ethernet:
Preamble (64) |
Origen (48) |
Destí (48) |
Tipus (16) |
Dades |
CRC (32) |
Calcul de "parelles" per segon: Tamany de tots els camps: Preamble = 64bits
Origen = 48bits
Desti = 48bits
Tipus = 16bits
Dades = 8bits * (20bits heather IP + 20bits heather TCP + 1024 MMS)
CRC = 32bits
Total de bits= 8816 Primer calculem l'espai minim entre 2 trames. En aquest cas, entre les dades i l'ACK de confirmació d'aquestes.
(9.6 micro seg. * 10Mbits)/8 = 96bits
Calcul de "parelles": Dades + ACK per segon:
Calcul del minim numero de dades a enviar per Ethernet:
64+(2*48)+16+(8*(20+20+6))+32= 672. Assignem 6 bits a MMS per obtenir 46 bytes utils.
10Mbps/(8816+672)= 1054parelles/segon
1054parelles/segon * 1024 bytes parella= 1079296bytes/segon
1079296bytes/segon
* 8= 8634638 bits/segon -> 86% -> Throughput maxim teoric. La
resta es perd per dades de control i capçaleres
10. Per què hi ha una opció de negociació del MSS si ja tenim un camp en les capçaleres de tots els segments TCP per a l’anunci del tamany de finestra?
La opció de negociació del MSS és necesaria degut a que el tamany dels segments pot variar, i si aquests segments son retransmessos, poden portar més informació que els segments originals. És per aquest motiu que és necessari que els extrems acordin un MSS.
El MSS més óptim posible seria aquell que permetés els datagrames fosin del tamany més gran posible sense que es produis fragmentació en el seu recoregut per les xarxes que atravessa.
Trobar-lo és molt difícil, ja que la majoria d’implementacions de TCP no tenen cap manera de saber l’MTU mínim de les xarxes que atravessaran els datagrames que es transmetin. L’emissor i el receptor normalment es posen en contacte i es comuniquen el seu MTU i s’agafa el més petit.
[08/05]
11. Implica la pèrdua d’un ACK el re-enviament de dades en TCP? Si la teva resposta no és un “sempre” o un “mai”, especifica les circumstàncies.
No sempre, l'unic cas a tenir en compte, però, es en el tancament d'una connexió amb el mètode gracefully, si es perd l'ACK de l'últim missatge de FIN hi ha un temps d'espera abans de finalitzar la conexió per que doni temps a enviar-se l'ACK del FIN un parell de vegades, com a mínim, però no es torna a enviar la última senyal de FIN. Es el mateix problema que el dels cartaginesos i els romans que a l'establiment de la connexió, s'arriba a un compromís que estableix que amb 3 missatges ja n'hi ha prou perque els dos extrems estiguin avisats, si no s'hauria d'enviar un ACK de l'últim ACK, i axí succesivament.
12. Quins són els principals motius per a que el número de seqüència inicial de TCP hagi de ser aleatori i no predictible?
[07/05]
Los números de secuencia
sirven para identificar la comunicación y se desea que cada
comunicación tenga un identificador unico. Por eso el espacio para los
números es muy grande (entre 0 y 2^32-1), pues será muy poco probable
que dos conexiones tengan el mismo número de secuencia. También, cuando
una conexión falla por alguna razon, es importante que la proxima vez
tenga otro número de secuencia para que no se confundan los datos de
las dos comunicaciones. Ademas es menos probable que haya un ataque de
fuera porque el numero no se puede adivinar utilizando algun algoritmo.
index
13. Si aturem un programa que tenia establerta una connexió TCP i no el podem re-executar inmediatament, a què pot ser degut? (l’error que pot donar és “el port està sent utilitzat”).
Es pot deure a l'estat de TIMED WAIT del diagrama d'estats del TCP i que fa que no es tanqui la conexio fins que no li arribi el senyal ACK conforme es tanca la conexio.
(AFEGIT DE CLASE:) Tambè podría ser que un procés ha agafat el port a l'interval entre que s'ha tancat el port i el nostre programa l'ha sol·licitat.
[04/05]
14. Quina diferència veus entre el MSS i el MTU?
MTU (Maximum Transmission Unit) (tamany màxim d'un paquet en la xarxa) --> Volum màxim de dades que pot ésser trasmès en un frame per la xarxa.
MSS (maximum segment size) és una opció del protocol TCP que ens diu quin e´s el tamany màxim d'un segment, per tant(tamany):
0 <= segmento <= MSS |
Els extrems poden tenir grandaries de MTU diferents peró han d'acordar un màxim per als dos. Interessa que el tamany dels segments sigui el major que es pugui ja que així s'optimitza l'ample de banda. Com exemple:
MSS > MTU |
s'agafarà com a tamany màxim dels segments el del MTU |
MSS < MTU |
s'agafarà com a tamany màxim dels segments el del MSS més petit que tingui els extrems |
En definitiva MTU fa referencia a la xarxa física i el MSS fa referencia a una capa més alta.
FONTS:
http://wikipedia.org
Apunts de Classe
index
15. A envia 100 bytes de B a través d’una connexió TCP. B no enviarà cap byte de dades a A. Quins missatges s’intercanviaran? Suposem que el tamany de la finestra és 80 i que el MSS és 20. Per cada segment escriu l’origen, els bits activats, els números de seqüència i confirmació, i el número de bytes de dades.
Correcció -
A->B
WIN= 80
MSS= 20
Establiment de la conexio
-> SYN SA=0
<- SYN, ACK SB=200; aB=1;
-> ACK SA=1 aA=201;
Transmissio de dades
-> ACK SA=1 aA=201 Dades=20;
-> ACK SA=21 aA=201 Dades=20
-> ACK SA=41 aA=201 Dades=20
-> ACK SA=61 aA=201 Dades=20
<- ACK SB=201 aB=81 Dades=0 Perque WIN=80
<- ACK SA=81 aA=201 Dades=20
<- ACK SB=201 aB=101 Dades=0
Tancament de la conexio
-> Fin SA=101 aA=201 Dades=0
<- Fin-Ack SB=201 aB=102 Dades=0
-> ACK SA=102 aA=202 Dades=0
16. Per què creus que els números de port estan al principi de les capçaleres UDP i TCP?
En la comunicació d’extrem a extrem, el primer que hem de saber es a qui pertanyen les dades enviades (aplicació origen i destí).
Ës per això que s’utilitzen els ports. Ens indiquen a quina aplicació van adreçades les dades transportades. El fet de que vagin al principi de les capçaleres TCP i UDP és per després poder desmultiplexar els datagrames.
Per analogía, si hem de rebre llit de l’ikea per parts, el primer que haurà de saber al carter quan arribi a la porta de casa (ip) és a quin pis (port) ho ha de deixar. Quan hagi arribat totes les peces, es monta el llit (datagrama).
[09/05]
17. El host A estableix una connexió TCP amb el host B en la que utilitzarà el número de seqüència inicial 45000. Si s’envia fins el byte numerat com 46024, i després el 45274, digues quin pot ser el tamany de la finestra d’enviament.
Seqüència d’enviament: ||...|| 46022 || 46023 || 46024 || 45274 ||...||
La finestra ha de ser com a amàxim de 1024 bytes, perquè els elements que s'envien d'una finestra han de tenir números de seqüencia consecotius.
18. La capçalera
de TCP té un camp de longitud de capçalera que no trobem a la de UDP.
Per què creus que hi és en un protocol i no en l'altre?
[07/05]
El protocolo UDP collabora
con el protocolo IP que pertenece a otra capa y por eso viola el
principio de protocolos en capas. El datagrama construyido por UDP
luego se pasa a IP para acabar el datagrama, entre otro lo de la
cabecera. El protocolo TCP no viola este principio y necesita este
campo porque la longitud de la cabecera puede variar.
index
[04/05]
19. Compara el rendiment de la finestra lliscant de TCP amb el protocol d’envia-i-espera utilitzat pel protocol TFTP. Suposa que que amb la finestra lliscant hem enviat 32768 bytes en 35 segons i que el RTT (Round Trip Time, temps que passa entre que s’envia un missatge i es rep la confirmació) és, en promedi, de 1.5 segons.
index
en construcció
21. Deixem una connexió TCP establerta entre dos hosts. Estarà encara establerta després de dos anys, tres mesos i 25 dies, si les màquines no s’han aturat? Pots suposar que hi ha hagut canvis importants en l’estructura de la xarxa. Quantes dades s’hauran enviat?
Una connexió TCP pot romandre establerta el temps que calgui, sempre i quan les maquines també es mantinguin actives. Donat el seu funcionament, TCP seguirà establert fins que no es tanqui la connexió de manera voluntària o quan es tanqui de manera abrupta amb un reset.
[09/05]
22. Indica i raona quin és el MSS òptim que maximitza el throughput de TCP en situacions normals d’enviament.
En situacions normals
d'enviament el MSS òptim haurà de ser el del MTU més petit de totes les
xarxes per on passa el missatge menys 40 bytes.
O sigui:
MSS = min {MTU1, MTU2, ...} - 40
Els 40 bytes que se li
resten son dels 20 bytes de la capçalera IP (sense opcions) i 20 bytes
de la capçalera TCP (sense opcions).
La raó es que, en
principi, quant més gran sigui el mss millor, donat que les capceleres
IP i TCP s'amortitzen més, però en canvi, si la MTU es petita es
necessari fragmentar el datagrama IP (el segment TCP), que, a part de
no aprofitar el ample de banda, pot donar problemes, perque si es perd
un fragment del segment, el segment no es pot recuperar.
El
cas més òptim es trobar quin es el MTU més petit del camí, pero si això
no es pot fer es pot agafar la mida estàndar, que 536 + 40 bytes (de
les capçaleres IP i TCP).
[09/05]
23. Pot ser un segment (TCP) més gran que un datagrama, de manera que
es necessiti més d'un en la capa de xarxa inferior (IP) per a poder
enviar-lo? I un datagrama d'usari (UDP)?
TCP: En una conexión TCP se intenta evitar que se necesite más que un datagrama para enviar el segmento TCP. Por eso, cuando se establece una conexión TCP, se intercambia el MSS (tamaño maximo de segmento) de las redes y se escoge el MSS más pequeño (menos 40 bytes para las cabeceras). Pero, cuando se añaden opciones opcionales, el tamaño puede aumentarse así que se necesita dos datagramas para enviar el segmento.
UDP: El tamaño maximo de segmentos de UDP normalmente se elige lo suficiente pequeño para evitar fragmentación en la capa de enlace.
Fuentes:
http://www.microsoft.com/latam/technet/articulos/200408/cg0704.mspx
transparencias de la asignatura index
[07/05]
[08/05] - Aportación
"Warriors of the net", errors del vídeo.
Al vídeo s'anomenava 'paquets' als datagrames. A més, faltaven
'caixes', que significaven els diferents tipus d'encapsulaments:
trames, datagrames TCP...
Al vídeo mai es parla de fragmentació, ni quan es canvia de
xarxa. Quan surt de la LAN a Internet diu que els paquets que no caben
es destrueixen. Es totalment fals, es FRAGMENTEN.
Al vídeo mai es consideren el checksum ni el CRC.
Al vídeo les colisions no es reparàven. A la realitat es retransmeten.
Al vídeo, a les LANs sortíen molts paquets alhora; en realitat
no pot haber-hi nomès un accès al medi alhora, quan accedeixen més d'un
alhora es produeix una col·lisió.
Al vídeo les trames surten diferenciades segons el protocol (AppleTalk,
Novell...). Això es real, però a les xarxes s'encapsulen en trames de
xarxa i totes son iguals; no hauría d'estar aquestes distincions.
Al vídeo es tracta la petició i la resposta com si fosin UDPs: No hi ha connexións, alliberació ni res.
Al vídeo es diu que Mr. IP es qui reenvia les trames quan no arriben al destí, sinò TCP.
Al vídeo es diu que quan un datagrama arriba a un Firewall
amb el port tancat es destrueix. Això normalment es qüestió del sistema
operatiu, la capa de TCP o UDP, i quan està tancat es destrueix però
abans s'envia el RESET.
Al vídeo, quan la resposta arriba al host que fà la petició es
'cola' per el port 80. Això es molt probable que s'hagi fet per
reutilitzar metratge de pel·lícula, però es una errada greu.
Al vídeo es diu que els paquets es recilen. Reciclatge de paquets? No té cap sentit!.
Al vídeo apareixen els routers com un aparell amb pinçes que
agafen el paquets de qualsevol xarxa. Això es un símil molt dolent, no
hi surten les interfícies per cada xarxa amb les seves cues.
Al vídeo els routers destrueixen paquets aleatòriament; en realitat això passa nomès quan les cues estan plenes.
Al vídeo s'introdueixen les dades al paquet mitjançant un tobogà
sense ordre. Es un símil dolent; les dades han d'estar ordenades al
paquet. Així, el llevataps que busca informació al firewall tampoc té
sentit degut que hauría de buscarla en uns llocs molt concrets.
Al vídeo, quan una trama canvía de xarxa no es toca; a la realitat s'hauría de canviar el TTL i dades del paquet.
Al vídeo no es parla mai del TTL.
Al vídeo de vegades els camions (paquets) superen la mida de
l'ascensor (MTU). Pot ser una errada de l'animació, pero no hauría
d'estar.
Al vídeo es diu que la xarxa mundial es la www. Això es
totalment fals; la xarxa muncial es Internet; www es un servei
d'Internet.
Aportacion:
La presentación de un switch es erronea: En la pelicula parece
que reparte las datagramas aleatoriamente a las redes existentes. En
realidad lee la dirección y segun esta decide que camino tomen las
datagramas.
Hay que distinguir entre IP (sin conexión) y TCP (con conexión).
En la pelicula TCP no sale y se evoca la impresión que IP tiene
conexión.
No hay una distinción entre las direcciones IP y las direcciones
físicas y no sale el protocolo ARP que se ocupa de la tradución de
direcciones IP a direcciones físicas.