いまさら聞けないネットワーク
年々進化して行くインターネットの世界、今だからこそ初心に振り返ってみましょう
新たな発見や閃きがあるかもしれません。
インターネットって?
- インターネットは、米国国防総省が構築した、
ARPAnet(Advanced Reserch Projects Agency net)を起源とした、分散型のコンピュータネットワークです。
1990年代に、商用ネットワークとして利用可能になると、世界中で利用者が急激に増大し、電子メールやホームページの閲覧など、さまざまな用途で幅広く活用されるようになりました。
- インターネットは、世界中のネットワークが接続されたネットワークです。自宅や会社、学校などのネットワークが、それぞれの契約しているプロバイダ(ISP== Internet Service Provider)によって、インターネットに接続されています。
- インターネットで情報の行き先を管理するために利用されているのが、それぞれのコンピュータに割り振られているIPアドレスと呼ばれる数字です。
IPアドレスは、各国ごとに設置された機関がIPアドレスを利用者に配布しています。
IPアドレス
- インターネットの基盤はOSI基本参照モデルのネットワーク層プロトコルであるIPを使用するパケット通信システムです。
- IP通信ではホストやネットワーク機器にユニーク(一意)なIPアドレスが必要です。
- IPネットワークに接続される多種類の情報機器を総称してホストと呼びます。
- IPアドレスはインターネットに接続される個々のネットワークを識別する部分と個々のネットワーク中のホストを識別する部分で構成されます。
- IPアドレスは固定長で現在主に使用されているIPv4は32ビットで構成されます。
次期のIPv6では128ビットに拡張されています。 - インターネット運用規則ではIPv4アドレスは5種類のクラスに分類されました。
クラスA~クラスCが一般的なアドレス形式です。 - IPアドレスの重複を避ける為に管理組織(InertNIC,JPNIC)などがネットワークアドレスを割り当てます。ホストアドレスは個々のネットワーク管理者が割り当てます。
アドレスクラス
- 上位ビットによりクラスA~クラスEまでに分類されます。
クラスA 第一ビット0
クラスB 第一ビット1
クラスC 第二ビットまで全て1
クラスD 第三ビットまで全て1
クラスE 第四ビットまで全て1
IPアドレスは32ビットの2進数ですが、便宜上8ビット毎(オクテット)に区切って10進数に変換しピリオド「.」で区切ったり、16進数に変換しコロン「:」で区切って表します。
クラスCの例
2進数 → 1100 0000 0000 0000 0000 0000 0000 0001
16進数 → C0:00:00:01
10進数 → 192.0.0.1
- プライベートアドレス [RFC 1918]
インターネットのIPアドレスは重複しないよう管理組織(InterNIC,JPNICなど)によって管理されていますが、イントラネットにおいてもIP通信を行いたいことからプライベートアドレスが考案され、このプライベートIPアドレスはインターネットではルーティングされません。
クラスA~クラスCに規定されています。
クラスA 10.0.0.0~10.255.255.255
クラスB 172.16.0.0~172.31.255.255
クラスC 192.168.0.0~192.168.255.255
- ループバックアドレス (例:127, ::1) [RFC 1122]
- ブロードキャストアドレス (例:255.255.255.255, 0) [RFC 1122]
- リンクローカルアドレス (例:169.254) [RFC 3927]
- テストネットワーク (例:192.0.2, 198.51.100, 203.0.113) [RFC 5737]
- シェアードアドレススペース (例:100.64〜100.127) [RFC 6598]
プロトコル
特に意識することもなくインターネットを利用してWebサイトやEメールのやり取りをしていることでしょう。実はプロトコル(通信の規則、手順)によって利用しているのです。
- プロトコルの基礎
プロトコル(Protocol)とは通信規則または通信手順のことを指します。
情報機器の間でデータのやりとりをする場合に送信側が送ったデータを受信側で正しく受け取る為には、その為の規則であるプロトコルとそれを実行する手順を予めそれぞれの情報機器に教えておかなければなりません。
限られた範囲だけなら独自のプロトコルでかまいませんが不便な点もあります。このプロトコルを標準化し共通プロトコルとして使用すれば相互接続が容易に行えるようになります。
この標準化を行う機構としてISO(国際標準化機構)、ITU-T(国際電気通信連合・電気通信標準化部門)、IEEE(米国電気電子学会)、IETF(Internet Engineering Task Force)等があります。
1つのネットワークシステムの中では複数のプロトコルを組み合わせて使用します。
個々のプロトコルと他のプロトコルとの関係はどうなっているか、という事を理解することが大切です。
TCP/IPプロトコルと階層構造
現在のインターネットのプロトコルはTCP(Transmission Control Protocol)とIP(Internet Protocol)を中心とするTCP/IPスイートと呼ばれる一群のプロトコルです。
TCP/IPの機能はOSI基本参照モデルのネットワーク層からアプリケーション層の範囲に相当し、セッション層からアプリケーション層をまとめてアプリケーション層としています。
LANのプロトコルとして標準化されている機能はOSI基本参照モデルのフィジカル層からデータリンク層に相当し、通信ケーブル、無線リンクなどは OSI基本参照モデルでは規定されていないが、イーサネット方式は伝送媒体共用型LANであり、フィジカル層、データリンク層と密接な関係があります。
ドメインって?
ネットワーク上にあるコンピュータの配置を、ドメインというひとかたまりの管理単位に分ける際に設定される名前のことを言います。
たとえば、“xxx.co.jp.”のように記述します。
また、ドメイン名の中で、“www.xxx.co.jp”というドメイン単位に配置されるコンピュータの名前(www)まで含めたドメイン名を、完全修飾ドメイン名と呼びます。(FQDN==Fully Qualified Domain Name)
トップレベルドメイン(TLD)
- ルートドメイン
ドメイン名の空間全体 - gTLD(generic TLD)
com、net、orgなど - ccTLD(country code TLD)
国別、基本的にISO3166の国コード(イギリスを除く)
jp(日本)、kr(韓国)、de(ドイツ)、ch(中国)など
ドメインの管理
- 管理は管理組織(InertNIC、APNIC、JPNIC)でおこなう
- 指定事業者(ドメイン登録業者)が運用
- 指定事業者をICANN-Accredited Registrarsが管理
指定事業者(レジストラ)
ドメイン登録を運用代行
- 認定ドメイン
レジストラにより扱えるドメインが異なる
JP指定事業者制度(JPRS)
グローバルメディアオンライン(お名前.com) → 日本最大手
ライブドア(livedoor DOMAIN)など
DNS (Domain Name System) の用語
- ラベル
英数字及び「-」ハイフンからなる任意の文字列
アルファベットの大文字小文字は無関係 - ドメイン名
頂点ノードからルートまでのラベルを「.」ピリオドで区切ってつなげた文字列
DNS (Domain Name System)とは
ホスト名とIPアドレス間の変換機能
ns1.hoge.net → 210.XXX.XXX.XXX
階層構造を持つ分散データベース
- 一貫性を保ち、負荷の集中を避ける
- キャッシュによる検索効率の向上
DNS のデータ検索(名前解決)とは
- 正引き:ホスト名からIPアドレスを求める
- 逆引き: IPアドレスからホスト名を求める
- サーバ・クライアントモデル
- サーバ : ネームサーバ
- クライアント: リゾルバ
- UDP(TCP)/IP: 53番ポート
DNS のマスター、スレーブとは
マスター
- データベースのマスターファイルを管理
- マスターの持つデータファイルを編集する
スレーブ
- マスターサーバのデータをコピーとして持つ
- マスターサーバのバックアップ
- 冗長、負荷分散
- データのコピー:ゾーン転送(zone transfer)
- TCP/IPを利用する
- コピーのタイミング: 定期的 or マスターからの通知による
問い合わせる側(リゾルバ)にとって違いは無い
- どのサーバに問い合わせても同じ応答がある
キャシュサーバを用いた検索手順とは
スタブリゾルバからキャッシュサーバへの問い合わせ
- 反復問い合わせ(recursive query):全検索手順の代行を要求
- キャッシュサーバによる検索
- ルートサーバのIPアドレスはヒントファイルで指定
常にルートサーバへの問い合わせから始まる。
下位ゾーンの検索は、委譲先のサーバに対して継続
目的ゾーンに到達するまで繰り返す。
各問い合わせは非反復的 - ルートサーバ、gTLDサーバは反復問い合わせにも非反復的に応答する
- キャッシュされた名前に対する問い合わせ
キャッシュされたデータをそのまま返す
TTLが減少する。
電子メール(E-Mail)って?
電子メールの送受信は、インターネット上の多くのメールサーバーが連携することによって動作しています。
- 電子メールを送信すると、
契約しているプロバイダや、学校や会社にあるメールサーバーにデータが送られます。 - 電子メールを受け取ったメールサーバーは、
宛先として指定されているプロバイダなどのサーバーに、そのデータを転送します。
電子メールを受け取ったサーバーは、受取人が電子メールを取りにくるまで、サーバー内にデータを保管するようになっています。
- 電子メールの受取人は、契約しているプロバイダのメールサーバーや会社のメールサーバーに自分宛ての電子メールを取りに行き、届けられた電子メールを受け取ります。
- 一般的に電子メールの送信や他のサーバーへの転送にはSMTPサーバーが、電子メールの受信にはPOP3やIMAP4サーバーが使用されています。
ウェブ(www or Web)って?
- World Wide Web(ワールド ワイド ウェブ、略名:WWW)は、
インターネット上で提供されるハイパーテキストシステム。
単にWeb(ウェブ)と呼ばれることも多い。
インターネットは、コンピュータネットワーク自体を指す言葉であるが、 日本人の日常用語ではWWWまたはWWWブラウザを指す誤用がマスコミを通じて広がった。
- WWWでは
ドキュメント(ウェブページ)の記述には主にHTMLやXHTMLといったハイパーテキスト記述言語が使用される。
ハイパーテキストとは、ドキュメントに別のドキュメントのURIへの参照を埋め込むことで(これをハイパーリンクと呼ぶ)インターネット上に散在するドキュメント同士を相互に参照可能にするシステムです。
- ホームページとは、Webサイトと呼ばれるインターネット上のひとまとまりのWebページのことをさします。
元々は、Webサイトの入り口のページをホームページと呼んでいましたが、日本ではWebサイトと同じ意味で使われるようになっています。
- ホームページを閲覧する場合には、
IE(Internet Explorer)やNetscapeなどのWebブラウザでURLアドレスを指定します。
URLアドレスを指定すると、Webブラウザがインターネット上のWebサーバーをインターネット上のDNSを利用して探し、目的のホームページを自分のコンピュータに表示します。
ウェブはクライアントサーバモデルに基づくシステムである。
World Wide Web上のウェブページなどの資源にアクセスするには、まずウェブブラウザにURLを入力するか、ウェブページのリンクをたどります。
すると、第一段階としてURIのサーバ名を表す部分が Domain Name System (DNS) と呼ばれるインターネットの分散データベースによって IPアドレスに変換され(IPアドレスが直接指定されている場合はこの変換は行われない)。
次に、そのIPアドレスに対応するWWWサーバに対して、URIのスキーム(通信方法などの指定)に従い接続を試みます。
プロトコルとしては主にHTTPが使用されます。
一般的なウェブページでは、ページを構成するHTMLドキュメントや画像ファイルが要求され、即座に要求元に転送される。
ウェブブラウザは、受け取ったHTMLファイルやCSSファイルにしたがってレンダリングし、画像をはめ込み、リンクをはめ込むなどの仕事を行います。
これによってユーザーが見ている画面上の「ページ」が生み出される仕組みです。
多くのウェブページは他の関連するページとのハイパーリンクを含んでいます。それは例えばダウンロードのページだったり、ソース文書だったり、他の定 義だったり、ウェブ上の何かの資源だったりする。
このハイパーリンクによって情報の「Web(網)」が形成される。
これによって World Wide Web が構成されているといえる。
WWWを構成する根本的な標準規格が3つ存在する。
- Uniform Resource Identifier (URI) は、
ウェブページのようなWWW上の資源を参照するための汎用のシステムである。 - Hypertext Transfer Protocol (HTTP) は、
ブラウザとWebサーバの通信方法を指定したもので、HyperText Markup Language (HTML) は、ハイパーテキスト文書の構造と内容を定義しているもの。 - WWWで使われる技術は従来IETFのRFCにより標準化されてきたが、現在は非営利組織であるWorld Wide Web Consortium (W3C) によって標準化が進められている。
現在、W3Cは上記を含めた様々な標準を開発・保守し、 WWW上のコンピュータが様々な形態の情報を格納してやりとりできるよう尽力している。
JavaとJavaScript
もうひとつの技術上の大きな発展はサン・マイクロシステムズのJavaである。Javaによって、小さなプログラム(アプレット)を直接 WWWサーバが提供する情報に埋め込むことを可能にした。このアプレットはクライアント側のコンピュータ上で動作し、高速で豊かなユーザインタフェースを可能とした。その後、Javaはサーバ側で複雑なコンテンツを自動生成するために広く使われるようになった。 JavaScriptはウェブページのために開発された、クライアント側のスクリプト言語である。
標準化されたバージョンはECMAScriptと呼ばれる。ネットスケープコミュニケーションズが開発したものであって、サン・マイクロシステムズとは関係ない。文法はC言語に似ていて、その意味ではJavaにも似ている。オブジェクト指向的にコーディングする以外に手続き的にコーディングすることもできる。
DOMと組み合わせることで、JavaScriptはその設計者が想像した以上に強力な技術となった。JavaScriptの使用はそれまでの静的な HTMLページと区別するためにダイナミックHTML (DHTML) と表現されることが多い。さらに近年はJavaScriptを使って、よりインタラクティブなウェブサイトが作ることのできるAjaxという技術も普及している。
※Document Object Model(DOM)