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.9.tbz
sha256=f406db87adc00e711817f83ce3c89b8dee14edac36aa3e90446800f37173efdc
sha512=446650dad4ecc587b3b1c76a035f9aebb4884494352cf704a6660f87e3073931034547f7d30709c63a9d2930ced3d10ac1a12b4745abb06c1164d7c749d3b513

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