无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

SMB傳輸為什么弱?原因不止是絕大部分的NAS的SMB都是山寨貨

0
分享至

上一篇文章給大家揭示了一個事實——SMB文件共享的性能很拉胯

今天也就給大家講講為什么大多數NAS上的文件共享的性能是“拉胯他媽給拉胯開門——拉胯到家了”。

“文件共享”這件事在現在大多數計算機用戶或者數碼用戶看來是一個再尋常不過的操作。但很多人并不自知“文件共享”的性能羸弱的問題。

我們先做一個腦補一個故事情節:

在一個閉塞的小山村里面,人們還保持著先秦時代的生活和運作方式,對外界一無所知。他們也會有一些貨運的需求,在這個小山村里面有兩種運輸工具,一種是牛車,另一種是馬車。

村里面的大聰明就會覺得馬車在馳騁起來的速度要比牛車快很多。

但村里還有更聰明的人,通過觀察得出來另一個結論——在走山路的時候,由于牛的力氣比馬大,在山路的運輸中牛車比馬車更有效率。

于是在村里就對到底是馬車還是牛車更有運輸效率一直爭吵了很多年,直到這個村子里的人看到有一條鐵路從村子邊上通過。

村里的人就開始嘲笑,用這些東西運輸還不如牛車吧?

其實大部分普通用戶就是生活在村子里面的村民,IT是一個“知道經濟”,它的價值在于你見過多少東西。如果村民們不到外面走走,哪怕是他們看到了村邊的火車,也難以想象到世界上還有這玩意:

這個故事情節,大家自行對號入座。

好了,說回SMB,今天我們對SMB要有一個比較全面的認知。

SMB(Server Message Block,服務器消息塊)是一個老古董了,老到了比看這篇文章的人都要古老,在1987年,微軟為了讓網絡上的計算機相互通訊開發了SMB協議。

如果對IT的歷史有所了解的話,會發現這個協議是在1983年TCP/IP協議制定之后被開發出來的。但是我們要知道,1983年internet網絡并不普及。因此SMB并不是針對于TCP/IP協議開發的。

SMB的再下一層實際上是NetBIOS(Network Basic Input/Output System,網絡基本輸入/輸出系統)。

因此,我們在看到一個網絡共享的時候,我們會發現在網絡共享的資源地址上有一個“主機名”。

這個主機名又別于TCP/IP網絡中的主機名,也和域名系統的主機名有所差別。就是簡簡單單的一個字符串。實際上這個在SMB中的主機名就來自于NetBIOS。

NetBIOS的這個歷史就更久遠了。這是1981年IBM立項,在1983年由sytek開發實施的IBM PC Network中的功能。IBM PC Network是第一個PC局域網標準。但是IBM當時并不看好這種形式,而采用了當時更先進的令牌環網,當然了,后面的事情我們也知道,令牌環網迅速的被以太網所取代……而NetBIOS標記主機的功能卻被一代代的沿襲下來。

直至現在,很多主機還是支持NetBios的功能的。

“直至現在”還在支持,這里面就牽扯到了早早年間的老技術如何適配到現在的新技術上的問題了。其實,我們在Windows PC上所使用的NetBIOS并不是原汁原味的。在Windows系統中一共出現了三種NetBIOS,最早期純的NetBIOS是配合令牌網絡存在的,還有 NetBIOS over IPX/SPX是對應IPX網絡的,以及NetBIOS over TCP/IP是對應于現在的TCP/IP網絡系統的。在當年計算機上網絡設置并不僅僅是要設置IP地址,還得設置一個IPX ID。其實在1995年左右的時間大部分可以局域網對戰的游戲都是只支持IPX網絡的……當時的聯眾之所以能讓大家在網絡上玩局域網互聯游戲也是因為聯眾本身就是一個IPX Proxy。

SMB協議的底層就是建立在對NetBIOS的支持下才能夠完成服務器消息塊的傳遞。在這個時候我們就可以看到,本身在TCP/IP協議下可以直達的一個信息通道,就非得往NetBIOS上再繞一圈。

“TCP/IP一家獨大”是當初微軟開發SMB的時候所沒有預見到的。而微軟沒有預見到的事情還不止這點。SMB——服務器消息塊,如果我們從字面上看“服務器消息塊”怎么都難以和“文件傳輸”或者“文件共享”聯系到一起。要知道早期的開發人員都是王八吃筷子——腦子一根筋,起的名字各種名稱十分的專業務實但也必須必的土掉渣,像是FTP(File Transfer Protocol,文件傳輸協議)、HTTP(Hypertext Transfer Protocol,超文本傳輸協議)、TCP(Transmission Control Protocol,傳輸控制協議)、SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議)……都是望文生義直接能讀出來就知道是做什么用的協議。

而“服務器消息塊”,我們也可以直接讀出來,并理解這是“服務器以塊數據包傳輸消息”的協議,注意這里是傳送消息,并不是傳送文件。基于SMB我們不僅僅可以傳輸文件、還能共享打印機、發送服務器控制指令、獲取服務器狀態信息……

微軟嘛……總是喜歡一不小心把事情搞大。這種公司的文化就是如此,當初搞個游戲機不叫游戲機,而叫做客廳電腦;搞個瀏覽器不叫瀏覽器而叫Internet Desktop;

搞個MP3不叫MP3而叫數字媒體播放器……

這個公司的企業文化就是這樣,總是喜歡把很多的功能集合在一起,再弄個一個大一統的名字,這是刻在骨子里的基因。

所以,SMB并不只是文件傳輸用的協議大家也就應該有所了解了——這是M$tyle。事情做好沒做好在其次,M$得有自己的架勢(Or 風格)。

但多功能、大一統就意味著樣樣都會也樣樣稀松。這類東西就得慢慢的打磨,有的實在打磨不下去了,就干脆舍棄掉,例如WindowsPhone

有的打磨的還不錯,就可以一直走下去,例如Windows Server;但在生或死之間則有更多的產品是處在薛定諤貓的狀態——半死不活。SMB就是一個很典型的案例。

它的根基扎在NetBIOS上,放眼的卻是未來。在SMB成長的階段中微軟沒有預見到文件共享、把文件在局域網上傳輸逐漸的成了一個使用計算機系統的常見場景。等到預見到的時候大家對SMB的依賴已經成了一個常態。在Windows Vista階段,微軟試圖給SMB改個名字叫做CIFS(Common Internet File System,通用互聯網文件系統),呃,呃,呃,聽聽這個名字,是不是很有M$tyle?

傳文件就傳文件,搞個毛毛的“通用互聯網文件系統”這么大的概念來嚇唬我們?相對于SMB微軟又在CIFS里面增加了大量的能夠實現“通用互聯網文件系統”的功能。

好在SMB大家都已經用慣了叫慣了,CIFS在短暫出現后,又被后面的SMB2、SMB3逐漸取代。雖然被逐漸打磨升級,但SMB本身的底層設計并沒有改變。

在SMB的邏輯中當一臺服務器響應了SMB客戶端后,客戶端會向服務器發送一系列消息(Message,知道為啥叫“服務器消息塊”了吧?),在獲得了服務器響應后,繼續再發消息到服務器,以完成相應的任務。

從現代計算機設計來看SMB有一些喋喋不休,用我們天津話說叫做“碎嘴子”。SMB的嘴有多碎呢?哪怕傳輸一個1字節的文件,客戶端也要和服務端交互12次。如果文件或者對象比較大,那么SMB就會在傳輸文件實體數據的時候進入一個單元循環(unitil Loop)

反復的喋喋不休的來回發送和確認數據包。這就是“請求-響應”式協議的固有缺陷了,而在循環中所需要的請求-響應次數則根據系統的最大傳輸單元(MTU)限制來決定。

這種模式為什么在SMB出現之初沒有什么問題呢?原因在于1990年代計算機的存儲單元都比較小,iN在1994年購買的電腦只有40MB硬盤,即便是在10Mbps的網絡上將硬盤的全部容量傳輸到另外一臺電腦上,也只需要不到一分鐘的時間。SMB所帶來的額外開銷就并不顯著了。

但現在,我們拍一張照片也可能達到40MB的容量,即便是網絡升級到了1G或者2.5G,但是SMB的這種“請求-響應”的機制并沒有變化,而且咱們在討論SMB標準模型的時候并沒有考慮網絡的延遲

每次請求和響應之間的延遲也會極大的增加SMB的傳輸開銷,因此無論是在傳輸大文件或者大量小文件的時候,你都會覺得SMB的效率并不是那么高。——當然了,你得有和其他傳輸模式的比較,否則,我們的討論就停留在村里的牛車和馬車的討論上了

這還不是SMB最糟糕的情況!

SMB是微軟的一個私有協議。理論上僅僅可以在微軟的Windows系統中使用。那么NAS上的SMB共享協議是什么呢?——這是一個“山寨”貨。

1992年還在澳大利亞大學上學的Tridge通過逆向工程(主要是嗅探)的方法實現了在UNIX上實現了一系列的Windows 網絡功能,在1993年這些功能逐漸形成了一個unix套件 “netbios for unix”,在1996年這套套件逐步升級發展,發布了Samba 1.9.17,同時這個套件也進入自由軟件領域。它的一個最重要功能就是實現了SMB。

由于Tridge在Samba和rsync(沒錯,常用的rsync也是他寫的)上的成就,Tridge在2020年1月26日被授予“澳大利亞勛章”——這是一個澳洲公民的極高榮譽。

當Samba進入自由軟件領域后,剛剛發行不久的Red Hat Linux和Debian迅速的將Samba納入到自己的默認安裝選項中。到了今天為止,幾乎所有的Linux系統中都有了Samba。unix用戶和大量的Linux用戶都利用Samba和Windows交換文件。這些用戶外加Windows原有的用戶也就讓SMB成為了目前使用最多的一個文件分享/傳輸系統。

SMB的真正普遍運用并不是因為SMB本身優異的性能,而是存量用戶加上開源社區的推動。

同時,在現在很多利用Linux的設備中(例如我們的很多NAS)也基于Samba的代碼實現了文件夾共享功能。

只不過這些linux中的Samba性能比較接近原生的Windows SMB而已,并沒有達到100%的Windows SMB性能水平。出現這樣的狀況的一個主要原因是在于SMB是反向工程的產物,另一個重要的原因是SMB并不完全是依靠C來寫的,還有部分是Python代碼,這是一種解釋性語言代碼,本身的效率就有瓶頸。

對于很多NAS的普通用戶來說Samba的共享文件夾其實還有性能沒有被釋放。如果我們打開一個群暉的Samba配置文件——這個文件在/etc/etc/samba目錄下:

映入眼簾的就是這部分內容了:在里面寫著“IMPORTANT: Synology will not provide technical support for any issues caused by unauthorized modification to the configuration.”翻譯過來就是 “重要提示:對配置進行未經授權的修改所引起的任何問題,Synology 將不提供技術支持。”

那么smb.conf是什么呢?這是Samba的配置文件,例如我們的建議配置方式是:

[global] log level = 1 socket options = TCP_NODELAY IPTOS_LOWDELAY read raw = yeswrite raw = yesoplocks = yesmax xmit = 65535dead time = 15getwd cache = yeslpq cache = 30[okplace] veto oplock files = this/that/theotherfile[badplace] oplocks = no

這是基于調試和測試的結果:



同時,也得配合網卡、系統和驅動本身的能力來細微調節,但很多NAS用戶根本不做這些優化,或者很多NAS系統會禁止用戶做優化,這就讓Samba本身就弱的性能更進一步降低。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
科特迪瓦vs挪威賽事前瞻:兩隊重返世界杯;勝負取決于鋒線

科特迪瓦vs挪威賽事前瞻:兩隊重返世界杯;勝負取決于鋒線

懂球帝
2026-06-30 18:38:06
火控雷達鎖定遼寧艦!岸田文雄喊話被圍攻,中日結局只有一個

火控雷達鎖定遼寧艦!岸田文雄喊話被圍攻,中日結局只有一個

黑鷹觀軍事
2026-06-30 13:28:48
再讀肖洛霍夫《靜靜的頓河》:時代的洪流下的專制社會和個人命運

再讀肖洛霍夫《靜靜的頓河》:時代的洪流下的專制社會和個人命運

南書房
2026-06-29 10:55:09
王晶沒說謊,58歲久居“日本農村”的鄭伊健,現狀印證了他的評價

王晶沒說謊,58歲久居“日本農村”的鄭伊健,現狀印證了他的評價

小蘭聊歷史
2026-05-25 07:41:20
因眼紅《阿嬤》,山寨版電影《給阿公的牛肉丸》開機,成全網笑柄

因眼紅《阿嬤》,山寨版電影《給阿公的牛肉丸》開機,成全網笑柄

糊咖娛樂
2026-06-30 18:28:42
全球能源告急!中國瞞了世界 30 年,如今用兩桶油讓世界刮目相看

全球能源告急!中國瞞了世界 30 年,如今用兩桶油讓世界刮目相看

蜉蝣說
2026-06-22 11:42:34
“困難職工”人均月入9999元,兒子在美國

“困難職工”人均月入9999元,兒子在美國

吃瓜體
2026-06-30 17:14:23
曼城官宣46歲新帥上任 簽約3年 支付1700萬賠償金 仍遭切爾西炮轟

曼城官宣46歲新帥上任 簽約3年 支付1700萬賠償金 仍遭切爾西炮轟

我愛英超
2026-06-29 21:21:17
上海女子去徒步,下山時發現腿上一大片血跡!“當時毫無察覺,血流了7個多小時”,近期頻繁出沒,出門游玩要小心

上海女子去徒步,下山時發現腿上一大片血跡!“當時毫無察覺,血流了7個多小時”,近期頻繁出沒,出門游玩要小心

上海約飯局
2026-06-29 14:14:47
賣不掉租不出!哈爾濱一寫字樓交付十余年深陷“無證困局”

賣不掉租不出!哈爾濱一寫字樓交付十余年深陷“無證困局”

林子說事
2026-06-30 13:28:22
帶兒子看急診,前妻沒認出我,兒子突然開口:你能做我媽媽嗎

帶兒子看急診,前妻沒認出我,兒子突然開口:你能做我媽媽嗎

曉艾故事匯
2026-06-27 09:56:16
帥化民坦言:張學良被終身軟禁一點不冤,西安打光了老蔣的御林軍

帥化民坦言:張學良被終身軟禁一點不冤,西安打光了老蔣的御林軍

磊子講史
2026-06-26 14:55:01
上海人注意!快遞紙箱千萬不要囤!也不要在家里拆!害處你根本想不到

上海人注意!快遞紙箱千萬不要囤!也不要在家里拆!害處你根本想不到

上海女性
2026-06-30 17:30:43
30日凌晨大滿貫爆冷,兩大世界亞軍一輪游,日本首敗,陳幸同輕松

30日凌晨大滿貫爆冷,兩大世界亞軍一輪游,日本首敗,陳幸同輕松

南海浪花
2026-06-30 04:48:31
被特朗普賣了,以色列算盤完全落空,內塔尼亞胡年底怎么選?

被特朗普賣了,以色列算盤完全落空,內塔尼亞胡年底怎么選?

袁周院長
2026-06-30 18:45:31
忍無可忍,無需再忍!中國雷霆出擊,永絕后患!

忍無可忍,無需再忍!中國雷霆出擊,永絕后患!

新財迷
2026-06-30 11:22:59
天災還是人禍?歐洲45度高溫熱死15000,中國東北連入夏都成問題

天災還是人禍?歐洲45度高溫熱死15000,中國東北連入夏都成問題

阿紿聊社會
2026-06-30 11:26:06
汪小菲沒讓大S失望!玥兒回北京過暑假被善待,馬筱梅并非多事人

汪小菲沒讓大S失望!玥兒回北京過暑假被善待,馬筱梅并非多事人

小瘋子耶
2026-06-30 10:55:43
以當前的實力,一旦中日打起來,結局會怎樣?美俄看法一致

以當前的實力,一旦中日打起來,結局會怎樣?美俄看法一致

迷彩前沿
2026-05-29 12:52:40
新疆局地氣溫或超50℃ 黃淮高溫增多華南悶熱感強

新疆局地氣溫或超50℃ 黃淮高溫增多華南悶熱感強

極目新聞
2026-06-30 12:46:54
2026-06-30 19:28:49
iN在
iN在
一個功能主義者
262文章數 567關注度
往期回顧 全部

科技要聞

iPhone18 Pro遭泄密!印度代工商惹禍

頭條要聞

無人機攻防正酣 烏克蘭卻在此時給俄羅斯出了個難題

頭條要聞

無人機攻防正酣 烏克蘭卻在此時給俄羅斯出了個難題

體育要聞

大熱倒灶壓力給到法國 王楚揭法國隊隱患

娛樂要聞

韓紅稱要退出公益,多位名人挽留

財經要聞

韓國萬億"芯"基建:存儲能否成AI時代油田

汽車要聞

奇瑞風云A9探店 五個理由一定來看看

態度原創

房產
旅游
本地
手機
公開課

房產要聞

等了三年!改善頂流實景交付,海口標桿的的答卷來了!

旅游要聞

水上開跑車?寶泉潑水狂歡季給夏天按下“清涼鍵”

本地新聞

貴州小城的新目標:舉辦“村超”世界杯!

手機要聞

實錘泄密代價!首發iPhone18 Pro跌落測試視頻賬號遭全面凍結

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版