RTS = Solicitud de envío. El dispositivo de envío le indica al otro extremo que se prepare para recibir y que configure su línea CTS cuando esté listo.
CTS = Borrar para enviar. El extremo receptor está listo ("todo despejado") y le dice al otro extremo que comience a enviar los caracteres.
Hace mucho tiempo, las conexiones semidúplex eran comunes. Estas fueron conexiones unidireccionales y estas señales se utilizaron para "cambiar la línea", por lo que no intentó enviar cuando se le estaba enviando algo.
El "handshaking" de hardware, usado incorrectamente, era un problema clásico de "la computadora se atasca", y era tan problemático que la mayoría de los implementadores simplemente dejaron de intentar usar este método de handshake. Es por eso que tuviste éxito.
Si los caracteres continúan siendo enviados después de que el extremo lejano diga que se detenga, esto puede deberse a la "FIFO" (Primero en entrar, primero en salir) en el dispositivo. Esto puede almacenar (almacenar en búfer) varios caracteres para enviar, por lo que la computadora no tiene que detenerse y verificar después de cada carácter. Pero, como se dijo, a veces es difícil hacer que se detenga. De ahí la creación de buffers de recepción ...