トップ «前の日記(2008-11-02) 最新 次の日記(2008-11-04)» 編集

日々の破片

著作一覧

2008-11-03

_ ネットワークバイトオーダーがビッグエンディアンなのはなぜだろう

RFC791の次の記述が理由っぽい。
Whenever an octet represents a numeric quantity the left most bit in the
diagram is the high order or most significant bit.  That is, the bit
labeled 0 is the most significant bit.  For example, the following
diagram represents the value 170 (decimal).
 
                                    
                            0 1 2 3 4 5 6 7 
                           +-+-+-+-+-+-+-+-+
                           |1 0 1 0 1 0 1 0|
                           +-+-+-+-+-+-+-+-+
 
                          Significance of Bits
 
                               Figure 11.
 
Similarly, whenever a multi-octet field represents a numeric quantity
the left most bit of the whole field is the most significant bit.  When
a multi-octet quantity is transmitted the most significant octet is
transmitted first.
オクテット表記では最も左をMSB(または最上位桁)とし、「同様に」マルチバイトの場合も各オクテットは同じビット表記をすることになるので一番左をMSBとするということのようだ。
ではなぜ一番左をMSB(または最上位桁)とするかといえば、最上位を左に書きたいからではないかと思うのだが。
いずれにしろ、実在するなんらかのCPUのことは意識もしていないようだな。
本日のツッコミ(全2件) [ツッコミを入れる]
_ soda (2008-11-14 16:32)

多バイトの長〜いアドレス+経路集約を考えると、big endian の方がルータのハードウェア実装的に微妙に有利だと思います(先に届いたビットを見て経路を判断できるので)。まあIPv4は4バイトなので、あんま関係ないといえば関係ないのですが、昔は OSIを次期 IPスタックとして使おうなんて話もあったので、全く関係ないわけじゃないような。

_ arton (2008-11-15 00:31)

なるほど。最初の1オクテットを受信した時点で物理的な接続先の切り替え処理を行って……のような動きをするのなら、有利そうですね(というような想像でいいのかなぁ)。30年も前の規格だからありそうな気がします。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え