-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
0-rtt support #213
Comments
Can you give some additional information? May be a pointer to the spec.... |
I know how to set/reuse 0-rtt session only google-quic version(Q043-Q050), but I have no any ideal to ietf quic version.
|
Ok, what is the use case for Webtransport. Probably mainly for the server, if it is for the client, where is it in the spec for the WebTransport web javascript interface. Is it just to save the crypto config of the server or client for later? |
the crypto config can also be saved in memory for web server/client?
|
Yes, but what will be the use case? That I need to understand how to draft an API for this feature (and also for deciding, if I want to support it). |
I've just come across this problem as well. I'm trying to accept connections from I'm trying to create a simple reproduction, it's something like: package main
import (
"context"
"crypto/tls"
_ "embed"
"fmt"
"log"
"github.com/quic-go/quic-go"
"github.com/quic-go/webtransport-go"
)
func main() {
addr := "127.0.0.1:35909"
url := "https://127.0.0.1:35909"
ctx := context.Background()
// n.b. need to load the server cert here if it's self-signed
tlsConf := &tls.Config{}
quicConf := &quic.Config{}
earlyConn, err := quic.DialAddrEarly(ctx, addr, tlsConf, quicConf)
if err != nil {
log.Fatal(err)
}
dialer := webtransport.Dialer{
DialAddr: func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (quic.EarlyConnection, error) {
return earlyConn.(quic.EarlyConnection), nil
},
QUICConfig: quicConf.Clone(),
}
rsp, sess, err := dialer.Dial(ctx, url, nil)
if err != nil {
log.Fatal(err)
}
if rsp.StatusCode < 200 || rsp.StatusCode > 299 {
err := fmt.Errorf("invalid response status code from %s : %d", url, rsp.StatusCode)
log.Fatal(err)
}
//...do something with sess
} The client always gets a 404 from a From what I can see the request gets to this line but there's no WebTransport session yet so it continues to this line and a 404 is returned. |
The use case is transferring small amounts of data - connection establishment ends up adding significant overhead when the expected data payload is small so 0-RTT makes this much more viable. |
I am not sure if it is the same thing. |
I have read a little more in the specs you find in [https://datatracker.ietf.org/doc/html/draft-ietf-webtrans-http3-07:
Older revisions state that it is impossible to use 0-rtt at all. |
You can look at: |
can server/client save the cfg/session file to use 0-rtt ?
The text was updated successfully, but these errors were encountered: