Tempi di trasferimento FTP dolorosamente elevati, tempi di risposta interattivi di login troppo lunghi, ottenendo 1 mbps dalla vostra rete a 100 mbps. Anche se preferisco sempre dare la colpa alla rete, devo ammettere che a volte non è la rete.
La prima cosa da cercare quando si ha a che fare con un problema di prestazioni TCP è un problema Ethernet di basso livello e di gran lunga il problema più comune è un mismatch duplex. Ethernet può funzionare sia in modalità full o half duplex. In modalità full duplex sia l'adattatore del modulo che il dispositivo a cui è collegato, il suo link peer, (tipicamente uno switch ma non sempre) può trasmettere contemporaneamente. In modalità half duplex solo un lato può trasmettere. C'è una finestra temporale in cui entrambi i lati possono pensare di poter trasmettere e farlo, quando ciò accade viene dichiarata una collisione, entrambi i lati smettono di trasmettere, aspettano un tempo casuale e riprovano. È importante capire che, quando entrambi i lati sono in modalità half duplex, queste collisioni non riducono significativamente la velocità di trasmissione della rete.
In un mismatch duplex un lato è in modalità full duplex e il suo link peer è in modalità half duplex. Il lato in modalità half duplex può subire collisioni tardive e collisioni eccessive, questi tipi di errori riducono significativamente la produttività. Qualsiasi collisione tardiva o eccessiva è indice di un problema. Il rallentamento della rete può apparire sproporzionato rispetto al numero di collisioni tardive ed eccessive perché in una condizione di disallineamento duplex anche le collisioni normali ridurranno il throughput perché il link peer non ritrasmetterà il frame poiché non riconoscerà una collisione in modalità full duplex.
Allora, come si fa a capire se questo sta succedendo a te? Il "
netstat -interfaceIl comando "comando" visualizzerà le statistiche che permetteranno di determinare se si sta verificando un disallineamento duplex. Nell'esempio seguente, le statistiche per l'adattatore attivo del comando #sdlmux.m16.11-3 sono visualizzati. Ho rimosso le statistiche per l'adattatore di standby per risparmiare spazio e ho aggiunto i numeri di linea.Se l'adattatore è in modalità half duplex, si vedranno i conteggi positivi nelle righe 25 (Transmit frame was deferred), 26 (Transmit frame after a single retry) e 27 (Transmit frame after multiple retry). Questi sono i normali contatori di collisione. Se vedete conteggi positivi nelle righe 24 (Trasmetti frame scartato, collisioni tardive) e/o 28 (Trasmetti frame scartato, riprova eccessiva) probabilmente avete o avete avuto un mismatch duplex. Questi contatori vengono azzerati solo quando l'adattatore viene azzerato, quindi i valori positivi sono un'indicazione che c'è stato un problema; i contatori che continuano a salire sono un'indicazione che si ha ancora un problema. Se l'adattatore è in modalità full duplex e si vede un valore positivo nella linea 32 (Receive frame scartati, CRC scadente) il link peer è probabilmente in modalità half duplex.
1 netstat -interface #sdlmux.m16.11-3 2 3 Ethernet adapters are grouped 4 Number of failovers = 0 5 6 Active Device Statistics: 7 8 9 MAC Type : CSMA/CD10 MAC Address: 00:00:a8:43:52:2211 Device Name: #sdlmux.m16.11-312 Line Speed : 100 mb/s13 Line Duplex: Full-Duplex1415 MAC Statistics:16 Received frames : 2078318117 Received multicast and broadcast frames : 298437518 Received octets : 178791386919 Transmitted frames : 974701520 Transmitted octets : 278048581921 LAN Chipset re-initialized : 022 SQE error : 023 Transmit ring full : 024 Transmit frame discarded, late collisions: 025 Transmit frame was deferred : 026 Transmit frame after a single retry : 027 Transmit frame after multiple retry : 028 Transmit frame discarded, excessive retry: 029 Receive frame discarded, lack of buffers : 030 Receive frame discarded, improper framing: 031 Receive frame discarded, an overflow : 032 Receive frame discarded, bad CRC : 67433 Receive frame discarded, bad address : 034 Receive frame discarded, congestion : 035 36 MAC Summary:37 Transmitted frames : 974701538 Transmitted octets : 278048581939 Retransmitted frames : 040 Received frames : 2376755641 Received octets : 178791386942 Total of lost frames : 043 Partner Device Statistics: . . . . ready 08:35:14Come siete entrati in questo scenario di disallineamento bifamiliare? Naturalmente è possibile avere un dispositivo configurato per funzionare in modalità full duplex e il link peer configurato per la modalità half duplex MA lo scenario più comune è quello di avere un dispositivo configurato per il full duplex e il link peer configurato per l'auto-negoziazione. La maggior parte dei dispositivi configurati per il full duplex non si auto-negoziano e secondo le specifiche di auto-negoziazione il lato che cerca di auto-negoziare deve ricadere in modalità half duplex quando non vede il protocollo di auto-negoziazione dal link peer.
Di default gli adattatori Ethernet utilizzati da OpenVOS si auto-negozieranno, quindi a meno che il link peer non sia configurato anche per l'auto-negoziazione o per la modalità half duplex si otterrà un mismatch duplex. Per impostare un adattatore per una specifica modalità duplex è necessario aggiungere il parametro
“-duplex full” oppure “-duplex half” stringa al campo dei parametri nella voce devices.tin per l'adattatore. È necessario impostare anche la velocità. La OpenVOS Streams TCP/IP Administrator's Guide (R419) lo descrive in dettaglio.Un'ultima nota: se l'adattatore funziona a 1 gigabit, allora funzionerà anche in modalità full duplex. Nessuno supporta la modalità half duplex gigabit.
