view docs/xml/change_log_conf.xml @ 9191:618132842e7c

QUIC: ignore duplicate PATH_CHALLENGE frames. According to RFC 9000, an endpoint SHOULD NOT send multiple PATH_CHALLENGE frames in a single packet. The change adds a check to enforce this claim to optimize server behavior. Previously each PATH_CHALLENGE always resulted in a single response datagram being sent to client. The effect of this was however limited by QUIC flood protection. Also, PATH_CHALLENGE is explicitly disabled in Initial and Handshake levels, see RFC 9000, Table 3. However, technically it may be sent by client in 0-RTT over a new path without actual migration, even though the migration itself is prohibited during handshake. This allows client to coalesce multiple 0-RTT packets each carrying a PATH_CHALLENGE and end up with multiple PATH_CHALLENGEs per datagram. This again leads to suboptimal behavior, see above. Since the purpose of sending PATH_CHALLENGE frames in 0-RTT is unclear, these frames are now only allowed in 1-RTT. For 0-RTT they are silently ignored.
author Roman Arutyunyan <arut@nginx.com>
date Wed, 22 Nov 2023 14:48:12 +0400
parents 76bc29f06168
children
line wrap: on
line source

<?xml version="1.0" ?>
<!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" >

<configuration>

<length>76</length>

<start>    *) </start>
<indent>       </indent>

<changes lang="ru">
    <title>Изменения в </title>
    <length>66</length>

    <bugfix>Исправление</bugfix>
    <feature>Добавление</feature>
    <change>Изменение</change>
    <security>Безопасность</security>
    <workaround>Изменение</workaround>
</changes>

<changes lang="en">
    <title>Changes with </title>
    <length>65</length>

    <bugfix>Bugfix</bugfix>
    <feature>Feature</feature>
    <change>Change</change>
    <security>Security</security>
    <workaround>Workaround</workaround>

    <month> Jan </month>
    <month> Feb </month>
    <month> Mar </month>
    <month> Apr </month>
    <month> May </month>
    <month> Jun </month>
    <month> Jul </month>
    <month> Aug </month>
    <month> Sep </month>
    <month> Oct </month>
    <month> Nov </month>
    <month> Dec </month>

</changes>

</configuration>