Skip to content

[Bug]: 持久拥塞检测使用PTO计数而非丢包时间跨度分析 #741

@qisefengzheng

Description

@qisefengzheng

What happened?

RFC 9002: Appendix B.8 OnPacketsLost, Section 7.6
RFC要求基于丢包的时间跨度来检测持久拥塞:
if (InPersistentCongestion(pc_lost)):
// pc_lost包含time_sent > first_rtt_sample的丢包
// 检查这些丢包的时间跨度是否超过persistent congestion duration
xquic使用PTO计数:
if (send_ctl->ctl_pto_count >= XQC_CONSECUTIVE_PTO_THRESH) {
// 基于PTO计数判断
}

RFC Section 7.6.1明确指出: “This design does not use consecutive PTO events to establish persistent congestion.”

xquic代码位置: xqc_send_ctl_in_persistent_congestion() (xqc_send_ctl.c:1434-1446)

ngtcp2参考: rtb_detect_lost_pkt() (ngtcp2_rtb.c:1040-1198) - 基于丢包时间跨度 loss_window >= congestion_period

Steps To Reproduce

Information and Steps to reproduce the behavior.

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions