Glossary

Arcus

Arcus is the lesser known Roman equivalent of the Greek goddess Iris. She is the Olympian messenger god. You know, because IP Addresses and Subnets are all about sending messages. Rainbows are cool too.

AddressFamily

The C# AddressFamily is an enum that defines the type of an IPAddress. Both IPAddress and Arcus are only concerned with InterNetwork an IPv4 address, and InterNetworkV6 an IPv6 address.

CIDR

Short for Classless Inter-Domain Routing, is a way of expressing a range of IP addresses.

Endianness

Endianness referees to the ordering of bytes in the binary representation of data.

Big-Endian

Big-Endian ordering, at times also referred to as Network Byte Order, is a left-to-right ordering of bytes where the left most bytes are most significant than right most.

For example, the decimal value of the unsigned integer 6060842 may be represented as 0x5C7B2A in hexadecimal. This hexadecimal value is composed of the three bytes 0x5C, 0x7B, and 0x28. As such the value 6060842 may be represented in Big-Endian as a byte array of [0x5C, 0x7B, 0x2A].

Gulliver

Gulliver is a C# utility package and library engineered for the manipulation of arbitrary sized byte arrays accounting for appropriate endianness and jagged byte length. It was developed by the same folks who created Arcus.

see Gulliver on GitHub

IP Address

Short for Internet Protocol Address it is a numeric representation that typically comes in two flavors IPv4 and IPv6.

IPv4

IPv4 is an IP Address that follows version 4 of the Internet Protocol. It is a 32-bit number, four bytes, with \(2^{32}\) distinct addresses. IPv4 Addresses are typically represented in a format referred to as Dotted Quad or Quad-dotted in which the four bytes making the address are delimited by a period (.) character in decimal big-endian order, such as 192.168.1.0.

IPv6

IPv6 is an IP Address following version 6 of the Internet Protocol. It is a 128-bit number, 16 bytes, with \(2^{128}\) distinct addresses. It is typically expressed in a “human readable” 1 format in Big-Endian byte order typically with hextets delimited with colons and collapses, such as the equivalent fd04:f0bf:44a0:df4e:: and fd04:f0bf:44a0:df4e:0000:0000:0000:0000.

Subnet

Subnet, also known as Subnetwork, is a logical subdivision of an Internet Protocol network. Much like IP Addresses they come in both IPv4 and IPv6 flavors.

Footnotes

1

And by “human readable” the author means a draconian format consisting of groupings of two byte hextets delimited by colons that aren’t always two bytes long and sometimes the colons do funny things as do zeros, and oh yeah, occasionally the IPv4 dotted-quad format pops up and makes things even more interesting. see RFC5952.