of contributing it to the ns-3 distribution.

Prior Work {#sec:Background}
==========

This is not the first attempt at implementing the Epidemic routing protocol in ns-3. In 2015 Alenazi [*et al*. ]{}published their ns-3 implementation of Epidemic [@Alenazi:2015:ERP:2756509.2756523], the code for which began the review process for inclusion in ns-3 in 2013, however that process appeared to stall in 2015, and the authors did not respond to our inquiries about the status. The existing code however was available online and we attempted to use this version for our DTN simulations, however limitations in this implementation rapidly became apparent and necessitated developing our own implementation. Since Alenazi’s implementation routes only atomic packets, not complete messages, we will refer to his implementation as PacketEpidemic in the remainder of the paper, for ease of reference.

The PacketEpidemic implementation for implements the Epidemic logic discussed in [@vahdat:2000:ERF], however it possesses many limitations. As mentioned, PacketEpidemic handles individual packets instead of messages. PacketEpidemic’s node discovery mechanism results in incorrect operation for nodes with large buffers, where the nodes repeatedly resend messages that have already been transferred. Also, PacketEpidemic does not support control message fragmentation, so control messages are limited to the size of one packet. Large 