line-01
line_glay
>
 welcome!   page:/tcp_ip/php-ip.html
  odic01   TCP/IP超入門覚え書き
  by:大阪演劇情報センター+未知座小劇場   更新日:
 home:top   server library:top
top
line_glay

TCP/IP超入門覚え書き

    1. TCP/IP超入門覚え書き
      1. はじめに
      2. 経過
      3. 三線ハンドシェイク方式 (3-Way handshake)
      4. パケット
      5. ポート
      6. イーサネット
      7. IPとICMP
      8. UDPとTCP
      9. 名前解決
      10. アプリケーションプロトコル
      11. NATとNAPT
      12. DHCP
      13. 補記
    2. VPN

はじめに

ネットワークについてのあれこれになります。
PC/AT互換機単体であれば、このTCP/IPは問題の俎上に登場して来ないのではないのでしょうか。また、ネットワークを構築したうえで、データ交換なしというのもない、と思われます。
現状、一般的にはネットワークといえばWAN-インターネットに接続しているというのが実態と思われます。httpやmailを含めてインターネット上でのデータの交換が、大きな比重を占めているのが、わたしたちの今日なのではないでしょうか。
インターネットというネットワークでのデータの交換、それはとりもなおさず情報やその結果としての物語の交換なのですが、それらの環境は個別的であり各々独自です。これらの異種性や、独自性を覆い隠し、データの交換を通信として可能にしようというものが、約束ごと、すなわちプロトコルのようです。
このプロトコルの一つにTCP/IPの機構があります。プロトコルには幾種類かありますが、インターネットでのデータの交換には外せない、重要なプロトコル群になっています。
これはイメージなのですが、TCP/IPはデータ本体を丸抱えに、とりあえず知合いに目的地に送ってくれと頼みます(ネクストポップ)。この頼まれた知人も、何を頼まれたのかわからず丸抱えにし、都合のいい自分よりうまく届けてくれる知合いに頼みます。そのとき頼んだのは自分だと示す情報の上着を、一枚着せます。又頼みするのは、餅屋は餅屋で機能的なのです。このようにして四五枚の上着が着せられます。この上着のことを階層、あるいはレイヤーと呼びます。一枚一枚の上着はヘッダです。最後にデータは必要に応じて再現され、情報となります。これをわたしは、又振りの無責任体系と呼びたいほどですが、換言すれば、プロセスそのものを信用しない、あるいは多機能を要求しない、プロセスに本質的な仕事をさせない、等によってデータ移管の完遂を保証する、といえばいい過ぎでしょうか。
蛇足ですが、データを操作するとは、この上着を操ることを意味します。ルータはヘッダを取捨選択することによって通過、破棄を決定します。ファイアーワオールにもなるiptablesもまた、同様です。
面白いのは、通信プロトコルにおいてデータを操作するとは、データ本体をカイザン、修正、変容するのではなく、環境を操作するという発想です。これは明らかに一つの情報論です。興味はつきません。(03.05.13)

再び蛇足ですが、わたしはこのような情報論を知りません。「情報とは物語のことである」とするわたしの演技論からすれば、それは単なるデータ移管にすぎません。情報とはデータを主観によってカイザンし、そのことによってメッセージとしての価値を持ち、主体の責任性が付加されます。それをわたしたちは、近代まで物語と呼んできました。このとき物語は表現であり、力であることができたのは歴史が証明するところです。しかし、物語の商品価値が目的化され、荒波によって情報として一般化されることで、物語は消費の対象になることができたのでした。もちろん物語が価値などという絶対化に耐えられなかったにすぎません。正確には、情報によって価値が生産される、などという神話が崩壊しただけなのですが。言葉をかえれば、物語という情報は、神話へ向かう価値などではなく、ある個別的な価値を操作するための状況そのものである、ということになります。思いは、コマーシャル論や『わが闘争』、ポスト構造主義などがめくりめくのですが、それでもやはり絶対価値の喪失による価値の多元化、などといっても、それは何年まえの話だというしかありません。
さて、蛇足はとっとと終りたいとおもいます。ただわかることは、TCP/IPというプロトコルの思想を前にして、その情報論がクローンイデオロギーを生み出したことは、間違いないようです、という歴史観を持ち上げたい気がします。論証は別稿にゆずりますが、TCP/IPが先かクローン技術が先か、そこはわかりません。(03.06.12)
三度蛇足です。上記の論理構成で行くと、どうしても『クラッカー』を位置付けてみたい誘惑にかられます。お断りしておきますが、わたしは無前提に、それを肯定する気も否定する気もありません。誤解の多いもの言いですが、ここではそれにとどめます。
拙い知識をふりかざすと、「それは一つとして、通信プロトコルにおいてデータを操作するとは、データ本体をカイザン、修正、変容するのではなく、環境を操作する」ことをカイザンし、意志化するということになります。ここで終れば、それはそれですが、自然成長過程として「データ本体をカイザン、修正、変容」は、含まれるはずです。サーバ自体の乗っ取りは、また別の、つまり、舞台自体の乗っ取りであり、表現の否定につながります。真に舞台を批評するのは,もう一つの舞台でしかないので、これはここでは置いておくことができます。
つまりわたし自身の論理展開として注目するのは、情報の現在は、極めて古典的な物語論の範疇にある『クラッカー』行為によって、その最前線は翻弄されているということになります。しかしわたしは、物語を無化したのは、他ならぬ情報の現代であると位置付けるものです。
ここではネジレが起こっています。否定したものによって、翻弄されているのです。否定とは、否定対象の限界と不可能性を、新たなる価値と可能性のなかに再生させる、という行為です。つまり弁証法でいうところの止揚が行われたのですから、死滅した物語論に翻弄されることはありえないはずなのです。
さてこの状況は、単なる復讐談なのでしょうか。それとも情報の現代が自身を相対化させるための、産みの苦しみなのでしょうか。あるいはまた、すべてが無化されるための予兆なのでしょうか。
これで蛇足は終りです。明確に仮説立てるには、別稿を用意しなければなりません。(03.06.15)

アプリケーション層html,SMTP,IMAP,FTP,TELNET
トランスポート層TCP,UDP
インターネット層IP,ICMP
ネットワーク インターフェイス層Ethernet,FDDI

またまた蛇足を追記をします。あるいはやはり、TCP/IPに返ってしまうといえば良いのでしょうか?iptablesの理解を深めようとすると、TCP/IPの再整理を迫られます。考えてしまいますが、整理しきるなどということがあるのでしょうか?やはりTCP/IP史などというものは、あるのでしょうが、原理論をどこから始めればいいのか門外漢のわたしには、皆目見当がつきません。
演劇史や演技論となれば、そこそこ見渡したところから作業を始めることはできるのですが、サーバやネットワークとなると、まだまだお手上げです。Linuxとはまさに、わたしには「TCP/IPでネットワークを組み、Webサーバやメール・サーバなどのアプリケーションを利用すること」ですからTCP/IPを切り離せず、問題発生のその要請にしたがってTCP/IPの整理を繰り返すのです。このTCP/IPに対する演繹法をこまめに進めるしかないのですが、これは例えば「この電線に5ボルトの電圧がかかったら、それは数値の1ということにしよう」「この電線の電圧が0ボルトなら、それは数値の0ということにしよう」などという約束ごとを、一つ一つ整理していくことにほかなりません。つまり「ちなみに『5ボルト = 電圧がある状態 = 1』『0ボルト = 電圧がない状態 = 0』という約束事を『正理論』といい」となると非常に整理されたような気になるのはわたしだけでしょうか。それはさておきこれらの個別の積み重ねが、ある総和をみるでしょうが、それが総体としての何かを意味し、未整理の部分や疑問点が意を得て氷解するだろうとは、やはり思われません。むしろスキルとは、現場でする作業を積み重ねた経験値である、というものいいが実感されるのでした。(引用は『日経Linux』2002/7 p93から 03.07.18)

経過

TCP/IP(ティーシーピー/アイピー Transmission Control Protocol/Internet Protocol)とのつき合いは思い起こせば数年前、YAMAHA50iというルータを購入してからだと思います。それ以前の通信環境は、モデム通信から抜け出しISDN回線とTAによるものでした。もちろんLANなどは存在せず、Mac・パフォーマー575がインターネットに直結されていました。
自身の整理も含めて、ルータ購入以前のLAN環境とおぼしきものを、記憶の底から掘り起こしてみると、ISDN回線導入直後はMac・パフォーマー575のシリアルポートとTAが接続されているだけでなく、TAの電話回線側にもモデムを接続しMac・クラシック2がぶら下がっていました。これはISDN回線が電話回線を二回線使えるということで、外部からの電話回線アクセスをAppleTakeによるリモートアクセスで行い、Mac・クラシック2をファイルサーバーとしたものでした。
LANが成立していないので限界がきます。PowerPC7200を借りました。ルータとハブを購入しました。575にネットワークカードを増設、PowerBook520にNICアダプターを購入。これでLANの成立、まだLinuxサーバもWindows機もないころでした。
一見、AppleTakeによるLAN構築でいいように思われますが、ルータ越しに各パソコンが話をするということなので、TCP/IPの登場であり、それによってインターネット環境もカバーするというものでした。確かYAMAHA50iはプロトコルとしてAppleTakeをカバーしていなかったと記憶します。この段階ではグローバルIPアドレスは問題になっていません。正確には、プロバイダの設定書類にDNSサーバのグローバルIPアドレスが明示されているのですが、DHCPサーバを利用できるので、DNSサーバのグローバルIPアドレス?何のこちゃ、で済ますことができたように記憶します。こうしてTCP/IPとのつき合いが始まりました。

三線ハンドシェイク方式 (3-Way handshake)

LAN環境での話で済んでいれば、ここから先の拙文はありません。それはひとえに、PC互換機によるサーバ設置による、ついにはどうしても避けて通ることのできないTCP/IPの話などになります。またそれは、ルータ設定やLAN構築での疑問点が、ある程度氷解していく課程のことにもなると思います。ですからここでのTCP/IPの内容は、ソースなどを解読して、みなさんに報告するというものではありません。それは、なぜ繋がらないんだという現場での、試行錯誤のまとめであり、入門書やマニアル本、TCP/IPなどを解説したサイトにアクセスして得た、わたしがするTCP/IP観というとことでしょうか。できるだけ現場性を重視したいと思います。おつき合い下さい。

TCP/IPという通信プロトコルは1960年代後半、アメリカの国防総省が実験用に作ったコンピュータのネットワークから生まれたといわれています。UNIXに実装されMacやWindowsに搭載されて今日にいたり、現在では世界標準(デファクトスタンダード=事実上の標準)といっていいようです。
具体的にいきたいので、このあたりの原論や過程史はいずれ返って来るとして、いきなり次のように始めます。
わたしたちが、普段パソコンをさわっていて、直接TCP/IPにぶちあたるのは通信機器の設定やメーラーの接続設定の場合です。目にするのは192.168.0.1といった数字ということになります。IPアドレスです。IPアドレスにはWAN(Wide Area Network)で通用するグローバルIPアドレスとLAN(Local Area Network)で使用するローカルIPアドレスがあります。
ほとんど本屋で立ち読みした書き写しのようで、自分でもいやになりますが、確認事項であると勘弁下さい。
さて、このIPアドレスは文字通りアドレスです。何のアドレスか?脈絡からいけばあなたのパソコンの住所です。(2001.12.26)

住所が判れば、荷物を送ることができます。そのまえに、この住所が本当かどうか調べます。
    1.あなたですか?
    2.そうです、間違いありません。
    3.判りました。宜しく。
この三段階のやりとりを繰り返し、フラグが立ちセッションは確立します。セッションの確立でどちらからでもデータを送ることができるようになります。この三回のやりとりを三線ハンドシェイク方式(3-Way handshake)と呼びます。

パケット

相手が特定できたところで、データ交換が行われます。このデータはパケットに分割され送信されます。この作業はIP層のIPプロトコルによって行われます。
データがパケットに分割され送信される単位ですが MTU(Maximam Transmission Unit)といいます。IPパケットサイズは最大で65535オクテット(65535バイト)と決められていますが、下位層の条件に規定されます。IPパケット通信をイーサネットで行っている場合、容量が1500オクテット(1500バイト)ですから、これに規定されます。

ポート

ポートは0→65535の65536個あります。このうち0→1023はウエルノウンポート(well-known)と呼ばれます。これらは決められたサービスのために確保されたものです。

イーサネット

NICの設定はOSインストール時にほぼ自動認識で済ますことができるが、後日NICの差し替えによる組込みは、一苦労する場合がある。
現状のドライバは、

# lsmod

で確認できる。
ここにリストアップされていなく、ドライバ名がわかっている場合は、

# find / -name e1000
/lib/modules/2.6.x-x/kernel/drivers/net/e1000/e1000.ko
# cd /lib/modules/2.6.x-x/kernel/drivers/net/e1000/
# insmod e1000

で追加できる。
ここでうまく認識できても、PC機を再起動すると認識できないので、/etc/modules.conf に記述することでNICの使用が可能となる。

IPとICMP

UDPとTCP

名前解決

アプリケーションプロトコル

NATとNAPT

DHCP


補記

《 ■ 参照URL   ※サイト内参照ページ    引用、参照書籍 ■ 》
netfilter/iptables FAQ 日本語訳
指定時刻にジョブを実行する
※crontab
※rsync 同期をとるバックアップ
※TCP/IP(Transmission Control Protocol/Internet Protocol)
『実践セキュリティ』 著/白崎博生 刊/ASCII
『実践Linuxセキュリティ』 著/すずきひろのぶ 刊/インプレス
『Linuxセキュリティ入門』 著/清水正人 刊/ASCII
『Linuxでパソコンをルータにする』 著/安井健次郎 刊/ディー アート
『Linux magazine Linuxで作る光速ルータ』 2003年4月号 刊/ASCII
『Linux WORLD IPネットワーク基礎講座』 2002年5月号 刊/ASCII
『ステップ式サーバ構築入門 はじめてのファイアウォール』 著/内田法道 刊/技術評論社

このページの作成にあたり、上記に掲げたURLや書籍を参考にしました。謝意を表します。具体的な引用については明記しました。 内容の間違いや、誤字は筆者の責任であり、関係する参照先の責任ではありません。

top     home:top     server library:top     PHP PostgreSQL MySQL サンプルスクリプト     SiteMap     Open SiteMap