Skip to content
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

picoquicdemo on separate hosts #1424

Closed
alexj0l opened this issue Jan 4, 2023 · 9 comments
Closed

picoquicdemo on separate hosts #1424

alexj0l opened this issue Jan 4, 2023 · 9 comments

Comments

@alexj0l
Copy link

alexj0l commented Jan 4, 2023

Hi everyone,

is it possible to run picoquicdemo as "server" on one host and then run it from another host as client to test the performance on link between them? Sadly I didn't found anything useful for my case.

Thanks in advance.

@alexj0l
Copy link
Author

alexj0l commented Jan 4, 2023

Small update: I figured it out but now I'm getting an error on client side.
I want to test the maximal throughput achieved by picoquic by running
./picoquicdemo -D <server_name> 4443 /20000000 on client and
./picoquicdemo -p 4443 on server side.
The server is running without any problems, but the client gets the message

Starting Picoquic (v1.1.0.0) connection to server = <server_name>, port = 4443
Files not saved to disk (-D, no_disk)
Testing scenario: </200000000>
Careful: NULL SNI is incompatible with HTTP 3. Expect errors!
Max stream id bidir remote before start = 0 (0)
Starting client connection. Version = 1, I-CID: 822cc5d9fe5b8484
Max stream id bidir remote after start = -4 (0)
Waiting for packets.
Client port (AF=2): 57910.
Negotiated ALPN: h3
Almost ready!

Connection established. Version = 1, I-CID: 822cc5d9fe5b8484, verified: 1
Cannot send GET command for stream(0): /200000000
Received a request to close the connection.
Client exit with code = -1

@huitema
Copy link
Collaborator

huitema commented Jan 4, 2023

The message "NULL SNI is incompatible with HTTP 3. Expect errors!" is because you are not providing a server name. In TLS 1.3, the server name is used to verify the server certificate and prevent man-in-the-middle attacks. If you do not have a server name, things will break, just like the message says. The solution is to set an arbitrary host name using the "-n" option, as in:

./picoquicdemo -n test -D <server_name> 4443 /20000000

@alexj0l
Copy link
Author

alexj0l commented Jan 4, 2023

@huitema Thanks a lot! Is there a way to revert de load direction? Instead of download to make upload (other than swapping client and server)?

@huitema
Copy link
Collaborator

huitema commented Jan 4, 2023

The demo server supports a POST function. It is somewhat tested, but not documented very well. It probably needs some debugging.

@alexj0l
Copy link
Author

alexj0l commented Jan 5, 2023

One more question: By specifying -G reno is the client using Reno or NewReno?

@huitema
Copy link
Collaborator

huitema commented Jan 5, 2023

NewReno.

@alexj0l
Copy link
Author

alexj0l commented Jan 30, 2023

Thanks! May I ask which version of BBR is supported by picodemoquic? The first one or V2?

@huitema
Copy link
Collaborator

huitema commented Jan 30, 2023

First one, but with a series of changes somewhat similar to 2, e.g., reaction to large losses or to ECN marks.

@huitema
Copy link
Collaborator

huitema commented Feb 3, 2023

Closing the issue, after documenting the solution in the wiki

@huitema huitema closed this as completed Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants