views:

777

answers:

3

In what byte order does data transfer occur on net? Is it Little Endian or big endian? How is it converted to the respective byte order once the data reaches the host ?

+3  A: 

"Network byte order" is Big Endian, and protocols such as TCP use this for integer fields (e.g. port numbers). Functions such as htons and ntohs can be used to do conversion.

The data itself doesn't have any endianness it's entirely application defined, unless you're using a Presentation Layer such as XDR.

+1  A: 

Its transferred in whatever order you send it.

Traditionally, internet protocols use big endian, because the machines doing most of the communication were big endian.

However, if you define your own structures to send across the net, there is no need to follow that convention.

With C programming, typically, one often uses the htons or ntohs macros to do the conversion.

Matthias Wandel
+1  A: 

if you are using tcp using htons((short)port) enables you to use network safe protocol(basically big endian) and dont care about little vs. big endian.

if you do need to convert use http://www.codeguru.com/forum/showthread.php?t=292902

Its explained well

grobartn