Ethernetの仕様 (MAC)
イーサネットのMAC(Media Access Control)についてまとめます。規格書ではClause 2,3に記載されています。
Claause 2.2.3 Overview of interactions
MACクライアントからは、MA_DATA.request, MA_DATA.indicationが見える。
Clause 2.3.1 MA_DATA.request
2.3.1.1 Function
MACクライアントが単一のピアもしくは複数のピア(グループアドレス時)にデータを送る。
2.3.1.2 Semantics of the service primitive
MA_DATA.requestには、destination_address, source_address, mac_service_data_unit, frame_check_sequenceが渡される。
destination_addressは個々のあるいはグループMACアドレス。 これからMACフレームの先頭に付加するDAフィールドが決まる。
source_addressは存在する場合、個々の(individual)MACアドレスを指定する。 source_addressが指定されていない場合、ローカルMACサブレイヤーが、自身に対応する値を挿入する。
mac_servie_data_unitからは、データユニットの長さを決定できる。
frame_check_sequenceが存在する場合、フレームチェックシーケンスを指定する(3.2.9参照) frame_check_sequenceが存在しない場合、MACサブレイヤが計算し、フレームの最後に付加する。
Clause MA_DATA.indication
2.3.2.1 Function
MACサブレイヤからMACクライアント(グループアドレス時には複数クライアント)へデータを転送する。
2.3.2.2 Semantics of the service primitifve
MA_DATA.indicationには、destination_address, source_address, mac_service_data_unit, frame_check_sequence, reception_statusが渡される。
frame_check_sequenceはオプション。reception_statusはステータス情報をMACクライアントに渡す。
2.3.2.3 When generated
MA_DATA.indicationは、受信したフレームが正しい形式で、エラーがなく、送付先アドレスがこのMACを指定している場合のみ、MACクライアントに渡される。
Clause 3 Media Access Control (MAC) frame and packet specifications
Clause 2で定義されているMAC Service specificationは、あくまで論理的なもので、 実際のEthernetのパケットへの対応は本節で規定している。