◆
OSI のトランスポート層 は、OSI 階層の 4 番目、すなわち、ちょうど真中の階層のプロトコルです。
トランスポート層 は、最終 2 点間での、データやり取りの制御を行います。ネットワークが、複雑な構成であっても、トランスポート層によって、ユーザには、あたかも、2 点間のシステムで、あるかのように見せます。
トランスポート層は、最終 2 点間での、データの順序を整え、誤り訂正、および再送要求などを、おこない、データの信頼性を高める役割を、果たします。
◆
OSI のトランスポート層は、TCP/IP のトランスポート層(TCP)に、対応します(図 8.2-95)
◆ TCP/IP の、トランスポート層には、TCP と UDP という、2 種類のプロトコルがあります(図 8.2-96)。TCP は、コネクションタイプで、接続処理/切断処理を行うタイプです。UDP は、コネクションレスタイプで、接続処理/切断処理を行わず、直ちにデータを送ります。TCP と UDP の違いは、基本的には、コネクションタイプとコネクションレスタイプとの差と同じです。
◆ トランスポート層は、プロトコル階層の、ちょうど中間ですから、扇の要のような、地位にあります(図 8.2-97)。図の、ユーザは誰であっても、と、伝送媒体が異なっていても、については、オープンなプロトコルを参照してください。
◆ TCP における、データのやり取りは、図 8.2-98 のように、なります。図に示すように、パケットには、パケット送信の順序を示す、順序番号 (シーケンス番号 )が、ついています。順序番号によって、受信パケットの、順番の狂い、抜け、重複をチェックして、信頼性の高い通信が、可能です。
◆ TCP で通信を行うユーザを、プロセス と言います。TCP では、プロセスを多重化(時分割多重化)して、複数のプロセスを、同時並行して、処理することが、できます(図 8.2-99)。
◆
各プロセスの種類は、ポート番号 で、識別されます。ポート番号には、2 種類あります。
一つは、アプリケーションの種類ごとに、固定して、決められているポート番号で、ウェルノウンポート と呼ばれています。ウェルノウンポートは、サーバ側のみにあり、クライアント側には、存在しません。
◆
ウェルノウンポートは、多数ありますが、広く使用されているものを、いくつか 示します(図 8.2-100)。
◆
TCP のポート番号 25 の SMTP と、ポート番号 110 の POP3 は、電子メール用のポートです。
ポート番号 80 の HTTP は、ウェブ用のポート です。
もう 1 つの種類のポートは、その都度、コンピュータの OS によって、動的に、ポート番号が、割り当てられます。
◆
なお、ポートは、サーバ側と、クライアント側との、両方で、指定する必要があります。ウェルノウンポートは、サーバ側のポートです。ウェルノウンポートのクライアント側のポートは、動的に割当てる必要があります(この割当もユーザではなく コンピュータの OS です)。
◆
OSI のセッション層 は、OSI 階層の、上から 3 番目の階層のプロトコルです。
TCP/IP には、このセッション層と、次に示す、プレゼンテーション層に対応する、階層は、ありません。TCP/IP の最上位階層である、アプリケーション層は、OSI の、セッション層からアプリケーション層までの、3 つの階層に、対応します(図 8.2-101)。
[図 8.2-101] TCP/IP のアプリケーション層と OSI 参照モデルとの対応
◆ TCP/IP における、ユーザ間の通信は、プロセス間通信です。プロセス間通信 は、TCP/IP の、トランスポート層以下によって、行われます。TCP/IP のアプリケーション層は、プロセス間通信の中身に関する部分の、プロトコルです(図 8.2-102)。
◆
TCP/IP には、セッション層がありませんから、OSI 参照モデルのセッション層について、説明します。ただし、TCP/IP も、階層としてのセッション層が、無いのであって、セッション層に相当するプロトコルは、存在します。
◆
セッションという言葉には、話し合い、打ち合わせ、会議など、いろいろな意味があります。セッション層のセッションは、話し合いの意味です。すなわち、セッション層の役割は、プロセス間の、話し合い、の管理です。もう少し具体的には、話し合いの、開始、維持、終了の管理です。
◆
TCP/IP のアプリケーションでは、複数のユーザーによる、複数のプロセスが、同時並行して走ります。この複数のプロセスが、互いに混線しないように、セッション(話し合い)の、開始、維持、終了を管理する、必要が、あります(図 8.2-103)。
◆
図 8.2-104 の(a)は、話し合いのシーケンスの例です。もし、これが、図の(b)のようであれば、話し合いは、成立しません。
話し合いの制御を行い、話し合いを進行させるのが、セッション層のプロトコルです。
◆
OSI のプレゼンテーション層 は、OSI の上から 2 番目の階層のプロトコルです。
TCP/IP には、このプレゼンテーション層と、その 1 つ下の階層の、セッション層とに対応する層は、ありません。TCP/IP の最上位層である、アプリケーション層は、OSI の、セッション層からアプリケーション層に、対応します(図 8.2-101 参照)。
◆
プレゼンテーション層のプロトコルは、ネットワークを流れる、データの意味を、統一する機能を提供します。数値や文字などは、コンピュータのハードウェアや OS に依存し、異なるコード(符号)で表わされます。
プレゼンテーション層は、それらを、統一したコードに変換し、ネットワーク上のアプリケーション間で、意味を統一する、役割を担います(図 8.2-105)。
◆
たとえば、コンピュータ OS の、MS-DOS やウィンドウズでは、日本語の文字コードとして、シフト JIS コードを、使用しています。しかし、ユニックスでは、EUC コードが、多く使用されます。
そのため、ウィンドウズと、ユニックスとの、プログラム間で、日本語のデータを、何の変換もせずに、やりとりすると、文字化けしてしまいます。文字化けとは、ある文字コードを、別の文字コードと思って、別の文字を表示してしまうことです。
◆
文字化けしてしまうと、そのデータの意味が伝わらなくなります。
そのようなことがないように、送る側は、ネットワークで統一した文字コードに、変換して送り、受け取った側で、自分が使っている文字コードに、変換します。
これが、プレゼンテーション層の、役割です。
◆
プレゼンテーション層のプロトコルは、コードの変換以外にも、データの暗号化や、データ圧縮などを行う機能も提供します。
◆
OSI のアプリケーション層 は、OSI 階層の、最上位の階層のプロトコルです。
TCP/IP のアプリケーション層は、OSI のセッション層から、この OSI のアプリケーション層までの 3 層を含む内容のプロトコルです(図 8.2-101)。
◆
ここでは、TCP/I のアプリケーション層について、説明します。アプリケーション層は、アプリケーションの名が付いていますが、ユーザアプリケーションソフトウェアのことでは、ありません。ユーザアプリケーションが利用する、プロトコルの、最上位プロトコル(図 8.2-101 のアプリケーション層)のことです。
◆
アプリケーション層で実行する仕事の内容は、多数あります。したがって、アプリケーション層のプロトコルも、多数あります。
この多数あるアプリケーション層のプロトコルの中で、汎用性が高いものを、図 8.2-106 に示します。
[図 8.2-106] 代表的なアプリケーション層プロトコル
◆
HTTP は、ウエブのプロトコルです(図 8.2-107)。クライアント(ウェブのブラウザ )のリクエストによって、ウェブサーバ から、ウェブのページ をブラウザに、転送します。
ウェブも、本と同様に、ページを単位として、構成されています。ウェブは、ページの集まりです。転送は、ページ単位で、行われます。図のレスポンスメッセージが、1 ページです(コラム 8.2-14)。
◆
ただし、本と異なり、ウェブのページサイズは、可変です。
1 ページの長さは、ウェブの見やすさに、繋がります。短すぎると、ページめくり(クリック)が頻繁になり、面倒です。ページ長さが、長すぎると、ページの転送に時間が掛かり、いらいらします。
◆
FTP は、ファイル転送 プロトコルです。FTP は、あるホスト上のファイルを別のホストにコピーするプロトコルです(図 8.2-108)。FTP では、クライアントをローカルホスト、サーバを、遠隔ホストといいます。ポートを 2 つ使用します。
◆
FTP は、たとえば、コンピュータのプログラムを、FTP サーバ から、ダウンロードするのに使用します。プログラムのダウンロードサイト などから、プログラムをダウンロードする場合には、マウスのクリック一つで、ダウンロードできる場合が、多いので、FTP を意識的に使用することは、あまり無いと、思います。
FTP は、ウェブサーバに、ウェブをアップロードするのにも、使用します。
◆
TELNET は、遠隔ログイン 用のプロトコルです。図で、ソケット というのは、TCP で、IP アドレスとポート番号とを組み合わせたアドレスをいいます。ポート番号を、IP アドレスと、組み合わせることによって、ポートに、ユニークなアドレスを、付与することが、できます。
◆
TELNET は、以前は、ユニックスの端末として、多く使われましたが、CUI なので、現在は、ほとんど使われていません。
遠隔のホストにアクセスする場合は、GUI、それも、ウェブ形式のものが、多くなっています。
★ 日本の歴史の一ページを飾るでき事は、たくさん、あります。東京オリンピックも、その一つでしょう。歴史の一ページという言葉は、歴史を記した本から、出てきた、言葉です。
★ 本と、同様に、ウェブも、ページで構成されています。ウェブは、一般に、複数のページから成っています。ただし、本のページと異なり、各ページの長さは、一定しません。
ウェブは、ウェブサーバに、例えば、index.html (または index.htm )という名のファイルで、収容されています。
★ ファイル とは、コンピュータのプログラムや、プログラムの実行対象となるデータの、1 かたまりのことです。ファイルは、たとえば、index.html の場合、前半の index がファイル名称で、"." で挟んだ後半が、ファイルの種類を表します。ファイルの後半の部分 html を、ファイルの拡張子 といいます。
★ ウェブのファイル名称は、若干の制約はありますが、かなり、自由です。ただし、index.html(index.htm) は、特別なファイルで、そのウェブにアクセスしたときに、自動的に、最初に、ブラウザに、表示されます。
★ ウェブの 1 ページは、1 つのファイルに対応します。ただし、ウェブの画像ファイルは、ウェブのページ内に表示される画像であっても、1 つの画像毎に、別ファイルになっています。
★ ウェブは、インターネット上で、URL (ホームページのアドレスなどを URL といいます) と呼ばれる固有の住所が付いています。ブラウザから、ウェブサーバにアクセスして、URL を指定して、呼び出します。
★ ブラウザは、ウェブサーバから、先ず、index.html を呼び出し、その後必要に応じて、html ファイルまたは、画像ファイルを呼び出して、ブラウザに表示します。
ウェブは、HTML という言語で書かれています。この、HTML は、ハイパーテキストと呼ばれるものによって、特徴づけられています。
★ ハイパーテキストには、リンクという機能があります。リンク は、特定の字句をマウスでクリックすることによって、所定の場所にジャンプする機能です。この講座の読者の皆さんは、既に、リンクを活用して、この講座を読んでいると、思います。
★ この講座のリンクは、IE(インターネットエクスプローラ)などのブラウザにおける、標準のリンク方式を使用しています。これらのブラウザにおける、標準のリンクでは、通常の文章の文字色は、黒色です。リンクの対象となる字句の文字色は、青色になっています。このリンク対象の字句に、マウスを合わせると、文字色が茶色に変わり、アンダーラインが現れます。
★ クリックしないで、マウスを外せば、もとの青色に戻ります。クリックすると、ジャンプが実行されますが、それ以降は、文字色は、藤色になります。
★ このリンクのリンク先は、ページ内は、勿論のこと、インターネット内なら、地球の裏側であっても、瞬時に行われます。インターネットの、便利さが、ここにも、あるわけです。
★ 会議は踊るという映画があります。ナポレオン敗北後の欧州秩序を話し合うため、90 の王国 53 の公国の代表がウィーンに集まり、ウィーン会議が開催されました。この会議を評した、オーストリアの将軍 リーニュ公の「会議は踊る、されど進まず」という、有名な言葉を、題名にした映画です。
★ セッション は、話し合いのことです。打ち合わせや、会議なども、セッションです。
OSI 参照モデルには、セッション層があります。このセッション層の、セッションは、プロセス間通信のことを、いいます。
★ 通常は、1台のコンピュータで、複数のプロセスが、同時並行して、走ります。たとえば、インターネットをしながら、メールを書いたりします。ブラウザで表示すべきデータが、メールのソフトに届いても、メールのデータがブラウザに届いても、困ります。
★ そういったことが、起こらないように、適切なプログラム同士で通信を行うように、することが、セッション層の役割りです。すなわち、されど進まず ということが無いように、することです。
★ この、セッション層の、重要な仕事の一つが、同期です。
◆ 一連のやり取りの途中に、同期のためのチェックポイント(同期点 )を挿入します。何らかの原因で、やり取りが、中断されてしまった場合には、チェックポイントまで戻って、やり取りを再開します。この、同期によって、確実な復旧が、可能です。
★ 暗号、というと、昔は、スパイを思い浮かべました。
インターネット時代の現在は、インターネットで買い物をすることが、多くなっています。そのとき、インターネットでは、クレジットカード番号を、暗号化して送ります。このように、暗号は、日常生活に密着したものに、なっています。
★ 遊びで、歌詞の中の、た だけ発音しないで歌を歌う遊びがあります。この、たぬきの歌も、一種の暗号です。下図左も、たぬき の暗号です。
★ 暗号 の歴史は古く、エジプトの象形文字の中に、暗号と思われる文字が記されています。上図右は、紀元前 5 世紀に、ギリシャのスパルタで使われた、暗号です。テープに書かれた文字を、図のように、丸めて横に読むことによって、解読されます。
★ 暗号化 は、一種の、符号変換です。暗号化する前の、元の文章を、平文 、暗号化した後の文章を、暗号文 といいます。そして、暗号文を平文に戻すことが復号 、その作業を復号化 といいます。
★ 平文を暗号文に変換する規則、逆に、暗号を平文に変換する規則のことを、暗号の鍵 といいます。前記の、たぬき の暗号では、鍵は、た の字の挿入/抜き取りです。その右暗号は、テープを棒に巻き付けることが鍵ですが、テープに巻きつけなくても、一定規則での並べ替えをすれば、復号化できます。
★ 上図右は、エニグマ という、暗号機 で、第 2 次世界大戦で、ドイツ軍が使用したものです。簡単な暗号機でありながら、極めて複雑な暗号を、作ることができました。ドイツ軍の無線通信に使用され、大戦初期の快進撃に貢献しました。また、ドイツ軍の U ボートと呼ばれた潜水艦でも使われ、連合国軍の船団に壊滅的ともいえる損害を与えていました。
★ ドイツ軍はエニグマに絶大の自信を持っていたため、 これが連合軍に解読 されるとは、夢にも思っていませんでした。しかし、1930 年代にはポーランドで解読に成功し、 次いでイギリスでも、チューリング らによって、エニグマが解読されました。チューリングは、世界で始めてのコンピュータを作った人です。
★ 変わった暗号に、タイムカプセル暗号があります。タイムカプセル暗号 は、指定時刻の、正式な時報が鍵になった暗号です。正式な時報とは、電波時計による時報です。
★ 暗号は、データを秘密にすること以外にも、利用されます。
★ 暗号は、鍵の方式によって、2 種類に、大別されます。
★ 共通鍵方式 を下記に示します。
★ 古くから使われているのが、共通鍵方式です。しかし、共通鍵方式には、大きな問題があります。暗号化も復号化も同じ鍵(共通鍵)を使用するため、鍵の受け渡しにリスクが存在します。もし、暗号文と一緒に鍵(共通鍵)が盗聴された場合は、簡単に暗号文を復号化されてしまいます。
★ また、通信相手ごとに、別々の鍵(共通鍵)を用意しなくてはいけないため、鍵(共通鍵)の配布や管理が、非常に困難です。この共通鍵方式の欠点を、解消するために考案された技術が、公開鍵方式です。
公開鍵方式 には、2 つのやり方が、あります。
★ 第 1 の方法は、暗号文の受け側(B)が、暗号文の鍵を作り、暗号文の送り側(A)が、B の作った鍵によって、暗号文を作って、B に送る、方式です。
★ 第 2 の方法は、暗号文の送り側(A)が、暗号文の鍵を作る方式です。
★ 暗号は、文書が本物であることを、保証するのにも、用いられます。
★ 図で、ハッシュ関数 というのは、与えられた原文から、固定長の疑似乱数を生成する演算手法です。生成した値はハッシュ値 (要約関数 、メッセージダイジェスト )と呼ばれます。通信回線を通じて、データを送受信する際に、経路の両端で、データのハッシュ値を求めて、両者を比較します。
★ ハッシュ関数によって、データが、通信途中で、改ざん されていないかどうかを、調べることができます。不可逆な一方向関数を含むため、ハッシュ値から原文を再現することはできません。また、同じハッシュ値を持つ、異なるデータを作成することは、極めて困難です。
★ ハッシュ関数の応用に、電子署名 (ディジタル署名 )があります。
★ 電子証明書 というものも、あります。