estrutura TCP_ESTATS_PATH_ROD_v0 (tcpestats.h)
A estrutura TCP_ESTATS_PATH_ROD_v0 contém informações dinâmicas somente leitura para estatísticas TCP estendidas na medição do caminho de rede para uma conexão TCP.
Sintaxe
typedef struct _TCP_ESTATS_PATH_ROD_v0 {
ULONG FastRetran;
ULONG Timeouts;
ULONG SubsequentTimeouts;
ULONG CurTimeoutCount;
ULONG AbruptTimeouts;
ULONG PktsRetrans;
ULONG BytesRetrans;
ULONG DupAcksIn;
ULONG SacksRcvd;
ULONG SackBlocksRcvd;
ULONG CongSignals;
ULONG PreCongSumCwnd;
ULONG PreCongSumRtt;
ULONG PostCongSumRtt;
ULONG PostCongCountRtt;
ULONG EcnSignals;
ULONG EceRcvd;
ULONG SendStall;
ULONG QuenchRcvd;
ULONG RetranThresh;
ULONG SndDupAckEpisodes;
ULONG SumBytesReordered;
ULONG NonRecovDa;
ULONG NonRecovDaEpisodes;
ULONG AckAfterFr;
ULONG DsackDups;
ULONG SampleRtt;
ULONG SmoothedRtt;
ULONG RttVar;
ULONG MaxRtt;
ULONG MinRtt;
ULONG SumRtt;
ULONG CountRtt;
ULONG CurRto;
ULONG MaxRto;
ULONG MinRto;
ULONG CurMss;
ULONG MaxMss;
ULONG MinMss;
ULONG SpuriousRtoDetections;
} TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0;
Membros
FastRetran
Tipo: ULONG
O número de invocações do algoritmo Retransmissão Rápida.
Timeouts
Tipo: ULONG
O número de vezes que o tempo limite de retransmissão expirou quando o multiplicador de retirada do temporizador de retransmissão é igual a um.
SubsequentTimeouts
Tipo: ULONG
O número de vezes que o tempo limite de retransmissão expirou depois que o temporizador de retransmissão foi dobrado.
Para obter mais informações, consulte a seção 5.5 do RFC 2988 discutida nos Comentários abaixo.
CurTimeoutCount
Tipo: ULONG
O número atual de vezes que o tempo limite de retransmissão expirou sem receber uma confirmação para novos dados.
O membro CurTimeoutCount é redefinido para zero quando novos dados são confirmados e incrementados para cada invocação da Seção 5.5 do RFC 2988.
AbruptTimeouts
Tipo: ULONG
O número de tempos limite que ocorreram sem confirmações duplicadas imediatamente anteriores ou outras indicações de congestionamento. Tempos limite abruptos indicam que o caminho perdeu uma janela inteira de dados ou confirmações.
Os tempos limite precedidos por confirmações duplicadas ou outros sinais de congestionamento (Notificação de Congestionamento Explícito, por exemplo) não são contados como abruptos e podem ter sido evitados por um algoritmo de Retransmissão Rápida mais sofisticado.
PktsRetrans
Tipo: ULONG
O número de segmentos transmitidos que contêm pelo menos alguns dados retransmitidos.
BytesRetrans
Tipo: ULONG
O número de bytes retransmitidos.
DupAcksIn
Tipo: ULONG
O número de ACKs duplicadas recebidas.
SacksRcvd
Tipo: ULONG
O número de opções de SACK (Confirmação Seletiva) recebidas.
SackBlocksRcvd
Tipo: ULONG
O número de blocos SACK recebidos (dentro das opções SACK).
CongSignals
Tipo: ULONG
O número de ajustes multiplicativos da janela de congestionamento descendente devido a todas as formas de sinais de congestionamento, incluindo Retransmissão Rápida, ECN (Notificação de Congestionamento Explícito) e tempos limite. Esse membro resume todos os eventos que invocam a parte MD (Diminuição Multiplicativa) do controle de congestionamento AIMD (Aumento Aditivo multiplicativo) e, como tal, é o melhor indicador de como uma janela de congestionamento está sendo afetada pelo congestionamento.
Observe que os tempos limite de retransmissão reduzem a janela implicitamente definindo o tamanho do limite de início lento e são incluídos no valor armazenado no membro CongSignals . Para minimizar as indicações de congestionamento espúrio devido a segmentos fora de ordem, o membro CongSignals é incrementado em associação com o algoritmo Retransmissão Rápida.
PreCongSumCwnd
Tipo: ULONG
A soma dos valores da janela de congestionamento, em bytes, capturada sempre que um sinal de congestionamento é recebido.
Esse membro é atualizado sempre que o membro CongSignals é incrementado, de modo que a alteração no membro PreCongSumCwnd dividida pela alteração no membro CongSignals é a janela média (em algum intervalo) logo antes de um sinal de congestionamento.
PreCongSumRtt
Tipo: ULONG
A soma, em milissegundos, da última amostra do RTT (tempo de ida e volta) da rede antes dos sinais de congestionamento recebidos. O último exemplo do RTT é armazenado no membro SampleRtt .
O membro PreCongSumRtt é atualizado sempre que o membro CongSignals é incrementado, de modo que a alteração no PreCongSumRtt dividida pela alteração no membro CongSignals é o RTT médio (em algum intervalo) pouco antes de um sinal de congestionamento.
PostCongSumRtt
Tipo: ULONG
A soma, em milissegundos, do primeiro exemplo do RTT de rede (armazenado no membro SampleRtt ) após cada sinal de congestionamento.
A alteração no membro PostCongSumRtt dividida pela alteração no membro PostCongCountRtt é o RTT médio (em algum intervalo) logo após um sinal de congestionamento.
PostCongCountRtt
Tipo: ULONG
O número de exemplos rtt, em bytes, incluídos no membro PostCongSumRtt .
A alteração no membro PostCongSumRtt dividida pela alteração no membro PostCongCountRtt é o RTT médio (em algum intervalo) logo após um sinal de congestionamento.
EcnSignals
Tipo: ULONG
O número de sinais de congestionamento entregues ao remetente TCP via ECN.
Normalmente, esse é o número de segmentos com congestionamento de eco
Bits experientes (ECE), mas também inclui segmentos que falham no marcar de nonce ECN ou outros sinais de congestionamento explícitos.
EceRcvd
Tipo: ULONG
O número de segmentos recebidos com cabeçalhos IP com marcações ce (congestionamento experientes).
SendStall
Tipo: ULONG
O número de paradas de interface ou outras limitações de recursos locais do remetente que são tratadas como sinais de congestionamento.
QuenchRcvd
Tipo: ULONG
Reservado para uso futuro. Esse membro é sempre definido como zero.
RetranThresh
Tipo: ULONG
O número de confirmações duplicadas necessárias para disparar a Retransmissão Rápida.
Observe que, embora isso seja constante nas implementações tradicionais do Reno TCP, ela é adaptável em muitas implementações TCP mais recentes.
SndDupAckEpisodes
Tipo: ULONG
O número de Acks Duplicados Enviados quando Ack anterior não estava duplicado. Esse é o número de vezes que uma série contígua de confirmações duplicadas foi enviada.
Essa é uma indicação do número de segmentos de dados perdidos ou reordenados no caminho do ponto de extremidade TCP remoto para o ponto de extremidade TCP próximo.
SumBytesReordered
Tipo: ULONG
A soma dos valores SND. A UNA avança na confirmação que encerra um episódio dup-ack sem uma retransmissão.
Observe que a alteração no membro SumBytesReordered dividida pela alteração no membro NonRecovDaEpisodes é uma estimativa da distância média de reordenação, em algum intervalo.
NonRecovDa
Tipo: ULONG
O número de confirmações duplicadas (ou SACKS) que não dispararam uma Retransmissão Rápida porque o ACK avançou antes do número de confirmações duplicadas atingindo o RetranThresh.
Observe que a alteração no membro NonRecovDa dividida pela alteração no membro NonRecovDaEpisodes é uma estimativa da distância média de reordenação em segmentos em algum intervalo.
NonRecovDaEpisodes
Tipo: ULONG
O número de episódios de confirmação duplicados que não dispararam uma Retransmissão Rápida porque o ACK avançou antes do número de confirmações duplicadas atingindo o RetranThresh.
AckAfterFr
Tipo: ULONG
Reservado para uso futuro. Esse membro é sempre definido como zero.
DsackDups
Tipo: ULONG
O número de segmentos duplicados relatados ao host local por blocos D-SACK.
SampleRtt
Tipo: ULONG
A medida de tempo de ida e volta de rede bruta mais recente, em milissegundos, usada no cálculo do RTO (temporizador de retransmissão).
SmoothedRtt
Tipo: ULONG
O tempo de ida e volta suavizado, em milissegundos, usado no cálculo do RTO.
RttVar
Tipo: ULONG
A variação de tempo de ida e volta, em milissegundos, usada no cálculo do RTO.
MaxRtt
Tipo: ULONG
O tempo máximo de viagem de ida e volta amostrado em milissegundos.
MinRtt
Tipo: ULONG
O tempo mínimo de viagem de ida e volta amostrado em milissegundos.
SumRtt
Tipo: ULONG
A soma de todos os tempos de viagem de ida e volta amostrados em milissegundos.
Observe que a alteração no membro SumRtt dividida pela alteração no membro CountRtt é a MÉDIA RTT, uniformemente média em um intervalo de entrada.
CountRtt
Tipo: ULONG
O número de amostras de tempo de viagem de ida e volta incluídas no membro SumRtt .
CurRto
Tipo: ULONG
O valor atual, em milissegundos, do temporizador de retransmissão.
MaxRto
Tipo: ULONG
O valor máximo, em milissegundos, do temporizador de retransmissão.
MinRto
Tipo: ULONG
O valor mínimo, em milissegundos, do temporizador de retransmissão.
CurMss
Tipo: ULONG
O MSS (tamanho máximo do segmento) atual, em bytes.
MaxMss
Tipo: ULONG
O MSS máximo, em bytes.
MinMss
Tipo: ULONG
O MSS mínimo, em bytes.
SpuriousRtoDetections
Tipo: ULONG
O número de confirmações relatando segmentos que já foram retransmitidos devido a um tempo limite de retransmissão.
Comentários
A estrutura TCP_ESTATS_PATH_ROD_v0 é usada como parte do recurso de estatísticas estendidas TCP disponível no Windows Vista e posterior.
O TCP_ESTATS_PATH_ROD_v0 é definido como a versão 0 da estrutura para obter informações dinâmicas somente leitura sobre a medição do caminho de rede para uma conexão TCP. Essas informações estarão disponíveis depois que a conexão for estabelecida.
A estrutura TCP_ESTATS_PATH_ROD_v0 é recuperada por chamadas para as funções GetPerTcp6ConnectionEStats ou GetPerTcpConnectionEStats quando TcpConnectionEstatsPath é passado no parâmetro EstatsType . As estatísticas de TCP estendidas precisam ser habilitadas para recuperar essa estrutura.
A descoberta de MTU do caminho e o tamanho máximo do segmento são discutidos em detalhes na descoberta de MTU do IETF RFC 1191 no Caminho. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc1191.txt.
Os algoritmos de controle de congestionamento e congestionamento TCP são discutidos em detalhes no IETF RFC 2581 no Controle de Congestionamento TCP. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2581.txt.
SACK e uma extensão para a opção SACK são discutidas em detalhes na Opção RFC 2883 do IETF em Uma extensão para a opção SACK (Confirmação Seletiva) para TCP. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2883.txt.
O RTO (temporizador de retransmissão) do TCP e o RTT (tempo de ida e volta) suavizados são discutidos em detalhes no RFC 2988 do IETF no Temporizador de Retransmissão do TCP. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc2988.txt.
A Notificação explícita de congestionamento no IP é discutida em detalhes no IETF RFC 2581 sobre a adição de ECN (notificação de congestionamento explícito) ao IP. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc3168.txt.
Os membros dessa estrutura são definidos no RFC IETF no MIB estatísticas estendidas do TCP. Para obter mais informações, consulte http://www.ietf.org/rfc/rfc4898.txt.
Veja a seguir o mapeamento dos membros na estrutura TCP_ESTATS_PATH_ROD_v0 para as entradas definidas no RFC 4898 para estatísticas TCP estendidas:
A estrutura TCP_ESTATS_FINE_RTT_ROD_v0 tem membros que fornecem dados semelhantes aos membros RttVar, MaxRtt, MinRtt e SumRtt da estrutura TCP_ESTATS_PATH_ROD_v0 . No entanto, o tempo é relatado em microssegundos para os membros semelhantes da estrutura TCP_ESTATS_FINE_RTT_ROD_v0 .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | tcpestats.h |