package mnet

  1. Overview
  2. Docs
An implementation of TCP (Transmission Control Protocol) in OCaml for Miou & Solo5

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mnet-0.0.3.tbz
sha256=85ceac44091bae441d88789b3ce9efe9e206e9905edb37fb8de10121d89c870a
sha512=cad757a660625c085f7c1f337ca7b85cf0145d1e8ef9886200be75174f51519e3443fe5757e061d76b14852a7082728448a7a484949c4a0ebd3011f328b7a25f

doc/mnet.fragments/Fragments/index.html

Module FragmentsSource

Fragments is a module that implements an IPv4/IPv6 packet reassembly algorithm with a limit on memory consumption (using an LRU) and lifetime.

The first thing to note about IPv4 and IPv6 protocols is that fragmentation is usually quite rare (in the sense that the TCP or QUIC protocol should be able to exchange packets of the correct size). However, there may be cases of fragmentation. A fairly simple example to simulate fragmentation is to ping with a size greater than 1500 bytes (which is the default size for an Ethernet interface).

Sourcemodule SBstr = Slice_bstr
Sourcetype payload =
  1. | Slice of SBstr.t
  2. | String of string

The type of content in an IPv4/IPv6 packet. It should be noted (the happy path) that if the data is a slice, it corresponds (without copying) to the Ethernet frame: this case signals to the user that there has been no fragmentation. Otherwise, the content is a reassembly (which necessarily involves copying) of the packets received.

Sourcemodule Make (Key : Hashtbl.HashedType) : sig ... end