資料鏈路層如何區分接收的資料是什麼屬於網路協議?

時間 2021-05-30 05:50:14

1樓:「已登出」

首先在同一條鏈路上的機器,鏈路層協議肯定是一致的,比如大多數情況下有線網路就是乙太網2,wifi網路就是802.11的某一種。這個可以通過某種方式協商出來,不過總之一定是一致的。

所以說,「資料鏈路層有很多協議比如PPP,CSMA/CD等」,這是不對的。乙個鏈路只能存在一種或者相互相容的幾種鏈路層協議。(相容也是特殊情況,比如ethernet 2和802.

3可以共存)。網絡卡在接到訊號的時候就已經假定好了物理層和鏈路層協議

至於鏈路層怎麼知道是哪乙個上層協議,我們以乙太網2為例子

Ethernet frame - Wikipedia

我們看到ethertype欄位,是乙太網2用於判斷上層協議的字段,如表所示:

EtherType - Wikipedia

PPPoE就是作為乙太網2的乙個上層協議存在的,具體地說是協議號0x8863和0x8864

2樓:

如何解釋物理層傳來的位元流由自己本身是什麼裝置以及裝置設定採用什麼鏈路層協議決定。

如果自己是乙太網網絡卡,那自己收到的肯定是乙太網幀。那有可能收到的是 PPP 幀嗎?不可能的,乙太網網絡卡就收乙太網幀。不然它為什麼要叫乙太網網絡卡而不叫別的什麼名字呢?

那 PPPoE 不是用乙太網傳 PPP 幀嗎?

是也不是,PPPoE 全稱PPP Over Ethernet注意Over Ethernet把 PPP 幀裝進乙太網幀裡,由乙太網幀承載。抓個包看看就清楚了。

PPPoE 抓包

可以看第二行 Ethernet 2。說明這是乙個乙太網幀。乙太網往下有乙個 PPPoE 的幀頭。再往下才是 PPP 幀。

PPPoE中乙太網幀型別字段

而乙太網幀中有型別字段,通過這個欄位就可以知道,這個幀拆掉乙太網幀頭以後應該送給 PPPoE 相關的模組處理。

那如果是 Serial 口一類的呢?

可以通過設定指定採用的鏈路層裝置。

像這樣,我用兩根 Serial 線連線兩個裝置。分別指定乙個用 PPP 協議,乙個用 HDLC 協議。分別抓包。

PPPHDLC

可以發現,他們根據我的設定採用了不同的封裝。

那如果一邊設定採用 PPP 另一邊採用 HDLC 呢?那是驢唇對馬嘴,無法通訊。

不匹配的設定

可以看見,配成 PPP 的介面一直在發 PPP LCP 試圖協商,但是 HDLC 那側根本不理會。HDLC 也在發 SLARP ,然而 PPP 那側也根本不理會。

資料鏈路層有校驗了,為什麼網路層還要校驗,運輸層仍需要校驗?

josan 個人理解如下 首先,資料鏈路層的校驗應該是必須的。其次,考慮只有資料鏈路層的情況。如果只有資料鏈路層的校驗,我們接收到的資料可以理解為近似無差錯的傳輸,但還是可能存在差錯。後面兩種校驗可能進一步減小這種差錯的可能。接下來看看其他兩層校驗的情況。先確認前提,一是資料鏈路層存在校驗,二是已知...

小白求解,網路層和資料鏈路層時怎麼通訊,在同一臺機器上的不同層之間的資料傳輸需要協議嗎?

低調的挨踢男 1 如果是具體工程問題,資料鏈路之上自己加上網路層,傳輸層,然後使之與其他網路層應用通訊 2 如果是理論問題,再看看 TCP IP詳解 肖巨集輝 同乙個機器上,或者說同乙個作業系統上,不同層之間,主要是資料拷貝和記憶體指標傳遞。不同層之間就像乙個俄羅斯套娃,上一層處理好之後,直接打包給...

如何用5分鐘跟文科生解釋清楚什麼是資料鏈?

尤里卡 一種給軍用裝置使用的軍事資訊交換系統。在沒有資料鏈的時代,軍事資訊需要人員通過無線電台口頭傳遞。現在直接有各種軍用平台直接用各自指揮系統互相傳遞 拜託,文科生又不是白痴。搞概念性東西我們不比你們理科生工科生差,不要用文科生來看不起人好伐。我乙個文科生比我寢室裡這群不懂軍事的理科生知道的多了。...