package utcp
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
An implementation of TCP (Transmission Control Protocol) in OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
utcp-0.0.9.tbz
md5=9b2d880dea196d88943594f18945846c
sha512=c95f9461dbe4d0f520193089b9e8c0b87f326e8696c7517fa8fbc89631a3a3ea5b0f1ba9ca77236b3099b0a69bd4e5eb2ed22bf699391a34ffa270e69f2711ec
doc/CHANGES.html
0.0.9 (2026-09-23)
- deliver_in_2 (active open): clamp window scale to tcp_maxwinscale https://git.robur.coop/robur/utcp/pulls/18 and 352de4a8fd240022882125fec9ac8486144757d0
- Ignore SYN when in SYN_SENT (potential simultaneous open), instead of dropping the connection https://git.robur.coop/robur/utcp/pulls/17
- Fix range check of data_off in Segment.decode https://git.robur.coop/robur/utcp/pulls/16
- Fix unknown option encoding: length must include option type and length byte https://git.robur.coop/robur/utcp/pulls/15
0.0.8 (2026-09-08)
- Fix
Checksum.digest_string(https://github.com/robur-coop/utcp/pull/78 & https://git.robur.coop/robur/utcp/pulls/13)
0.0.7 (2026-07-30)
- In active TCP connection establishment, wakeup the receiver (same as before https://git.robur.coop/robur/utcp/pulls/2 introduced the regression) (@dinosaure https://git.robur.coop/robur/utcp/pulls/8 fixes https://git.robur.coop/robur/utcp/issues/7)
0.0.6 (2026-07-27)
- Use a red-black tree for the reassembly queue instead of a list to avoid computational complexity (OSEC-2026-11, reported by Thomas Gazagnaire, fixed in 08522428c957d796a6455d5aad434701c879fd4e)
- Rope fix tests (@hannesm https://git.robur.coop/robur/utcp/pulls/6)
- Rope coalesce in append (@hannesm https://git.robur.coop/robur/utcp/pulls/5, fixes https://github.com/robur-coop/utcp/issues/71)
- Cleanup resources in teardown (@dinosaure https://github.com/robur-coop/utcp/pull/73, @hannesm https://git.robur.coop/robur/utcp/pulls/2)
- Add num_connections (@reynir https://git.robur.coop/robur/utcp/pulls/4, fixes https://git.robur.coop/robur/utcp/issues/3)
- Migrate repository to https://git.robur.coop (repository is mirrored automatically to GitHub, issues can be reported on GitHub)
- Check bounds for buffer in User.send and User.force_enqueue (@hannesm https://git.robur.coop/robur/utcp/pulls/1)
- Only use ports 1024..65535 as source port (https://github.com/robur-coop/utcp/pull/76 @reynir @hannesm, fixes https://github.com/robur-coop/utcp/issues/74)
- Acknowledge a received segment even if it is not acceptable (see RFC 9293 Section 3.10.7.4) (https://github.com/robur-coop/utcp/pull/75 @dinosaure)
- Fix how the persist timer is started (was correct in the formal model, a typo in the implementation) (https://github.com/robur-coop/utcp/pull/77 @dinosaure)
- Remove ipaddr-cstruct from dependency cone (https://github.com/robur-coop/utcp/pull/72 @dinosaure)
0.0.5 (2026-06-17)
- Avoid assert false, also cleanup log messages (#70 @hannesm)
0.0.4 (2026-05-23)
- Deuplicate the metrics sources, there's no need for each stack constructing their own value. The "stack-id" is present as tag in each measurement. (#69 @hannesm)
0.0.3 (2026-04-30)
- Fix sequence number arithmetics, stick to unsigned int32 with "serial number arithmetics" (RFC 1982) for comparison (#68 @dinosaure)
0.0.2 (2026-02-17)
- Fix Segment.decode when the data_offset field is too small (< 5) reported by @kit-ty-kate fixed by @dinosaure and @hannesm #67 (also #66)
0.0.1 (2026-02-09)
- Initial public release
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>