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

TCP tunnel performance between quiche and openssl #1730

Open
nunojpg opened this issue Feb 25, 2024 · 0 comments
Open

TCP tunnel performance between quiche and openssl #1730

nunojpg opened this issue Feb 25, 2024 · 0 comments

Comments

@nunojpg
Copy link

nunojpg commented Feb 25, 2024

Hi!

I have implemented a tunnel application for TCP sockets where the server runs quiche and the client runs openssl 3.2.

The streams are server initiated.

I am testing the throughput with 57MB file sent with nc and received on the other side with nc >/dev/null, in a 100M LAN connection.

The performance is about 1MB/s over the tunnel, and 10MB/s over the direct connection, and I'm trying to figure if there is any low hanging fruit to fix, particularly at the openssl (peer) side, while I couldn't find a setting on openssl CTX or SSL objects to adjust many parameters like in Quiche.

I am not CPU bounded (<5%).

quiche_conn_stats(conn, &stats);
recv                        26837
sent                        52926
lost                        0
retrans                     0
sent_bytes                  61062117
recv_bytes                  1255269
lost_bytes                  0
stream_retrans_bytes        0
paths_count                 1
reset_stream_count_local    0
stopped_stream_count_local  0
reset_stream_count_remote   0
stopped_stream_count_remote 0
quiche_conn_peer_transport_params(conn, &peer);
peer_max_idle_timeout                    30000
peer_max_udp_payload_size                1200
peer_initial_max_data                    786432
peer_initial_max_stream_data_bidi_local  524288
peer_initial_max_stream_data_bidi_remote 524288
peer_initial_max_stream_data_uni         524288
peer_initial_max_streams_bidi            100
peer_initial_max_streams_uni             100
peer_ack_delay_exponent                  3
peer_max_ack_delay                       25
peer_disable_active_migration            false
peer_active_conn_id_limit                18446744073709551615
peer_max_datagram_frame_size             93999232079873
quiche_conn_path_stats(conn, 0, &path);
Path:
validation_state     3
active               true
recv                 26837
sent                 52926
lost                 0
retrans              0
rtt                  13153611
cwnd                 12000
sent_bytes           61062117
recv_bytes           1255269
lost_bytes           0
stream_retrans_bytes 0
pmtu                 1200
delivery_rate        1029326
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

1 participant