コンピュータ ネットワークの面接でよくある質問 (1)
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
コンピュータ ネットワークの面接でよくある質問には、ネットワーク プロトコル、ネットワーク アーキテクチャ、ネットワーク セキュリティ、データ送信など、さまざまなレベルが含まれます。ここでは、いくつかの一般的な質問について詳しく説明します。
1. OSI 7 層モデルとは何ですか?各層の機能は何ですか?
OSI 7 層モデル国際標準化機構 (ISO) によって策定された、コンピュータまたは通信システム間の相互接続のための標準システムです。上から順に次のとおりです。
- アプリケーション層: HTTP、FTP、SMTP、その他のプロトコルなどのアプリケーションに対話型サービスを提供します。
- プレゼンテーション層: データ表現、セキュリティ、圧縮。アプリケーション層データをネットワーク送信に適した形式に変換します。
- セッション層: セッションを確立、管理、終了し、2 つのセッション プロセス間の通信を整理および調整します。
- トランスポート層: 信頼性の高いデータ送信を実現するために、TCP プロトコルや UDP プロトコルなど、2 つのホスト プロセス間の通信にデータ送信サービスを提供する責任を負います。
- ネットワーク層: 適切なルーティング ノードとスイッチング ノードを選択して、データがタイムリーに送信されるようにします。主なプロトコルは IP です。
- データリンク層: 隣接する2つのノード間でデータを送信する場合、ネットワーク層から渡されたIPデータグラムをフレームに組み立て、必要な制御情報を付加します。
- 物理層: 伝送媒体や物理デバイスの差異を可能な限り遮蔽し、隣接するコンピュータノード間でのビットストリームの透過的な伝送を実現します。
2. TCP と UDP の違いは何ですか?
TCP (伝送制御プロトコル) と UDP (ユーザー データグラム プロトコル) はどちらもトランスポート層プロトコルであり、主な違いは次のとおりです。
- 接続性: TCP はコネクション指向のプロトコルであり、データを送信する前に接続を確立する必要がありますが、UDP はコネクションレス型のプロトコルであり、データを送信する前に接続を確立する必要はありません。
- 信頼性: TCP は信頼性の高い送信を提供し、シーケンス番号、確認応答、タイムアウト再送信などのメカニズムを通じて正しいデータ送信を保証します。UDP は信頼性を保証せず、データが失われたり順序どおりに到着しない可能性があります。
- 伝送効率: TCP は接続を確立して信頼性チェックを実行する必要があるため、伝送効率が比較的低くなりますが、UDP にはこれらのオーバーヘッドがなく、伝送効率が高くなります。
- アプリケーションシナリオ: TCP は、ファイル転送や Web ブラウジングなど、信頼性の高い送信を必要とするアプリケーション シナリオに適しています。UDP は、ライブ ビデオなど、高いリアルタイム パフォーマンスを必要とし、ある程度のデータ損失を許容できるアプリケーション シナリオに適しています。放送、オンラインゲームなど。
3. HTTP と HTTPS の違いは何ですか?
HTTP (ハイパーテキスト転送プロトコル) と HTTPS (ハイパーテキスト転送プロトコル セキュア) の主な違いはセキュリティです。
- 安全性: HTTP はプレーン テキストを送信するため、データは簡単に傍受され、改ざんされます。一方、HTTPS は HTTP に SSL/TLS プロトコル層を追加して、データを暗号化して送信し、データ送信のセキュリティを確保します。
- ポート番号: HTTP はデフォルトでポート 80 を使用し、HTTPS はデフォルトでポート 443 を使用します。
- パフォーマンス: HTTPS では暗号化と復号化の操作が必要なため、HTTP に比べてパフォーマンスが低下します。
4. TCP の 3 方向ハンドシェイクと 4 方向ウェーブのプロセスは何ですか?
TCP スリーウェイ ハンドシェイクプロセスは次のとおりです。
- クライアントは SYN パケット (同期シーケンス番号) をサーバーに送信し、SYN_SENT 状態に入り、サーバーによる確認を待ちます。
- SYN パケットを受信したサーバーは、クライアントの SYN (ack=j+1) を確認し、SYN パケット (つまり、SYN+ACK パケット) を送信します。このとき、サーバーは SYN_RCVD 状態になります。
- サーバーから SYN+ACK パケットを受信した後、クライアントは確認パケット ACK (ack=k+1) をサーバーに送信します。パケットの送信後、クライアントとサーバーは ESTABLISHED 状態に入り、3 方向通信を完了します。ハンドシェーク。
TCP ウェーブ 4 回プロセスは次のとおりです。
- クライアントは FIN を送信してクライアントからサーバーへのデータ転送を終了し、クライアントは FIN_WAIT_1 状態に入ります。
- サーバーは FIN を受信すると、受信したシーケンス番号 + 1 を確認シーケンス番号としてクライアントに送信し (SYN と同様、1 つの FIN が 1 つのシーケンス番号を占有します)、サーバーは CLOSE_WAIT 状態に入ります。
- サーバーはクライアントとの接続を閉じ、FIN をクライアントに送信し、サーバーは LAST_ACK 状態に入ります。
- FIN を受信したクライアントは、シーケンス番号が受信したシーケンス番号 + 1 であることを確認してサーバーに ACK を送信し、TIME_WAIT 状態に入ります。サーバーは、ACK を受信した後、接続を閉じます。クライアントが 2MSL 待っても応答を受信しない場合、CLOSED 状態になります。
5. TCP ではなぜ 2 回ではなく 3 回のハンドシェイクが必要なのでしょうか?
TCP が双方向ハンドシェイクではなく 3 ウェイ ハンドシェイクを必要とする主な理由は、双方がデータを送受信できるようにして、信頼性の高い接続を確立するためです。具体的には:
- 最初のハンドシェイク: クライアントは SYN パケットを送信し、サーバーはクライアントの送信能力を確認します。
- 2 回目のハンドシェイク: サーバーは SYN+ACK パケットを送信し、クライアントはサーバーの送受信機能を確認します。
- 3 番目のハンドシェイク: クライアントは ACK パケットを送信し、サーバーはクライアントの受信能力を確認します。
ハンドシェイクが 2 回しかない場合、次の状況が発生する可能性があります。クライアントは接続要求を送信しますが、接続要求メッセージが失われたために確認を受信できないため、クライアントは接続要求を再送信します。その後、確認が受信され、接続が確立されました。データ送信が完了すると接続が解放され、クライアントは合計 2 つの接続要求セグメントを送信します。最初のセグメントは失われ、2 番目のセグメントはサーバーに到達します。ただし、最初に失われたセグメントは一部のネットワーク ノードに長時間留まるだけであり、接続が解放されてからサーバーに到達するまでに時間がかかりました。このとき、サーバーはクライアントが新しいセグメントを発行したと誤って認識しました。接続要求が行われると、接続の確立に同意する確認メッセージ セグメントがクライアントに送信されます。この時点ではクライアントはデータ要求を送信していないため、サーバーはクライアントがデータを送信するのを待つことになり、リソースが無駄になります。
6. 一般的に使用される HTTP リクエスト メソッドは何ですか?それらの違いと用途は何ですか?
一般的に使用される HTTP リクエスト メソッドには、GET、POST、PUT、DELETE、CONNECT、OPTIONS、および TRACE が含まれます。このうち、GET と POST の 2 つが最もよく使用されます。
- 得る : サーバー上のデータを取得するリクエストを送信するために使用されます。パラメーターは URL に含まれており、要求されるデータの量が大きくなく、セキュリティ要件も高くないシナリオに適しています。
- 役職 : URL で指定されたリソースにデータを送信するために使用されます。パラメーターはリクエスト本文を通じて渡されます。これは、大量のデータが送信されるシナリオやセキュリティ要件が高いシナリオに適しています。
PUT や DELETE などの他のリクエスト メソッドは、サーバー上のデータの変更、サーバー上のリソースの削除などに使用されます。これらのリクエスト メソッドにはそれぞれ、独自の用途と適用可能なシナリオがあります。
以上、コンピュータネットワーク面接でよくある質問について詳しく解説しました。これらの質問は、ネットワーク プロトコル、ネットワーク アーキテクチャ、データ送信などの多くの側面をカバーしており、受験者のコンピュータ ネットワークの知識を調べる上で重要な部分です。