paint-brush
システム設計のチートシート: ネットワークby@gavr
9,570
9,570

システム設計のチートシート: ネットワーク

トポロジの複雑さから基本プロトコルの微妙な違いに至るまで、ネットワーキングの基礎を理解することは、単なる学術的な演習ではなく、堅牢で効率的なシステムを作成するために不可欠です。 ネットワーク原理をしっかりと基盤とすることで、システムはシームレスに通信し、回復力を持って適応し、効率的に拡張できるようになります。
featured image - システム設計のチートシート: ネットワーク
Aleksandr Gavrilenko HackerNoon profile picture

これは、システム アーキテクチャ設計における特定のトピックの要点を簡単に説明する一連の記事の続きです。最初の記事はここで読むことができます。


複雑なシステムは、それぞれが特定の機能を持つ多数のコンポーネントのモザイクです。これらのコンポーネントは単独では動作しません。これらはネットワーク上で常に対話し、データとコマンドを交換します。これらの相互作用の基本を理解することが重要です。


システム全体のパフォーマンスと回復力を真に理解するには、コンポーネントがネットワーク上でどのように通信するかを理解する必要があります。

種類

ネットワークは、サイズ、アーキテクチャ、範囲、機能に基づいて 4 つのタイプに分類できます。


  • パーソナル エリア ネットワーク (PAN) : 通常は人の範囲内での個人使用のために設計されています。コンピューター、スマートフォン、スマートウォッチなどのデバイス (多くの場合 Bluetooth) を接続する場合があります。


  • ローカル エリア ネットワーク (LAN ): 家庭、オフィス、学校などの限られたエリア内のデバイスを接続します。通常、コンピュータを接続し、地理的に限定された領域内でプリンタやインターネット接続などのリソースを共有するために使用されます。


  • メトロポリタン エリア ネットワーク (MAN): LAN より広いエリアをカバーしますが、WAN よりは小さく、通常は都市または大規模なキャンパスにまたがります。地元のサービス プロバイダーは、町内の企業や家庭への接続を提供するためにこれをよく使用します。


  • ワイド エリア ネットワーク (WAN) : より広い地理的エリアに広がり、多くの場合、複数の LAN を接続します。インターネットは、世界中のコンピュータとネットワークを接続する WAN の最も顕著な例です。

コンポーネント


ネットワークの構築と維持は、特殊なハードウェア デバイスがなければ不可能です。


  • ケーブルおよびワイヤレス アクセス ポイント: 物理ケーブル (イーサネットなど) はデバイス間の有線接続を提供しますが、ワイヤレス アクセス ポイントを使用すると、Wi-Fi またはその他のワイヤレス テクノロジを使用して、物理ケーブルなしでデバイスがネットワークに接続できるようになります。


  • ネットワーク インターフェイス カード (NIC) : これらは、ネットワークへの接続を可能にするハードウェア コンポーネントであり、多くの場合、コンピューターまたはその他のデバイスに挿入されるカードです。


  • リピータ: 信号を増幅または再生成し、信号を劣化させることなく長距離伝送できるようにするネットワーク デバイス。これは主に有線および無線ネットワークで通信範囲を拡張し、長距離にわたるデータの整合性を確保するために使用されます。


  • ブリッジ:ブリッジはデータリンク層で動作します。ブリッジはリピータであり、送信元と宛先の MAC アドレスを読み取ることでコンテンツをフィルタリングする機能を追加します。同じプロトコルで動作する 2 つの LAN を相互接続するためにも使用されます。


  • ハブ: これらの基本的なネットワーキング デバイスは LAN 内の複数のデバイスを接続し、単一のネットワーク セグメントとして機能します。ハブはデータをフィルタリングできないため、データ パケットは接続されているすべてのデバイスに送信されます。


  • スイッチ: 他のデバイスを接続するネットワーク内のデバイス。すべてのデバイスに同じデータをブロードキャストするハブとは異なり、スイッチはよりインテリジェントであり、データを必要とするデバイスにのみデータを送信します。


  • ルーター: コンピューター ネットワーク間でデータ パケットを転送するデバイス。データ転送に最適なパスを決定します。通常、ルーターは LAN と WAN を接続し、動的に更新されるルーティング テーブルを備えており、これに基づいてデータ パケットのルーティングを決定します。

トポロジ

ネットワーク トポロジは、さまざまなネットワーク デバイスとコンポーネントがどのように接続され、データがどのように送信されるかを決定する構造レイアウトです。トポロジの選択は、ネットワークのパフォーマンス、スケーラビリティ、およびフォールト トレランスに大きな影響を与えます。それは主に次の 2 つのタイプに分類されます。


  • 物理: デバイス、ケーブル、その他のネットワーク コンポーネントの物理レイアウトを説明します。ネットワーク デバイスが物理的にどのように接続されているかを表します。


  • 論理: 物理設計に関係なく、ネットワーク内のデータ フローを記述します。ネットワーク デバイス間でデータがどのように送信されるかを表します。


次のタイプのトポロジが区別されます。


ポイントからポイントへ

2 つのノードまたはエンドポイント間の直接接続。これは、ネットワーク トポロジの最も単純な形式です。



利点:

  • 直接の専用リンクにより、高速データ転送が保証されます。

  • シンプルな構成とセットアップ。

  • 関与するノードが 2 つだけであるため、信頼性の高い通信が可能です。


短所:

  • デバイスのペアごとに専用回線が必要になるため、大規模なネットワークには拡張できません。
  • 複数の接続が必要なシナリオでは、個別のリンクが必要なため、コストが高くなる可能性があります。


バス

すべてのデバイスは単一の通信回線を共有します。デバイスによって送信されたデータは他のすべてのデバイスで利用できますが、そのデータを受け入れて処理するのは意図された受信者のみです。





利点:

  • 小規模ネットワークでも簡単に実装できます。

  • ケーブル配線が最小限に抑えられるため、コスト効率が高くなります。


短所:

  • デバイスが追加されたり、ネットワーク トラフィックが増加すると、パフォーマンスが低下します。
  • 1 本のケーブルに障害があると、ネットワーク全体がダウンする可能性があります。


指輪


各デバイスは他の 2 つのデバイスに接続され、リングを形成します。データは一方向、または場合によっては二方向に送信されます。






利点:

  • バス トポロジよりも大きなデータ負荷を処理できます。


短所:

  • 1 つのケーブルまたはデバイスに障害が発生すると、ネットワーク全体が停止する可能性があります。
  • インストールと再構成がより困難になります。




すべてのデバイスは中央デバイス (スイッチやハブなど) に接続されます。







利点:

  • インストールと管理が簡単です。
  • 1 つのケーブルに障害が発生しても、他のデバイスには影響しません。


短所:

  • 中央のデバイスに障害が発生すると、ネットワーク全体が動作不能になります。
  • バス トポロジよりも多くのケーブルが必要です。



スター トポロジとバス トポロジの特性を組み合わせたハイブリッド トポロジ。スター型構成のネットワークのグループは、リニア バス バックボーンに接続されます。






利点:

  • 階層的でスケーラブル。

  • デバイスをグループ化すると管理が容易になります。


短所:

  • バックボーンに障害が発生すると、ネットワークが分断されてしまいます。
  • 他のトポロジよりも多くのケーブル配線が必要です。

メッシュ


デバイスは相互接続されています。すべてのデバイスは他のすべてのデバイスに接続されています。







利点:

  • 高い冗長性と信頼性を提供します。

  • 複数のデバイスから同時にデータを送信できます。


短所:

  • より多くのケーブルが必要となり、コストが高くなります。
  • インストールと設定が複雑。

ハイブリッド



2 つ以上のトポロジの組み合わせ。








利点:

  • コンポーネント トポロジの利点を継承しているため、柔軟性と信頼性が高くなります。

  • スケーラブル。


短所:

  • 複雑なデザイン。
  • 複数の構成があるため、コストが高くなる可能性があります。

プロトコル

ネットワーク プロトコルは、ネットワーク上でデータを送受信する方法を定義するルールまたは標準です。これらのプロトコルにより、ネットワーク上 (または複数のネットワーク間) のデバイスが標準化された方法で相互に通信できるようになります。

共通プロトコル

  • TCP/IP : インターネットに電力を供給する基本的なプロトコル スイート。 TCP はデータが正しく送信されることを保証し、IP はデータが正しい場所に送信されることを保証します。
  • UDP : TCP とは異なり、データを送信する前に接続を確立せず、データ パケットの順序を保証しないコネクションレス型プロトコル。
  • HTTP、HTTPS:インターネット上で Web ページを転送するために使用されるプロトコル。 HTTPS には、データを暗号化するためのセキュリティ対策が含まれています。
  • FTP : ネットワーク上でファイルを転送するために設計されたプロトコル。
  • SMTP : 電子メールの送信に使用されます。
  • IMAP : メールサーバーからの電子メールの取得と保存に使用されます。
  • POP3 : メールサーバーから電子メールを取得するために使用されます。
  • ICMP : IP 処理に関連するエラー報告と診断に使用されます。
  • DNS : ドメイン名を IP アドレスに変換し、ユーザーが人間が読める名前を使用して Web サイトにアクセスできるようにします。
  • DHCP : ネットワーク上のデバイスに IP アドレスを動的に割り当てます。
  • SSL/TLS : 暗号化プロトコルは、コンピューター ネットワーク上で安全な通信を提供するように設計されています。
  • PPP : ポイントツーポイント プロトコル (PPP) は、基本的に、フレームを使用しないさまざまな接続またはリンクのための非対称プロトコル スイートです。
  • イーサネット: ローカル エリア ネットワーク (LAN) 上のデバイスが通信する方法を定義します。これは、OSI モデルの物理層とデータリンク層の両方で動作します。

OSI および TCP/IP モデル

OSI と TCP/IP は、ネットワーク上のデータ通信に関与するプロセスを記述するガイド フレームワークとして機能する 2 つの主要なモデルです。


OSIモデル

プロトコル

データ形式

TCP/IPモデル

7

応用

HTTP、DNS、SMTP、FTP

データ

応用

6

プレゼンテーション

TLS、SSL

データ

応用

5

セッション

ソケット

データ

応用

4

輸送

TCP、UDP

セグメント、パケット

輸送

3

通信網

IP、ICMP、IPsec

IPデータグラム

インターネット

2

データリンク

PPP、イーサネット

フレーム

ネットワークインターフェース

1

物理的な

ファイバー、ワイヤレス

少し

ネットワークインターフェース


OSI (Open Systems Interconnection) モデルは、ネットワーク相互作用を 7 つの層で理解するための概念的なフレームワークです。各層は特定の機能を果たします。


  1. Physical : デバイス間の物理的な接続を処理します。ケーブル、スイッチ、NIC などのハードウェア要素を定義します。


  2. データ リンク: 直接接続された 2 つのノード間の信頼性の高いリンクの作成、エラーの処理、およびデータ フローの調整を担当します。


  3. ネットワーク: ネットワークを介してソースから宛先にデータを転送するための最適なパスを決定します。


  4. トランスポート: エンドツーエンド通信、データ フロー制御、およびエラー修正を保証します。


  5. セッション: 両端でアプリケーション接続を確立、維持、終了します。


  6. プレゼンテーション: アプリケーション層とトランスポート層の間でデータを変換し、データが読み取り可能であることを確認します。


  7. アプリケーション: エンドユーザー アプリケーションと直接対話し、ソフトウェアと OSI モデルの下位層間の効果的な通信を確保します。


TCP/IP は、現代のインターネットで主に使用されているより簡潔なモデルであり、OSI 層を次の 4 つのカテゴリに単純化します。


  1. ネットワーク インターフェイス: ネットワーク メディア上でのデータの送受信方法に焦点を当て、OSI の物理層とデータ リンク層の機能を組み合わせます。


  2. インターネット: OSI のネットワーク層に相当し、データ ルーティング、IP アドレス指定、およびパケット転送を処理します。


  3. トランスポート: OSI のトランスポート層と同様に、データが適切なアプリケーションに到達し、確実に (TCP) または迅速に (UDP) 送信されるようにします。


  4. アプリケーション: OSI のセッション層、プレゼンテーション層、およびアプリケーション層の機能を統合し、エンドユーザーのアプリケーション プロセスを処理します。

安全

システム設計では、機密データを保護し、ユーザーや関係者の信頼を維持し、ビジネスの継続性を確保し、規制要件を満たすために、堅牢なネットワーク セキュリティを確保することが最も重要です。

一般的な脅威と脆弱性

  1. DDoS 攻撃: 大量のインターネット トラフィックで対象のサーバー、サービス、またはネットワークを圧倒することにより、その通常のトラフィックを妨害する悪意のある試み。


  2. マルウェア: コンピュータ システムを中断、損傷、または不正アクセスするように設計されたソフトウェア。これには、ウイルス、ワーム、スパイウェア、ランサムウェアが含まれます。


  3. 中間者攻撃: 攻撃者は、2 者間の通信を密かに傍受し、中継します。彼らは一方の当事者を盗聴したり、なりすまして、もう一方の当事者を騙したりする可能性があります。


  4. 内部関係者の脅威: セキュリティ慣行に関する内部情報を持つ従業員、元従業員、またはパートナーなど、組織内から発生する脅威。


  5. ソフトウェアの欠陥: ソフトウェアのバグや弱点が悪用されて、不正アクセスが行われたり、サービスが中断されたりする可能性があります。例には、バッファ オーバーフローや未処理の例外が含まれます。


  6. ハードウェアの弱点: 物理コンポーネントには、改ざんされる可能性のあるファームウェアやメーカーによってインストールされたバックドアなどの脆弱性が存在する可能性があります。


  7. 正しく構成されていないネットワーク デバイス: 正しく構成されていないルーター、スイッチ、ファイアウォールなどのデバイスは、ネットワークをさまざまな脅威にさらす可能性があります。


  8. 弱い認証と認可: パスワード ポリシーが不十分であるか、多要素認証が欠如しているか、アクセス制御が緩い場合、不正アクセスが許可される可能性があります。


  9. 暗号化されていないデータ: 暗号化されていないデータは、ネットワーク上を移動するときに簡単に傍受され、読み取られる可能性があります。


  10. 古いシステム: サポートが終了したか、更新されていないシステムには、悪用されやすい既知の脆弱性が存在する可能性があります。


  11. 物理的脆弱性: これは、攻撃者がネットワークに接続したりサーバーに直接アクセスしたりできる物理的なアクセス ポイントを指します。

ネットワークセキュリティを確保するためのベストプラクティス

  1. ファイアウォール: ハードウェアおよびソフトウェアのファイアウォールを導入し、セキュリティ ポリシーに基づいて送受信ネットワーク トラフィックを監視および制御します。


  2. 暗号化: 特に機密データには、転送中 (Web トラフィックの SSL/TLS など) と保存中 (データベース暗号化など) の両方で暗号化プロトコルを使用します。


  3. 定期的なアップデート: すべてのシステム、ソフトウェア、アプリケーションを常に最新の状態に保ち、脆弱性にパッチを当てます。


  4. 多要素認証 (MFA) : MFA を実装してセキュリティ層を追加し、ユーザーがアクセスを取得するために 2 つ以上の検証要素を提供できるようにします。


  5. ネットワーク監視: ネットワーク監視ツールを使用して、異常なアクティビティや不正アクセスがないかネットワークを継続的に監視します。


  6. セキュリティ意識向上トレーニング: セキュリティの重要性と潜在的な脅威を認識する方法について従業員とユーザーを教育します。


  7. ネットワーク セグメンテーション: ネットワーク内での脅威の拡散を制限し、データ アクセスをより適切に制御します。


  8. バックアップと災害復旧: 侵害や障害が発生した場合でも、データの可用性とビジネスの継続性を確保します。


  9. 物理的セキュリティ: ネットワーク デバイスへの物理的なアクセスは侵害につながる可能性があります。

結論

トポロジの複雑さから基本プロトコルの微妙な違いに至るまで、ネットワーキングの基礎を理解することは、単なる学術的な演習ではなく、堅牢で効率的なシステムを作成するために不可欠です。


ネットワーク原理をしっかりと基盤とすることで、システムはシームレスに通信し、復元力を持って適応し、効率的に拡張できるようになります。