正解は イ
TCP 通信のポート番号の使われ方を問う問題です。クライアント A はポート番号8080で待ち受けるプロキシサーバ B を経由して、ポート番号80の Web サーバ C にアクセスします。TCP パケットの宛先ポート番号は「相手が待ち受けているポート」であり、応答パケットの宛先ポートは「要求を送った側が使った送信元ポート(エフェメラルポート: 一時的に割り当てられる番号)」になる、というのが大原則です。各通信を整理すると、① A→B の HTTP 要求: 宛先は B の待受けポート8080。② B→A の HTTP 応答: 宛先は A が使った送信元ポート(エフェメラルポート)。③ B→C の HTTP 要求: 宛先は C の待受けポート80。④ C→B の HTTP 応答: 宛先は B が C への接続で使った送信元ポート(エフェメラルポート)。したがって宛先ポートが常に8080になるのは①の「A から B への HTTP 要求だけ」であり、イが正解です。「応答の宛先ポートは要求の送信元ポートに戻る」という対称性を理解しているかが問われています。
ポート番号は「宛先=相手の待受けポート」「応答の宛先=要求の送信元ポート(エフェメラル)」の2原則で全パケットを書き出す。プロキシは B:8080 で待受け、C へは一時ポートで接続する二面性をもつ。