-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Use full TLS record size for application data on Windows #95595
Use full TLS record size for application data on Windows #95595
Conversation
Tagging subscribers to this area: @dotnet/ncl, @bartonjs, @vcsjones Issue DetailsCloses #51478.
|
This should wait until #87874 is merged to prevent conflicts. Some parts may be no longer necessary after that change. |
bdf91e7
to
600563f
Compare
/azp run runtime-libraries-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Many work items seem to be failing on CI (especially in the outerloop pipeline), but I went through the failures reported for System.Net.Security.Tests and System.Net.Http.Functional.Tests and the console output shows no failures. @dotnet/dnceng Could you please have a look? |
We currently have no known ongoing issues. Please point me to a particular error? |
I'm not sure what @rzikm had in ind. But for example https://helixre107v0xdcypoyl9e7f.blob.core.windows.net/dotnet-runtime-refs-pull-95595-merge-b3746c6d13a44017a0/Common.Tests/1/console.a0e72f3a.log?helixlogtype=result it seems like the tests executed but it is reported as failure.
|
Looks like you're also running into #95762. Perhaps connected and something is significantly breaking test reporting in these runs? |
Don't reduce MaximumMessage by Header and Trailer sizes (they are not included in the size limit).
Previous behavior led to us not consuming input in multiples of power of 2 which led to unnecessary fragmenting of data into TLS packets. The behavior was most noticeable when using 16kB buffer in calls to Write(Async) functions. Where we would split it into two TLS packets with the latter containing only about 40 B of useful data (see wireshark captures below).
This PR also removes some unsafe annotations on the code path.
WireShark captures (Windows)
before (notice the 135B TLS packets)
after
Benchmarks (Windows)
The LargeReadWriteAsync benchmarks use 64kB buffers, so this PR should reduce the number of encryption calls by 1/5