Puncte:1

Epuizarea portului clientului, în ciuda utilizării diferitelor porturi de destinație

drapel gb

Când citesc despre epuizarea porturilor, văd adesea că se ține cont de cvadrupletul conexiunii tcp (src ip, src port, dst ip, dst port). Deci, s-ar părea că, cu un interval de porturi de 20000 (40000 la 60000) și țintirea portului de destinație 8088 și 8087 cu doi clienți pe aceeași mașină, folosind aceeași adresă src și adresă dst, ar trebui să pot deschide 40000 de conexiuni. Cu toate acestea, la testul meu, acesta nu este cazul. Chiar și în această configurație pot deschide doar 20000 de conexiuni. Am eliminat rezultatul ss -s și am sortat-o ​​după portul sursă. Iată un extras:

ÎNCHIS-ASTEPTARE 26378 0 172.24.131.110 40001 172.24.131.97 9088    
ÎNCHIS-ASTEPTARE 25029 0 172.24.131.110 40002 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 23840 0 172.24.131.110 40003 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 25207 0 172.24.131.110 40004 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 25572 0 172.24.131.110 40005 172.24.131.97 9088    
ÎNCHIS-ASTEPTARE 26334 0 172.24.131.110 40006 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 27089 0 172.24.131.110 40007 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 23860 0 172.24.131.110 40008 172.24.131.97 9088    
ÎNCHIS-ASTEPTARE 25463 0 172.24.131.110 40009 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 26603 0 172.24.131.110 40010 172.24.131.97 9088    
ÎNCHIS-ASTEPTARE 25436 0 172.24.131.110 40011 172.24.131.97 9087    
ESTAB 0 0 172.24.131.110 40012 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 25042 0 172.24.131.110 40013 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 25738 0 172.24.131.110 40014 172.24.131.97 9087    
ÎNCHIS-ASTEPTARE 27363 0 172.24.131.110 40015 172.24.131.97 9088    
ÎNCHIS-ASTEPTARE 25860 0 172.24.131.110 40016 172.24.131.97 9088    

Continuă până când se atinge valoarea 60000. Nu există niciodată un port sursă folosit de două ori, ca și cum grupul de valori este de fapt comun. Acesta este cazul sau lipsesc undeva un flag de configurare?

Versiunea de nucleu este 4.15.0-144-generic. Gama de porturi este într-adevăr în control aici: dacă schimb intervalul de porturi la 40000-50000, am doar 10000 de conexiuni posibile. Clientul și serverul pentru teste sunt instrumente de poligraf web.

Puncte:1
drapel gb

Ok, de fapt, cred că am răspunsul, clientul pe care îl folosesc își creează conexiunile cu bind + connect, în loc să se conecteze doar. Iată un dump de strace:

bind(1490, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("172.24.131.110")}, 16) = 0
getsockname(1490, {sa_family=AF_INET, sin_port=htons(50929), sin_addr=inet_addr("172.24.131.110")}, [16]) = 0
connect(1490, {sa_family=AF_INET, sin_port=htons(9088), sin_addr=inet_addr("172.24.131.97")}, 16) = -1 EINPROGRESS (Operațiune acum în curs)

Din înțelegerea mea, în acest caz, vă aflați înapoi la un pool unic pentru diferiți clienți, deoarece în momentul legăturii nu aveți nicio informație pe partea de la distanță.

Un link util pe acest subiect: https://idea.popcount.org/2014-04-03-bind-before-connect/

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.