Поделиться через


структура TCP_ESTATS_PATH_ROD_v0 (tcpestats.h)

Структура TCP_ESTATS_PATH_ROD_v0 содержит динамические сведения только для чтения для расширенной статистики TCP по измерению сетевого пути для TCP-подключения.

Синтаксис

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;

Члены

FastRetran

Тип: ULONG

Количество вызовов алгоритма быстрой повторной передачи.

Timeouts

Тип: ULONG

Количество раз, когда истекло время ожидания повторной передачи, когда множитель задержки таймера повторной передачи равен одному.

SubsequentTimeouts

Тип: ULONG

Количество истекло время ожидания повторной передачи после удвоения таймера повторной передачи.

Дополнительные сведения см. в разделе 5.5 ДОКУМЕНТА RFC 2988, описанном в примечаниях ниже.

CurTimeoutCount

Тип: ULONG

Текущее количество истекло время ожидания повторной передачи без получения подтверждения для новых данных.

Член CurTimeoutCount сбрасывается до нуля, когда новые данные подтверждаются и увеличиваются для каждого вызова раздела 5.5 RFC 2988.

AbruptTimeouts

Тип: ULONG

Количество тайм-аутов, которые произошли без каких-либо непосредственно предшествующих повторяющихся подтверждений или других признаков перегрузки. Резкие превышения времени ожидания указывают на то, что путь потерял целое окно данных или подтверждений.

Время ожидания, которому предшествуют повторяющиеся подтверждения или другие сигналы перегрузки (например, явное уведомление о перегрузке), не учитываются как внезапные, и, возможно, их можно избежать с помощью более сложного алгоритма быстрой повторной передачи.

PktsRetrans

Тип: ULONG

Количество переданных сегментов, содержащих по крайней мере некоторые повторно переданные данные.

BytesRetrans

Тип: ULONG

Количество байтов, которые были переначислены.

DupAcksIn

Тип: ULONG

Количество полученных дубликатов ACL.

SacksRcvd

Тип: ULONG

Количество полученных параметров выборочного подтверждения (SACK).

SackBlocksRcvd

Тип: ULONG

Количество полученных блоков SACK (в параметрах SACK).

CongSignals

Тип: ULONG

Количество мультипликативных изменений в нисходящем окне перегрузки из-за всех форм сигналов перегрузки, включая быструю повторную передачу, явное уведомление о перегрузке (ECN) и время ожидания. Этот элемент обобщает все события, вызывающие часть мультипликативного уменьшения (MD) элемента управления перегрузкой аддитивного увеличения (AIMD), и поэтому является лучшим показателем того, как перегруженные окна влияют на перегрузку.

Обратите внимание, что время ожидания повторной передачи многократно сокращает окно неявно, устанавливая размер порога медленного запуска и включаются в значение, хранящееся в элементе CongSignals . Чтобы свести к минимуму фиктивные признаки перегрузки из-за неупорядоченных сегментов, член CongSignals увеличивается в связи с алгоритмом быстрой повторной передачи.

PreCongSumCwnd

Тип: ULONG

Сумма значений окна перегрузки в байтах, фиксируемых при каждом получении сигнала перегрузки.

Этот элемент обновляется каждый раз, когда член CongSignals увеличивается, так что изменение элемента PreCongSumCwnd , разделенное на изменение в элементе CongSignals , является средним окном (за определенный интервал) непосредственно перед сигналом перегрузки.

PreCongSumRtt

Тип: ULONG

Сумма (в миллисекундах) последней выборки сетевого времени кругового пути (RTT) до получения полученных сигналов о перегрузке. Последняя выборка RTT хранится в элементе SampleRtt .

Элемент PreCongSumRtt обновляется каждый раз, когда член CongSignals увеличивается, таким образом, что изменение PreCongSumRtt , разделенное на изменение в элементе CongSignals , является средним RTT (за определенный интервал) непосредственно перед сигналом перегрузки.

PostCongSumRtt

Тип: ULONG

Сумма (в миллисекундах) первой выборки сетевого RTT (хранящегося в элементе SampleRtt ) после каждого сигнала перегрузки.

Изменение в элементе PostCongSumRtt , разделенное на изменение в элементе PostCongCountRtt , является средним RTT (за определенный интервал) сразу после сигнала перегрузки.

PostCongCountRtt

Тип: ULONG

Количество выборок RTT в байтах, включенных в элемент PostCongSumRtt .

Изменение в элементе PostCongSumRtt , разделенное на изменение в элементе PostCongCountRtt , является средним RTT (за определенный интервал) сразу после сигнала перегрузки.

EcnSignals

Тип: ULONG

Количество сигналов перегрузки, доставленных отправителю TCP через ECN.

Обычно это количество сегментов с эхо-перегрузкой

Опытные биты (ECE), но также включают сегменты, не проверка ecn nonce или другие явные сигналы перегрузки.

EceRcvd

Тип: ULONG

Количество сегментов, полученных с заголовками IP-адресов с маркировкой "Опытные перегрузки" (CE).

SendStall

Тип: ULONG

Количество остановок интерфейса или других ограничений локальных ресурсов отправителя, которые обрабатываются как сигналы перегрузки.

QuenchRcvd

Тип: ULONG

Зарезервировано для последующего использования. Этот элемент всегда имеет нулевое значение.

RetranThresh

Тип: ULONG

Количество повторяющихся подтверждений, необходимых для активации быстрой повторной передачи.

Обратите внимание, что хотя это постоянное значение в традиционных реализациях TCP в Reno, оно является адаптивными во многих новых реализациях TCP.

SndDupAckEpisodes

Тип: ULONG

Количество дублирующихся acks, отправленных, когда предыдущий Ack не был дубликатом. Это количество раз, когда была отправлена непрерывная серия повторяющихся подтверждений.

Это указывает на количество потерянных или переупорядоченных сегментов данных на пути от удаленной конечной точки TCP к ближайшей конечной точке TCP.

SumBytesReordered

Тип: ULONG

Сумма сумм SND. UNA продвигается на признание, которое заканчивается dup-ack эпизод без повторной передачи.

Обратите внимание, что изменение элемента SumBytesReordered, разделенное на изменение в элементе NonRecovDaХи, представляет собой оценку среднего расстояния переупорядочения за определенный интервал.

NonRecovDa

Тип: ULONG

Количество повторяющихся acks (или SACKS), которые не активируют быструю повторную передачу, так как ACK продвинулась до количества повторяющихся подтверждений, достигающих RetranThresh.

Обратите внимание, что изменение элемента NonRecovDa , разделенное на изменение в элементе NonRecovDaВ, представляет собой оценку среднего расстояния переупорядочения в сегментах за определенный интервал.

NonRecovDaEpisodes

Тип: ULONG

Количество повторяющихся эпизодов подтверждения, которые не активируют быструю повторную передачу, так как ACK продвинулась до количества повторяющихся подтверждений, достигающих RetranThresh.

AckAfterFr

Тип: ULONG

Зарезервировано для последующего использования. Этот элемент всегда имеет нулевое значение.

DsackDups

Тип: ULONG

Количество повторяющихся сегментов, сообщаемых локальному узлу блоками D-SACK.

SampleRtt

Тип: ULONG

Последнее необработанное измерение времени кругового пути сети в миллисекундах, используемое при вычислении таймера повторной передачи (RTO).

SmoothedRtt

Тип: ULONG

Сглаженное время кругового пути в миллисекундах, используемое при вычислении RTO.

RttVar

Тип: ULONG

Вариация времени кругового пути в миллисекундах, используемая при вычислении RTO.

MaxRtt

Тип: ULONG

Максимальное время кругового пути для выборки в миллисекундах.

MinRtt

Тип: ULONG

Минимальное время кругового пути для выборки в миллисекундах.

SumRtt

Тип: ULONG

Сумма всех выборочных значений времени кругового пути в миллисекундах.

Обратите внимание, что изменение в элементе SumRtt , разделенное на изменение в элементе CountRtt , является средним значением RTT, равномерно усредненным по интервалу ввода.

CountRtt

Тип: ULONG

Количество выборок времени кругового пути, включенных в элемент SumRtt .

CurRto

Тип: ULONG

Текущее значение таймера повторной передачи в миллисекундах.

MaxRto

Тип: ULONG

Максимальное значение таймера повторной передачи в миллисекундах.

MinRto

Тип: ULONG

Минимальное значение таймера повторной передачи в миллисекундах.

CurMss

Тип: ULONG

Текущий максимальный размер сегмента (MSS) в байтах.

MaxMss

Тип: ULONG

Максимальное значение MSS в байтах.

MinMss

Тип: ULONG

Минимальное значение MSS в байтах.

SpuriousRtoDetections

Тип: ULONG

Количество подтверждений, сообщающих сегменты, которые уже были перенаправены из-за времени ожидания повторной передачи.

Комментарии

Структура TCP_ESTATS_PATH_ROD_v0 используется в составе функции расширенной статистики TCP, доступной в Windows Vista и более поздних версиях.

TCP_ESTATS_PATH_ROD_v0 определяется как версия 0 структуры для динамической информации об измерении сетевого пути только для чтения для TCP-подключения. Эти сведения доступны после установки подключения.

Структура TCP_ESTATS_PATH_ROD_v0 извлекается вызовами функций GetPerTcp6ConnectionEStats или GetPerTcpConnectionEStats при передаче TcpConnectionEstatsPath в параметре EstatsType . Чтобы получить эту структуру, необходимо включить расширенную статистику TCP.

Обнаружение MTU пути и максимальный размер сегмента подробно рассматриваются в документе IETF RFC 1191 об обнаружении MTU пути. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc1191.txt.

Алгоритмы управления перегрузкой TCP и перегрузки подробно рассматриваются в документе IETF RFC 2581 по управлению перегрузкой TCP. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc2581.txt.

SACK и расширение параметра SACK подробно рассматриваются в документе IETF RFC 2883 о расширении параметра выборочного подтверждения (SACK) для TCP. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc2883.txt.

Таймер повторной передачи TCP (RTO) и сглаженное время кругового пути (RTT) подробно рассматриваются в документе IETF RFC 2988 on Computing TCP's Retransmission Timer. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc2988.txt.

Явное уведомление о перегрузке в IP-адресе подробно рассматривается в документе IETF RFC 2581 о добавлении явного уведомления о перегрузке (ECN) в IP-адрес. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc3168.txt.

Члены этой структуры определяются в RFC IETF в расширенной статистике TCP MIB. Для получения дополнительной информации см. http://www.ietf.org/rfc/rfc4898.txt.

Ниже приведено сопоставление элементов в структуре TCP_ESTATS_PATH_ROD_v0 с записями, определенными в RFC 4898 для расширенной статистики TCP.

Термин Описание
FastRetran tcpEStatsStackFastRetran
Времени ожидания tcpEStatsPerfTimeouts
Последующие тайм-ауты tcpEStatsStackSubsequentTimeouts
CurTimeoutCount tcpEStatsStackCurTimeoutCount
Внезапное время ожидания 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 Нет сопоставления с этим элементом.
RetranThresh tcpEStatsPathRetranThresh
SndDupAckХиссы tcpEStatsPathDupAckStats
SumBytesReordered tcpEStatsPathSumOctetsReordered
NonRecovDa tcpEStatsPathNonRecovDA
NonRecovDa1 tcpEStatsPathNonRecovDAStats
AckAfterFr Нет сопоставления с этим элементом.
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
 

Структура TCP_ESTATS_FINE_RTT_ROD_v0 содержит члены, которые предоставляют данные, аналогичные элементам RttVar, MaxRtt, MinRtt и SumRtt структуры TCP_ESTATS_PATH_ROD_v0 . Однако время указывается в микросекундах для аналогичных элементов структуры TCP_ESTATS_FINE_RTT_ROD_v0 .

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Верхняя часть tcpestats.h

См. также раздел

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

TCP_ESTATS_FINE_RTT_ROD_v0

TCP_ESTATS_TYPE