no-src / gofs

A cross-platform real-time file synchronization tool out of the box based on Golang
Apache License 2.0
477 stars 40 forks source link

Bump github.com/quic-go/quic-go from 0.35.1 to 0.36.0 #198

Closed dependabot[bot] closed 1 year ago

dependabot[bot] commented 1 year ago

Bumps github.com/quic-go/quic-go from 0.35.1 to 0.36.0.

Release notes

Sourced from github.com/quic-go/quic-go's releases.

v0.36.0

Generic Segmentation Offload (GSO)

This release enables GSO (Generic Segmentation Offload) in the send path, drastically increasing the packet send rate. Without GSO, quic-go had to use a single (sendmsg) syscall for every UDP datagram sent. GSO allows us to pass one giant (up to 64k) datagram to the sendmsg syscall, and have the kernel chop it into MTU sized (~1300 bytes) datagrams before sending them out on the wire. For more details on syscall optimizations, CloudFlare published an excellent blog post about this a while ago. GSO is currently only available on Linux (and with kernels >4.18).

Users who are using the same net.PacketConn for QUIC and to send out non-QUIC packets now need to call the newly introduced OptimizeConn function before passing the connection to the Transport. Otherwise, calls to WriteTo will fail after GSO support was enabled. Users who are not using the same net.PacketConn in this way don't need to change anything.

We also continued our effort to further reduce allocations during data transfers (#3526). Work on improving performance even further will continue in future releases.

Other Notable Changes

  • http3: The server now returns http.ErrServerClosed instead of quic.ErrServerClosed (#3900)
  • quic-go now correctly deals with super-short idle timeouts (#3909)
  • uint62 overflows are now correctly handled in the Config (#3866)
  • only run DPLPMTUD (RFC 8899) on connections that support setting the DF bit (#3879)
  • switch to the packet number length derivation logic described in the RFC (#3885)
  • fix panics when closing an uninitialized Transport (#3908)

Full Changelog

... (truncated)

Commits
  • da298d0 docs: improve documentation of OptimizeConn (#3910)
  • 8352e5d check for uninitialized fields when closing the Transport (#3908)
  • 9acce3c http3: return http.ErrServerClosed instead of quic.ErrServerClosed (#3900)
  • e4fe289 docs: add detailed description of the quic package (#3902)
  • 28d5106 wire: switch to crypto/rand for greased transport parameter generation (#3904)
  • f57f876 respect minimum idle timeout of 3 PTOs (#3909)
  • 85764da docs: improve doc comments for the ConnectionState fields (#3901)
  • 30527c5 frame fuzzer: handle frames one by one (#3884)
  • c52b583 Merge pull request #3889 from quic-go/ackhandler-unexport-packet
  • e45c460 ackhandler: don't allocate a packet struct for non-ack-eliciting packets
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)