I Bet Nobody Has Ever Explained the Networking Topics Like This Before
このビデオでは、Cloud X Berryが、開発者が知っておくべき20のネットワーク関連トピックを、初心者にも分かりやすいシンプルな方法で解説します。
アプリはノートパソコンで正常に動作しています。データベースも稼働しており、認証情報も正しいのに、アプリが接続できません。リクエストは送信されたものの、途中でどこかへ消えてしまい、返ってくるのはタイムアウトメッセージだけです。多くの開発者は、まさにこの時、ネットワークが全体像として理解されていなかったことに気づきます。ネットワークは、暗記すべき20個の個別の定義として教えられてきたのです。
そこで、定義ではなく、一つのリクエストを追ってみましょう。乗客がRideNowアプリを開き、「配車をリクエスト」をタップすると、数秒後に地図上にドライバーが表示されます。一見シンプルですが、その裏では、たった1回のタップがスマートフォンからホームルーター、インターネットを経由してRideNowのバックエンドへと通信され、それぞれのネットワーク概念が、その過程で特定の課題を解決する役割を果たしています。
まずは、スマートフォンの位置、IPアドレス、IPv4とIPv6の違い、プライベートIPとパブリックIPの違いから始めましょう。次に、RideNowがどのように見つかるのかを見ていきます。DNSは名前をアドレスに変換し、ポートはマシン上で適切なアプリケーションを選択します。MACアドレスとARPを使ってローカルネットワークに接続し、そこから外部ネットワークへと接続します。ルーティングはホップごとに行われ、NATはプライベートアドレスがパブリックアドレスを介して通信できるようにします。
RideNow内部では、インフラストラクチャをサブネットで分割し、DHCPを使って新しいマシンに構成を割り当てます。接続自体はTCP、3ウェイハンドシェイク、HTTPSとTLSによるデータのプライバシー保護、そしてHTTPによる実際のリクエスト処理です。RideNowの規模が拡大するにつれて、ロードバランサー、リバースプロキシ、ファイアウォールを追加し、さらにドライバーの位置情報を取得するためにWebSocket、新しいビートが完了した際にUDPを使用します。最後にOSIモデルを紹介します。これは面接で暗唱するための7層ではなく、
問題がどこで発生しているかを正確に特定するための方法です。
チャプター
1:30 01 · IPアドレス
4:50 02 · DNS
5:48 03 · ポート
6:48 04 · MACアドレス
7:39 05 · ARP
8:30 06 · ルーティング
9:17 07 · NAT
10:18 08 · サブネット化
11:16 09 · DHCP
12:17 10 · TCP
13:07 11 · スリーウェイハンドシェイク
13:51 12 · HTTPSとTLS
15:02 13 · HTTP
15:41 14 · ロードバランサー
16:33 15 · リバースプロキシ
17:40 16 · ファイアウォール
18:50 17 · WebSockets
20:18 18 · UDP
21:29 OSIモデル
22:50 まとめ:1つのリクエスト、開始完了
対象者
アプリをリリースしたものの、「接続できない」という問題に未だに戸惑っている開発者、ネットワークの問題を推測ではなくデバッグしたいバックエンドエンジニア、ネットワークの全体像をようやく理解したい初心者、そしてこれらの概念が問われるシステム設計やDevOpsの面接対策をしている方。
#ネットワーク #システム設計 #バックエンド #DevOps #TCP/IP #DNS #コンピュータネットワーク
コメント 読み込み中…