2011-03-16 9 views

risposta

6

TCP interrompe le informazioni inviate ai segmenti ... essenzialmente i segmenti sono blocchi di dati non più grandi del valore corrente del TCP MSS (dimensione massima del segmento) ricevuto dall'altra estremità. Questi blocchi hanno numeri di sequenza incrementali (basati sui conteggi totali dei byte di dati inviati nella sessione TCP) che consentono al TCP di sapere quando qualcosa si è perso durante il volo; il primo numero di sequenza TCP è scelto a caso, e per motivi di sicurezza non dovrebbe essere un numero pseudo-casuale. La maggior parte delle volte, la MTU della tua rete Ethernet locale è più piccola dell'MSS, quindi potrebbero inviare più segmenti prima di poter ACK.

È utile pensare a queste cose nella sequenza tempo hanno ottenuto veg ...

Prima venne positivo riconoscimento, che è il meccanismo di raccontare il mittente che hai i dati, e il numero di sequenza ACK con è la sequenza di byte massima ricevuta per chunk TCP (aka segmento) che ha inviato.

Mostrerò qui sotto, ma nei miei esempi vedrete piccoli numeri di segmenti TCP come 1,2,3,4,5 ... in realtà questi numeri di sequenza di byte saranno grandi, incrementanti e avranno intervalli tra loro (ma è normale ... TCP tipicamente invia dati in blocchi lunghi almeno 500 byte).

Quindi, supponiamo che i numeri del segmento xmits del mittente 1,2,3,4,5 prima di inviare il primo ACK. Se tutto va bene, invii un ACK per 1,2,3,4,5 e la vita è buona. Se 2 si perde, tutto è in attesa finché il mittente non realizza che 2 non è mai stato ACK; lo sa perché invii due ACK duplicati per 1. Al timeout appropriato, il mittente xmits di nuovo 2,3,4,5.

Quindi Risposta selettiva è stato proposto come un modo per rendere questo più efficiente. Nello stesso esempio, fai ACK 1 e SACK segmenti da 3 a 5 insieme ad esso (se usi uno sniffer, vedrai qualcosa come "ACK: 1, SACK: 3-5" per i pacchetti ACK da te). In questo modo, il mittente sa che deve solo ritrasmettere il segmento TCP 2 ... quindi la vita è migliore. Inoltre, notare che SACK ha definito i bordi dei dati contigui ricevuti; tuttavia, più segmenti di dati non contigui possono essere SACK'd allo stesso tempo.

Negativo Il riconoscimento è il meccanismo per comunicare al mittente solo i dati mancanti. Se non dici loro che manca qualcosa, continuano a inviare i dati finché non piangi lo zio.

HTH, \ m

Problemi correlati