インターネットのしくみ

パケット通信

通信路を共有する。

1.共有しないなら、全部の通信点への回線を個別にひくので数が多くなる。接続は理想的だが、コスト高。増設が面倒

2.交換方式。かつての電話はスイッチの切り替え(交換機)によって2点間をつなぎ、つないでいる間は占有する方法であった

3.パケット方式。全部の点を常につないでおいて、データを小分け(パケット)にして一つ一つにあて先をつけ、回線が空いているときに送り出す。宛先の異なるパケットが混ざるが分岐点で振り分ける。

長いデータがあると長時間占有されてしまう。小分け(パケット)にすれば別のデータも間に挟めることができる。

分散管理

ローカルネットワーク内の接続は個々のネットワーク管理者の責任となる。

分岐点にはルーターと呼ばれる装置がありパケットを振り分けているが、ルーターは常に隣のルーターと経路情報を交換している。ルーターの故障や増設があったときには相互の情報交換で新しい経路を見つけ出す。経路情報を集中して管理しているわけではない。

住所をあらわすドメイン名もグループごとに分散管理される。

インターネットの管理は複数の国、政府機関、企業、民間団体など性格の異なるものに分割し天災、政変や経済危機などにも安定して運用されるようになっているが、アメリカ合衆国の権限が強いのではないかという心配をする人もいる。

RFC

Request for Comments(略称:RFC)はIETF(Internet Engineering Task Force)による技術仕様の保存、公開形式である。内容には特に制限はないが、プロトコルやファイルフォーマットが主に扱われる。RFCは日本語では「コメント募集」の意味であり、もともとは技術仕様を公開し、それについての意見を広く募集してより良いものにしていく観点から始められたようである。全てのRFCはインターネット上で公開されており、誰でも閲覧することができる。出典: フリー百科事典『ウィキペディア(Wikipedia)』

 RFCの一覧

    * RFC 748 - Telnet ランダム喪失オプション(1978年のジョークRFC)
    * RFC 768 - UDP
    * RFC 783 - TFTP
    * RFC 791 - IP
    * RFC 792 - ICMP
    * RFC 793 - TCP
    * RFC 826 - ARP
    * RFC 854 - Telnet
    * RFC 894 - IP over Ethernet
    * RFC 903 - RARP
    * RFC 959 - FTP
    * RFC 1034, RFC 1035 - DNS
    * RFC 1149 - 鳥類キャリアによるIPデータグラムの標準規格(1990年のジョークRFC)
    * RFC 1157 - SNMP
    * RFC 1189 - CMIP
    * RFC 1242 - ネットワーク相互接続機器のためのベンチマーク用語
    * RFC 1305 - NTP
    * RFC 1459 - IRC
    * RFC 1468 - インターネットメッセージのための日本語文字符号化(ISO-2022-JP)
    * RFC 1808 - 相対URL(RFC 3986により破棄)
    * RFC 1855 - ネチケットガイドライン
    * RFC 1866 - HTML 2.0(RFC 2854により破棄)
    * RFC 1867 - HTMLにおけるフォームからのファイルアップロード(RFC 2854により破棄)
    * RFC 1928 - SOCKS v5
    * RFC 1939 - POP Version 3
    * RFC 1942 - HTMLにおけるテーブル(RFC 2854により破棄)
    * RFC 1951 - Deflate圧縮フォーマット仕様 Version 1.3
    * RFC 1980 - HTMLにおけるクライアントサイドイメージマップ(RFC 2854により破棄)
    * RFC 2070 - HTMLの国際化(ISO-8859-1以外の文字セットをHTMLで使えるようにしたもの。「HTML2.x」もしくは「HTML i18n」ともいわれる。RFC 2854により破棄)
    * RFC 2080 - RIPng for IPv6
    * RFC 2083 - PNG
    * RFC 2131 - DHCP
    * RFC 2205 - RSVP
    * RFC 2247 - LDAP/X.500 識別名におけるドメイン名の使用
    * RFC 2251 - LDAP v3
    * RFC 2252 - LDAP v3: 属性文法の定義
    * RFC 2253 - LDAP v3: UTF-8 識別名のストリングリプレゼンテーション
    * RFC 2254 - LDAP v3: LDAP 検索フィルタの定義
    * RFC 2255 - LDAP URL形式
    * RFC 2256 - LDAP v3 で利用される X.500(96) ユーザスキーマの要約
    * RFC 2322 - Management of IP numbers by peg-dhcp(洗濯ばさみ-DHCPによるIPアドレス管理)(1998年のジョークRFC。実装例は#外部リンク参照)
    * RFC 2324 - Hyper Text Coffee Pot Control Protocol(1998年のジョークRFC)
    * RFC 2328 - OSPF Version 2
    * RFC 2396 - URIの一般的書式(RFC 3986により破棄)
    * RFC 2401 - IPSec : Security Architecture for the Internet Protocol
    * RFC 2453 - RIP Version 2
    * RFC 2460 - IPv6
    * RFC 2468 - IANAを偲ぶ
    * RFC 2549 - 鳥類キャリアによるIPのサービス品質(1999年のジョークRFC)
    * RFC 2550 - Y10K and Beyond(1999年のジョークRFC。2000年問題ではなく10000年問題について)
    * RFC 2555 - RFCの30年
    * RFC 2616 - HTTP/1.1
    * RFC 2732 - URLへのIPv6アドレスによるリテラルを含む書式(RFC 3986により破棄)
    * RFC 2740 - OSPF for IPv6
    * RFC 2795 - The Infinite Monkey Protocol Suite (IMPS)(1999年のジョークRFC。無限の猿定理の実証で用いることのできるプロトコル)
    * RFC 2854 - text/htmlメディアタイプ(IETFにより標準化されたHTMLを破棄し、メディアタイプがtext/htmlである文書の仕様についてはW3Cの仕様書を参照するように定めた)
    * RFC 2865 - RADIUS認証プロトコル
    * RFC 3261 - SIP
    * RFC 3305 - Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations(URI、URL、URNという概念についての考え方)
    * RFC 3377 - LDAP v3: 技術仕様
    * RFC 3411, RFC 3412, RFC 3413, RFC 3414, RFC 3415, RFC 3416, RFC 3417, RFC 3418 - SNMP
    * RFC 3501 - IMAP Version 4rev1
    * RFC 3514 - The Security Flag in the IPv4 Header(2003年のジョークRFC。このRFCは発行されたその日にFreeBSD上で実装された(すぐにキャンセルされたが))
    * RFC 3550 - RTP
    * RFC 3751 - Omniscience Protocol Requirements(2004年のジョークRFC)
    * RFC 3920, RFC 3921, RFC 3922, RFC 3923 - Extensible Messaging and Presence Protocol (XMPP) (Jabberを参照)
    * RFC 3977 - NNTP
    * RFC 3986 - URIの一般的書式
    * RFC 3987 - Internationalized Resource Identifiers(Unicodeの文字を使えるようにしたリソース識別子であるIRIの仕様定義)
    * RFC 4041 - Requirements for Morality Sections in Routing Area Drafts(2005年のジョークRFC)
    * RFC 4042 - UTF-9 and UTF-18 Efficient Transformation Formats of Unicode(2005年のジョークRFC)
    * RFC 4250, RFC 4251, RFC 4252, RFC 4253, RFC 4254, RFC 4255, RFC 4256 - SSH
    * RFC 4271 - BGP
    * RFC 4346 - TLS
    * RFC 4824 - The Transmission of IP Datagrams over the Semaphore Flag Signaling System (SFSS)(2007年のジョークRFC)
    * RFC 4960 - SCTP
    * RFC 5321 - SMTP
    * RFC 5322 - Internet Message Format

Internet Engineering Task Force

The Internet Engineering Task Force (インターネット技術タスクフォース、IETF) はインターネットで利用される技術の標準化を策定する組織である。

極めてオープンな組織で、実際の作業を行っている作業部会(Working group; WG)のメーリングリストに参加することで、誰でも議論に参加することが可能となっている。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

IPアドレス

IPv4

パケットを送るためには宛先が必要である。宛先はIPアドレスで指定する。現在使われているIPv4では、IPアドレスは次のような形になっている。

219.118.218.250

0〜255までの数値を . (ドット)で区切って4つつなぐ。これで 256×256×256×256=約42億 のアドレスを作ることができる。(32ビット)

一つ一つのコンピューターに異なるIPアドレスがついていなければならない(より正確に言うとネットワークインターフェースごとに異なるIPアドレス)。

これを決めたときにはこれほど普及するとは考えていなかったが、一人の人がパソコンと携帯電話を持ちテレビをインターネットにつなぐと3つのアドレスを割り当てられることになる。世界の人口が60億を越えているので明らかに不足する。

IPアドレスは申請があると割り当てをするが、このままでいくと2011年の夏には配布できるIPv4アドレスの在庫が無くなる。これを「IPv4アドレス在庫枯渇」という。そこでIPv6への移行が計画されている。

IPv4アドレス枯渇についてhttp://kokatsu.jp/ を参照

IPv6

IPv6 の IPアドレスの例

2001:c90:509c:8110:224:8cff:fe63:24f6

十進表記で0〜65535までの数値を16進表記で表し : (コロン)で区切って8つつなぐ。 65536×65536×65536×65536×65536×65536×65536×65536=340282366920938463463374607431768211456のアドレスを作ることができる。(128ビット)

IPアドレスを調べる

Linuxの場合、自分のコンピュータのIPアドレスは次の様にして調べます。

コマンドライン端末を使います。

[アプリケーション]-[アクセサリ]-[端末]で起動されるソフトウェアです。

コマンドライン端末はターミナルとかコンソールなどとも呼ばれます。

プロンプトの $ の後に、ip addr と入力して[Enter]キーを押します。

adachi@vine41:~$ ip addr[Enter]

次のような表示になるはずです。

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:e0:18:05:1a:65 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.40/8 brd 10.255.255.255 scope global eth0
    inet6 fe80::2e0:18ff:fe05:1a65/64 scope link 
       valid_lft forever preferred_lft forever

2:eth0 の inet にIPv4のアドレス、inet6 にIPv6のアドレスが出ています。

ちょっと前のLinuxではこちらの ifconfig を使わなければならないかもしれません。

adachi@vine41:~$ /sbin/ifconfig[Enter]
$ /sbin/ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス 00:e0:18:05:1a:65 
          inetアドレス:10.10.10.40 ブロードキャスト:10.255.255.255  マスク:255.0.0.0
          inet6アドレス: fe80::2e0:18ff:fe05:1a65/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:13838 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:13182 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:1000 
          RXバイト:8936497 (8.5 MiB)  TXバイト:3470306 (3.3 MiB)
          割り込み:10 ベースアドレス:0xb000 

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:30 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:30 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:0 
          RXバイト:2332 (2.2 KiB)  TXバイト:2332 (2.2 KiB)

ただし、10.xxx.yyy.zzz というアドレスや、192.168.xxx.yyy というアドレスは LAN内のみで使うことを許された「プライベートアドレス」です。インターネットにアクセスするにはLANとインターネットをつないでいるルーターでインターネットに通用する「グローバルアドレス」に変換します。

IPv6のfe80で始まるアドレスもLAN内で限定的に使われるアドレスです。

IPv4アドレスがなくなったらどうなる?

新しくアドレスが配布できないだけで、既に割り当てられているアドレスはそのまま使用できます。使わなくなったアドレスを再利用したり、プライベートアドレスで済ませられるところはこれも使えます。

それでも根本的な解決にはなりません。IPv4アドレスが配布されないコンピュータは、IPv6アドレスを使用することになります。IPv6に対応したルーターを経由して、IPv6でもサービスをしているサーバーにアクセスしたりIPv6に対応するコンピュータと通信したりできます。

LinuxもWindowsもすでにOSはIPv6対応を済ませています。ルーターやサーバーをIPv6に対応させる作業が残っています。分散管理なので、それぞれの管理者が対応する必要がありもう少し時間がかかります。

「インターネットのしくみ」の課題

(1)インターネットの通信をなぜパケット方式にしたのか

(2)インターネットの規約をRFCという形式にしたのはなぜか

(3)自分が使っているコンピュータのIPアドレスを調べなさい。(IPv4,IPv6両方)

聖愛中学高等学校
http://www.seiai.ed.jp/
Jun. 2010