Diagramma temporale dello scambio di segmenti TCP tra client e server dopo commando HTTP
Ciao a tutti, ho una domanda da farvi e spero possiate aiutarmi:
Non sono sicuro di come si faccia, quindi chiedo a voi:
1. come prima cosa il client dovrebbe identificare il server, quindi ci sarebbero' una query e una risposta ARP per identificar e il server DNS
2. Poi ci sarebbe una query al server dns e gli si chiederebbe dove sta il server contenente il file che sto cercando (/path/to/file/file1.html)
3. Poi manderebbe una richiesta di connessione tcp al server e durante il three way handshake si meterebbero d'accordo sulla MMS=1400bytes, sequence number del client e del server.
4. Poi comincerebbe l'invio di pacchetti del server e ad ogni pkg il client gli invierebbe un ack oppure gli invierebbe un ack solo alla fine di tutta la trasmissione a seconda se la connessione è persistente o meno. (pero', se non fosse persistente allora si dovrebbe instaurare una connessione per ogni oggetto della pagina html, dato che non si parla di numero di oggetti, immagino sia una conn. persistente)
5. al termine entrambi dovrebbero mandarsi un FIN e entrambi rispondere con un ACK al fin.
Giusto?
Grazie mille
Rappresentare il diagramma temporale dello scambio di segmenti TCP tra un client e un
server conseguente all'invio del comando HTTP
GET /path/to/file/file1.html HTTP/1.0
dal client al server. La dimensione di file1.html è di 6500 bytes e gli host negoziano una
dimensione massima del segmento di 1400 bytes.
La connessione viene chiusa terminato il trasferimento del file.
Non sono sicuro di come si faccia, quindi chiedo a voi:
1. come prima cosa il client dovrebbe identificare il server, quindi ci sarebbero' una query e una risposta ARP per identificar e il server DNS
2. Poi ci sarebbe una query al server dns e gli si chiederebbe dove sta il server contenente il file che sto cercando (/path/to/file/file1.html)
3. Poi manderebbe una richiesta di connessione tcp al server e durante il three way handshake si meterebbero d'accordo sulla MMS=1400bytes, sequence number del client e del server.
4. Poi comincerebbe l'invio di pacchetti del server e ad ogni pkg il client gli invierebbe un ack oppure gli invierebbe un ack solo alla fine di tutta la trasmissione a seconda se la connessione è persistente o meno. (pero', se non fosse persistente allora si dovrebbe instaurare una connessione per ogni oggetto della pagina html, dato che non si parla di numero di oggetti, immagino sia una conn. persistente)
5. al termine entrambi dovrebbero mandarsi un FIN e entrambi rispondere con un ACK al fin.
Giusto?
Grazie mille
Risposte
Su rete locale o server remoto?
Comunque il tcp è SYN,SYN ACK,ACK
Comunque il tcp è SYN,SYN ACK,ACK
"Luc@s":
Su rete locale o server remoto?
Bella domanda, l'esercizio non lo specifica. La consegna dell'esercizio è esattamente quella che ho scritto nel primo post.
"Luc@s":
Comunque il tcp è SYN,SYN ACK,ACK
Ti riferisci al three way handshake?
client:SYN, server: SYN+ACK, client: ACK+primo payload?
Arp è solo locale, per quello chiedevo.
Altrimenti tu mandi la richiesta al default gateway (router) e lui poi lo manda al prossimo gw...
Altrimenti tu mandi la richiesta al default gateway (router) e lui poi lo manda al prossimo gw...
Si, non lo avevo scritto. grazie. ma come ragionamento base ha senso quello che ho scritto?
E' da completare.
Una volta che ho ip <-> host che tipo di richiesta faccio ?
Comunque in base c'è
Una volta che ho ip <-> host che tipo di richiesta faccio ?
Comunque in base c'è
una volta che ho l'ip di un host, doro' trovare il MAC dell'interfaccia del host (con una richiesta broadcast ARP o invio la mia richiesta al default gayaway (se la sottorete mia non combacia con la sottorete dell'host destinatario)). solo allora potro' iniziare con il 3way handshake.
è questo che intendi con "dopo che ho host <-> ip"?
è questo che intendi con "dopo che ho host <-> ip"?
Ok.
A livello di HTTP (a che layer è?) hai una richiesta e una risposta,no?
A livello di HTTP (a che layer è?) hai una richiesta e una risposta,no?
HTTP è a livello Applicazione.
Mi stai chiedendo se il testo mi ha dato anche una risposta del server? No.
Se mi stai chiedendo cosa accade tra server e client: beh, se non sbaglio, dopo il messaggio GET del client verso il server, questo rispondera' con uno o piu' messaggi. no?
Mi stai chiedendo se il testo mi ha dato anche una risposta del server? No.
Se mi stai chiedendo cosa accade tra server e client: beh, se non sbaglio, dopo il messaggio GET del client verso il server, questo rispondera' con uno o piu' messaggi. no?
Ok.
Ti servono anche dettagli come gethostbyname() ?
Ti servono anche dettagli come gethostbyname() ?
no no ...grazie, ivece vorrei farti un altra domanda:
mettiamo che ci sia una connessione persistente tra client e host.
Il client riccùhiede una pagina web con $n$ oggetti. Il server glieli manda tutti nella stessa connessione.
Il client manda un ACK relativo all'ultimo segmento ricevuto o per ogni segmento ricevuto gli manda un ACK.
Lo chiedo perchè se i lserver manda $n$ oggetti, lo faroa' uno dietro l'altro, quindi velocissimo.
Al client non converrebbe piu' dire "aspetto un momentino per vedere se mi arrivano anche gli altri poi gli mando un ACK relativo all'ultimo frame ricevuto in sequenza" ?
mettiamo che ci sia una connessione persistente tra client e host.
Il client riccùhiede una pagina web con $n$ oggetti. Il server glieli manda tutti nella stessa connessione.
Il client manda un ACK relativo all'ultimo segmento ricevuto o per ogni segmento ricevuto gli manda un ACK.
Lo chiedo perchè se i lserver manda $n$ oggetti, lo faroa' uno dietro l'altro, quindi velocissimo.
Al client non converrebbe piu' dire "aspetto un momentino per vedere se mi arrivano anche gli altri poi gli mando un ACK relativo all'ultimo frame ricevuto in sequenza" ?
I dati vengono inviati con un segment number e con i vari ACK.
E il modo in cui TCP permette di recuperare pacchetti persi (e udp no).
Per la quantità di dati, entra in gioco il windowing (https://en.wikipedia.org/wiki/TCP_window_scale_option)
E il modo in cui TCP permette di recuperare pacchetti persi (e udp no).
Per la quantità di dati, entra in gioco il windowing (https://en.wikipedia.org/wiki/TCP_window_scale_option)
tutto chiaro, grazie mille. Ho l'orale tra un oretta :\
Ora l'unica cosa che non so fare è calcolare la dimensione del collision domani
ma mica mi chiede quello, dai ...
Ora l'unica cosa che non so fare è calcolare la dimensione del collision domani


"BoG":
tutto chiaro, grazie mille. Ho l'orale tra un oretta :\
Ora l'unica cosa che non so fare è calcolare la dimensione del collision domanima mica mi chiede quello, dai ...
Ogni porta di un router è un collision domain diverso.
Ogni porta di uno switch è un collision domain diverso.
Ogni porta di un hub conta come un solo domain.
I broadcast domain invece sono in relazione alle VLAN.
In culo alla balena.
Si, lo so, ma se non sbaglio in un esercizio aveva chiesto la lunghezza in metri, fornendo: tempo di propagazione del segnale e.. non ricordo cosa... comunque non importa
Boh.. io ho conoscenze pratiche (per lavoro)


GRazie mille per l'aiuto, vado a riverede gli Header tcp, ip, ecc ... forse riusciro' a ricordarne uno a memoria


Sono un po' in ritardo[nota]A proposito, come e' andato l'orale?[/nota], comunque
A che pro? Stiamo parlando di "scambio di segmenti TCP fra un client e un server".
Vedi sopra.
What?
Secondo me devi rileggere attentamente la domanda.
"BoG":
1. come prima cosa il client dovrebbe identificare il server, quindi ci sarebbero' una query e una risposta ARP per identificar e il server DNS
A che pro? Stiamo parlando di "scambio di segmenti TCP fra un client e un server".
"BoG":
2. Poi ci sarebbe una query al server dns e gli si chiederebbe dove sta il server contenente il file che sto cercando (/path/to/file/file1.html)
3. Poi manderebbe una richiesta di connessione tcp al server e durante il three way handshake si meterebbero d'accordo sulla MMS=1400bytes, sequence number del client e del server.
Vedi sopra.
"BoG":
4. Poi comincerebbe l'invio di pacchetti del server e ad ogni pkg il client gli invierebbe un ack oppure gli invierebbe un ack solo alla fine di tutta la trasmissione a seconda se la connessione è persistente o meno...
What?

Secondo me devi rileggere attentamente la domanda.
Ciao, grazie dell'interesse, è andato bene! non ho fatto i calcoli sull'orale ma ho preso complessivamente 24 (tra scritto e orale) ...che va beh, non è alto ma ho preparato l'esame in 3 settimane e contando che sono studente lavoratore, sono soddisfatto 
Ritornando alla domanda:
tu che consigli? io ho disegnato il server, il client, le linee temporali e poi ho fatto vedere lo scambio di pacchetti come riassunto nel post iniziale. il prof lo ha accettato.

Ritornando alla domanda:
tu che consigli? io ho disegnato il server, il client, le linee temporali e poi ho fatto vedere lo scambio di pacchetti come riassunto nel post iniziale. il prof lo ha accettato.