namespace LiteNetLib { /// /// Sending method type /// public enum SendOptions { /// /// Unreliable. Packets can be dropped, duplicated or arrive without order /// Unreliable, /// /// Reliable. All packets will be sent and received, but without order /// ReliableUnordered, /// /// Unreliable. Packets can be dropped, but never duplicated and arrive in order /// Sequenced, /// /// Reliable and ordered. All packets will be sent and received in order /// ReliableOrdered } /// /// Network constants. Can be tuned from sources for your purposes. /// public static class NetConstants { //can be tuned public const int DefaultWindowSize = 64; public const int SocketBufferSize = 1024 * 1024; //1mb public const int SocketTTL = 255; public const int HeaderSize = 1; public const int SequencedHeaderSize = 3; public const int FragmentHeaderSize = 6; public const ushort MaxSequence = 32768; public const ushort HalfMaxSequence = MaxSequence / 2; public const int MinPacketSize = 576 - MaxUdpHeaderSize; public const int MinPacketDataSize = MinPacketSize - HeaderSize; public const int MinSequencedPacketDataSize = MinPacketSize - SequencedHeaderSize; //internal internal const string MulticastGroupIPv4 = "224.0.0.1"; internal const string MulticastGroupIPv6 = "FF02:0:0:0:0:0:0:1"; //protocol internal const int ProtocolId = 1; internal const int MaxUdpHeaderSize = 68; internal const int PacketSizeLimit = ushort.MaxValue - MaxUdpHeaderSize; internal const int RequestConnectIdIndex = 5; internal const int AcceptConnectIdIndex = 1; internal static readonly int[] PossibleMtu = { 576 - MaxUdpHeaderSize, //Internet Path MTU for X.25 (RFC 879) 1492 - MaxUdpHeaderSize, //Ethernet with LLC and SNAP, PPPoE (RFC 1042) 1500 - MaxUdpHeaderSize, //Ethernet II (RFC 1191) 4352 - MaxUdpHeaderSize, //FDDI 4464 - MaxUdpHeaderSize, //Token ring 7981 - MaxUdpHeaderSize //WLAN }; internal static int MaxPacketSize = PossibleMtu[PossibleMtu.Length - 1]; //peer specific public const int FlowUpdateTime = 1000; public const int FlowIncreaseThreshold = 4; } }