Con respecto a tu última pregunta lo que te va a afectar es el comportamiento de la red. Por ejemplo, si hay pérdidas o retardo en la red.
Para emular esto podes usar la herramienta tc de Linux aunque te puede llevar un tiempo entender como usarla.
La opción mas simple es modificar tu código y agregar un retardo en el receptor para que comience a leer un tiempo después de iniciada la conexión. De esa manera te aseguras de que lleguen varios segmentos TCP antes de comenzar a leer.
Saludos