La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Escenarios en conexiones TCP

Presentaciones similares


Presentación del tema: "Escenarios en conexiones TCP"— Transcripción de la presentación:

1 Escenarios en conexiones TCP
Contenidos Algunos recorridos del diagrama de estado TCP ELO-309

2 Establecimiento y Término de Conexión
Active participant Passive participant (client) (server) SYN, SequenceNum = x y , 1 SYN + ACK, SequenceNum = x + Acknowledgment = ACK, Acknowledgment = y + 1 ELO-309

3 Diagrama de Estado de Transmisión
CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/ SYN SYN/SYN + ACK SYN + ACK/ACK ACK /FIN FIN/ACK ACK + FIN/ACK Timeout after two segment lifetimes Active open /SYN ELO-309

4 Escenario 1: Establecimiento de una conexión
Cliente Servidor CLOSED Active open/SYN CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/SYN SYN/SYN + ACK SYN + ACK/ACK ACK Close/FIN FIN/ACK ACK + FIN/ACK Time after two segment lifetimes Active open/SYN Passive open Close Close LISTEN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK Close/FIN ESTABLISHED Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN/ACK Close/FIN ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 ACK ACK FIN/ACK TIME_WAIT CLOSED Time after two segment lifetimes ELO-309

5 Escenario 1: El servidor debe prepararse parra recibir conexiones La aplicación solicita abrir un socket (o punto de conexión en un puerto) CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Servidor Cliente ELO-309

6 Escenario 1: Un cliente pide abrir un socket y envía un SYN pidiendo establecimiento de conexión
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED SYN Time after two segment lifetimes Time after two segment lifetimes open Cliente Servidor

7 Escenario 1: Un servidor recibe un SYN y responde con un ACK y SYN
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED SYN Time after two segment lifetimes Time after two segment lifetimes open Cliente Servidor SYN + ACK

8 Escenario 1: El cliente recibe el SYN + ACK y para él queda establecida la conexión
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED SYN Time after two segment lifetimes Time after two segment lifetimes open Cliente Servidor SYN + ACK ACK

9 Escenario 1: El servidor recibe su ACK y queda establecida la conexión para él.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED SYN Time after two segment lifetimes Time after two segment lifetimes open Cliente Servidor SYN + ACK ACK Intercambio de mensajes

10 Escenario 2: Cierre de la conexión por el servidor.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Cliente Servidor

11 Escenario 2: La aplicación en el servidor solicita un close del socket.
Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN

12 Escenario 2: El cliente recibe el FIN y envía acuse de recibo.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK

13 Escenario 2: El servidor recibe el acuse y queda a la espera del cierre por parte del cliente.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK

14 Escenario 2: El cliente decide cerrar conexión, envía su FIN.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK FIN Close

15 Escenario 2: El servidor recibe el FIN y acusa su recibo.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK FIN Close ACK

16 Escenario 2: El cliente recibe el ACK de su FIN y cierra la conexión.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK FIN Close ACK La conexión es cerrada

17 Escenario 2: El cliente recibe el ACK de su FIN y cierra la conexión.
CLOSED Active open/SYN CLOSED Active open/SYN Passive open Close Passive open Close Close Close LISTEN LISTEN SYN/SYN + ACK Send/SYN SYN/SYN + ACK Send/SYN SYN_RCVD SYN/SYN + ACK SYN_SENT SYN_RCVD SYN/SYN + ACK SYN_SENT ACK SYN + ACK/ACK ACK SYN + ACK/ACK Close/FIN Close/FIN ESTABLISHED ESTABLISHED Close/FIN FIN/ACK Close/FIN FIN/ACK FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_1 CLOSE_WAIT FIN/ACK FIN/ACK Close/FIN Close/FIN ACK ACK ACK + FIN/ACK CLOSING LAST_ACK ACK + FIN/ACK CLOSING LAST_ACK FIN_WAIT_2 FIN_WAIT_2 ACK ACK ACK ACK FIN/ACK FIN/ACK TIME_WAIT CLOSED TIME_WAIT CLOSED Time after two segment lifetimes Time after two segment lifetimes Intercambio de mensajes Close Cliente Servidor FIN ACK FIN Close ACK La conexión es cerrada Luego de un tiempo el servidor cierra su socket también

18 Iniciador de Cierre Diagrama recorrido por quien inicia el cierre
CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/ SYN SYN/SYN + ACK SYN + ACK/ACK ACK /FIN FIN/ACK ACK + FIN/ACK Timeout after two segment lifetimes Active open /SYN Diagrama recorrido por quien inicia el cierre ELO-309

19 Receptor del cierre (Me colgó el muy $ # % @ & !!!)
CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/ SYN SYN/SYN + ACK SYN + ACK/ACK ACK /FIN FIN/ACK ACK + FIN/ACK Timeout after two segment lifetimes Active open /SYN Secuencia seguida por quien recibe el cierre de su par no habiendo iniciado él el cierre ELO-309

20 Diagrama de Estado de Transmisión
Los distintos caminos dependen de si hay cierre en ambos lados o no y si los FIN se cruzan en el camino. CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/SYN SYN/SYN + ACK SYN + ACK/ACK ACK Close/FIN FIN/ACK ACK + FIN/ACK Time after two segment lifetimes Active open/SYN Intercambio de mensajes Close FIN FIN Close ACK ACK Intercambio de mensajes Close FIN Close FIN + ACK ACK ELO-309

21 Algoritmo ventana deslizante
NS: Network simulator es un simulador de redes bastante evolucionado y de libre disposición. Ref: Invito a los interesados a verlo. Ojo no es un programa trivial, por lo cual se escapa al alcance de este curso. A través de este simulador se puede estudiar los fenómenos de ventana deslizante y otros. ELO-309


Descargar ppt "Escenarios en conexiones TCP"

Presentaciones similares


Anuncios Google