質問: TCPヘッダーの予約済み/未使用のフィールドはネットワーク上で保持されますか? これは愚かな質問のように聞こえるかもしれませんが、私は異なるTCP/IPレイヤーの多くのヘッダーに未使用/予約フィールドがたくさんあることに気付きました。 たとえば、 TCPヘッダーのビット100〜103は使用されず、には0を設定します。最後に未使用のパディングフィールドもあります。 これらのフィールドの値はネットワーク上で保持されますか?パケットが異なるネットワークノードをたどるたびに再構築されるとき、それらのうちの1人がスキップすることによって最適化を行う可能性があるか、それらのフィールドがデフォルトの通常の値を使用していると仮定し、 言い換えれば、2つのデバイスは、例えば、ICMPヘッダーの予約されたフィールドなどに隠されたモールス符号に類似した何かをネットワーク上に送信することができますか?
回答: どこでも同じように動作する "ネットワーク"のようなものはありません。ネットワークはパケットをそのまま転送するルータで構成されています。そのようなパケットをそのまま通過させる可能性のあるパケットフィルタファイアウォールがあり、予約ビットが設定されている場合はこれらをブロックし、予約ビットをゼロに設定してパケットをサニタイズする可能性があります。そして、アプリケーションレベルのゲートウェイ/ファイアウォールは、効果的にTCP接続のエンドポイントであり、異なるパケットともちろん予約ビットを正当な値に設定した新しい接続を作成します。 > 言い換えれば、2つのデバイスが、例えば、ICMPヘッダーの予約されたフィールドなどに隠されたモールスコードと同様のものをネットワーク経由で送信することができますか? > > There are enough side channels how devices can communicate in a hidden way. This can be such reserved bits, timing or size of messages, application layer information like extra spaces or differentiating between upper and lower cases in text based protocols, steganographic techniques etc. Depending on the abilities of the devices of the network such side channel information will pass without changes, might be inadvertently removed or might be explicitly removed.