1. 程式人生 > >網路層和傳輸層的區別

網路層和傳輸層的區別

一直對計算機網路中的網路層和傳輸層的理解比較模糊,看了謝希仁的那本教材,是這樣解釋的:

傳輸層:向兩個主機中程序之間的通訊提供服務

網路層:負責為分組交換網上的不同主機提供通訊服務

理解起來還是比較抽象,偶然在部落格上找到了一篇比較生動的解釋:

原文地址

協議棧中,傳輸層位於網路層之上,傳輸層協議為不同主機上執行的程序提供邏輯通訊,而網路層協議為不同主機提供邏輯通訊。這個區別很微妙,但是卻非常重要。讓我們用一家人作為類比來說明一下這個區別。

  設想一下有兩所房子,一個位於


  設想一下有兩所房子,一個位於
東海岸而另一個位於西海岸,每所房子裡都住著12個小孩。東海岸的房子裡的小孩和西海岸房子裡的小孩是堂兄妹。兩所房子裡的孩子喜歡互相通訊——每個孩子每週都給每一個堂兄妹寫一封信,每一封信都由老式的
郵局分別用信封來寄。這樣,每一家每週就都有144封信要送到另一家(這些孩子如果可以用電子郵件的話就可以省掉很多錢了!)在每一家裡面.都由一個孩子——西海岸的房子裡的Ann和東海岸房子裡的BilI——負責郵件的收集和分發。每週Ann都從她的兄弟姐妹那裡收集起來信件,並將這些信件送到每天都來的郵遞服務員那裡。當信件到達西海岸的房子,Ann又將這些信件分發給她的兄弟姐妹。BilI在東海岸有著同樣的工作。

  在這個例於中,郵遞服務提供著兩所房子之間的邏輯通訊——郵遞服務在兩所房子之間傳遞郵件,而不是針對每個人的服務。另一方面,Ann和BilI提供堂兄妹之間的邏輯通訊——Ann和BilI從他們的兄弟姐妹那裡收集郵件並將郵件遞送給他們。注意,從這些堂兄妹的角度看,Ann和BilI是郵件的服務人,儘管他們倆只是端到端寄送服務的一部分(終端系統部分)。這個例子是傳輸層和網路層之間的關係的一個形象比喻:

  主機(也稱為終端系統)=房子 
  程序=堂兄妹 
  應用程式訊息=信封裡的信 
  網路層協議=郵遞服務(包括郵遞員) 
  傳輸層協議=Ann和Bill