(在網絡上搜索找到關於傳輸層和網絡層的解釋,記錄下來) 網絡
在協議棧中,傳輸層位於網絡層之上,傳輸層協議爲不一樣主機上運行的進程提供邏輯通訊,而網絡層協議爲不一樣主機提供邏輯通訊。這個區別很微妙,可是卻很是重要。讓咱們用一家人做爲類比來講明一下這個區別。 加密
設想一下有兩所房子,一個位於東海岸而另外一個位於西海岸,每所房子裏都住着12個小孩。東海岸的房子裏的小孩和西海岸房子裏的小孩是堂兄妹。兩所房子裏的孩子喜歡互相通訊——每一個孩子每週都給每個堂兄妹寫一封信,每一封信都由老式的郵局分別用信封來寄。這樣,每一家每週就都有144封信要送到另外一家(這些孩子若是能夠用電子郵件的話就能夠省掉不少錢了!)在每一家裏面.都由一個孩子——西海岸的房子裏的Ann和東海岸房子裏的BilI——負責郵件的收集和分發。每週Ann都從她的兄弟姐妹那裏收集起來信件,並將這些信件送到天天都來的郵遞服務員那裏。當信件到達西海岸的房子,Ann又將這些信件分發給她的兄弟姐妹。BilI在東海岸有着一樣的工做。 在這個例於中,郵遞服務提供着兩所房子之間的邏輯通訊——郵遞服務在兩所房子之間傳遞郵件,而不是針對每一個人的服務。另外一方面,Ann和BilI提供堂兄妹之間的邏輯通訊——Ann和BilI從他們的兄弟姐妹那裏收集郵件並將郵件遞送給他們。注意,從這些堂兄妹的角度看,Ann和BilI是郵件的服務人,儘管他們倆只是端到端寄送服務的一部分(終端系統部分)。這個例子是傳輸層和網絡層之間的關係的一個形象比喻: spa
繼續咱們的這個例子,Ann和Bill各自在他們的家中作全部的工做:他們不負責各個郵遞中心的郵件分類工做以及將郵件從一箇中心送到另外一箇中心的工做。這正與傳輸層協議在終端系統中的做用同樣。在一個終端系統中,傳輸層協議將應用進程的消息傳送到網絡邊緣(也就是網絡層),反之亦然:可是它並不涉及消息是如何在網絡層之間傳送的工做。事實上,正如圖1中所說的,中間路由器對於傳輸層加在應用程序消息上的信息不能作任何識別和處理。 計算機網絡
繼續咱們的例子,假設Ann和Bill都去度假了,另一對堂兄妹——Susan和Harvey代替——他們來提供家庭內部的郵件收取和分發工做。不幸的是,Susan和Harvey所提供的收集和分發工做與Ann和Bill所提供的不徹底相同。對於年齡更小的Susan和Harvey來講,他們收集和分發郵件的頻率比較少,並且偶爾會發生丟失信件的事情(這些信件偶爾被家裏的狗吃掉了)。這樣,這一對堂兄妹Susan和Harvey提供了一套不一樣於Ann和Bill的服務(也就是說,服務模型不一樣)。打比方來講,正如一個計算機網絡能夠接受不一樣的傳輸層協議同樣,每個協議爲應用程序提供不一樣的服務模型。 Ann和Bill所可能提供服務明顯地受限於郵遞服務所提供的服務。例如,若是郵遞服務並不提供在兩所房子之間傳遞郵件所須要的最大時限(如3天),那麼Ann和Bill也就不能保證各個堂兄妹之間的郵件的最大延遲。一樣,傳輸層協議所提供的服務也一般受限於位於其下方的網絡層協議。若是網絡層協議不能提供主機之間傳送的4—PDU的延遲和帶寬保證,那麼傳輸層協議也不能提供進程之間傳送的消息的延遲和帶寬保證。 然而,即便當下面的網絡層協議使得網絡層並不能提供某些相應服務時,傳輸層協議仍然能夠提供某些特定服務。例如,即便下面的網絡層協議並非可靠的,也就是說,即便網絡層協議丟失、篡改或者複製了傳送的數據包,傳輸層協議也能夠提供可靠的數據傳輸服務。另外一個例子是,即便網絡層不能保證4—PDU的保密性,傳輸層協議也能夠經過加密的方式來保證應用程序消息不被入侵讀取。咱們會在之後的文章裏逐漸接觸到這些問題。進程