La duda trata de las acciones que debe tomar el receptor en caso de que el sea el que desee cerrar la conexión.
Bajo ese supuesto, debe enviar un FIN, la cuestión es si luego de esto debe seguir recibiendo datos y enviando ACKs, o si únicamente debe quedarse esperando el FIN-ACK de parte del emisor.
El receptor no envía datos, solo envía información de control. En caso de que la aplicación indique que debe cerrar la conexión, dejará de recibir datos, y esperará por el FIN-ACK.
La letra dice: "Previo al cierre deben enviarse los datos que se encuentran en los buffers de PCT.". Esto mismo dijeron en el monitoreo. Que el receptor antes de poder mandar FIN, ACK debe enviar todo lo del buffer.
La duda que me queda es si el receptor debe enviar ACK al recibir estos datos, incluso luego de haber enviado FIN.
El receptor debería esperar a que se vacie el buffer (con leer) para finalizar la conexion? O Cuando el emisor indica que quiere cerrar la conexion, y el receptor ya termino de enviar todos los acks correspondientes, simplemente envia fin ack y cierra la conexion, haciendo que el leer devuelva -1 incluso si quedan datos?