Getting ready

In this chapter, we are going to talk about endianness. It is a way of describing how the values in a buffer are ordered. There are two ways to order them:

  • Put the smallest one first (Little Endian)
  • Put the biggest one first (Big Endian)

Let's try an example. Suppose we wanted to save the hexadecimal value 0x90AB12CD. We first have to split it into bits of 0x90, 0xAB, 0x12, and 0xCD. We now can either store them with the biggest value first (Big Endian), 0x90 - 0xAB - 0x12 - 0xCD, or we could write the smallest number first (Little Endian), 0xCD - 0x12 - 0xAB - 0x90.

As you can see, it's the exact same set of values, but flipped. If this short explanation left you confused, I advise you to look at this excellent explanation by the University of Maryland's Department of Computer Science: https://web.archive.org/web/20170808042522/http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html.

There is no better endianness. Both are used in different domains: microprocessors, such as Intel, use Little Endian, and internet protocols, such as TCP, IPv4, IPv6, and UDP, use Big Endian. This is not a rule but rather a convention maintained to be backward compatible. As such, there are exceptions.

When designing your own protocol, orient yourself on the endianness of similar protocols, choose one and simply stick to it.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.36.38