Jak wolne są gniazda TCP w porównaniu z nazwanymi potokami w systemie Windows dla lokalnego hosta IPC?

Zajmuję się tworzeniem proxy TCP, które ma zostać umieszczone przed usługą TCP, która powinna obsługiwać od 500 do 1000 aktywnych połączeń z dzikiego Internetu.

Serwer proxy działa na tej samej maszynie co usługa i jest przeważnie przezroczysty. Usługa jest w większości nieświadoma serwera proxy, jedynym wyjątkiem jest powiadomienie o rzeczywistym zdalnym adresie IP klientów.

Oznacza to, że dla każdego przychodzącego otwartego gniazda TCP są dwa dodatkowe gniazda na serwerze: druga z pary w Proxy i druga w prawdziwej usłudze za serwerem proxy.

Rozmiary okien wysyłania i recv na dwóch gniazdach Proxy są ustawione na 1024 bajty.

Jakie są tego konsekwencje dla wydajności? Jak wolna jest ta konfiguracja? Czy powinienem włożyć trochę wysiłku w zmianę usługi, aby używać nazwanych potoków (lub innego mechanizmu IPC), czy też gniazdo TCP localhost jest w większości wydajnym IPC?

Połączenie dwóch aplikacji nie wchodzi w grę. W tej chwili utknęliśmy w konfiguracji dwóch procesów.

EDYTOWAĆ: Powodem posiadania dwóch oddzielnych procesów na tym samym sprzęcie jest 100% ekonomia. Mamy tylko jeden serwer i nie planujemy uzyskać więcej (bez pieniędzy).

Usługa TCP to starsze oprogramowanie w Visual Basic 6, które wykroczyło poza nasze oczekiwania. Proxy to C ++. Nie mamy czasu, pieniędzy ani siły roboczej, aby przepisać i przenieść kod VB6 do nowoczesnego środowiska programistycznego.

Pełnomocnik jest naszą próbą złagodzenia konkretnego problemu z wydajnością usługiAtak DDoS dostajemy od czasu do czasu.

Proxy jest open source,a oto kod źródłowy projektu.

questionAnswers(6)

yourAnswerToTheQuestion