> For the complete documentation index, see [llms.txt](https://engineer.toggle.co.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://engineer.toggle.co.jp/chapter-1-toggle-holdings-engineer-101/ji-chu-yan-xiu/konpytnettowku.md).

# コンピューターネットワーク

## コンピューターネットワークの基本概念

### **ネットワークの定義**

コンピュータネットワークとは、コンピュータ、プリンタ、サーバーなどのデバイスを相互に接続するシステムです。これによりデバイス間でデータやリソースを共有できます。ネットワークは物理的（ハードウェア）または論理的（ソフトウェア）に接続されています。

### **ネットワークのタイプ（LAN、MAN、WAN）**

* **LAN（Local Area Network）**: LANは一定の小さな地域、たとえば家、オフィス、またはビル内に存在するネットワークです。これらは一般的に高速で、独自のネットワーク接続機器を使用します（例：イーサネットケーブルやWi-Fi）。
* **MAN（Metropolitan Area Network）**: MANはLANよりも広範囲をカバーし、一般的には都市全体や大学のキャンパスなどの広大なエリアをカバーします。MANは光ファイバーケーブルなどの高速通信技術を利用しています。
* **WAN（Wide Area Network）**: WANは国や大陸をまたいで広範囲にわたるネットワークです。インターネットは最大のWANの一つです。

### **クライアント/サーバーとピアツーピアネットワーク**

* **クライアント/サーバーネットワーク**: この種類のネットワークでは、一部のコンピュータ（サーバー）が他のコンピュータ（クライアント）にサービスを提供します。例えば、ウェブサーバーはウェブページを提供し、クライアント（あなたのパソコンなど）はそれを表示します。
* **ピアツーピアネットワーク**: ピアツーピアネットワークでは、全てのコンピュータが等しく扱われ、各コンピュータが他のコンピュータに直接接続してリソースを共有できます。例えば、ファイル共有サービスでは、ユーザー間で直接ファイルを交換します。

### **ネットワークのトポロジ（バス、リング、スター、メッシュ、ツリー）**

* **バストポロジ**: ネットワークのすべてのデバイスが単一の通信ラインに接続されています。ただし、通信ラインが壊れるとネットワーク全体がダウンするため、現代ではあまり使われていません。
* **リングトポロジ**: 各デバイスがリングのように連結されており、データは一方向に流れます。こちらも壊れやすいという欠点があります。
* **スタートポロジ**: 各デバイスが中央のノード（たとえばスイッチやハブ）に直接接続されています。これは現代のネットワークで最も一般的な形です。
* **メッシュトポロジ**: デバイスが互いに直接、組織的に接続されており、複数のパスが存在します。これにより高い冗長性と信頼性が確保されますが、設定と管理が複雑になることが欠点です。
* **ツリートポロジ**: スタートポロジとバストポロジの特徴を組み合わせた形で、中心ノードが主軸となり、その他のノードが枝分かれしていきます。これにより大規模なネットワークを効率的に管理することが可能です。

## ネットワークハードウェア

ネットワークハードウェアとは、コンピュータネットワークを作成し、維持し、改善するために必要な物理的なデバイスや機器のことを指します。これらはデータの送受信、転送、ルーティングに使われ、個々のコンピュータ、サーバ、ユーザデバイスがネットワークに接続するのを可能にします。

### **ルーター**

ルーターはネットワークの接続ポイントであり、複数のネットワークを相互に接続します。これらはデータパケットを適切な目的地へ転送する責任があり、最適な経路を決定するための複雑なアルゴリズムを使用します。ルーターは通常、ローカルエリアネットワーク（LAN）と広域ネットワーク（WAN）を接続し、ホームネットワークで最も一般的に見られます。

### **スイッチ**

スイッチはネットワーク内のデバイスを物理的に接続します。スイッチはネットワーク上の通信を制御し、データパケットを特定のデバイスに直接送信することができます。これにより、ネットワーク上の通信の衝突を防ぎ、全体的なパフォーマンスを向上させます。

### **モデム**

モデムは、「Modulator - Demodulator」の略であり、デジタル信号をアナログ信号に変換し、逆にアナログ信号をデジタル信号に変換することで通信を可能にします。これにより、コンピュータは電話回線やケーブル回線を通じてデータを送受信することができます。

### **ネットワークインターフェースカード（NIC）**

ネットワークインターフェースカード（NIC）は、コンピュータがネットワークに接続するためのアダプタです。一般的には、Ethernet NICが有線接続に、Wi-Fi NICが無線接続に使用されます。NICはデータを電気信号に変換し、ネットワークケーブルを介して他のネットワークデバイスに送信します。

### **ネットワーキングケーブルとコネクタ**

ネットワーキングケーブルとコネクタは、物理的なネットワーク接続を提供します。最も一般的なケーブルはイーサネットケーブル（Cat 5, Cat 5e, Cat 6など）で、RJ-45コネクタを使用します。その他にも光ファイバーケーブル、同軸ケーブルなどがあり、それぞれ特定の用途と環境に最適です。選択するケーブルの種類は、帯域幅の要件、距離、環境条件などによります。

## **ネットワークプロトコルと標準**

ットワークプロトコルとは、ネットワーク上でのコンピュータ間通信を可能にするための規則や規格の集まりです。これらのプロトコルは、データの送受信、エラーの検出と修正、データ転送の確認など、データ通信のさまざまな側面を定義します。

ネットワークプロトコルは、データをどのようにパケットに分割し、どのように送受信するか、どのようにエラーを検出し修正するか、どのように確認メッセージを送信するかなど、通信の詳細を規定します。これにより、異なるデバイスやソフトウェアでも共通の「言語」で通信することができます。

ネットワークプロトコルには、TCP/IP（インターネット通信）、HTTP（ウェブブラウジング）、FTP（ファイル転送）、SMTP（電子メール送信）、DNS（ドメイン名の解決）など、さまざまなタイプと目的があります。これらのプロトコルは、インターネットとその上で行われるさまざまな活動を支えています。

### **OSI参照モデル**

OSI（Open Systems Interconnection）参照モデルは、ネットワークプロトコルと通信システムを設計するためのフレームワークです。これは7つのレイヤーから構成されており、各レイヤーは特定のネットワーク機能を提供します。上から順に、アプリケーション、プレゼンテーション、セッション、トランスポート、ネットワーク、データリンク、物理の7つのレイヤーがあります。

### **TCP/IP**

TCP/IP（Transmission Control Protocol/Internet Protocol）は、インターネットで最も広く使用されているネットワークプロトコルスタックです。これは4つのレイヤー（アプリケーション、トランスポート、インターネット、ネットワークインターフェース）から構成されており、ネットワーク上でのデータ送受信の全ての側面をカバーしています。

### **HTTP, HTTPS, HTTP/2, HTTP/3**

HTTP（Hypertext Transfer Protocol）は、ウェブブラウザとウェブサーバー間の通信を制御するためのプロトコルです。HTTPS（Secure）は、HTTP通信にSSL/TLS暗号化を追加したもので、より安全な接続を提供します。HTTP/2はパフォーマンスの改善を目指して設計され、HTTP/3はさらに信頼性と速度を向上させるためにUDPベースのQUICプロトコルを使用します。

### **FTP, SFTP**

FTP（File Transfer Protocol）は、コンピュータネットワークを介してファイルを転送するためのプロトコルです。SFTP（SSH File Transfer Protocol）は、安全なデータ転送を提供するためにSSH（Secure Shell）プロトコルを使用するFTPのバージョンです。

### **DNS**

DNS（Domain Name System）は、人間にとって理解しやすいドメイン名を、コンピュータにとって理解しやすいIPアドレスに変換するためのシステムです。これにより、ユーザーはウェブサイトをそのIPアドレスではなく、ドメイン名（例えば、[www.example.com）でアクセスできます。](http://www.example.xn--com%29-j73cucyea2s7mxeyeza./)

### **DHCP**

DHCP（Dynamic Host Configuration Protocol）は、ネットワークデバイスがネットワークに接続する際に自動的にIPアドレスを割り当てるためのプロトコルです。これにより、ネットワーク管理者は各デバイスに手動でIPアドレスを設定する必要がなくなります。

### **SMTP, IMAP, POP3**

これらは電子メールの送受信に使用される主なプロトコルです。SMTP（Simple Mail Transfer Protocol）はメールの送信に使用され、IMAP（Internet Message Access Protocol）とPOP3（Post Office Protocol 3）はメールの受信に使用されます。IMAPはサーバー上でメールを管理し、POP3はメールをユーザーのローカルデバイスにダウンロードします。

## **ワイヤレスネットワーキング**

ワイヤレスネットワーキングは、コンピュータデバイスが物理的な接続（有線）なしにネットワークに接続するための技術です。これにより、ユーザーは場所に縛られずにインターネットに接続したり、デバイス間でデータを共有したりすることが可能となります。

### **Wi-Fi（802.11）**

Wi-Fiは、デバイスが無線でネットワークに接続するための最も一般的な方式で、正式にはIEEE 802.11という標準に基づいています。Wi-Fiは一般に家庭や職場、公共スペースなどで使用され、ルーターを介してブロードバンドインターネット接続を複数のデバイスで共有するのに使われます。

### **Bluetooth**

Bluetoothは、短距離の無線接続を提供するための技術です。これは、主に個々のデバイスが互いに通信するために使用されます。例えば、スマートフォンとヘッドセット、キーボード、マウス、スピーカーなどのペアリングによく使用されます。

### **5G**

5Gは、第五世代移動通信システムのことで、スマートフォンやタブレットなどのモバイルデバイスがセルラーネットワークに接続するための最新の標準です。5Gは前世代の4Gに比べて大幅に高速で、大量のデータを処理する能力があります。これにより、より高度なアプリケーション（例えば、仮想現実、拡張現実、自動運転車両）のサポートが可能になります。

## **IPアドレス**

IPアドレス（Internet Protocol address）は、インターネットプロトコルに基づくネットワーク上のすべてのデバイスが一意に識別されるための数値のラベルです。このアドレスは、デバイス間でデータを正確に送受信するために使用されます。

### **IPv4とIPv6**

IPv4（Internet Protocol version 4）は、最も一般的に使用されるIPアドレスの形式で、32ビットの数値で表され、ドットで区切られた4つの数字（例: 192.168.1.1）で構成されています。IPv6（Internet Protocol version 6）は、128ビットの数値で表され、コロンで区切られた8つのグループ（例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334）で構成されています。IPv6は、IPv4のアドレスが枯渇しつつある問題に対処するために開発されました。

### **サブネットマスクとサブネット**

サブネットマスクは、IPアドレスのどの部分がネットワークを識別し、どの部分がホスト（特定のデバイス）を識別するかを指定します。一方、サブネットは、大きなネットワークをより小さな部分（サブネット）に分割することを指します。これにより、ネットワークの管理が容易になり、トラフィックが効率的にルーティングされます。

IPv4のアドレスでよく使われるサブネットマスクの例は以下の通りです。

* 255.0.0.0: これは、最初の8ビットがネットワークアドレスに、残りの24ビットがホストアドレスに使用されることを示します。これは「/8」または「クラスA」ネットワークとも呼ばれます。
* 255.255.0.0: これは、最初の16ビットがネットワークアドレスに、残りの16ビットがホストアドレスに使用されることを示します。これは「/16」または「クラスB」ネットワークとも呼ばれます。
* 255.255.255.0: これは、最初の24ビットがネットワークアドレスに、残りの8ビットがホストアドレスに使用されることを示します。これは「/24」または「クラスC」ネットワークとも呼ばれます。

IPv6でもサブネットマスクを使いますが、その形式は異なります。例えば、「/64」はIPv6アドレスの最初の64ビットがネットワーク部分で、残りの64ビットがホスト部分であることを示します。

### **プライベートとパブリックIPアドレス**

プライベートIPアドレスは、特定のネットワーク内でのみ有効なアドレスで、そのネットワーク外部からはアクセスできません。一方、パブリックIPアドレスは、インターネット上の任意のデバイスからアクセス可能な一意のアドレスです。

### **静的と動的IPアドレス**

静的IPアドレスは、一度割り当てられると変更されないアドレスです。これは、サーバーなど、常に同じアドレスでアクセス可能でなければならないデバイスに使用されます。一方、動的IPアドレスは、デバイスがネットワークに接続するたびに変更される可能性があります。これは、DHCP（Dynamic Host Configuration Protocol）などのプロトコルによって自動的に割り当てられます。

## **ネットワークセキュリティの基本**

ネットワークセキュリティは、ネットワークとネットワークを通じて転送されるデータを不正アクセス、破壊、盗難、改ざんなどから保護するための措置や技術です。以下に、その主な要素について説明します。

### **ファイアウォール**

ファイアウォールは、不正なトラフィックをブロックしてネットワークを保護するためのセキュリティシステムです。ファイアウォールは、特定のルールに基づいてデータパケットを検査し、許可されたトラフィックのみがネットワークに通過することを確認します。これにより、不正なアクセスや攻撃からネットワークを保護することができます。

### **VPN**

VPN（Virtual Private Network）は、インターネット上で仮想的なプライベートネットワークを構築する技術です。VPNは、データを暗号化して安全に送受信するため、公共のインターネットを使用しても、まるでプライベートなネットワークを通じて通信しているかのような安全性とプライバシーを提供します。

### **マルウェアとアンチウィルスソフトウェア**

マルウェアは、ウィルス、ワーム、トロイの木馬、ランサムウェアなど、デバイスやネットワークを攻撃する悪意のあるソフトウェアの総称です。これに対抗するために、アンチウィルスソフトウェアはマルウェアを検出し、隔離し、削除することができます。これは、定期的な更新とスキャンを行うことで最大の効果を発揮します。

### **セキュリティポリシーとベストプラクティス**

セキュリティポリシーは、組織が情報資産を保護するために守るべき規則や手順を定義したものです。ベストプラクティスは、セキュリティを最大限に確保するための一般的に受け入れられた手法や手順です。これには、強力なパスワードの使用、定期的なソフトウェアの更新とパッチ適用、2要素認証の使用などが含まれます。これらは、ネットワークとデータの安全性を高める上で不可欠です。

## **ネットワークトラブルシューティングの基本**

ネットワークのトラブルシューティングは、ネットワークに問題が発生したときにその原因を特定し、解決するプロセスです。

### **ping、traceroute、ipconfig**

これらは、ネットワーク問題の診断に使用される基本的なコマンドラインツールです。

* **ping**: これは、特定のネットワークホストがアクティブであるかどうかをチェックするためのツールです。Pingは、目的地にパケットを送信し、応答を待ちます。応答時間（通常ミリ秒単位）は、ホストまでの通信速度を示します。
* **traceroute**: これは、パケットがあなたのコンピュータから目的地まで移動する経路を表示するツールです。これは、パケットがどこで遅延またはロスが発生しているかを特定するのに役立ちます。
* **ipconfig（Windows）/ ip（Linux）**: これらのツールは、コンピュータのネットワーク設定情報（IPアドレス、サブネットマスク、ゲートウェイなど）を表示します。これは、ネットワーク設定に問題がある場合に役立ちます。

## **一般的なネットワーク問題の解決方法**

一般的なネットワーク問題には、接続の遅さ、接続の断続、特定のウェブサイトへの接続失敗などがあります。これらの問題を解決するための基本的な手順には、ハードウェアの再起動（ルーターやモデム）、ネットワーク設定の確認、ソフトウェアの更新、セキュリティ設定の確認などが含まれます。

### **ネットワーク設計と管理の基本**

ネットワーク設計と管理は、効率的で安全なネットワークを構築し、維持するための重要なプロセスです。

#### **ネットワーク設計の原則**

ネットワーク設計の主な目的は、特定のニーズと要件を満たすための効率的で信頼性の高いネットワークを作成することです。これには、潜在的なユーザーの数、必要なデータ転送速度、予算、セキュリティ要件などが含まれます。良好なネットワーク設計はスケーラビリティ（成長や変化に対応する能力）、パフォーマンス、セキュリティ、管理可能性、コスト効率を考慮に入れます。

#### **ネットワーク管理のツールとベストプラクティス**

ネットワーク管理ツールは、ネットワークのパフォーマンスを監視し、問題を特定し、必要な場合はトラブルシューティングを行うために使用されます。これらには、ネットワークモニタリングツール、ネットワーク分析ツール、ネットワークマネージメントソフトウェアなどが含まれます。

ネットワーク管理のベストプラクティスには、定期的なネットワーク監視、効果的なセキュリティポリシーの実施、定期的なソフトウェアとハードウェアの更新、適切なバックアップと災害復旧プロセスの実装などが含まれます。
