1. build
# 下载代码git clone --recursive https://github.com/cloudflare/quiche (安装包已执行完此操作)# 安装依赖yum install -y rust cargo go libunwind-devel libev-devel libasan uthash-devel# 配置go环境go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct# 配置rust国内源vi .cargo/config[source.crates-io]registry = "https://github.com/rust-lang/crates.io-index"replace-with = 'ustc'[source.ustc]registry = "git://mirrors.ustc.edu.cn/crates.io-index"# build c examplecd examplesmake# build (可以不编译)cargo build --examplescargo test
2. demo
# 设置环境变量export SSLKEYLOGFILE=./ssl.logecho $SSLKEYLOGFILE# 启动server (c example)./server 127.0.0.1 4567# 启动client (c example)./client 127.0.0.1 4567
2.1 server输出
version negotiationsent 55 bytesrecv would blockstateless retrysent 93 bytesrecv would blocknew connectionquiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx pkt Initial version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 token=71756963686502008ca47f000001000000000000000002391c6c156e444a5651027f1d5c92b0 len=289 pn=2quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm CRYPTO off=0 len=268quiche::tls: checking peer ALPN Ok("hq-interop") against Ok("hq-interop")quiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 write message lvl=Initial len=90quiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 set write secret lvl=Handshakequiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 write message lvl=Handshake len=1183quiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 set write secret lvl=OneRTTquiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 set read secret lvl=Handshakequiche: 3bd8856ac3f9f43995ffeefde088b7d5 dropped invalid packetrecv 1200 bytesrecv would blockquiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx pkt Initial version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=100 pn=0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm ACK delay=1241 blocks=[2..2]quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm CRYPTO off=0 len=90quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 timer=998.757062ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=159 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=302.632µs recent_delivered_packet_sent_time=303.736µs app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 841583849 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonequiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=983 pn=0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm CRYPTO off=0 len=979quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 timer=998.52249ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=1200 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=490.449µs recent_delivered_packet_sent_time=491.145µs app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 841945693 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 1200 bytesquiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=209 pn=1quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm CRYPTO off=979 len=204quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 timer=998.251055ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=1467 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=783.089µs recent_delivered_packet_sent_time=783.842µs app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 842194507 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 267 bytesdone writingquiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx pkt Initial version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 token=71756963686502008ca47f000001000000000000000002391c6c156e444a5651027f1d5c92b0 len=23 pn=3quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm ACK delay=786 blocks=[0..0]quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 packet newly acked 0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx pkt Handshake version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 len=63 pn=0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm ACK delay=346 blocks=[0..1]quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 packet newly acked 0quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 packet newly acked 1quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm CRYPTO off=0 len=36quiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 set read secret lvl=OneRTTquiche::tls: 3bd8856ac3f9f43995ffeefde088b7d5 write message lvl=OneRTT len=396quiche: 3bd8856ac3f9f43995ffeefde088b7d5 connection established: proto=Ok("hq-interop") cipher=Some(AES128_GCM) curve=Some("X25519") sigalg=None resumed=false TransportParams { original_destination_connection_id: None, max_idle_timeout: 5000, stateless_reset_token: None, max_udp_payload_size: 1350, initial_max_data: 10000000, initial_max_stream_data_bidi_local: 1000000, initial_max_stream_data_bidi_remote: 0, initial_max_stream_data_uni: 1000000, initial_max_streams_bidi: 100, initial_max_streams_uni: 100, ack_delay_exponent: 3, max_ack_delay: 25, disable_active_migration: true, active_conn_id_limit: 2, initial_source_connection_id: Some(619cfb4161d40bd440ebeadb2fcac2b2), retry_source_connection_id: None, max_datagram_frame_size: None }quiche: 3bd8856ac3f9f43995ffeefde088b7d5 dropped epoch 0 statequiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx pkt Short dcid=3bd8856ac3f9f43995ffeefde088b7d5 key_phase=false len=1126 pn=0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm STREAM id=4 off=0 len=18 fin=truequiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm PADDING len=1086recv 1350 bytesstream 4 is readablerecv would blockquiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=6 pn=2quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm ACK delay=234 blocks=[0..0]quiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 timer=none latest_rtt=7.341005ms srtt=Some(7.673759ms) min_rtt=7.341005ms rttvar=2.990558ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=0 app_limited=true congestion_recovery_start_time=None delivered=1467 delivered_time=2.002096ms recent_delivered_packet_sent_time=9.954559ms app_limited_at_pkt=1467 pacing_rate=1759416 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 851396253 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonequiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx pkt Short dcid=619cfb4161d40bd440ebeadb2fcac2b2 key_phase=false len=417 pn=0quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm ACK delay=94 blocks=[0..0]quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm HANDSHAKE_DONEquiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm CRYPTO off=0 len=396quiche: 3bd8856ac3f9f43995ffeefde088b7d5 tx frm STREAM id=4 off=0 len=5 fin=truequiche::recovery: 3bd8856ac3f9f43995ffeefde088b7d5 timer=44.445309ms latest_rtt=7.341005ms srtt=Some(7.673759ms) min_rtt=7.341005ms rttvar=2.990558ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=451 app_limited=true congestion_recovery_start_time=None delivered=1467 delivered_time=2.241884ms recent_delivered_packet_sent_time=10.194304ms app_limited_at_pkt=1467 pacing_rate=1759416 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 851565568 }) hystart=window_end=Some(0) last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 515 bytesdone writingquiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx pkt Short dcid=3bd8856ac3f9f43995ffeefde088b7d5 key_phase=false len=21 pn=1quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm APPLICATION_CLOSE err=0 reason=[]quiche: 3bd8856ac3f9f43995ffeefde088b7d5 rx frm PADDING len=1recv 38 bytesrecv would blockdone writingquiche: 3bd8856ac3f9f43995ffeefde088b7d5 draining timeout expiredtimeoutdone writingconnection closed, recv=5 sent=5 lost=0 rtt=7673759ns cwnd=13500
2.2 client输出
quiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 write message lvl=Initial len=268quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Initial version=babababa dcid=02391c6c156e444a5651027f1d5c92b0 scid=619cfb4161d40bd440ebeadb2fcac2b2 len=272 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm CRYPTO off=0 len=268quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=998.72588ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=331 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=312.258µs recent_delivered_packet_sent_time=313.178µs app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 826962349 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 1200 bytesdone writingquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt VersionNegotiation version=0 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=02391c6c156e444a5651027f1d5c92b0 versions=[1, ff00001d, ff00001c, ff00001b]quiche: 619cfb4161d40bd440ebeadb2fcac2b2 dropped epoch 0 staterecv 55 bytesrecv would blockdone readingquiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 write message lvl=Initial len=268quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Initial version=1 dcid=02391c6c156e444a5651027f1d5c92b0 scid=619cfb4161d40bd440ebeadb2fcac2b2 len=272 pn=1quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm CRYPTO off=0 len=268quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=998.863496ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=331 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=2.328129ms recent_delivered_packet_sent_time=2.329016ms app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 829138993 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 1200 bytesdone writingquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Retry version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 token=71756963686502008ca47f000001000000000000000002391c6c156e444a5651027f1d5c92b0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 dropped epoch 0 staterecv 93 bytesrecv would blockdone readingquiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 write message lvl=Initial len=268quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Initial version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 token=71756963686502008ca47f000001000000000000000002391c6c156e444a5651027f1d5c92b0 len=272 pn=2quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm CRYPTO off=0 len=268quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=998.895136ms latest_rtt=0ns srtt=None min_rtt=0ns rttvar=166.5ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=369 app_limited=true congestion_recovery_start_time=None delivered=0 delivered_time=3.773824ms recent_delivered_packet_sent_time=3.774768ms app_limited_at_pkt=0 pacing_rate=0 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 830616540 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 1200 bytesdone writingquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Initial version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 token= len=117 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm ACK delay=1241 blocks=[2..2]quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 packet newly acked 2quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm CRYPTO off=0 len=90quiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 set write secret lvl=Handshakequiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 set read secret lvl=Handshakequiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=1000 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm CRYPTO off=0 len=979recv 1200 bytesquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=226 pn=1quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm CRYPTO off=979 len=204quiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 write message lvl=Handshake len=36quiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 set write secret lvl=OneRTTquiche::tls: 619cfb4161d40bd440ebeadb2fcac2b2 set read secret lvl=OneRTTquiche: 619cfb4161d40bd440ebeadb2fcac2b2 connection established: proto=Ok("hq-interop") cipher=Some(AES128_GCM) curve=Some("X25519") sigalg=Some("rsa_pss_rsae_sha256") resumed=false TransportParams { original_destination_connection_id: Some(02391c6c156e444a5651027f1d5c92b0), max_idle_timeout: 5000, stateless_reset_token: None, max_udp_payload_size: 1350, initial_max_data: 10000000, initial_max_stream_data_bidi_local: 1000000, initial_max_stream_data_bidi_remote: 1000000, initial_max_stream_data_uni: 0, initial_max_streams_bidi: 100, initial_max_streams_uni: 0, ack_delay_exponent: 3, max_ack_delay: 25, disable_active_migration: false, active_conn_id_limit: 2, initial_source_connection_id: Some(3bd8856ac3f9f43995ffeefde088b7d5), retry_source_connection_id: Some(3bd8856ac3f9f43995ffeefde088b7d5), max_datagram_frame_size: None }recv 267 bytesrecv would blockdone readingconnection established: hq-interopsent HTTP requestquiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Initial version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 token=71756963686502008ca47f000001000000000000000002391c6c156e444a5651027f1d5c92b0 len=6 pn=3quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm ACK delay=786 blocks=[0..0]quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=28.279991ms latest_rtt=11.557915ms srtt=Some(11.557915ms) min_rtt=11.557915ms rttvar=5.778957ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=0 app_limited=true congestion_recovery_start_time=None delivered=369 delivered_time=6.417197ms recent_delivered_packet_sent_time=21.630006ms app_limited_at_pkt=369 pacing_rate=1168123 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 848448659 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonequiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Handshake version=1 dcid=3bd8856ac3f9f43995ffeefde088b7d5 scid=619cfb4161d40bd440ebeadb2fcac2b2 len=46 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm ACK delay=346 blocks=[0..1]quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm CRYPTO off=0 len=36quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=34.553486ms latest_rtt=11.557915ms srtt=Some(11.557915ms) min_rtt=11.557915ms rttvar=5.778957ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=104 app_limited=true congestion_recovery_start_time=None delivered=369 delivered_time=6.583204ms recent_delivered_packet_sent_time=21.795987ms app_limited_at_pkt=369 pacing_rate=1168123 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 848625395 }) hystart=window_end=None last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonequiche: 619cfb4161d40bd440ebeadb2fcac2b2 dropped epoch 0 statequiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Short dcid=3bd8856ac3f9f43995ffeefde088b7d5 key_phase=false len=1109 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm STREAM id=4 off=0 len=18 fin=truequiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm PADDING len=1086quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=34.137202ms latest_rtt=11.557915ms srtt=Some(11.557915ms) min_rtt=11.557915ms rttvar=5.778957ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=1247 app_limited=true congestion_recovery_start_time=None delivered=369 delivered_time=7.008072ms recent_delivered_packet_sent_time=22.220785ms app_limited_at_pkt=369 pacing_rate=1168123 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 848828310 }) hystart=window_end=Some(0) last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 1350 bytesdone writingquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Handshake version=1 dcid=619cfb4161d40bd440ebeadb2fcac2b2 scid=3bd8856ac3f9f43995ffeefde088b7d5 len=23 pn=2quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm ACK delay=234 blocks=[0..0]quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 packet newly acked 0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx pkt Short dcid=619cfb4161d40bd440ebeadb2fcac2b2 key_phase=false len=434 pn=0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm ACK delay=94 blocks=[0..0]quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 packet newly acked 0quiche: 619cfb4161d40bd440ebeadb2fcac2b2 dropped epoch 1 statequiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm HANDSHAKE_DONEquiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm CRYPTO off=0 len=396quiche: 619cfb4161d40bd440ebeadb2fcac2b2 rx frm STREAM id=4 off=0 len=5 fin=truerecv 515 bytesrecv would blockdone readingstream 4 is readablebyezquiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx pkt Short dcid=3bd8856ac3f9f43995ffeefde088b7d5 key_phase=false len=4 pn=1quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm APPLICATION_CLOSE err=0 reason=[]quiche: 619cfb4161d40bd440ebeadb2fcac2b2 tx frm PADDING len=1quiche::recovery: 619cfb4161d40bd440ebeadb2fcac2b2 timer=60.858617ms latest_rtt=3.3692ms srtt=Some(9.631458ms) min_rtt=3.303141ms rttvar=6.587648ms loss_time=[None, None, None] loss_probes=[0, 0, 0] cwnd=13500 ssthresh=18446744073709551615 bytes_in_flight=38 app_limited=true congestion_recovery_start_time=None delivered=1616 delivered_time=1.08835ms recent_delivered_packet_sent_time=4.661211ms app_limited_at_pkt=0 pacing_rate=1401723 last_packet_scheduled_time=Some(Instant { tv_sec: 150459, tv_nsec: 853147728 }) hystart=window_end=Some(0) last_round_min_rtt=None current_round_min_rtt=None rtt_sample_count=0 lss_start_time=Nonesent 38 bytesdone writingtimeoutdone writingquiche: 619cfb4161d40bd440ebeadb2fcac2b2 draining timeout expiredtimeoutdone writingconnection closed, recv=5 sent=7 lost=0 rtt=9631458ns
2.3 截图
【server】
【client】
