Conversation
…ographically-sensitive RNG call sites in this TCP-like-over-UDP protocol impl: Ephemeral ports, initial sequence numbers, and 3-way-handshake security tokens. Removed outdated clock-based ISN scheme from RFC 793 (1981).
…(with RST) any SYN, when the number of half-opened plus not-user-accepted connection reaches that limit for that `Server_socket`. The limit defaults to 64 and is configurable via a new `Node`-level socket-option. This option can be changed at will and will affect subsequent `Server_socket`s; but for an already-listening `Server_socket` the limit cannot be changed.
…or reordering) to a half-opened connection were previously limited by a more general buffer-size limit; it is now a new separate cumulatize-size per-socket option that defaults to 64Ki.
…oon-deprecated older such version.
…a soon-deprecated older such version.
…, including the config option.
… a socket could not be established hits a null pointer dereference assertion trip; it was trying to charge stats; now avoiding that. Apparently the new RST-on-backlog limit behavior uncovered this.
…t ensure ephemeral ports, ISNs, and security tokens are random-looking).
…ort_space`. / (cont) Test bug fix.
…e NetFlow DATA-in-SYN_RCVD-state queue. Uses `Net_env_simulator` to simulate losing the SYN_ACK_ACK and receiving a bunch of DATAs and saving them until hitting the limit, then dropping the rest.
…ting SYN_ACK after not getting SYN_ACK_ACK for some time. With assertions enabled (as in many debug builds and sometimes release builds), then, instead of proceeding the application would abort at that stage. Exposed when unit-testing the DATA-queue-in-SYN_RCVD limit feature.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fixes #112
fixes #113
Context regarding NetFlow
flow/README.md) TCP-like-over-UDP custom protocol/implementation, originally from 2011, residing inflow::net_flow. Unlike the other Flow modules such asflow::asyncandflow::log, which are of mainstream interest, NetFlow is a demo and test-surface by its nature at this time. It is not, for example, an implementation of QUIC or HTTP/3.Summary
flow::net_flow):assert()when retransmitting SYN_ACK after not getting SYN_ACK_ACK for some time. With assertions enabled (as in many debug builds and sometimes release builds), then, instead of proceeding the application would abort at that stage.API notes
net_flow::Server_socketwill reject (with RST) any SYN, when the number of half-opened plus not-user-accepted connection reaches that limit for thatServer_socket. The limit defaults to 64 and is configurable via a newNode-level socket-option. This option can be changed at will and will affect subsequentServer_sockets; but for an already-listeningServer_socketthe limit cannot be changed.int backlogparameter to Berkeley socket APIlisten().Impl notes
Net_env_simulatorto simulate losing the SYN_ACK_ACK and receiving a bunch of DATAs and saving them until hitting the limit, then dropping the rest.To code reviewer