windowsのネットワークプロトコル SMBとCIFSの違い。

SMB(Sever Message Block)はwindowsネットワークにおいて中心となるプロトコルですが、その歴史は長く今まで何度かのバージョンアップが行われています。CIFS(Common Internet File System)と比べる上でSMBの歴史が関わっているので、それを振り返ってみます。

SMBはMS-DOSの時代から存在していましたがwindowsに標準で搭載されたのはwindows 95、windows NTからになります。1995年のことです。

その当時、マイクロソフトはSMBをネットワークプロトコルの標準にしたいと考えたらしく、1997年にSMBの標準化案をIETF(Internet Engineering Task Force)に提出しました。windowsだけでなく他のOSでも使うことを想定し仕様を公開したプロトコルがCIFSです。そしてマイクロソフトはCIFSを自ら実装してwindows 2000に取り入れています。これがSMBの完成形となり、SMB 1.0と呼ばれています。そのためSMB 1.0とCIFSは同じものと考えて良いです。

その後、SMBは2.0、3.0とさらに進化していきます。どのような機能が追加されたかは割愛しますが、ネットワーク機能の強化ということで、その後のwindows OSには採用されています。

一方のCIFSですが、IETFに提案がされたものの標準化には至っておらず、またバージョンアップの提案もなされていません。

改めてSMBとCIFSの違いを言うと、CIFSはSMBと同じではなく、CIFSはあくまでもSMBの一時代のバージョンと同じということです。SMB 1.0がCIFSのことですが、SMB 1.0はwindows 2000からwindowsXPやwindows Server 2003 R2までの長い期間採用されています。

[2021/4/15 追記]
Linuxから見たSMBについて記載しておきます。LinuxのSMBをサポートするカーネルモジュールはcifs.soなのですが、このcifs.soはバージョンによってサポートするSMBが異なるようです。

RHEL(CentOS) 6系
⇒ SMB 1.0 をサポートする

RHEL(CentOS) 7系
⇒ SMB 2.0、2.1、3.0 をサポートする

RHEL(CentOS) 8系
⇒ SMB 2.0、2.1、3.0、3.1.1 をサポートする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です