Dlaczego kolejność bajtów sieci jest zdefiniowana jako big-endian? [Zamknięte]

88

Jak napisano w nagłówku, moje pytanie brzmi: dlaczego TCP / IP używa kodowania big endian podczas przesyłania danych, a nie alternatywnego schematu little-endian?

Neji
źródło
36
pomimo faktu, że została zamknięta, ta strona była bardzo pomocna
Goaler444

Odpowiedzi:

77

RFC1700 stwierdził, że tak musi być . (i zdefiniowano kolejność bajtów sieci jako big-endian).

Konwencją w dokumentacji protokołów internetowych jest wyrażanie liczb w postaci dziesiętnej i przedstawianie danych w porządku „big-endian” [COHEN]. Oznacza to, że pola są opisane od lewej do prawej, z najbardziej znaczącym oktetem po lewej stronie i najmniej znaczącym oktetem po prawej stronie.

Odwołują się do

On Holy Wars and a Plea for Peace 
Cohen, D. 
Computer

Streszczenie można znaleźć na IEN-137 lub na tej stronie IEEE .


Podsumowanie:

Wybór drogi nie ma większego znaczenia. Ważniejsze jest uzgodnienie zamówienia niż to, które zamówienie jest uzgodnione.

Wynika z tego, że możliwe były zarówno schematy big-endian, jak i little-endian. Nie ma lepszego / gorszego schematu i jeden z nich można zastosować zamiast drugiego, o ile jest spójny w całym systemie / protokole.

Anirudh Ramanathan
źródło
Wydaje się, że RFC 3232 mówi, że „RFC1700 jest przestarzały”, nie dając żadnego zamiennika
MM
11
@Anirudh, Ta „odpowiedź” polega na unikaniu pytania. Pytanie jest pytaniem dla powodem dlaczego bigEndian jest wybrana zamiast alternatywnej ( -ych ). Re: „ Który obrany sposób nie robi zbyt wielkiej różnicy ”, to nieprawda, bo w rzeczywistości ma to znaczenie, ponieważ liczy się wydajność (a taki standard jest zakorzeniony w najniższych warstwach komunikacji sieciowej).
Pacerier
2
@Pacerier Nie byłoby różnicy w wydajności, o czym szczegółowo mówi artykuł, do którego prowadzi łącze.
Anirudh Ramanathan
1
@Anirudh, to może Cię zainteresować: poszukaj linku do Big Endian na wolfvision.com/wolf/commands_cynap_wolfvision/… .
atravers