隱藏在網(wǎng)絡(luò)鄰居背后的協(xié)議,快來(lái)看看你家網(wǎng)絡(luò)有幾種?

分析/驗(yàn)證對(duì)比常見(jiàn)局域網(wǎng)服務(wù)發(fā)現(xiàn)協(xié)議在Windows/Linux/Mac等不同系統(tǒng)下的支持和表現(xiàn)

網(wǎng)絡(luò)鄰居發(fā)現(xiàn)協(xié)議大比拼,Windows/Linux/Mac系統(tǒng)局域網(wǎng)服務(wù)發(fā)現(xiàn)協(xié)議之-八大金剛

在使用不同系統(tǒng)的智能硬件時(shí),如常見(jiàn)的樹(shù)莓派/Openwrt路由器/Debian/Fedora/Windows/Mac等系統(tǒng)是,系統(tǒng)間相互發(fā)現(xiàn)以及
網(wǎng)絡(luò)共享本應(yīng)是系統(tǒng)的基礎(chǔ)服務(wù),無(wú)需用戶過(guò)多參與.不過(guò)現(xiàn)實(shí)旺旺和理想之間的差距讓我們驚訝,不同系統(tǒng)相互之間的發(fā)現(xiàn)以及
共享并沒(méi)有那么輕松.

開(kāi)發(fā)的硬件設(shè)備無(wú)法在常見(jiàn)系統(tǒng)的網(wǎng)絡(luò)鄰居正確的現(xiàn)實(shí)出來(lái),實(shí)在是很喪氣的事情.

那么,就系統(tǒng)來(lái)看看局域網(wǎng)服務(wù)發(fā)現(xiàn)協(xié)議在不同系統(tǒng)上的支持及表現(xiàn).

我的服務(wù)器啊,你在哪里

想要訪問(wèn)局域網(wǎng)網(wǎng)絡(luò)里面的設(shè)備,遠(yuǎn)沒(méi)有應(yīng)有的輕松. 每次新裝系統(tǒng)或者設(shè)備入網(wǎng),總是有這樣或者那樣的問(wèn)題,哎,我的服務(wù)器啊,你在哪里.

先看看最簡(jiǎn)單和常用的ping工具,這么簡(jiǎn)單和實(shí)用的工具,簡(jiǎn)單的搜索竟然有 三千八百萬(wàn) 條記錄

pdnas-ping-linux-windows

大名鼎鼎的樹(shù)莓派,用起來(lái)想來(lái)應(yīng)該更簡(jiǎn)單一些,可事實(shí)往往觸目驚心,僅僅是ping通的問(wèn)題,也有三百萬(wàn)的記錄

image

![pdnas-raspberry-pi-ping]](https://upload-images.jianshu.io/upload_images/14465021-53d02e74e1936079.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

再來(lái)看看最常見(jiàn)的文件共享服務(wù),也有 兩千萬(wàn) 之巨

pdnas-windows-share

這都2120年了,為什么這么常見(jiàn)的服務(wù)還有這么多為問(wèn)題呢.

干貨放前面 各系統(tǒng)網(wǎng)絡(luò)鄰居正常工作的協(xié)議匯總:

OS Windows Linux Macos
網(wǎng)絡(luò)鄰居顯示 UPnP + WS-Discovery mDNS + SMB mDNS(服務(wù)器側(cè)特別配置) + SMB
網(wǎng)絡(luò)鄰居共享 WS-Discovery + SMB mDNS + SMB mDNS(服務(wù)器側(cè)特別配置) + SMB

Linux和Macos比較相似,但是實(shí)現(xiàn)起來(lái)還是有明顯的差異,下文會(huì)具體描述.

Windows

Windows一如既往的走在自己的路上,網(wǎng)絡(luò)鄰居發(fā)現(xiàn)協(xié)議自搞一套.

Windows 10的WS-Discovery

Web Services Dynamic Discovery (WS-Discovery) WS-Discovery

下圖是此協(xié)議的抓包

PDNAS-WS-Discovery-抓包

此協(xié)議和UPnP極其相似,都是基于SSDP協(xié)議衍生的XML表達(dá)的,如果不支持此協(xié)議,則無(wú)法在Windows10 的網(wǎng)絡(luò)鄰居里面顯示為PC,無(wú)法直接點(diǎn)擊訪問(wèn)共享.

支持此協(xié)議后,Windows10的網(wǎng)絡(luò)鄰居里面會(huì)在計(jì)算機(jī)類(lèi)型的里面顯示設(shè)備.

PDNAS-WINDOWS-NETWORK-NEIGHBOR-COMPUTER

UPnP協(xié)議

UPnP 是早期路由器常用的協(xié)議,目前從不同系統(tǒng)的驗(yàn)證來(lái)看,僅有Windows默認(rèn)在文件瀏覽器里面支持,Ubuntu和MacOS都需要單獨(dú)配置或者應(yīng)用程序才能瀏覽.

這個(gè)協(xié)議目前各種路由器基本都能支持,不過(guò)其安全問(wèn)題頻出,作用并不明顯.

此協(xié)議在Windows系列里面基本都能支持,會(huì)在網(wǎng)絡(luò)鄰居里面顯示出設(shè)備的信息.

PDNAS-WINDOWS-UPNP-INFORMATION

MacOS

mDNS協(xié)議

MAC整體表現(xiàn)和Linux比較接近,雙方使用的協(xié)議也是類(lèi)似,只是在細(xì)節(jié)處理上有些區(qū)別.

mDNS 協(xié)議本身應(yīng)用比較廣泛,MAC比較早就支持.在Mac新版本里面,網(wǎng)絡(luò)鄰居默認(rèn)可以發(fā)現(xiàn)mDNS設(shè)備.

因?yàn)闅v史原因,早期的AFP協(xié)議升級(jí)后已經(jīng)沒(méi)有開(kāi)源協(xié)議可以完美支持,因此使用avahi的mDNS服務(wù)時(shí),如果還使能了AFP業(yè)務(wù)的話,MAC會(huì)顯示為大問(wèn)號(hào).

AFP-在新MAC版本上的展示

使用配置好的服務(wù)文件,MAC可以正常顯示設(shè)備

PDNAS-MACOS-NETWORK-NEIGHBOR

在調(diào)試過(guò)程中,還看到了網(wǎng)絡(luò)鄰居顯示為PC的圖標(biāo),有知道顯示為這個(gè)圖標(biāo)的條件的小伙伴嗎?

PDNAS-NORMAL-COMPUTER

SMB協(xié)議

Server Message Block SMB 是MS家
的協(xié)議,奇怪吧:<>

Samba是*nix系統(tǒng)上的一個(gè)SMB協(xié)議的實(shí)現(xiàn),是早期為了和Windows兼容文件共享而做的功能.目前MAC已經(jīng)全面放棄自己的AFP協(xié)議轉(zhuǎn)而投向SMB協(xié)議.

設(shè)備僅支持SMB協(xié)議而沒(méi)有mDSN協(xié)議輔助的話,MAC也可以識(shí)別此系統(tǒng),不過(guò)會(huì)顯示為超級(jí)古老的圖標(biāo).

PDNAS-MAC-OLD-PC-NETWORK

Linux

mDNS

Ubuntu系統(tǒng)的網(wǎng)絡(luò)鄰居可以自動(dòng)發(fā)現(xiàn)mDNS服務(wù)并展示為不同的圖標(biāo). 在Ubuntu 20.04里面,除去圖標(biāo)的不同,還增加了每個(gè)服務(wù)的描述.

PDNAS-Linux-network-neighbor

SMB

同樣的,Ubuntu系統(tǒng)天然支持SMB協(xié)議,但是SMB協(xié)議需要mDNS協(xié)議的支撐,否則無(wú)法顯示在網(wǎng)絡(luò)鄰居里面.

PDNAS-LINUX-NEIGHBOR

其他協(xié)議

除去前面流行并且工作的協(xié)議外,還有一些曾經(jīng)使用但是已經(jīng)廢棄或者即將廢棄的協(xié)議,在設(shè)備設(shè)計(jì)時(shí),如果考慮兼容性,也同時(shí)需要支持.

SSDP

SSDP是一個(gè)基礎(chǔ)協(xié)議,UPnP以及WS-Discovery 都是基于這個(gè)協(xié)議來(lái)實(shí)現(xiàn)的.

AFP

Apple Filing Protocol AFP

Apple家的私有協(xié)議,開(kāi)源有netatalk 實(shí)現(xiàn). AFP升級(jí)加密后,netatalk也不能和新版本的MAC兼容.

蘋(píng)果已經(jīng)全面投向SMB的懷抱,AFP基本上可以忽略了.

NetBIOS

Network Basic Input/Output System NetBIOS 這個(gè)是Windows 9x/Me/XP等早期系統(tǒng)支持的名稱解析協(xié)議,
類(lèi)似于mDNS,新的Windows 10已經(jīng)不建議支持此協(xié)議.

LLMNR

Link-Local Multicast Name Resolution LLMNR , 這個(gè)也是和mDNS競(jìng)爭(zhēng)的失敗者,主要聚焦于局域網(wǎng)的名稱解析,可以直接忽略了.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容