イーサネットLANにおけるデータの送受信についてまとめてみた

そもそもイーサネットとはLANで最も利用されているプロトコルのことです。
<a href="https://qiita.com/nasii2424/items/fe5bc98772745b6fd577">イーサネットを簡単にまとめてみた</a>
イーサネットでは、通信の際にネットワークの端末をMACアドレスで識別します。

<h1>MACアドレスとは？</h1>
MACアドレスとはネットワークインターフェースカード(NIC)に割り当てられている固有の識別子で、<b>物理アドレス</b>や<b>ハードウェアアドレス</b>とも呼ばれます。
![Network-Interface-Controller.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/45ae3b61-57c2-d414-2f4c-ba5981c4cce7.jpeg)

MACアドレスは<b>48ビット(6バイト)</b>で12桁の16進数を、2桁ごとにハイフン(-)またはコロン(;)で区切って表記します。
前半の24ビットはNICのベンダーを識別するIDで<b>OUI(Organizationally Unique Identifier)</b>と呼びます。
後半の24ビットは各ベンダーが独自に割り当てます。その際にベンダー内で重複しないように割り当てています。
この2つを合わせると、世界で唯一のMACアドレスになります。
![スクリーンショット 2021-12-24 10.14.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/c71ade96-a41c-8b3e-e5de-f27e01dcef72.png)

<h1>イーサネットで扱うデータについて</h1>
イーサネットでは<b>イーサネットフレーム</b>と呼ばれるデータを扱います。
イーサネットフレームにはIEEE 802.3で規定された<b>IEEE 802.3形式</b>とIntel、Xerox、DECによって開発された<b>EthernetⅡ形式(DIX)</b>があります。
現在ではEthernetⅡ形式が広く普及していますので、EthernetⅡ形式のフレームを例に出して説明します。
![スクリーンショット 2021-12-24 10.19.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/a51bedc8-9b0d-9dbc-d212-4003738acc3b.png)
①プリアンブル：1と0のビット列の信号で、イーサネットフレームでの通信時に同期を取るために利用される。
②宛先MACアドレス：通信する宛先のMACアドレス
③送信元MACアドレス：通信する送信元のMACアドレス
④タイプ：上位層(ネットワーク層/インターネット層)のプロトコルを表す値(IPv4:0x0800、IPv6:0x86DDなど)
⑤データ：最小46バイト、最大1,500バイトのデータ<b>(パケット)</b>を格納する
⑥FCS(Frame Check Sequence):受信したデータに誤りがないかどうかをチェックするためのフィールド

ちなみに、イーサネットフレームの最大サイズを計算するにはそれぞれのサイズを加算すればいいのですが、この時<b>プリアンブルは含めない</b>ため、イーサネットフレームの最大サイズは<b>1,518バイト</b>となります。

<h1>半二重通信と全二重通信</h1>
イーサネットでは、半二重・全二重で通信を行います。

<h2>半二重通信</h2>
半二重通信は、データの送信と受信を同時に行わず、送信側と受信側が交互にデータを送信することで通信を行う方式です。
![スクリーンショット 2021-12-24 16.05.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/06576aba-edf0-7572-4e9f-2d986663e7ec.png)
半二重通信が利用される環境として、後述するリピータハブや同軸ケーブルでの接続などが挙げられます。

<h2>全二重通信</h2>
データの送信と受信を受信側と送信側が同時に行うことができる方式です。
![スクリーンショット 2021-12-24 16.08.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/cc4b7a7f-6cb2-3cf4-a361-486d759ba2d0.png)
現在一般的にツイストペアケーブルが利用されているLAN環境では、ほとんどが全二重通信になります。

<h1>CSMA/CD方式のアクセス制御</h1>
半二重通信の場合、同時にデータを送信してしまうとデータの衝突(<b>コリジョン</b>)が発生してしまいます。
データの衝突が起きるとデータの送受信ができなくなるため、<b>アクセス制御により通信を制御します。</b>

イーサネットではアクセス制御に<b>CSMA/CD(Carrier Sense Multiple Access with Collision Detection)方式</b>を採用しています。

CSMA/CD方式では、端末は通信ルート上にデータが流れていないことを確認してから、データを送信します。
その後、データの衝突が発生していないかを監視します。
衝突が発生した場合には、それを検知し、衝突が起きたことを知らせるための<b>ジャム信号</b>を送信します。

回線を共有している他の端末は、ジャム信号を受け取るとデータの送信を中止し、ランダムな時間だけ待機してからデータを再送信します。
ランダムな時間なので、先に待ち時間が終わった端末から通信を再開し、他の端末は通信が終わってから通信を開始します。
![スクリーンショット 2021-12-24 16.16.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/e4caca54-c00a-ed4b-095a-822d0a326579.png)
近年では全二重通信で通信することが多く、リピータハブも使うこともないため、CSMA/CD方式でのアクセス制御を行うケースはほとんどありません。

<hr>

<h1>参考文献</h1>
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313433303531392f63616137346666652d366561332d313161622d363732332d3565386239633366653536622e6a706567.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1430519/311cfad0-d754-ab75-4d0a-adf5e571b591.jpeg)
<a href="https://www.amazon.co.jp/gp/product/B087JKL1JH/ref=ppx_yo_dt_b_d_asin_title_o01?ie=UTF8&psc=1">シスコ技術者認定教科書 CCNA 完全合格テキスト＆問題集</a>