структура 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.
Структура 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 |