XUT_ / COURSES / PRE SECURITY

TCP-IP (Three-Way Handshake)

TCP es otra de estas reglas usada en el networking (1. What is Networking).

Este protocolo es muy similar al modelo OSI que hemos discutido en 1. What is the OSI Model. Este protocolo consiste de cuatro capas y es como una versión resumida del modelo OSI. Las capas son:

  • Application.
  • Transporte.
  • Internet.
  • Network Interface.

Muy similar a como funciona el modelo OSI, se añade información en cada capa (encapsulación).

TCP es connection-based, lo que quiere decir qye debe establecer una conexión entre el servidor y el cliente antes de mandar información.

TCP garantiza la entrega precisa de la información. Este proceso se conoce como Three-Way Handshake. Algunas ventajas y desventajas de TCP son:

Ventajas de TCPDesventajas de TCP
Garantiza la integridad de la información.Necesita una conexión fiable entre los dos dispositivos. Cualquier paquete pasado incorrecto queda inválido y hay que reenviarlo.
Capaz de conecar dos dispositivos y evitar que se saturen de información en orden incorrecto.Una conexión lenta puede causar cuello de botella en el otro dispositivo porque se reserva la conexión entre ellos.
Hace un montón más de procesos y comprobacionesBastante más lento que UDP por ese motivo.
Los paquetes TCP contienen varias secciones, con información, conocidas como Headers:
HeaderDescripcion
Source PortContiene el valor del puerto desde el cual se manda el paquete. Entre el 0 y el 65535 (que no esté siendo ya utilizado).
Destination PortContiene el valor del puerto donde corre el servicio en la máquina receptora (puerto 80 para web por ejemplo).
Source IPDirección IP del dispositivo que manda el paquete.
Destination IPDirección IP del dispositivo que recibe el paquete.
Sequence NumberCuando se establece una conexión, la primera parte de la información transmitida es un número random.
Acknowledgement NumberDespués de la primera comunicación, la siguiente tendrá el numero de secuencia + 1.
ChecksumEs lo que le da la fiabilidad a TCP. Del lado emisor se hace una comrpobación de hash. Después de haberse recibido, del lado receptor se hace una comprobación de hash y si no coinciden el archivo está corrupto.
DataLa parte donde la información que está siendo transmitida se almacena.
FlagEste header determina como serán trataados los paquetes de cada lado. Diferentes flags llevarán a diferentes tratamientos
Vamos a explorar el Three-Way Handshake, el término usado para el proceso de conexión entre dos dispositivos. Un Three-Way Handshake ocurre de la siguiente manera:
PasoMensajeDescripción
1SYNEs el paquete inicial mandado por el cliente. Es usado para iniciar la comunicación.
2SYN/ACKEs mandado por el servidor para establecer que el SYN ha sido recibido.
3ACKPuede ser usado tanto por el servidor como por el cliente para establecer que una serie de paquetes se han recibido correctamente.
4DATAUna vez que la conexión está establecida, la información se manda mendiante el paquete DATA.
5FINEste paquete se utiliza para cerrar correctamente la conexión entre los dispositivos después de la comunicación.
#RSTEste paquete termina la comunicación de manera abrupta y es la manera de decir que hubo un error.
  1. SYN - Cliente: Aquí esta mi ISN (Initial Sequence Number) para SYNcronizarte (0).
  2. SYN/ACK - Server: Aquí está mi ISN (5000) y yo ACKnoledge (reconozco) tu ISN (0).
  3. ACK - Cliente: Yo ACK tu ISN (5000) y aquí hay algo de mi información ISN +1 (1).

TCP-IP (Three-Way Handshake)


Cerrando una conexión con TCP

TCP cerrará una conexión una vez que sea sabido que el otro dispositivo hay recibido correctamente toda la información.

Para iniciar la finalización de la comunicación se manda un paquete FIN. El otro dispositivo hace un ACK del FIN del otro y manda un FIN suyo. Por último el primer dispositivo hace un ACK del FIN del segundo.

TCP-IP (Three-Way Handshake)