OSIやTCP/IPのレイヤモデルを勉強してたとき、どうして複数のレイヤで誤り訂正を行うのかと疑問に思ってました。下のレイヤでやれば上はいらないはずではと。でもXBeeの実装を見てたら何と無くですが理由がわかってきました。要はMACレベルの誤り訂正は極短間の間に極少数回の再送を行うだけで、それでリカバリできない時間の伝送経路の障害は回復不可。あと実験したところでは再送によってデータが重複することもあるけれどもここもMACは面倒を見ない。なので高信頼性が必要なアプリケーションでは訂正力が強いレイヤを上に入れる、誤り訂正のオーバーヘッドが嫌であれば素通しするレイヤを使ってエラーは我慢する(というか誤り訂正ばっかりやって遅延するMACは嫌)。さらに言うと上のレイヤは下のレイヤがどんな実装かわからないので、それを見越しておく。こんなイメージなんですがどうでしょう?“””