🎃

Web、インフラエンジニアは知らなきゃヤバイ!ネットワーク基礎(TCPIP)

2023/09/30に公開

Webエンジニアでもインフラエンジニアでもネットワークの知識は必須

インフラエンジニアはもちろんですが、WebエンジニアもTCPIPだけは理解しておくと
いいみたいです。Webサービスのシステム通信を理解しておくと強いみたいです。

説明は至らないとこもあると思いますがご了承ください。💦

ネットワークとは

複数のコンピューター同士が連携するために接続された状態です。
最近は有線ネットワークよりかは無線ネットワークが増えてきました。
最近だと回線交換方式ではなく
パケット交換方式(データを小さく分けて、同時に通信ができる)が主流になってきました。

他にも下の記事を参考にしてください。

https://www.infraexpert.com/study/networking1.html

https://qiita.com/Hashimoto-Noriaki/items/9ab06d391c3aeca3db22

Unicast、Multicast、Broadcast

通信相手の数によって変わってきます。

通信 説明
Unicast 1対1で行われるデータ通信
Multicast 1対複数で行われるデータ通信
Broadcast 1対不特定多数で行われるデータ通信

https://www.infraexpert.com/study/networking8.html

プロトコル

Protocolとは通信規約、通信手順のことです。
標準化された内容のことでたくさん種類があります。複数組みあわせて動作します。

通信モデル

通信の流れ(動作、処理)のことで流れは複数に分けます。つまり複数のプロトコルの組み合わせです。

OSI(Open Systems Interconnection)の参照モデル

7階層で構成されています。この階層が組み合わさり動作しています。

層(Layer) 名前 説明
Layer7(L7) アプリケーション層 Webブラウザやメールソフトが通信を必要とする時に動作するプログラム
Layer6(L6) プレゼンテーション層 表現の形を決める層。対向と取り決めたプロトコルに1度変換し、アプリケーション層が理解できる表現にします。イメージとして日本語とフランス語で会話をする時に、一度英語に変換して会話をするみたいなものです。
Layer5(L5) セッション層 相手のアプリケーションとの間でデータのやりとり(アプリケーション間でのデータ制御)
Layer4(L4) トランスポート層 送信するデータの品質管理(機器間でのデータ制御)
Layer3(L3) ネットワーク層 最終的な目的地までの通信経路を決定
Layer2(L2) データリンク層 直接接続された機器までの通信をし、受信したデータが壊れていないかをチェック
Layer1(L1) 物理層 データをビット列(0と1の並び)に変換して、対向に伝える

https://www.itmanage.co.jp/column/osi-reference-model/

PDUとカプセル化も知っておくといいいのでこの記事を読んでみてください。

https://atmarkit.itmedia.co.jp/ait/articles/0802/26/news135.html

TCP/IP

TCPとIPは個々のプロトコルの名称です。個々のプロトコルを意味する時と関連するプロトコルを含めた相性を意味することがあります。OSI参照モデルと同じでカプセル化、非カプセル化、データに名称があります。

⚫︎TCP(Transmission Control Protocol)
⚫︎IP(Internet Protocol)

説明 OSIで例えると 代表的なプロトコル データの名称
アプリケーション層 アプリケーションが必要とする時に動作するプログラム アプリケーション層、トランスポート層、セッション層 HTTP、FTP、SMPT メッセージ
トランスポート層 送信するデータの品質管理 トランスポート層 TCP(品質重視の通信)UDP(処理の軽さを重視) セグメントデータグラム
インターネット層 エンドツーエンドの通信を定義し、通信相手の特定、通信経路を決定 ネットワーク層 IP パケット
リンク層 直接接続された機器間の通信を定義 データリンク層、物理層 Ethernet フレーム

通信モデル

通信モデルはOSI参照モデルとTCP/IPモデル共に通信の流れを複数の処理に分割して考えます。
送信側では上位から下位に受信側では下位から上位にデータが渡されて処理されます。
機器によっては全てのレイヤーを必要としないです。

Ethernet

リンク層に該当するプロトコルです。

どのように通信するか

Ethernetフレームにアドレスを入れて通信します。
送信元アドレスSourceアドレス自分
宛先アドレス送信先アドレスDestinationアドレス相手

宛先が自分なら受信して上位レイヤー違えば破棄

Macアドレス

Ethernetでは48ビットのMacアドレスを使います。
16進数で書き、24ビットずつ意味があり、前半はメーカー識別子(OUI)、後半はメーカーで付与します。

ex) 00-00-5E-00-53-00

FF-FF-FF-FF-FF-FFはBroadcastアドレスです。

EthenetフレームとプリアンブルとIFG

以下の記事で確認してください。

https://www.infraexpert.com/study/ethernet4.html

https://server-network-note.net/2022/03/ethernet-freme-format/

Ethernet規格

まずはインターフェースとポートについてです。

https://tooljp.com/windows/chigai/html/IT/Interface-NIC-Port-chigai.html

こちらが規格の記事です。

https://www.winserver.ne.jp/column/about_ethernet/

VLAN(Virtual LAN)

Virtual(仮想)とは今使っている機器やモノを別の機器などで機能するものです。
VLANとは仮想的なL2スイッチです。異なるL2スイッチの中で実現するのがVLANです。
ブロードキャストドメインを分割できます。

VLANIDは0~4095の番号だが実際に使えるのは4094個となっているみたいです。

VLAN種類

⚫︎Static(静的)VLAN管理者などによって手動で設定されています。

⚫︎Dynamic(動的)VLANホストが持つ情報に応じて自動で設定されます。

https://wa3.i-3-i.info/diff171vlan.html

ポートVLANとタグVLAN

以下の記事から確認お願いします。

https://xtech.nikkei.com/atcl/nxt/column/18/00131/020600002/

IEEE 802.1Qとは

802.1ってところが決めたタグVLANの規格みたいです。

https://wa3.i-3-i.info/word12844.html

IP(InternetProtocol)について

インターネット層(ネットワーク層)に該当します。

IP Version4(IPv4)とIP Version6(IPv6)の2つがあります。
IPと書くときはIPv4のことです。

ARP

(AddressResolutionProtocol)の略で、IP アドレスに紐づくMACアドレスを調べます(解決)。
Request(要求)はBroadcastでReply(応答)はUnicastです。
ARPエントリをARPテーブルで管理し、ARPエントリは一定時間で消去されます。

⚫︎補足
輻輳とはネットワーク機器で処理できないような通信量が発生することで混雑することを言います。

TCP/UDP

トランスポート層に該当します。

•TCP(Transmission Control Protocol)
•UDP(User Datagram Protocol)

複数のアプリケーションからのパケットを適切に管理し、ポート番号を利用します。

TCPは通信データの品質を維持する機能があり、
コネクション管理、順序制御、再送制御、流量制御、輻輳制御をおこない、
ァイル転送のような大きく連続したデータの送信に向いています。
UDPはTCPのような品質管理はしません。必要なら上位のアプリケーション側でおこないます

特に大事なところはTCPIP

特に大事なところはTCPIPです。

有益書籍

マスタリングTCPIP入門がいいみたいです。

https://www.amazon.co.jp/マスタリングTCP-IP―入門編―-第6版-井上-直也/dp/4274224473

こちらの方も動画で取り上げていました。

https://www.youtube.com/watch?v=L3pEmLuHx-0

マスタリングTCPIPの解説

https://ysk-pro.hatenablog.com/entry/tcp

参考資料

こちらのUdemyは基本的なとこを効率良く学ぶことにおすすめです。

https://www.udemy.com/course/network_fundamentals_starting_from_zero/?utm_source=aff-campaign&LSNPUBID=kPk%2Fb7Y*62E&utm_medium=udemyads&ranMID=47984&ranSiteID=kPk_b7Y.62E-iAF3H5.HSwihYLvQ36RN2g

https://ysk-pro.hatenablog.com/entry/tcp

Discussion