Comunicazione TCP / IP e UDP lenta


2

Sto lavorando con un dispositivo su una macchina per il taglio di metalli che comunica tramite TCP / IP o UDP su Ethernet. Ho scritto un programma di test che scrive e legge dieci registri e volte quanto tempo impiega il processo.

Su un computer Windows 7 Professional, il test richiede in media 200 millisecondi. Su un computer Windows 10, lo stesso test richiede in media 320 millisecondi. Questo è con lo stesso hardware che abbiamo installato Windows 7 e Windows 10 su due diversi dischi rigidi e swap.

La mia domanda è: se possibile, posso configurare su Windows 10 per consentire al test di essere vicino alla stessa velocità con cui viene eseguito utilizzando Windows 7? Oppure Windows 10 è sostanzialmente più lento. Il nostro sospetto è che sia qualcosa legato alla sicurezza ma non siamo riusciti a trovare alcuna impostazione che migliori il test di Windows 10.


3
È qui che WireShark è utile, in quanto è possibile ispezionare i pacchetti di payload e di risposta e dovrebbe aiutare a rintracciare il ritardo. Non è il più semplice degli strumenti da usare però ...
spikey_richie,

1
@spikey_richie Sono a conoscenza di Wire Shark, tuttavia, come determinerebbe cosa sta causando il problema internamente in Windows 10. Per quanto ne so, per tracciare i problemi con il percorso tra due dispositivi. Non problemi interni a Windows 10. Abbiamo lo stesso identico computer, lo stesso identico cavo, lo stesso identico dispositivo, lo stesso identico programma di test. L'unica differenza è il risultato dell'avvio in Windows 10 rispetto a Windows 7.
RS Conley,

Quale lingua e versioni stai usando? 'C', Python, è presente in Cygwin, ... Dato che hai modificato le versioni del sistema operativo potresti anche aver cambiato anche le librerie dipendenti. L'elaborazione del firewall viene in mente se la sua vera rete e Wireshark dovrebbero essere in grado di farti vedere se c'è latenza tra i pacchetti e qual è il cambiamento.
Hogstrom,

@Hogstrom C # e ultima versione di .NET 3.5. La stessa versione del framework è installata su Windows 7 e Windows 10. L'unica differenza è il sistema operativo. E abbiamo provato a disattivare il firewall e l'antivirus e la differenza è ancora presente. I file binari di Windows 10 sono più lenti nell'elaborazione dei pacchetti UDP o TCP o in altre impostazioni diverse. E qualcosa che ho trascurato di aggiungere alle mie domande. Entrambi i dischi rigidi sono nuove installazioni che utilizzano gli ultimi ISO (per 7 e 10) di MSDN.
RS Conley,

1
@RSConley Se questo ti riguarda ancora e hai a disposizione le due macchine, puoi confrontare la loro configurazione TCP eseguendo 'netsh interface tcp show global' in una finestra cmd
mihalios

Risposte:


0

Ho avuto un problema simile e si è ridotto al valore di ReceiveBufferSize. Sembra che in Win7 la dimensione predefinita sia 8 KB, mentre in Win10 è 64 KB.

  1. Assicurati di non sovrascrivere la dimensione del buffer da nessuna parte.
  2. Se non pensi di farlo, prova a impostarlo in modo esplicito su 64 KB.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.