システム設計の世界では、ネットワークはさまざまなコンポーネントを結合する接着剤です。 Web アプリケーション、分散システム、または単純なバックエンド サービスを構築する場合でも、ネットワークの仕組みを理解することが、スムーズな通信、セキュリティ、パフォーマンスを確保するための鍵となります。この章では、スケーラブルで信頼性の高いシステムを構築するために重要なネットワーキングのいくつかの核となる側面について説明します。
基礎から始めましょう。 コンピュータ ネットワークは、相互に通信する相互接続されたデバイス (コンピュータ、サーバー、ルーターなど) の集合です。これはデータの郵便システムのようなもので、さまざまなデバイスがパケットの形式で情報を送受信できるようになります。ユーザーがオンライン サービス (フード デリバリー アプリなど) を操作するとき、これらのパケットはユーザーのデバイスとアプリを動作させるサーバーの間で常に送受信されます。
例: 一般的なオフィスでは、従業員のコンピュータが LAN 経由でプリンタ、ファイル サーバー、場合によっては電話にさえ接続されています。この設定により、リソースを高速に共有できます。
例: ニューヨーク、ロンドン、東京にオフィスを持つ大企業を想像してください。オフィス内には LAN がありますが、相互に通信するには WAN を使用し、おそらくインターネットまたはプライベート接続を利用します。
ネットワークがどのように動作するかを理解するために、ネットワークを 7 つの層に分割する OSI モデル を使用します。
システム設計のほとんどの場合、特に通信プロトコル、セキュリティ、データ フローを扱う場合は、レイヤー 3 から 7 に焦点を当てます。
HTTP (ハイパーテキスト転送プロトコル) と HTTPS (HTTP Secure) は、Web 上の通信に使用される主要なプロトコルです。これらは、メッセージがどのようにフォーマットされ、クライアント (ブラウザーなど) とサーバー間で送信されるかを定義します。
例: ブラウザに「www.fooddelivery.com」と入力すると、ホームページを取得するための HTTP リクエストが送信されます。
例: ユーザーがフードデリバリー アプリで注文すると、デバイスからサーバーに送信される際の支払い詳細が HTTPS によって暗号化され、安全に保たれます。
TCP (伝送制御プロトコル) と IP (インターネット プロトコル) は、インターネットに電力を供給する 2 つの基本プロトコルです。
Beispiel: Wenn Ihre Essensliefer-App Kundendaten an den Server sendet, stellt TCP sicher, dass die gesamte Nachricht zugestellt wird, ohne dass Teile fehlen.
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 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.
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.
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.
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.
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.
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.
In any system where data travels across networks, security is paramount. Here are some key security practices for ensuring a secure system:
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.
IDS)** can help alert you when there’s an attempt to breach your network.
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.
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!