Wednesday, July 27, 2005

網芳釋疑

網路芳鄰的運作與觀念是 Windows Networking 中最隱晦也最常被誤解的部分。網芳的技術名詞稱為 CIFS (Common Internet File System),其核心 protocol 稱為 SMB (Server Message Block)。有人認為 CIFS 只是 SMB 的一個新名字,不過我覺得 CIFS 是提供檔案、目錄、印表機分享等功能的 file system,SMB 是 CIFS 用來通訊的 protocol 是比較正確的架構。

SMB 原先設計為在 NetBIOS (Network Basic Input Output System,另一個經常被搞混的名詞) LAN 上運作的 protocol,不過在 Windows 2000 之後,SMB 亦可直接利用 TCP/IP 作為 transport protocol。執行 net config rdr 或 net config srv 即可看到系統上啟用的 SMB transports:

C:\WINDOWS>net config rdr

...

工作站啟動於
NetbiosSmb (000000000000)
NetBT_Tcpip_{5FBEDBF0-9E10-4FDD-A3C0-339BB652036F} (000EA60DEBC8)
NetBT_Tcpip_{003266F9-9BA3-4AE6-A0A5-9BB67B751880} (0050BA011749)

...

C:\WINDOWS>net config srv

...

伺服器正執行於
NetbiosSmb (000000000000)
NetBT_Tcpip_{5FBEDBF0-9E10-4FDD-A3C0-339BB652036F} (000ea60debc8)
NetBT_Tcpip_{003266F9-9BA3-4AE6-A0A5-9BB67B751880} (0050ba011749)

...


其中 NetbiosSmb 就是 Windows 2000 之後提供的 raw SMB transport(運作於 445/tcp),NetBT_Tcpip_{xxx} 則是 NBT (NetBIOS over TCP/IP) SMB transport(運作於 139/tcp)。

當系統有兩種 SMB transport 時,會同時連線 445/tcp 與 139/tcp,若 445/tcp 被接受,則 139/tcp 會被關閉。也就是說,在 Windows 2000 之後 raw SMB 是主要的 transport protocol,NBT SMB 只是為了與舊系統溝通之用。NetBT and raw SMB transport 給了很好的說明。

看到這裡可以知道,網芳跟 NetBIOS 並沒有絕對關係,NetBIOS 只是 CIFS/SMB 的一個可能 transport protocol 而已。

Friday, July 08, 2005

Real Computers

我一直很喜歡 Rich Teer 寫的 A Real Computer...,尤其是網頁上頭的 Dilbert 漫畫,絕對是經點中的經典。今天看到 APUE 第二版就把這幅漫畫直接印在封面上,在技術內容之外,又更加吸引人啦!