プログラミングスレまとめ in VIP

プログラマ的ネットワーク適当講座

インターネットとは

インターネットとは世界中の何十億というコンピュータが接続されている巨大なネットワークのことです.

インターネットはアメリカの軍事ネットワークが起源です.来るべき核戦争時代に備えていくつかの通信設備が破壊されても通信が続けられるような強固なネットワークを目指して開発されました.インターネットはこの特徴を受け継いでいます.

OSI参照モデル

インターネットは実際にはかなり複雑な仕組みで運用されています.が,実際にインターネットを楽しんだり,簡単なプログラミングをするなら深いことを知らなくても使えるようになっています.OSI参照モデルの項目を見てください.通信をする際にはお世話になるプロトコルはかなりたくさんありますが,インターネットを利用するならTCP/IPというものだけを知っていれば何とかなります.あとは下位のプロトコルやライブラリが補ってくれるので楽できるというわけです.

OSI参照モデル - Wikipedia

TCP/IPとは

TCP/IPってのはプロトコル(コンピュータ同士の通信の決まり)の一つです. つまり通信するときの約束事インターネットもこれ使ってるので家庭内LANなんかもだいたいこれ. ネットワークがからむ通信するならこれの知識が必要です.

IPアドレス

まずはネットワークに繋がったコンピュータと通信するには相手を特定する必要があります.そのためのネットワーク上の住所がIPアドレスです. IPアドレスは32bit長で255.255.255.255のような形式で表されます. IPアドレスはユニークな番号です(つまり重複がない)
自分のIPアドレスが何か知りたいなら確認君を使ってみましょう・

ドメインネーム

さてIPアドレスは数字で人間には覚えにくいものです. そこで数字の代わりに文字でアクセスできるような仕組みを考えました それがドメインネームです. 2ch.netとかgoogle.comとか.

このドメイン名は申請をすれば安いもので1000円/年くらいで取得できます. 将来的になにかのWebサイトを立ち上げたりするときは取得を考えてもいいでしょう.

ポート

IPアドレスでパソコンまで特定できました. しかし今のコンピュータではネットワークを使うプログラムは同時にたくさん動いてます. あなたの知らないところでも.

コンピューターが一つの穴からいろんな情報を出し入れしてては,どのプログラムがどの情報を出し入れしているか混乱してしまいます. そこで偉い人はポートというものを作って通信をわけようと考えました. ポートは0から65535までの番号が使えます 若い番号はだいたい何に使うのか決まっていて. 80番はhttp(hypertext transfer protocol)つまりHTML(webコンテンツ)の送受信があてられています.

例として ポート番号 #代表的な例 -Wikipedia などがあります.

自分で使うときは適当に15356とか指定するといいと思います. IPアドレスとポート番号を一緒に書くと. 188.234.211.17:15356
となります.

http通信をするならアドレスとして
http:///188.234.211.17:15356/
を指定すればいいことになります.

ローカルループバックアドレス

さてプログラミング中はしょっちゅうテストしたくなります
ネットワーク系のプログラミングなら必然的にサーバを立てる事も多いでしょう. でもバグだらけのプログラムを公開されている鯖に上げてテストするのは気がひけます. できれば自分のPCで鯖もクライアントも実行できたらデバッグも楽でいいですね.

そこで自分のアドレスをいちいち調べてやるのもいいですが実は特別なアドレスが用意されています. それが127.0.0.1でローカルループバックアドレスとか仰々しい名前が付いていますが. 要するに常に自分自身を表します. これでいちいち自分のアドレスを調べなくてもいいのでちょっち楽できますね. ちなみにlocalhostといれても同じになります.

6 プライベートアドレスとグローバルアドレス

IPアドレスを調べる方法は確認君の他にもう一つあります
コマンドライン(Dos窓・コマンドプロンプト)でipconfig(windows)を実行してみてください. たぶん確認君とipconfigではアドレスが違う人がいるはずです. それはグローバルアドレスプライベートアドレスの違いからくるものです.

なぜこんな不思議な事になっているかというと. IPアドレスは32bitでした.つまり最大43億くらいしか表現できません. 人口60億時代にこれは少ないわけです.

しかもうちの大学は駅弁のクセにクラスBのアドレスもらってます(つまり6万個くらいとってる.しかもほとんど使ってない).

案の定足りなくなりました なんだかY2K問題思い出しますね. そこでおめえら「節約しろバカ」ってことでプライベートアドレスってのが誕生しました.

192.168.*.*というのがプライベートアドレスです. 他にもあるけどあんまつかわんし省略. 家庭内・企業内からインターネットにつながる直前まで通用するアドレスです.逆にいうとインターネットでは通用しません. だから192.168.24.1というアドレスは実はこの世に沢山存在します.

使用例:192.168.24.1は俺のアドレスだから使うなよ.

さて一家にたくさんPCがある今では沢山のアドレスを必要とします.一台もパソコンのない家庭なんて俺ん家くらいでしょう. そこで家のPCにはプライベートアドレスを設定します.

プライベートアドレスではインターネットに繋げないので,グローバルIPをプロバイダさんに一個だけもらってみんなで使い回します. そうすると家に何台PCがあってもグローバルIPは一個で済みます.

ipconfigではプライベートアドレスが表示されます.確認君ではグローバルアドレスが表示されたため違うアドレスが表示されたんですね

詳しくは本でもって読んでもらった方がいいと思います.

DNS

ドメイン名とIPアドレスが対応していると話しましたが,これはどうやって調べているのでしょうか.

実はドメイン名をIPアドレスが対応した電話帳のようなものを持っているサーバがあります.それがDNSです.ドメイン名を入れるとDNSに問い合わせをします.そうするとDNSがIPアドレスを返してきます.

ドメイン名からIPアドレスを探すのを正引きといい.IPアドレスからドメイン名を探すのを逆引きといいます.

参考リンク

参考の参考リンク