ทำไม Network-byte-order จึงถูกกำหนดให้เป็น big-endian? [ปิด]


88

ตามที่เขียนไว้ในหัวข้อคำถามของฉันคือเหตุใดTCP / IP จึงใช้การเข้ารหัส endian ขนาดใหญ่เมื่อส่งข้อมูลไม่ใช่รูปแบบทางเลือกอื่น ๆ ของ little-endian


36
แม้ว่าจะปิดตัวลงไปแล้ว แต่หน้านี้ก็มีประโยชน์มากทีเดียว
Goaler444

1
จากคู่มือผลิตภัณฑ์นี้ภายใต้ลิงก์Big Endian : โดยทั่วไปเครือข่ายจะใช้คำสั่งซื้อขนาดใหญ่ดังนั้นจึงเรียกว่าลำดับเครือข่ายเมื่อส่งข้อมูลผ่านเครือข่ายในรูปแบบทั่วไป เครือข่ายโทรศัพท์ในอดีตและปัจจุบันใช้คำสั่งซื้อที่ใหญ่ที่สุด การทำเช่นนี้ช่วยให้สามารถกำหนดเส้นทางได้ในขณะที่กำลังประกอบหมายเลขโทรศัพท์ [... ]สันนิษฐานว่าเครือข่ายคอมพิวเตอร์ยุคแรกอาศัยเครือข่ายโทรศัพท์ของวันนี้และส่วนที่เหลือเป็นประวัติศาสตร์ ...
atravers

คำตอบ:


77

RFC1700ระบุว่าต้องเป็นเช่นนั้นนั้น (และกำหนดลำดับไบต์เครือข่ายเป็น big-endian)

หลักการในเอกสารของ Internet Protocols คือการแสดงตัวเลขเป็นทศนิยมและแสดงข้อมูลในรูปแบบ "big-endian" [COHEN] นั่นคือฟิลด์จะอธิบายจากซ้ายไปขวาโดยอ็อกเต็ตที่สำคัญที่สุดอยู่ทางซ้ายและอ็อกเต็ตที่มีนัยสำคัญน้อยที่สุดทางด้านขวา

ข้อมูลอ้างอิงที่พวกเขาทำคือเพื่อ

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

นามธรรมสามารถพบได้ที่Ien-137หรือบนนี้ IEEE หน้า


สรุป:

เลือกทางไหนก็ไม่สร้างความแตกต่างมากเกินไป การตกลงตามคำสั่งนั้นสำคัญกว่าคำสั่งที่ตกลงกันไว้

สรุปได้ว่าทั้งแผนใหญ่ - เอนด์เซียนและคนจบน้อยน่าจะเป็นไปได้ ไม่มีรูปแบบที่ดีกว่า / แย่กว่าและสามารถใช้แทนรูปแบบอื่นได้ตราบเท่าที่มีความสอดคล้องกันทั้งหมดในระบบ / โปรโตคอล


ดูเหมือนว่า RFC 3232 จะระบุว่า "RFC1700 ล้าสมัย" โดยไม่ได้ให้สิ่งใดมาทดแทน
MM

11
@ Anirudh "คำตอบ" นี้เป็นการหลีกเลี่ยงคำถาม คำถามที่จะขอเหตุผลพื้นฐานที่ว่าทำไม bigendian ถูกเลือกแทนการใช้ทางเลือก ( s ) Re " เลือกวิธีใดที่ไม่สร้างความแตกต่างมากเกินไป " ซึ่งเป็นเท็จเพราะในความเป็นจริงมีความสำคัญเนื่องจากข้อเท็จจริงที่เรียบง่ายว่าประสิทธิภาพมีความสำคัญ (และมาตรฐานดังกล่าวยึดติดอยู่ในชั้นล่างสุดของการสื่อสารเครือข่าย)
Pacerier

2
@Pacerier ไม่มีความแตกต่างในแง่ของประสิทธิภาพซึ่งเป็นสิ่งที่เอกสารที่เชื่อมโยงพูดถึงในรายละเอียด
Anirudh Ramanathan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.