Netzwerkgrundlagen

Mary-Kate Olsen
Freigeben: 2024-10-06 06:07:31
Original
468 Leute haben es durchsucht

Network fundamentals

システム設計の世界では、ネットワークはさまざまなコンポーネントを結合する接着剤です。 Web アプリケーション、分散システム、または単純なバックエンド サービスを構築する場合でも、ネットワークの仕組みを理解することが、スムーズな通信、セキュリティ、パフォーマンスを確保するための鍵となります。この章では、スケーラブルで信頼性の高いシステムを構築するために重要なネットワーキングのいくつかの核となる側面について説明します。


1.コンピュータネットワークの基礎

基礎から始めましょう。 コンピュータ ネットワークは、相互に通信する相互接続されたデバイス (コンピュータ、サーバー、ルーターなど) の集合です。これはデータの郵便システムのようなもので、さまざまなデバイスがパケットの形式で情報を送受信できるようになります。ユーザーがオンライン サービス (フード デリバリー アプリなど) を操作するとき、これらのパケットはユーザーのデバイスとアプリを動作させるサーバーの間で常に送受信されます。

ネットワークの種類:
  1. ローカル エリア ネットワーク (LAN): これは、建物やキャンパスなどの限られたエリア内のデバイスを接続するネットワークです。たとえば、コンピュータとプリンタが有線または無線接続を介して通信するオフィス ネットワークなどです。 LAN の主な特徴は、高速であり、通常は狭いスペースに制限されることです。

: 一般的なオフィスでは、従業員のコンピュータが LAN 経由でプリンタ、ファイル サーバー、場合によっては電話にさえ接続されています。この設定により、リソースを高速に共有できます。

  1. ワイド エリア ネットワーク (WAN): これはより広いエリアをカバーし、複数の LAN を接続します。インターネットを WAN の最大の例として考えてください。これにより、世界のさまざまな地域が相互に通信できるようになります。

: ニューヨーク、ロンドン、東京にオフィスを持つ大企業を想像してください。オフィス内には LAN がありますが、相互に通信するには WAN を使用し、おそらくインターネットまたはプライベート接続を利用します。

ネットワーク層と OSI モデル:

ネットワークがどのように動作するかを理解するために、ネットワークを 7 つの層に分割する OSI モデル を使用します。

  1. 物理層: これは、ケーブル、スイッチ、無線伝送などのハードウェアの側面です。
  2. データリンク層: 同じローカルネットワーク上のデバイス間の通信を管理します。
  3. ネットワーク層: データ パケットをあるデバイスから別のデバイスに送信する方法 (ルーティングなど) を決定します。
  4. トランスポート層: データの信頼性の高い送信を保証し、フロー制御を管理し、エラーを処理します (ここで TCP が動作します)。
  5. セッション層: 2 つのデバイス間の接続を管理し、必要な間セッションを開いたままにします。
  6. プレゼンテーション層: システムが相互に理解できるようにデータ形式を変換します。
  7. アプリケーション層: ブラウザや電子メール クライアントなどのアプリケーションが動作する層。ここで、操作するデータが関係します。

システム設計のほとんどの場合、特に通信プロトコル、セキュリティ、データ フローを扱う場合は、レイヤー 3 から 7 に焦点を当てます。


2. HTTP/HTTPS、TCP/IP、DNS、ロードバランサー

HTTP/HTTPS:

HTTP (ハイパーテキスト転送プロトコル)HTTPS (HTTP Secure) は、Web 上の通信に使用される主要なプロトコルです。これらは、メッセージがどのようにフォーマットされ、クライアント (ブラウザーなど) とサーバー間で送信されるかを定義します。

  • HTTP は、Web サイトに対するリクエストの背後にあるプロトコルです。たとえば、Web ページを読み込むと、ブラウザはその Web ページをホストしているサーバーに HTTP リクエストを送信し、サーバーはページのコンテンツを含む HTTP 応答を送り返します。

: ブラウザに「www.fooddelivery.com」と入力すると、ホームページを取得するための HTTP リクエストが送信されます。

  • HTTPS は HTTP の安全なバージョンです。送信されるデータを暗号化し、パスワードやクレジット カード番号などの機密情報が攻撃者によって傍受されないようにします。

: ユーザーがフードデリバリー アプリで注文すると、デバイスからサーバーに送信される際の支払い詳細が HTTPS によって暗号化され、安全に保たれます。

TCP/IP:

TCP (伝送制御プロトコル)IP (インターネット プロトコル) は、インターネットに電力を供給する 2 つの基本プロトコルです。

  • TCP sorgt für eine zuverlässige Kommunikation zwischen Geräten. Es zerlegt Nachrichten in Pakete und stellt sicher, dass sie korrekt und in der richtigen Reihenfolge zugestellt werden. Wenn Pakete unterwegs verloren gehen, werden sie von TCP erneut übertragen. Dies macht es ideal für Anwendungen, bei denen die Datenintegrität von entscheidender Bedeutung ist, wie z. B. Dateiübertragungen oder Surfen im Internet.

Beispiel: Wenn Ihre Essensliefer-App Kundendaten an den Server sendet, stellt TCP sicher, dass die gesamte Nachricht zugestellt wird, ohne dass Teile fehlen.

  • IP ist für die Adressierung und Weiterleitung von Paketen an das richtige Ziel verantwortlich. Stellen Sie sich IP-Adressen als Adressen auf Umschlägen vor. Sie teilen dem Netzwerk mit, wohin Daten gesendet werden sollen.

Beispiel: Wenn Sie eine Anfrage von Ihrem Telefon stellen, verwendet es Ihre IP-Adresse, um Daten an den Server weiterzuleiten. Der Server verfügt über eine eigene IP-Adresse, sodass Pakete korrekt an Sie zurücksenden können.

TCP/IP bilden zusammen das Rückgrat der Internetkommunikation. Es ist wie ein zuverlässiger Postdienst: TCP stellt sicher, dass der Paketinhalt intakt ist, und IP sorgt dafür, dass er am richtigen Ort ankommt.

DNS (Domain Name System):

DNS ist wie das Telefonbuch des Internets. Anstatt uns IP-Adressen zu merken (die wie Telefonnummern für Server sind), verwenden wir Domänennamen wie „www.example.com“. DNS löst diese Namen in IP-Adressen auf, sodass Ihr Gerät weiß, wohin es die Anfrage senden soll.

  • Beispiel: Wenn ein Benutzer „www.fooddelivery.com“ in seinen Browser eingibt, fragt sein Gerät einen DNS-Server ab, um die mit dieser Domäne verknüpfte IP-Adresse zu finden, und stellt dann eine Anfrage an diesen Server.
Load Balancer:

Ein Load Balancer ist bei der horizontalen Skalierung von entscheidender Bedeutung. Dabei handelt es sich um ein Tool, das den eingehenden Datenverkehr auf mehrere Server verteilt, um sicherzustellen, dass kein einzelner Server überlastet wird. Dadurch wird Ihr System skalierbarer und fehlertoleranter.

  • Beispiel: Stellen Sie sich vor, es ist Mittag und alle versuchen, Bestellungen über Ihre Essensliefer-App aufzugeben. Sie haben 10 Server, die bereit sind, Anfragen zu bearbeiten, aber anstatt dass der gesamte Datenverkehr an einen Server geht, verteilt der Load Balancer die Anfragen gleichmäßig. Dadurch wird sichergestellt, dass kein Server überlastet wird, was Ausfallzeiten verhindert und schnelle Reaktionszeiten für Benutzer gewährleistet.

3. Content Delivery Networks (CDN)

CDNs sind eine hervorragende Möglichkeit, die Latenz zu reduzieren und die Leistung für Benutzer zu verbessern, die über verschiedene Standorte verteilt sind. Ein CDN ist ein verteiltes Netzwerk von Servern auf der ganzen Welt, die zwischengespeicherte Versionen Ihrer Inhalte speichern. Wenn ein Benutzer etwas von Ihrer Website anfordert, stellt das CDN diesen Inhalt vom nächstgelegenen Server und nicht von Ihrem Hauptserver bereit, wodurch die Ladezeit verkürzt wird.

Beispiel: Nehmen wir an, Ihre Essensliefer-App hat Kunden in Indien und den USA, aber Ihre Hauptserver befinden sich in Europa. Ohne ein CDN könnten Benutzer in Indien langsame Ladezeiten erleben, da ihre Anfragen den ganzen Weg nach Europa reisen müssen. Aber mit einem CDN kann ein Server in Indien zwischengespeicherte Bilder, Restaurantdetails und statische Inhalte bereitstellen, wodurch sich die App schneller anfühlt.

Vorteile von CDNs:
  • Reduzierte Latenz: Da Daten von einem Server bereitgestellt werden, der näher am Benutzer liegt, erleben sie schnellere Ladezeiten.
  • Lastverteilung: Ein CDN trägt dazu bei, die Belastung Ihrer Hauptserver zu reduzieren, indem es Anforderungen für statische Inhalte wie Bilder, CSS-Dateien und Skripte auslagert.
  • Verbesserte Verfügbarkeit: Selbst wenn Ihre Hauptserver ausfallen, kann das CDN weiterhin zwischengespeicherte Versionen Ihrer Website bereitstellen und so die Verfügbarkeit verbessern.

4. SSL, TLS und Sicherheit im Netzwerk

Sicherheit ist in jedem System ein wichtiges Anliegen, und die wichtigsten Technologien zur Gewährleistung einer sicheren Kommunikation über Netzwerke sind SSL (Secure Sockets Layer) und TLS (Transport Layer Security). Diese Protokolle verschlüsseln die zwischen Clients und Servern gesendeten Daten und stellen so sicher, dass vertrauliche Informationen wie Passwörter und Zahlungsdetails vor Abhörern geschützt sind.

SSL und TLS:
  • SSL war das ursprüngliche Protokoll zur Sicherung der Kommunikation, wurde jedoch weitgehend durch das sicherere TLS ersetzt. Wenn Sie „https://“ in der URL einer Website sehen, bedeutet das, dass die Verbindung mit SSL/TLS gesichert ist.

Beispiel: Wenn ein Benutzer in Ihrer Essensliefer-App seine Kreditkarteninformationen übermittelt, um eine Zahlung durchzuführen, werden die Daten mit TLS verschlüsselt, bevor sie an den Server gesendet werden. Dadurch wird sichergestellt, dass selbst wenn jemand die Daten abfängt, er sie nicht lesen kann, da sie verschlüsselt sind.

  • Handshake Process: TLS uses a handshake process to establish a secure connection. The client (user’s browser) and the server exchange cryptographic keys to establish a secure connection. Once the connection is established, all subsequent communication is encrypted.

Example: When a user opens your app, their device and your servers go through this handshake to agree on how to encrypt the data before any sensitive information, like login details or payment info, is transmitted.

Importance of Security in Networking:

In any system where data travels across networks, security is paramount. Here are some key security practices for ensuring a secure system:

  • Encryption: Always encrypt sensitive data in transit using protocols like TLS to prevent man-in-the-middle attacks.
  • Firewall Protection: Use firewalls to restrict access to your servers. Only allow trusted traffic through predefined ports and block unauthorized attempts.
  • API Rate Limiting: Protect your system from DDoS (Distributed Denial of Service) attacks by limiting the number of requests each client can make within a certain time window.

Example: Let’s say a malicious actor tries to overwhelm your food delivery app by sending millions of fake requests. API rate limiting can throttle these requests and prevent the system from crashing.

  • Security Monitoring: Use monitoring tools to detect unusual traffic patterns or potential intrusions. Tools like **Intrusion Detection Systems (

IDS)** can help alert you when there’s an attempt to breach your network.

Certificates:

To enable SSL/TLS, you need an SSL certificate, which verifies the identity of your website or server. Certificates are issued by trusted entities called Certificate Authorities (CAs), which guarantee that your website is legitimate.

Example: When you purchase an SSL certificate for your food delivery app’s domain, it’s issued by a CA like Let’s Encrypt or DigiCert. This tells users that their data is safe and that they’re actually interacting with your app, not an imposter.

Two-Factor Authentication (2FA):

Implementing 2FA is an additional layer of security, requiring users to provide two forms of identification (typically something they know, like a password, and something they have, like a mobile device). This makes it much harder for attackers to compromise accounts.

Example: In your food delivery app, enabling 2FA for users can help prevent unauthorized access even if their password is stolen.

Das obige ist der detaillierte Inhalt vonNetzwerkgrundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!