Auteur Sujet: Recherche lib Stack TCP en C pour gérer 80 millions de session TCP  (Lu 279 fois)

0 Membres et 1 Invité sur ce sujet

levieuxatorange

  • Expert Orange
  • Expert
  • *
  • Messages: 257
Hello tous

Bon, je me trouve vers vous en désespoir de cause après de longue recherche sur le NET, dans les GIT sans succès.

Je suis en train de développer pour des tests un outils permettant de gérer 80 millions (pour démarrer, idéalement on voudrait 8 fois cela ...) en parallèle avec du trafic effectif sur toutes les sessions.

J'ai un truc qui marche sur la première séquence droite SYN/SYNACK/ACK mais j'ai un peu la flemme de réécrire un stack TCP complet. .. rien de bloquant mais j'ai le sentiment de réinventer l'eau tiède.

Il existe plein de stack sur le WEB, mais c'est toujours orienté en mode "gestion synchrone de la soquet sur un thread"
Comme je suis sur un socle DPDK, GoLang n'est pas possible. Et même là j'ai un doute sur le 80 millions de "goroutines"

Là autant dire que cela va pas le faire et que je recherche quelque chose :
- full asynchrone (un thread doit être capable de gérer moult session
- complet car je maltraite un équipement et si il fait n'importe quoi je dois pouvoir le détecter (le pourquoi je n'utilise pas T-REX sur DPDK)
- thread safe

Des idées ?

LeVieux

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 2 165
  • Montignac Lascaux (24)

levieuxatorange

  • Expert Orange
  • Expert
  • *
  • Messages: 257
Salut LeVieuxAtOrangee.

mTCP: a Highly Scalable User-level TCP Stack  for Multicore Systems.
Merci je vais regarder plus en profondeur.

Pas le cadre dans lequel je comptais faire cela, mais je vais voir, c'est un gros et bon morceau de code celui là ...

Levieux

pju91

  • Abonné Free fibre
  • *
  • Messages: 1 042
  • 91
Recherche lib Stack TCP en C pour gérer 80 millions de session TCP
« Réponse #3 le: Aujourd'hui à 18:38:02 »
Si c'est ça https://github.com/mtcp-stack/mtcp, ça ne paraît plus très actif :(

Question pour ma curiosité personnelle (désolé, ma connaissance des protocoles est très ancienne) : comment penses-tu gérer des millions de connexions "clientes" sur une (seule ?) machine générant les sessions compte tenu de la limitation du nombre de ports TCP utilisables (< 2^16) ? Vas-tu multiplier les adresses IP secondaires/virtuelles sur l'émetteur ? Ca va en faire un paquet ...