71689


[Wikipedia の Ethernet
のページ](https://en.wikipedia.org/wiki/Ethernet_frame#Header)を読んでいました。そこに、以下のような記述がありました。

> When used as EtherType, the length of the frame is determined by the
> location of the interpacket gap and valid frame check sequence (FCS).

つまり、 DIX 方式の Ethernet では、そのフレームの長さは interpacket gap と FCS によって決定される、と書いてあります。
interpacket gap は、自分のなんとなくの想像ですが、おそらく 0 埋めのデータが続くことをもって gap
と呼んでいるのだろう、と思っています。

ここでふと、例えば UDP など任意のデータを送れるプロトコルで、有効な FCS と 0 埋めフィールドが UDP payload
の中間に出現するようなデータを送信することになった場合、この形式だと L2 機器は Ethernet Frame
の終わりを勘違いして動作したりしないのだろうか、と疑問が生じました。

# 質問

上記の通り、 interpacket gap と FCS の要件を(偶然)満たすような payload を上位プロトコルが指定した場合に、 L2
機器は誤動作をおこしますか? おこさない場合、どのような機構でこれは回避されていますか? もしくは、自分は何か思い違いをしていますでしょうか?


CC BY-SA 4.0
2020-11-02T10:28:51.443
71670
2020-11-05T03:34:03.567
754
question
network
L2 機器はどうやって Ethernet (DIX) フレームの終わりの誤動作を防いでいる?


Interpacket gapは、無信号(データが何も送られてこない)期間の事です。どのぐらいの期間（時間）信号が無いとInterpacket
gapと判断するかは、ethernetの種類によって異なります。  
一番遅い10MbpsのEthernetだと9.8マイクロ秒、一番早い400GbpsのGigabit Ethernetだと0.24ナノ秒、などというように。

データ（payload）は、ビット列のまま送られるのではなく、0が続いて送られないように符号化されたものが送られます。  
そのため、payload中にinterpacket gapと間違われるような連続した0は存在しません。

(OP追記@2020/11/05)

例えば、 [物理層 -
プログラミング探して！](https://program.sagasite.info/wiki/index.php?%E7%89%A9%E7%90%86%E5%B1%A4#zdfb097d)
より、

> ### PCS
>
> 100BASE-
> TXは、4bitの2値（Binary）信号を、5bit長のパターンに置換する4B／5B符号を利用します（BはBinaryの意味）。さらに、特殊な5bitパターンでフレーム先頭や終端の目印を付け、次のフレームを送信するまでの空隙（IFG：インターフレームギャップ）をアイドルパターンで埋め尽くします。


CC BY-SA 4.0
2020-11-03T05:46:16.337
71689
2020-11-05T03:34:03.567
2020-11-05T03:34:03.567
3060
217
71670
answer