読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

NetBIOS over TCP/IPなどwindowsネットワーク超入門

ネットワーク

sambaを立てる機会があって、そのときになんやかんや調べたので覚書。
sambaをとりあえず立ててみて、そのサーバにwindowsからアクセスできるようになるための超初歩レベルのことのみだけど。

windowsのネットワークって?

今やコンピュータネットワークといえばtcp/ipデファクトスタンダードなのに、いまだに時代遅れのプロトコルを苦し紛れに拡張しながら実装してる困った企業があるらしいんですよ。どんなブラック企業だって話です。そうです。腐った牛乳を世に送り出した奴らですよ。
windowsマシンではもちろんtcp/ipでの通信もできるけど、もうひとつNetBIOS(NetBEUI)というものを使ってマシン同士の通信ができちゃうらしい。

NetBEUIとは

tcp/ipの場合はIPアドレスを使って通信を行うが、NetBEUIの場合はIPアドレスなんかいらない。マシンの名前だけで通信できちゃう。マイクロソフトにしては結構やるじゃねえかって感じ。同じセグメントにいるマシンに対して通信を行いたいときは「ファイル名を指定して実行」などから「\\通信したいマシン名\共有フォルダ名」てな感じでやると接続できちゃう。

詳しい名前解決の方法として、セグメント内に新しいマシンを登録する時は、通信に必要なマシンの名前(NetBIOS名という)をブロードキャストする。同じセグメント内に同じ名前のマシンが存在しなければ、名前登録ができ、自身のローカルのNetBIOS名テーブルに登録される。
通信時は通信したい相手のNetBIOS名をブロードキャストし、そのリクエストを受け取った各マシンが自身のNetBIOS名テーブルを参照して、自分が呼ばれているかどうか確認する。自分でなければ無視し、自分が呼ばれていれば自分のMACアドレスを返答。そんで、返ってきたMACアドレスを元に通信をするという感じ。

だが、IPアドレスと違ってマシン名でのみ名前解決を行うために、当然のごとく名前衝突が起こるし、ブロードキャストを使うためにルータを超えられないから、小規模ネットワークじゃないとうまくいかない。インターネットとか100パー無理。ドジっ娘とかいうレベルじゃない。
ちなみにNetBIOSってのはプロトコルじゃなくてセッション層以下のプロトコルを使うためにAPIプロトコルはNetBEUIのこと。

NetBIOS over TCP/IP(NBT)とは

そういう問題があったために、その問題を苦し紛れに解決すべく生まれたのがNetBIOS over TCP/IP(NBT)という技術。NetBEUIの部分をTCP/IPにとっかえただけ。通信したい相手のNetBIOS名をブロードキャストするとIPアドレスが返ってくるので、それを元に通信を行う。あれ?それって手間増えただけじゃね・・・?なんかJSとかCSSとかでも、IE6って時代遅れのブラウザのためだけに分岐処理かかなきゃいけない手間が発生してるとか同じような問題あった気がするけど、気のせいだよね・・・?
「\\通信したいマシン名\共有フォルダ名」で通信ができるのはもちろんのこと、結局はIPアドレスで通信してるので、「\\通信したいマシンのIPアドレス\共有フォルダ名」でも接続ができる。