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:

Termo Descrição
FastRetran tcpEStatsStackFastRetran
Timeouts tcpEStatsPerfTimeouts
SubsequentTimeouts tcpEStatsStackSubsequentTimeouts
CurTimeoutCount tcpEStatsStackCurTimeoutCount
AbruptTimeouts tcpEStatsStackAbruptTimeouts
PktsRetrans tcpEStatsPerfSegsRetrans
BytesRetrans tcpEStatsPerfOctetsRetrans
DupAcksIn tcpEStatsStackDupAcksIn
SacksRcvd tcpEStatsStackSACKsRcvd
SackBlocksRcvd tcpEStatsStackSACKBlocksRcvd
CongSignals tcpEStatsPerfCongSignals
PreCongSumCwnd tcpEStatsPathPreCongSumCwnd
PreCongSumRtt tcpEStatsPathPreCongSumRTT
PostCongSumRtt tcpEStatsPathPostCongSumRTT
PostCongCountRtt tcpEStatsPathPostCongCountRTT
EcnSignals tcpEStatsPathECNsignals
EceRcvd tcpEStatsPathCERcvd
SendStall tcpEStatsStackSendStall
QuenchRcvd Nenhum mapeamento para este membro.
RetranThresh tcpEStatsPathRetranThresh
SndDupAckEpisodes tcpEStatsPathDupAckEpisodes
SumBytesReordered tcpEStatsPathSumOctetsReordered
NonRecovDa tcpEStatsPathNonRecovDA
NonRecovDaEpisodes tcpEStatsPathNonRecovDAEpisodes
AckAfterFr Nenhum mapeamento para este membro.
DsackDups tcpEStatsStackDSACKDups
SampleRtt tcpEStatsPathSampleRTT
SmoothedRtt tcpEStatsPerfSmoothedRTT
RttVar tcpEStatsPathRTTVar
MaxRtt tcpEStatsPathMaxRTT
MinRtt tcpEStatsPathMinRTT
SumRtt tcpEStatsPathSumRTT
CountRtt tcpEStatsPathCountRTT
CurRto tcpEStatsPerfCurRTO
MaxRto tcpEStatsPathMaxRTO
MinRto tcpEStatsPathMinRTO
CurMss tcpEStatsPerfCurMSS
MaxMss tcpEStatsStackMaxMSS
MinMss tcpEStatsStackMinMSS
SpuriousRtoDetections tcpEStatsStackSpuriousRtoDetected
 

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

Confira também

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

TCP_ESTATS_FINE_RTT_ROD_v0

TCP_ESTATS_TYPE