<aside> 🔌 TCP está orientado a la conexión porque antes de que un proceso de la capa aplicación pueda comenzar a enviar datos a otro, los dos procesos deben primero “establecer una comunicación” entre ellos.
</aside>
El proceso que inicia la conexión es el proceso cliente, y el otro proceso es el proceso servidor.
El proceso de la aplicación cliente informa a la capa de transporte del cliente que desea establecer una conexión con un proceso del servidor.
clientSocket.connect((serverName,serverPort))
Procedimiento de conexión (acuerdo en tres fases):
Los dos primeros segmentos no transportan ninguna carga útil (no transportan datos de la capa de aplicación)
El tercero de estos segmentos es el que puede llevar la carga útil.
Una vez que se ha establecido una conexión TCP, los dos procesos de aplicación pueden enviarse datos entre sí.
El proceso cliente pasa un flujo de datos a través del socket.
Una vez que los datos atraviesan la puerta, se encuentran en manos del protocolo TCP que se ejecuta en el cliente.
TCP dirige estos datos al buffer de emisión de la conexión, que es uno de los buffers que se definen durante el proceso inicial del acuerdo en tres fases.
De vez en cuando, TCP tomará fragmentos de datos del buffer de emisión y los pasa a la capa de red. La cantidad máxima de datos que pueden cogerse y colocarse en un segmento está limitada por el tamaño máximo de segmento (MSS, Maximum Segment Size)
<aside> ⚠️ MSS es la cantidad máxima de datos de la capa de aplicación en el segmento, no el tamaño máximo del segmento TCP incluyendo las cabeceras.
</aside>