네트워크 기본 사항

Mary-Kate Olsen
풀어 주다: 2024-10-06 06:07:31
원래의
522명이 탐색했습니다.

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는 기기 간 안정적인 통신을 보장합니다. 메시지를 패킷으로 나누고 올바른 순서로 올바르게 전달되도록 보장합니다. 도중에 패킷이 손실되면 TCP는 해당 패킷을 다시 전송합니다. 이는 파일 전송이나 웹 탐색과 같이 데이터 무결성이 중요한 애플리케이션에 적합합니다.

: 음식 배달 앱이 고객 세부정보를 서버로 보내는 경우 TCP는 전체 메시지가 누락된 부분 없이 전달되도록 합니다.

  • IP는 패킷의 주소를 지정하고 올바른 대상으로 라우팅하는 역할을 담당합니다. IP 주소를 봉투의 주소로 생각하십시오. 네트워크에 데이터를 보낼 위치를 알려줍니다.

: 휴대전화에서 요청하면 휴대전화는 IP 주소를 사용하여 데이터를 서버로 라우팅합니다. 서버에는 자체 IP 주소가 있어 패킷이 사용자에게 올바르게 반환될 수 있습니다.

TCP/IP는 함께 인터넷 통신의 백본을 형성합니다. 이는 신뢰할 수 있는 우편 서비스와 같습니다. TCP는 패키지 내용물이 손상되지 않도록 보장하고 IP는 패키지가 올바른 위치에 도착하도록 보장합니다.

DNS(도메인 이름 시스템):

DNS는 인터넷의 전화번호부와 같습니다. 서버의 전화번호와 같은 IP 주소를 기억하는 대신 "www.example.com"과 같은 도메인 이름을 사용합니다. DNS는 이러한 이름을 IP 주소로 확인하므로 장치가 요청을 보낼 위치를 알 수 있습니다.

  • : 사용자가 브라우저에 "www.fooddelivery.com"을 입력하면 해당 장치는 DNS 서버에 쿼리하여 해당 도메인과 연결된 IP 주소를 찾은 다음 해당 서버에 요청합니다.
로드 밸런서:

로드 밸런서는 수평 확장 시 매우 중요합니다. 들어오는 트래픽을 여러 서버에 분산하여 단일 서버가 과부하되지 않도록 하는 도구입니다. 이를 통해 시스템의 확장성과 내결함성이 향상됩니다.

  • : 점심시간이고 모두가 음식 배달 앱에서 주문을 하려고 한다고 상상해 보세요. 요청을 처리할 준비가 된 10개의 서버가 있지만 모든 트래픽이 한 서버로 이동하는 대신 로드 밸런서는 요청을 균등하게 분산시킵니다. 이를 통해 어떤 서버도 과부하되지 않고 가동 중지 시간을 방지하며 사용자에게 빠른 응답 시간을 보장합니다.

3. 콘텐츠 전송 네트워크(CDN)

CDN은 다양한 위치에 분산된 사용자의 지연 시간을 줄이고 성능을 향상시킬 수 있는 훌륭한 방법입니다. CDN은 콘텐츠의 캐시된 버전을 저장하는 전 세계에 분산된 서버 네트워크입니다. 사용자가 웹사이트에서 무언가를 요청하면 CDN은 기본 서버가 아닌 사용자에게 가장 가까운 서버에서 해당 콘텐츠를 제공하므로 로드하는 데 걸리는 시간이 줄어듭니다.

: 음식 배달 앱의 고객이 인도와 미국에 있지만 주요 서버가 유럽에 있다고 가정해 보겠습니다. CDN이 없으면 인도 사용자의 요청이 유럽까지 이동해야 하기 때문에 로드 시간이 느려질 수 있습니다. 하지만 CDN을 사용하면 인도의 서버에서 캐시된 이미지, 레스토랑 세부정보, 정적 콘텐츠를 제공할 수 있으므로 앱이 더 빠르게 느껴질 수 있습니다.

CDN의 장점:
  • 지연 시간 감소: 사용자에게 더 가까운 서버에서 데이터가 제공되므로 로드 시간이 더 빨라집니다.
  • 부하 분산: CDN은 이미지, CSS 파일, 스크립트와 같은 정적 콘텐츠에 대한 요청을 오프로드하여 기본 서버의 부하를 줄이는 데 도움이 됩니다.
  • 가용성 향상: 기본 서버가 다운되더라도 CDN은 사이트의 캐시된 버전을 계속 제공하여 가용성을 향상시킬 수 있습니다.

4. SSL, TLS 및 네트워킹 보안

보안은 모든 시스템의 주요 관심사이며, 네트워크를 통한 안전한 통신을 보장하는 주요 기술은 SSL(Secure Sockets Layer)TLS(Transport Layer Security)입니다. 이러한 프로토콜은 클라이언트와 서버 간에 전송되는 데이터를 암호화하여 비밀번호, 결제 세부정보 등 민감한 정보를 도청으로부터 보호합니다.

SSL 및 TLS:
  • SSL은 통신 보안을 위한 원래 프로토콜이었으나 대부분 더 안전한 TLS로 대체되었습니다. 웹사이트 URL에 "https://"가 표시되면 SSL/TLS를 사용하여 연결이 보호된다는 의미입니다.

: 음식 배달 앱에서 사용자가 결제를 위해 신용카드 정보를 제출하면 데이터가 서버로 전송되기 전에 TLS를 사용하여 암호화됩니다. 이렇게 하면 누군가 데이터를 가로채더라도 데이터가 암호화되어 있으므로 읽을 수 없습니다.

  • 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.

위 내용은 네트워크 기본 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿