pulpul 日本の試験

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

TCP/IPの通信プロトコル

要点と定義

通信プロトコルは、機器やソフトウェアが通信するときの形式や手順を定める。TCP/IPの各プロトコルは異なる役割を持ち、階層に分けて捉えると、どの情報をどこで扱うかが分かりやすい。OSI基本参照モデルでは、イーサネットは主に物理層・データリンク層、IPはネットワーク層、TCP・UDPはトランスポート層に対応する。DHCP、NTP、HTTPなどはアプリケーション層のプロトコルである。プロトコルごとの担当を区別する知識は、動的なIPアドレス割当てを問う場面で必要になる。

IPは、IPアドレスを使ってネットワーク間でデータグラムを配送する。サブネットマスクは、IPアドレスのどの部分がネットワークを示すかを表す。例えば255.255.255.240は/28で、最後のオクテットでは16個ずつの範囲に分かれる。アドレスの最後の数値を16刻みの区間に当てはめれば、同一サブネットかを判定できる。17と29はどちらも16~31の範囲なので同じサブネット、33は32~47の範囲なので別のサブネットとなる。この判定は、同じネットワーク内の相手へ直接送るか、ルータへ渡すかを考える前提になる。

同じリンク上でイーサネットを使う場合、IPデータグラムはイーサネットフレームのデータ部に格納され、フレームの宛先にはMACアドレスが使われる。MACアドレスは48ビットなので、ビット列の組合せは2⁴⁸通りである。IPアドレスから対応するMACアドレスを調べる仕組みがARPである。宛先MACアドレスが分からない端末は、同じLAN上に届くようARP要求をブロードキャストし、対象のIPアドレスを持つ端末から応答を得る。IPデータグラムをフレームのどこに載せるか、ARPが何を解決するかを区別することが、イーサネット上の通信を説明するのに必要となる。

宛先が別ネットワークにある場合、端末は遠隔の宛先端末のMACアドレスではなく、まず次ホップのルータのMACアドレスを得てフレームを送る。ルータは次のネットワークへ転送し、その区間ごとにフレームの宛先MACアドレスが使われる。例えば同じサブネットにある相手なら、その相手のIPアドレスに対するARPを行う。一方、別サブネットの相手なら、既定の経路へ送るためのルータのIPアドレスに対するARPを行う。ARPで調べる相手を決めるには、IPアドレスそのものの最終宛先と、同じリンク上での次の届け先を区別する必要がある。

トランスポート層のTCP・UDPは、ポート番号によって端末上の通信先アプリケーションを識別する。TCPのポート80はHTTP通信で広く使われるため、Web閲覧を通す目的で許可されているネットワークもある。ただし、ポート番号だけで通信内容や安全性が決まるわけではない。TCP通信の応答では、往路の送信元・宛先ポートが入れ替わる。例えばPCの送信元ポートが50001、Webサーバの宛先ポートが80なら、戻りではサーバの送信元が80、PCの宛先が50001となる。ポート80の用途や応答のポート番号を判断するには、アプリケーションの標準的な用途と、通信の向きを合わせて考える。

NAPTは、複数のプライベートIPアドレスを一つのグローバルIPアドレスに対応させ、ポート番号などを使って通信を識別する仕組みである。家庭や組織の複数端末が、共有するグローバルIPアドレスを介して外部と通信する例がある。これは、端末へのIPアドレス設定を行うDHCPや、名前をIPアドレスへ対応付けるDNSとは役割が異なる。複数端末のアドレスを一つに集約して外部接続する仕組みを識別する際に必要となる。

NTPはネットワーク経由で機器の時刻を合わせるために使われる。往復の伝送遅延が等しいと仮定し、PCの送信時刻をt1、サーバの受信時刻をt2、サーバの送信時刻をt3、PCの受信時刻をt4とすると、「サーバ時刻-PC時刻」のずれは ((t2−t1)+(t3−t4))/2 で求められる。例としてt1=100、t2=200、t3=400、t4=900マイクロ秒なら、((200−100)+(400−900))/2=−200マイクロ秒である。負の値なのでPC時計はサーバより200マイクロ秒進んでいる。単なる送受信時刻の差には伝送遅延が含まれるため、四つの時刻からずれを見積もる必要がある。

この節の続き

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

アプリでこの節を読む