カテゴリー
情報処理

ネットワーク(その6)トランスポート層のプロトコル

現在のインターネットでデファクトスタンダード(事実上の標準)なのは、TCP/IPというネットワークアーキテクチャ(通信システムの機能を体系化したもの)である。

TCP/IPでは次の4階層から構成される。

前回のIPアドレスに関するプロトコルは、上図のインターネット層(ネットワーク層ともいう)のプロトコルである。

今回は、その一段階上のトランスポート層のプロトコルについて観てみよう。

                      

ポート番号

トランスポート層のプロトコルは、ネットワーク層が実現するエンドノード間の伝送路上で、データの順序制御や伝送誤りの訂正、再送の要求といった一定の品質を保つ制御を行う。

ネットワークには複数のホストが接続され、各ホスト内では複数の通信アプリケーションが存在する。

IPアドレスはホストは識別できてもアプリケーションまでは識別できない

そこでTCP/IPでは、アプリケーションを識別する16ビット(0~65,535)のポート番号を用いる。

ポート番号は、トランスポート層のヘッダ内(TCPヘッダやUDPヘッダ 後述)で指定され、受信ホストはポート番号に基づいて、どのアプリケーションで処理するかを決定する。

ウェルノウンポート番号

TelnetやFTP、HTTP等の一般的なアプリケーションは、あらかじめ標準的なポート番号が設定されている。

これをウェルノウンポート番号という。

代表的な番号は以下のとおり。

ポート番号内容役割
20,21FTPファイルの転送20 制御21
23Telnet遠隔操作
25SMTP電子メールの送信
53DNSドメイン名とIPアドレスの変換
80HTTPホームページデータの転送
110POP3電子メールの受信
123NTPタイムサーバの時刻をもとに時刻を同期させる
443HTTPSホームページの転送(セキュリティ対応)

通常、各サーバがウェルノウンポート番号を利用するので、クライアント側でポート番号を意識する必要はない。

仮にサーバが利用するポート番号を変更すると、ポート番号を知らないクライアントはアクセスできなくなる。

また、クライアントのポート番号は、ホスト内で矛盾が生じないよう、コネクション(通信の単位)ごとに動的に割り当てられる。

                        

通信の識別

TCP/IPでは、

(送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号)

の組み合せにより、各通信(どのホスト間とどのアプリケーション間の通信か)を識別できる。

要求パケットに対する応答パケットは、IPアドレス、ポート番号ともに送信元と宛先が入れ替わる。

よって、サーバからの応答パケットは、送信元ポート番号がウェルノウンポート番号になることが多い。

                         

TCP(Transmission Control Protocol)

TCPは、コネクション型(通信の単位)のトランスポート層のプロトコルである。

コネクションを確立して確認応答やフロー制御、順序(シーケンス)制御などの機能を提供する。

このため信頼性が要求される通信に多く用いられる。

TCPにおけるデータの伝送単位はセグメントという。

                    

TCPでは、TCPヘッダに含まれる各フィールドの値を用いて、信頼性を確保するのに必要な制御を実現する。

TCPでは、通信に先立ってTCPコネクションとよばれる論理的な通信路を確立し、通信終了時にそれを開放する。

このコネクションを確立するためには、TCPヘッダ中のSYNフラグとACKフラグが用いられ、コネクションを開放するのにFINフラグとACKフラグが用いられる。

応答確認番号. ヘッダ長. ウィンドウ. チェックサム. 緊急ポインタ. オプション.

コネクション確立から切断までの流れは次のとおりである。

① SYN(確立要求)

② ACK+SYN(①への応答+確立要求)

③ ACK(②への応答)

この3つのセグメントのやり取りで行われることから、スリーウェイハンドシェイクという。

ここで、SYNはSYNchronous(同期 シンクロ)を、ACKはACKnowledge(肯定応答)を表す。

                        

UDP(User Datagram Protocol)

UDPはエンドシステム(ネットワーク上の末端に位置してるシステムまたはコンピュータ)のアプリケーション間でコネクションレス型の通信サービスを提供するデータ転送プロトコルである。

UDPは通信に先立ってコネクションを確立しないため、信頼性を確保する機能を持たず、データグラム(パケット)の欠落などが生じてもそれを回復しない。

その代わり、プロトコルによるオーバヘッド(ある処理を行うのに付随してくる余分な処理)が軽減され、TCPと比べて高速な通信を実現できる。

UDPは、ストリーミング(ネット上のメディアをすぐ再生する技術)やマルチメディア(複数の種類、映像や音楽などの情報をひとまとめにする)といった高速性を重視する通信、ブロードキャストやマルチキャストといった複数のホストに対してデータを送りたい場合などに利用される。

UDPは、コネクションを確立せず、信頼性を確保するための制御を行わないため、TCPのように多くのフィールドを必要としない。

UDPヘッダは、送信元ポート番号、宛先ポート番号、パケット長、チェックサムで構成されており、TCPと比較して単純な構成となっている。

UDPは、信頼性は劣るがオーバヘッドが小さい分高速で、高速性を重視するアプリケーションや同報通信で利用される特色がある。

                          

TCP/IPにおけるアドレス

TCP/IPにおいてアドレスは三つ登場する。

①ポート番号 

トランスポート層においてアプリケーションの識別をする。

②IPアドレス 

ネットワーク層においてホストの識別をする。

③MACアドレス 

データリンク層において隣接機器を識別する。

                      

トランスポート層の役割

トランスポート層における代表的なプロトコルはTCPとUDPである。

これらの役割は、信頼性の確保スループット(単位時間当たりの処理能力)の維持である。

また上位層であるアプリケーション層の各種アプリケーションの特定を行う。

                     

後記

このへんまでくるとネットワークの全貌がおぼろげながら把握できそうである。

TCP/IPの上位層からデータが下位層に引き渡され、そらが相手側の下位層から上位層へと渡り、互いのアプリケーションで「会話」が成立するわけだ。

今日は王子神社に初詣に行きます。

作成者: advance

豊洲市場の水産荷受会社(セリ販売する会社)に勤務してます。
勤務時間が夜中から昼までです。
夜の活動は自粛?して、午後の早い時間帯に勉強に励み、税理士試験に合格しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です