pulpul 日本の試験

基本情報技術者 概念書 · ネットワーク

通信プロトコルの役割とポート

要点と定義

プロトコルは、通信で使うデータの形式や手順を定めたものです。TCP/IPは、複数のプロトコルが階層ごとに役割を分担する通信体系です。送信側では各階層の情報をヘッダーなどに付け、受信側ではそれを手掛かりに処理します。OSI基本参照モデルの階層と対比するときは、各プロトコルが担当する機能に注目します。

IPはネットワーク層のプロトコルで、IPアドレスを使ってパケットを宛先へ届ける役割を担います。IPv4とIPv6ではアドレス体系が異なり、そのままでは相互に直接通信できない場合があります。NAT64は両者の間でパケットのアドレスなどを変換する仕組みで、DNS64はIPv6側の機器が使える宛先アドレスを用意します。たとえば、指定プレフィックスが「64:ff9b::」で、相手のIPv4アドレスが「192.168.0.2」の場合、IPv6形式では「64:ff9b::c0a8:2」と表せます。変換を追うときは、各パケットがIPv4かIPv6か、各欄がどの機器を表すかを順に確認します。

TCPとUDPはトランスポート層のプロトコルです。ポート番号は、同じ機器に届いた通信をサービスなどへ振り分けるために使います。IPアドレスが通信先の機器を示すのに対し、ポート番号はその機器上の通信先を示します。TCPの通信では、送信元と宛先のポート番号などで通信を識別します。たとえば、PCがポート50001からWebサーバのポート80へ要求を送った場合、返信はサーバ側が送信元80、PC側が宛先50001です。

ルータのNAPTは、通過するパケットのIPアドレスとポート番号を変換します。変換前後の組を一定期間対応付けて記録し、返信を元のLAN内機器へ戻せるようにします。このため、複数のPCが一つのグローバルIPアドレスを使う構成で、通信ごとの対応を区別できます。

Webシステムに負荷分散装置を置く場合、DNSにはシステム名に対応する負荷分散装置の外部側IPアドレスを登録します。クライアントの要求がその装置に届いてから、装置が振り分け先のアプリケーションサーバへ転送するためです。図の例では、DNSの登録先は負荷分散装置の「192.0.2.2」、振り分け先はアプリケーションサーバの「192.168.0.1」と「192.168.0.2」です。DNSサーバ自身やコンテンツサーバのアドレスを登録先・振り分け先と取り違えないよう、機器の役割を確認します。

アプリケーションサーバがログイン中の受講者の状態を保持する場合、同じ受講者の要求を同じサーバへ送る必要があります。送信元IPアドレスで振り分ける方式では、複数のクライアントがプロキシ経由で同じ送信元IPアドレスに見えると、利用者ごとの振り分けが難しくなります。HTTPヘッダー内のセッションIDを示すcookieを識別情報に使えば、利用者単位でサーバとの対応を記録できます。

HTTPはWeb通信、SMTPはメール送信に使われるアプリケーション層のプロトコルです。SMTP-AUTHは、メール送信時にSMTPサーバで送信者を認証する方式です。

ICMPはIPネットワークで制御情報やエラー情報を扱うプロトコルです。pingはICMPのエコー要求と応答を利用して、相手との疎通を確認します。

適用条件と例

ポート番号は通信の向きと接続ごとに読みます。PCが送信元50001、宛先80で要求を送ったなら、返信では送信元と宛先が入れ替わり、サーバの送信元が80、PCの宛先が50001です。プロキシを経由する場合は、PCからプロキシへの接続と、プロキシからWebサーバへの接続は別々の通信です。前者の宛先はプロキシの待受ポート8080、後者の宛先はWebサーバのポート80です。各接続の送信元・宛先を個別に確認します。

NAPTでは、たとえばPC甲の「LAN内IPアドレスとポート番号」の組を、ルータの「グローバルIPアドレスと変換後ポート番号」の組に対応付けます。PC乙の通信には別のポート番号などを割り当てれば、返信時にどちらへ戻すかを区別できます。動的変換では通信に応じて対応を記録し、記録が残っている間は返信を元のLAN内機器へ戻します。対応が記録されていない返信について、この仕組みだけで元の機器を特定することはできません。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む