Chaque trame passe par plusieurs tampons lors de son envoi : Le tampon d'application, le tampon de protocole, le tampon d'interface logicielle et le tampon d'interface matérielle. Lorsque vous commencez à solliciter la pile en envoyant des données à grande vitesse, vous remplissez ces tampons et bloquez ou perdez des données. Vous disposez également de stratégies pour la rapidité et l'interrogation qui peuvent avoir un impact sur vos performances. Par exemple, en utilisant un tampon plus grand et en interrogeant moins souvent, vous pouvez obtenir de bien meilleures performances tout en sacrifiant la latence.
Dans le noyau Linux, TCP est optimisé pour les transferts de masse à grande vitesse, tandis que UDP est optimisé pour une faible latence. Cela a un impact sur la taille des tampons et sur la manière dont les données sont interrogées et transférées. En plus de cela, vous avez souvent un déchargement matériel pour TCP. Je m'attendrais à des performances nettement supérieures pour TCP par rapport à UDP.
Notez que l'envoi de données à haut débit via UDP est généralement une mauvaise idée, à moins que vous n'implémentiez votre propre contrôle de congestion. TCP protège votre réseau des effondrements dus à la congestion. Utilisez UDP lorsque vous avez de petites quantités de données ou des exigences élevées en matière de rapidité.