Stack Map新人 Web エンジニアの地図

「つながらない」「遅い」「一部の人だけ見られない」。通信まわりを疑うときに、中で何が起きているかを知っておくと、切り分けが速くなります。
入口の流れは Web の仕組み「URL を打ってから画面が出るまで」にあります。ここでは、その中を深掘りします。

層で考える(TCP/IP の 4 つの層)

通信は、役目の違う 4 つの層の組み合わせです。送る側は上から下へ、層ごとに「頭(ヘッダー)」を付けて包み、受け取る側は下から上へほどきます。番号か「次へ」を押すと、1 歩ずつ進みます。アドレスとポートは作り物です。

    IP アドレスとポート

    IP アドレスは「どの機械か」、ポート番号は「その中のどのプログラムか」を表します。クラウドで VPC やサブネットを作るときは、アドレスの範囲を CIDR(10.0.0.0/16 のような書き方)で決めます。

    CIDR の計算機

    TCP と UDP

    TCP は、つなぐ前に 3 回のあいさつをして、届かなかった分を送り直します。UDP は、そのしくみを持たない代わりに軽い運び方です。

    3 回のあいさつ(3-way handshake)

      番号は、TCP の決まり(RFC 9293)の図と同じ例です。

      つながらないときの見分け方 考え方のヒント

      DNS の深掘り

      DNS は、名前を住所などに引く仕組みです。どこへ問い合わせて答えが返るかの流れは、Web の仕組み「URL を打ってから画面が出るまで」の DNS の歩で見られます。ここでは、答えの中身を読みます。

      よく使うレコードの種類

      dig の答えを読む(作り物)

        status が NXDOMAIN なら「その名前はない」という答え。

        考え方のヒントTTL は「その答えを、何秒まで覚えておいてよいか」。DNS を変えても、覚えている所では TTL の間は古い答えが使われます。大事な切り替えの前は、TTL を先に短くしておきます。

        TLS の深掘り

        HTTPS の「S」は TLS です。証明書で相手が本物かを確かめ、そのあとの中身を暗号化します。

        信頼の鎖

        サーバーは、自分の証明書と中間の証明書を送ります。ルートは、受け取る側がもともと持っているので、送らなくてよい決まりです。

        TLS 1.3 のあいさつ(3 つの段階)

          HTTP/1.1・HTTP/2・HTTP/3

          同じ HTTP の頼みでも、どう運ぶかが版ごとに違います。下のボタンで、包みが 1 つなくなったときの違いを比べられます。

          HTTP/2(TCP の上)

          HTTP/3(QUIC の上)

          ロードバランサーとプロキシ

          本番では、利用者とアプリの間に、ロードバランサーやリバースプロキシが立ちます。台数を増やす話は性能とスケール「台数を増やす」へ。

          待ち時間の上限が、重なっている

          考え方のヒント間に立つものには、それぞれ待ち時間の上限があります。数字は、それぞれの初めの設定です。処理にかかる秒数を動かすと、どこが先に打ち切るかが分かります。

          囲いと通り道(VPC・サブネット・セキュリティグループ)

          クラウドでは、自分専用の網(VPC)を区切って、その中のどこに何を置き、だれからの通信を通すかを決めます。

          よくある置き方 考え方のヒント

          調べる道具

          どこで止まっているかを、下の層から順に確かめます。コマンドの基本は Linux「よく使うコマンド」、切り分けの考え方は デバッグ「切り分けの技と道具」へ。出力は作り物です。

          AI 時代AI と通信

          AI のエージェントや道具は、自分で外へ通信します。どこへ出てよいかを、人が決めておきます。

          チェックリスト

          確かめたものに印を付けてください(この端末にだけ残ります)。