為什麼網路協議選擇分層設計?這樣做有什麼好處?

時間 2021-05-05 16:35:52

1樓:宇宙幫主

分層好處是降低耦合,上層不關心底層實現,只關心底層提供服務(介面),屬於面向介面設計,這樣層與層之間通訊就可以標準化。標準化意味著底層可擴充套件,可替換,給協議設計帶來很大靈活性和擴充套件性,本身網路是非常異構複雜的,需要不斷公升級協議去解決和優化網路問題;

2樓:cccccqk

乙個層可以不知道其他層的具體實現。只需要關注自身需要提供什麼樣的服務和如何使用其他層的服務即可。

整個通訊不只是兩個端系統。通訊還需要中間系統,如果中間系統和端系統一樣複雜,這樣就會提高整個系統的造價。

3樓:孫雄飛

網路協議分層,和計算機領域的其他分層,比如三層架構的分層,在本質上是一樣的。甚至非計算機領域比如政治統治架構的分層。 本質上都是一樣的。

分層的本質是通過分離關注點而讓問題簡單化。再說一遍,分層的本質是通過分離關注點而讓問題簡單化。 當乙個系統足夠複雜時,通過聚合分為不同層次或不同模組, 每層或模組都是內聚的,對外遮蔽複雜性。

那麼巨集觀上看去,管理和問題定位很容易到具體層次和模組。 然後層層遞進,很容易定位問題。

1、開發人員可以只關注整個結構中的其中某一層;

2、可以很容易的用新的實現來替換原有層次的實現;

3、可以降低層與層之間的依賴;

4、有利於標準化;

5、利於各層邏輯的復用。

4樓:

因為現在流行的網路層以上協議都是ip的,所以看上去分層好像沒有那麼必要了。但是分層模型出來的時候,網路的形態千奇百怪,IP協議只是其中之一。

所以IP以上協議,現在看起來不分層好像問題也不大。反正就2個協議族tcp和udp。tcp上面99%以上是http。

但是不是每個開發者都要從IP層開始寫軟體呢?現在看到最大的好處就是解放了應用層開發者,他們專心去寫應用不用關注下層實現。但是必須明白下層提供的服務能力。

事實上,在常見的使用者協議以外,有很多很多很多裝置間的協議。這些協議如果在分層模型下定義很「純粹」,如果不是分層,那麼設計起來就複雜多了。

說到底,還是複雜問題簡單化的結果。

而對於IP層以下的協議,分層的好處是一目了然的:不同的接入方式必然是不同的協議。如果http在wifi上和在以太上,在gprs上,lte上各自定義完整的協議棧,那麼伺服器端怎麼辦?

不可能為每一種接入方式提供乙個伺服器協議棧吧。也不現實,不經濟。如果在IP層分開,那麼伺服器只要一套就可以支援各種終端了

所以至少在ip層以下分層非常必要。

5樓:無限

往好了說,將乙個大的開發問題分化成小問題,如上所說低耦合高內聚。

然而對於普通開發者來說就是方便甩鍋,都是你傳送層沒做容錯機制,怎麼怪我IP層!物理層丟包率這麼大,我上層無能為力啊!

6樓:h8liu

大部分軟體系統都是分層架構的,為了工程上實現/除錯/維護方便。網路系統分得更明顯一點,因為其系統設計寫成了協議。

網路上比較重要的只有IP層。IP層設計假設非常少,只要你下層能發包收包,不管什麼質量,都是合理IP層,其他的需求都交給上層應用來做。這使得連線各種各樣不同的網路裝置成為可能。

其他的層大部分都是功能性的,沒有特別明顯的層與層之間的邊界,甚至不一定必須存在。

為什麼需要網路協議?

marmot 游擊隊派A出去執行夜襲。給哨兵約定暗號是 大灰機 回來過哨正確就放行。結果,A回來裝B,用法語給哨兵傳遞暗號 大灰機 結果哨兵聽不懂,一梭子子彈就過去了。一梭子 一梭子 規則,這就是規則,不懂規則,不講規則,或裝B過頭了,就只能吃土 李昕 我發給你000001沒有協議的話你知道我在說什...

選擇重傳協議的滑動視窗大小為什麼必須小於或等於序號空間大小的一半?

Liuyl 各位回答太複雜了,舉個例子即可 SR條件 序號空間為4,即 0 1 2 3 0 1 2 3 假設視窗大小為3 大於序號一半 傳送方傳012 接收方收到,滑動視窗前進至 3,0,1,接收方發回ackack丟失,傳送方重傳 0,1,2 問題來了,此時接收方如何判斷是傳送方重傳的0,1,2還是...

為什麼設計師認為網路發布的logo設計徵集不靠譜,如何讓大家知道這是一次有誠意的徵集活動?

Barry 吳 你讓我想起來了那個迫真投票選出來的春晚吉祥物 讓我 康康 猴有誠意你倒是從備選項那幾個猴裡面選乙個啊,憋到最後又摸出來乙個怪胎 像東京世博會的幽浮魔點,靠不靠譜我不到啊,但人家是真從候選項裡面選出來的,夠有誠意吧 狗頭 不過以前的海寶和福娃是針不戳,還有配套番劇的呢。 糞糞 事情的本...