コンピュータネットワークの問題では、マシン間でデータがどのように移動するかを理解しているかが問われます。階層、主要なプロトコル、そして何かが壊れたときに何が起こるか、といった点です。以下に、基礎からどこにでも出てくる「URLを入力すると何が起こるか」という問題まで、応用できる20問と回答を用意しました。サブネットの例は公開前にPythonのipaddressモジュールで確認済みです。
階層とモデル
1. OSIモデルとTCP/IPモデルとは何ですか?
OSIモデルには7つの層があります。物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層です。TCP/IPモデルはこれらを4つにまとめます。リンク層、インターネット層、トランスポート層、アプリケーション層です。面接で重視されるのは通常、実用的な区分です。リンク層のEthernetとWi-Fi、インターネット層のIP、トランスポート層のTCPとUDP、アプリケーション層のHTTP、DNS、TLSです。
2. スイッチ、ルーター、ロードバランサーはどの層で動作しますか?
スイッチはデータリンク層でMACアドレスによってフレームを転送します。ルーターはネットワーク層でIPアドレスによってパケットを転送します。レイヤ4ロードバランサーはIPアドレスとポートを使ってサーバーを選び、レイヤ7ロードバランサーはパスやヘッダーなどHTTPリクエストの中身を見ることができます。
3. MACアドレスとIPアドレスの違いは何ですか?
MACアドレスはローカルリンク上のネットワークインターフェースを識別し、通常はハードウェアに固定されています。IPアドレスはルーティングのためにネットワーク上のデバイスを識別し、接続するネットワークによって変わります。
トランスポートプロトコル
4. TCPかUDPか?
TCPはコネクション型で信頼性があります。バイトに番号を振り、失われたセグメントを再送し、順序どおりに配信し、フロー制御と輻輳制御を行います。UDPは独立したデータグラムを送信し、配信保証がないため、オーバーヘッドと遅延が小さくなります。Webページ、ファイル、メールにはTCPを使います。完璧な配信よりも速度が重要な場合、たとえばDNSルックアップ、ライブ動画、音声通話、多くのゲームではUDPを使います。
5. TCPの3ウェイハンドシェイクを説明してください
クライアントが接続を開くためにSYNを送信します。サーバーがSYN-ACKで応答します。クライアントがACKを送信します。これで両側が開始シーケンス番号に合意し、データが流れ始めます。切断は通常、各方向でFINとACKのメッセージを使います。
6. TCPは輻輳をどのように処理しますか?
まず少量のデータを送信し、パケットが届いている間は送信レートを上げていきます。これをスロースタートと呼びます。損失を検知するとレートを下げ、その後はより慎重に増やします。目標は、ネットワークに過負荷をかけずに利用可能な帯域幅を使うことです。
7. レイテンシ、帯域幅、スループットの違いは何ですか?
レイテンシはパケットが到着するまでの時間です。帯域幅はリンクが運べる最大レートです。スループットは実際に達成できるレートで、オーバーヘッド、損失、遅延のために帯域幅より低くなります。レイテンシが高いと、帯域幅が大きくても遅く感じることがあります。
アドレッシングとサブネッティング
8. /24ネットワークには使用可能なホストがいくつありますか?
/24には256個のアドレスがあります。最初はネットワークアドレス、最後はブロードキャストアドレスなので、使用可能なのは254個です。192.168.10.0/24の場合、ホストは192.168.10.1から192.168.10.254までで、ブロードキャストアドレスは192.168.10.255です。
9. /24を4つのサブネットに分割してください
2ビット借用して/26ネットワークを作ります。それぞれ64個のアドレスと62個の使用可能なホストを持ちます。192.168.10.0/24の場合、4つのサブネットは192.168.10.0/26、192.168.10.64/26、192.168.10.128/26、192.168.10.192/26です。
10. 192.168.1.130/26はどのネットワークに属しますか?
/26マスクは255.255.255.192なので、ネットワークは64アドレスごとに始まります。このアドレスは192.168.1.128から始まるブロックに入ります。そのネットワークは192.168.1.128から192.168.1.191までで、使用可能なホストは.129から.190、ブロードキャストは.191です。
11. /27には使用可能なホストがいくつありますか?
/27には32個のアドレスと30個の使用可能なホストがあります。10.0.0.0/27の場合、ホストは10.0.0.1から10.0.0.30までで、ブロードキャストアドレスは10.0.0.31です。
12. NATとは何ですか?
ネットワークアドレス変換は、プライベートネットワーク上の多くのデバイスが1つのパブリックIPアドレスを共有できるようにします。ルーターは送信パケットの送信元アドレスとポートを書き換え、応答を正しいデバイスに返すためのテーブルを保持します。パブリックアドレスを節約できますが、その背後にあるデバイスへのインバウンド接続は難しくなります。
主要なサービス
13. DNS は何をするのか、ルックアップはどのように行われるのか?
DNS は名前を IP アドレスに変換します。クライアントはリゾルバに問い合わせ、リゾルバはキャッシュを確認します。答えがキャッシュになければ、リゾルバはルートサーバー、次にトップレベルドメインサーバー、次にそのドメインの権威サーバーへと問い合わせ、答えをクライアントに返します。答えはレコードの TTL で設定された時間だけキャッシュされます。
14. ARP と DHCP は何をするのか?
ARP はローカルネットワーク上で IP アドレスに対応する MAC アドレスを見つけます。DHCP はネットワークに参加するデバイスに IP アドレス、デフォルトゲートウェイ、DNS サーバーを割り当てます。
15. HTTP と HTTPS の違いは何か?
HTTPS は TLS 上で運ばれる HTTP です。TLS は通信を暗号化し、証明書でサーバーの身元を確認し、改ざんから保護します。HTTP データが送信される前に、クライアントとサーバーは TLS ハンドシェイクで鍵について合意します。
16. 一般的な HTTP ステータスコードの意味は?
| コード | 意味 |
|---|---|
| 200 | OK |
| 301 | 恒久的に移動 |
| 304 | 変更なし、キャッシュを使用 |
| 400 | 不正なリクエスト |
| 401 | 未認証 |
| 403 | 禁止 |
| 404 | 見つからない |
| 429 | リクエストが多すぎる |
| 500 | サーバーエラー |
| 502 | 不正なゲートウェイ |
| 503 | サービス利用不可 |
まとめ
17. ブラウザに URL を入力して Enter を押すと何が起こるか?
- ブラウザはキャッシュを確認し、次に DNS でドメイン名を IP アドレスに解決します。
- 3ウェイハンドシェイクで TCP 接続を開きます。
- HTTPS の場合、TLS ハンドシェイクを実行して鍵について合意し、証明書を検証します。
- HTTP リクエストを送信します。
- リクエストはロードバランサーや CDN を経由することがあり、サーバーはステータスコードとコンテンツを含むレスポンスを返します。
- ブラウザは HTML を解析し、スクリプトや画像などのリンクされたリソースを取得し、ページをレンダリングします。
すべてのステップを暗唱する必要はありません。面接に合った深さを選び、どの部分を最もよく知っているかを伝えましょう。
18. ウェブサイトが遅い。原因をどう突き止めるか?
まずレイヤーを分けて考えます。DNS ルックアップ時間、接続と TLS の時間、最初のバイトまでの時間、ダウンロード時間を確認します。ping で到達可能性と往復時間を、traceroute で経路上のどこで遅延が蓄積するかを、ブラウザの開発者ツールでどのリクエストが遅いかを調べます。その後、問題がネットワーク、サーバー、ページ自体のどれにあるかを判断します。
19. ping と traceroute とは何か?
ping は ICMP エコーリクエストを送信して、ホストに到達できるかどうかをテストし、往復時間を測定します。traceroute は、time-to-live の値を増やしながらパケットを送信し、返信を読み取ることで、経路上のルーターを表示します。
20. ハブ、スイッチ、ルーターの違いは何か?
ハブはすべての信号をすべてのポートに繰り返し送信するため、現在ではほとんど使われません。スイッチはどの MAC アドレスがどのポートにあるかを学習し、必要な場所にだけフレームを転送します。ルーターは異なるネットワークを接続し、IP アドレスによってそれらの間でパケットを転送します。
準備の方法
- レイヤーを描き、各プロトコルをその上に配置できるようにする。
- /24 をより小さなブロックに1分で分割できるようになるまで、サブネット計算を手作業で練習する。
- 「URL を入力する」の答えを3つの深さで練習する:30秒、2分、そして詳細版。
- トラブルシューティングコマンドと、それぞれが何を教えてくれるかを知っておく。
関連する練習には、システムデザイン面接の質問、Kubernetes 面接の質問、AWS 面接の質問、サイバーセキュリティアナリスト面接のガイドをご覧ください。
声に出して、自分の言葉で練習しましょう。後で文字起こしをすると、どこで話がそれたか、要点を飛ばしたかがわかります。ライブの面接や評価では、AI ツールに関する雇用主のルールに従ってください。
YesToTheOfferで回答を練習しましょう
声に出してリハーサルし、自分の履歴書から作られた回答を取得し、後で文字起こしを確認できます。30分無料、サブスクリプションなし。



