Università dell Insubria Sede di Como Laurea in Informatica Corso di Reti ed Applicazioni AA 2003 Test 2 Nome e Cognome : Anno di corso Numero di matricola : Como, 7 maggio 2003 Istruzioni Nei quiz a risposta multipla segnare una croce o tracciare un cerchio sulla risposta considerata corretta ( equivale a VERO, mentre equivale a FALSO) Nelle domande fornire, per favore, una risposta breve e concisa, con calligrafia chiara. Non sono ammessi libri di testo o note, solo calcolatrici semplici. Quiz a risposta multipla 1) Il protocollo IMAP usa SMTP per il dialogo fra client e server. (Utilizza direttamente TCP, porta 43) 2) POP3 utilizza UDP per il trasporto. (Utilizza TCP, porta 110) 3) Il record MX può essere associato al nome di un dominio. 4) L Header UDP ha lunghezza fissata. ( 8Byte, nessuna opzione possibile) 5) Un segmento TCP può trasportare una parte dati lunga zero. 6) Un datagramma IP (senza opzioni IP) contiene un segmento UDP che traporta 1 byte di dati. Calcolare l overhead della parte di protocolli rispetto ai dati, cioè il rapporto fra i byte usati dai protocolli e il numero totale presenti nel datagramma IP (20 IP + 8 UDP) / (20 IP + 8 UDP + 1) = 28/29 7) Quale meccanismo è usato da IP o TCP per controllare l integrità del messaggio (controllo della corruzione)? Checksum. IP solo su Header IP, TCP su intero messaggio con PseudoHeader 8) Quale meccanismo è usato da TCP per ricuperare la perdita di un pacchetto e per evitare lo stallo? Ritrasmissioni e Timer 9) Quale meccanismo è usato da TCP per identificare duplicazione di segmento? Numero di Sequenza del primo byte della parte dati
10) In una connessione TCP l informazione sulla dimensione delle finestra di ricezione sono aggiornate solo alla ricezione del segmenti. Questo implica che, in caso di una ritrasmissione, il segmento ritrasmesso possa avere lunghezza diversa da quello andato perso (Per esempio, nello schema seguente, a causa di due perdite incrociate di pacchetti, la finestra in ricezione del nodo A cambia prima della ritrasmissione. L applicazione ha consumato infatti dati dalla finestra di ricezione, liberando spazio. Il nodo B riceve, prima di ritrasmettere, le nuove informazioni sulla finestra di A e ritrasmette subito un segmento più grande, non di 512, ma di 1024 byte.) A ack=1000, win=512, seq=45:100(55) perso B timeout di ritrasmissione (RTO) ack=45, win=4096, seq=1000:1512(512) perso ack=1000, win=2048, seq=45:100(55) RTO ack=100, win=4096, seq=1000:2048(1024)
11) Si consideri la seguente classe: public final class WebServer { public static void main(string argv[]) throws Exception { ServerSocket welcomesocket = new ServerSocket(6789); // (punto di passaggio A) while (true) { System.out.println("waiting for client"); Socket connectionsocket = welcomesocket.accept(); // (punto di passaggio B) System.out.println("connection estabilished with: " + connectionsocket.getinetaddress()); HttpRequest request = new HttpRequest(connectionSocket); Thread thread = new Thread(request); thread.start(); // (punto di passaggio C) Quando l'esecuzione è arrivata al punto (B): 1. il server ha ricevuto la prima connessione TCP 2. il server è in ascolto sulla porta 6789, ma non ha ancora ricevuto una connessione 3. non è ancora possibile collegarsi alla porta 6789 1 Lo scopo di ServerSocket è: 1. tenere solo occupata la porta UDP 6789, per evitare che venga usata da altri processi sul server 2. comunicare subito con un client, con gli stream ottenuti applicando i metodi getinputstream() e getoutputstream() alla ServerSocket 3. preparare le strutture perché sia possibile colloquiare con un client sulla porta 6789 applicando il metodo accept() alla ServerSocket e 3 ricevendo una Socket per comunicare con il client 12) La ricezione di un segmento TCP con il flag RST attivo fa chiudere la sessione immediatamente 13) Due nodi a distanza di 400ms (RTT) e collegati da una linea a 100 Mbit/s devono avere una finestra di ricezione di TCP di almeno 5 MBytes per utilizzarla completamente La distanza fra i due nodi è di 200 ms, la linea deve costantemente piena di dati per i 200 ms ed ancora per altri 200 ms per il ritorno del primo. La finestra di spedizione deve sempre contenere almeno 400ms x 100 Mb/s = 5 MB, ma la finestra di ricezione può essere più piccola (dipende dalla velocità di svuotamento dell applicazione).
14) Il valore del timer di ritrasmissione di TCP è identico per ogni connessione. 15) Un nodo spedisce con TCP ad un altro un flusso di pacchetti da L byte l uno su una linea ad V bit/secondo. Supponendo che non vi siano perdite ed il flusso dei pacchetti saturi la linea, dopo quanto tempo il numero di sequenza tornerà al valore iniziale? (applicare al caso di L=1250, V = 10 Gb/s) Il numero di sequenza di TCP è a 32 bit, quindi si chiede di calcolare il tempo in cui (2 32-1) byte vengono trasportati su una linea a 10 Gb/s: (2 32-1)*8 / 10 10 = 3,43 secondi circa 16) Per quale motivo sono necessari quattro segmenti per chiudere completamente una sessione TCP, rispetto ai soli tre dell apertura? Perché la connessione TCP è bidirezionale ed ogni direzione può essere chiusa indipendentemente dall altra. 17) Il segnale al controllo di flusso di ridurre la frequenza di emissione dei pacchetti è sempre la perdita di un pacchetto. (Normalmente è la segnalazione della quantità di spazio libero nella finestra di ricezione) 18) La dimensione della finestra di congestione di TCP cresce all inizio in modo esponenziale. 19) Il valore di RTT fra due nodi può variare durante la connessione. 20) E possibile condividere in modo equo (fair) la banda di una linea fra una connessione TCP ed una UDP. 21) Solo i router (i nodi di smistamento) si occupano dell instradamento dei pacchetti. I nodi terminali non lo fanno. 22) Per una rete molto grande un algoritmo di link state converge O(N) (E O(N 2 ) migliorabile fino a O(NlogN)) 23) La MSS di TCP è più grande della MTU. 24) Quali potrebbero essere gli svantaggi nell utilizzo di OSPF, dato il tipo di algoritmo di routing che utilizza. E basato su un algoritmo di Link State e ne eredita alcuni possibili svantaggi: - oscillazioni del percorso in funzione dei parametri di costo delle linee - in reti con molti nodi nella stessa area od in totale, vi è : - un elevato traffico di protocollo (circa proporzionale a NxE (N numero dei nodi ed E numero delle linee in un area) - una dimensione elevata delle tabelle di routing - annunci errati di linea possono generare tabelle di routing errate globali - tempi di convergenza lunghi
25) Si scriva in ognuno dei quadratini sui segmenti quali flag di TCP sono attivi in quel particolare segmento. TCP State: SYN_SENT SYN TCP State: Established SYN, TCP State: SYN_RECEIVED TCP State: ESTABLISHED TCP State: CLOSE_WAIT TCP State: LAST_ TCP State: CLOSED FIN, FIN, TCP State: FIN_WAIT_1 TCP State: FIN_WAIT_2 TCP State: TIME_WAIT (wait 2*MSL)