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.5.tbz
sha256=ebc621ad01b33a7f96fd049e71bbd06ef95c1a6b36d4072fd15fd35c1a93dc17
sha512=8d47f9434bc6472703f55f819bea21a7deb12095d925f0f8fbb8b96b799473b62a8b302966f579792354aa256b9109dcc16851f5cf951002d35a7d70bca59135

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