見出し画像

ネットワークの基礎知識について調べてみた(OSI参照モデル/イーサネット/IP/TCP)

わたしはエンジニアとして働きはじめて1年半になりますが、学校も新卒で入社した会社も別分野だったため、ITの基礎が全然分かりません・・😂

ということで、知識ゼロの状態から全体像をつかめるようネットワークについて学習してみました。

プロトコルとは

「プロトコル」とはネットワークにおける規定です。https://www.yahoo.co.jp でいう「HTTPS」部分がプロトコルにあたります。

ISO(国際標準化機構)が複数のプロトコルをレイヤ構造に整理したモデルを、「OSI参照モデル」と言います。

下記画像のように7つのレイヤに分かれています。

画像1

カプセル化と非カプセル化

サーバーはレイヤーの上流から下流に向けて「カプセル化」処理を行って転送用データを作ります。

それに対して、クライアントが下流から上流に向けてオリジナルのアプリケーションデータに戻す処理「非カプセル化」と言います。

「カプセル化」の流れ
1:サーバーアプリケーションがデータを作成
2:トランスポート層・・・TCP/UDPのセグメントに入れる
3:ネットワーク層・・・セグメントをIPのカプセル(パケット)に入れる
4:データリンク層・・・パケットをイーサネットのカプセル(フレーム)に入れる
5:物理層・・・フレームをビットに変換して、電気信号や光信号にして送る
→これの逆が「非カプセル化」

各層の規定通りに順番に処理されると、その処理した情報はヘッダとしてデータの前に付加されていきます。

イーサネット

イーサネットはレイヤ1とレイヤ2の規格で、その規格のひとつがLANケーブルです。イーサネットは、通信する相手の識別にMACアドレスを使います。

MACアドレスとは
8ビットずつコロンやハイフンで区切って16進数で表したもの
(例)a8:66:7f:04:00:80、00-50-56-c0-00-01 

MACアドレスは前半と後半で意味が違います。

スクリーンショット 2020-06-22 22.56.22

ベンダーコード(OUI)・・・米国電気電子学会が割り当てたコード
→ これを見るとコンピューターのベンダーが分かる
ベンダー内コード・・・ベンダー内で一意に割り当てたコード
→ これを見るとどの機器なのか分かる

前半と後半のコードを合わせることで、世界で1つだけのMACコードができます。これで、データを送る相手の識別ができます。

IPアドレス

レイヤ3のプロトコルの1つがIPです。IPはIPアドレスを使用して、コンピューターを識別します。IPアドレスは32ビットの識別番号を8ビットずつ区切って、10進数で表記します。

スクリーンショット 2020-06-22 23.16.32

IPアドレスは「ネットワーク」部分と「ホスト」部分で構成されています。このネットワークアドレスとホストアドレスを識別するための数値がサブネットマスクです。

IPアドレスは「0.0.0.0」から「255.255.255.255」まであります。

IPアドレスとMACアドレスの関連付けている通信プロトコルを「ARP(アープ)」といいます。

MACアドレスとIPアドレスのちがい
MACアドレス・・・レイヤー2のコンピューターに焼き付いてる物理的なアドレス
IPアドレス・・・レイヤー3のネットワーク層で必要な論理的なアドレス

IPアドレスをARPで問い合わせることで、MACアドレスの情報が取得できます。

「割り当てられるIPアドレスの在庫がなくなる寸前」で作られたのがIPv6です。これを使うことで、IPアドレスが32ビットから128ビットに拡張され、割当可能なIPアドレスが増えました。

TCP UDP とは?

通信制御とサービスの識別を行うレイヤー4のプロトコルです。通信要件によってTCPとUDPを使い分けています。

TCP
通信するコンピューター同士が確認メッセージを送り合いながらデータをやり取りすることで、「信頼性」が高い
(例)Web、メール、ファイル共有
UDP
データを送るだけ。確認応答の手順を省くことで、「速く」通信ができる
(例)時刻の同期、名前解決

TCPとUDPは「ポート番号」を利用してデータを渡しています。すでに予約済みのポート番号のことを「ウェルノウンポート」といいます。

特に有名なのはHTTPの80番やFTPの20・21番、SMTPの25番、POP3の110番、DNSの53番などです。

参考

下記のサイトを参考にさせて頂きました。ありがとうございます🙌

さいごに

すべて理解できたわけではないですが、「プロトコルって何?」状態からは脱出できたかなと思います・・。

次は、サーバーの基本知識を学習できたら良いです👩‍💻


スキ頂けると嬉しいです〜