在協(xié)議棧中,傳輸層協(xié)議為不同主機上運行的進程提供邏輯通信,而網絡層協(xié)議為不同主機提供邏輯通信。這個區(qū)別很微妙,但卻非常重要。下面我們用一家人作為類比來說明一下這個區(qū)別:
假設想有兩所房子,一個位于東海岸而另一個位于西海岸,每所房子里都住著10個小孩。東海岸的房子里的小孩和西海岸房子里的小孩是堂兄妹。兩所房子里的孩子喜歡互相通信——每個孩子每周都給每一個堂兄妹寫一封信,每一封信都由老式的郵局分別用信封來寄。
這樣,每一家每周就都有100封信要送到另一家(這些孩子如果可以用電子郵件的話就可以省掉很多錢了!)在每一家里面。都由一個孩子——西海岸的房子里的Ann和東海岸房子里的BilI——負責郵件的收集和分發(fā)。每周Ann都從她的兄弟姐妹那里收集信件,并將這些信件送到每天都來的郵遞服務員那里。當信件到達西海岸的房子,Ann又將這些信件分發(fā)給她的兄弟姐妹。BilI在東海岸有著同樣的工作。
在這個例于中,郵遞服務提供著兩所房子之間的邏輯通信——郵遞服務在兩所房子之間傳遞郵件,而不是針對每個人的服務。另一方面,Ann和BilI提供堂兄妹之間的邏輯通信——Ann和BilI從他們的兄弟姐妹那里收集郵件并將郵件遞送給他們。注意,從這些堂兄妹的角度看,Ann和BilI是郵件的服務人,盡管他們倆只是端到端寄送服務的一部分(終端系統(tǒng)部分)。
這個例子是傳輸層和網絡層之間的關系的一個形象比喻: 主機(也稱為終端系統(tǒng))=房子 進程 = 堂兄妹
應用程序消息 = 信封里的信
網絡層協(xié)議 = 郵遞服務(包括郵遞員) 傳輸層協(xié)議 = Ann和Bill
繼續(xù)這個例子,Ann和Bill各自在他們的家中做所有的工作:
他們不負責各個郵遞中心的郵件分類工作以及將郵件從一個中心送到另一個中心的工作。這正與傳輸層協(xié)議在終端系統(tǒng)中的作用一樣。在一個終端系統(tǒng)中,傳輸層協(xié)議將應用進程的消息傳送到網絡邊緣(也就是網絡層),反之亦然:但是它并不涉及消息是如何在網絡層之間傳送的工作。事實上,中間路由器對于傳輸層加在應用程序消息上的信息不能做任何識別和處理。
繼續(xù)這個例子,假設Ann和Bill都去度假了,另外一對堂兄妹——Susan和Harvey代替——他們來提供家庭內部的郵件收取和分發(fā)工作。不幸的是,Susan和Harvey所提供的收集和分發(fā)工作與Ann和Bill所提供的不完全相同。對于年齡更小的Susan和Harvey來說,他們收集和分發(fā)郵件的頻率比較少,而且偶爾會發(fā)生丟失信件的事情。
這樣,這一對堂兄妹Susan和Harvey提供了一套不同于Ann和Bill的服務(也就是說,服務模型不同)。打比方來說,正如一個計算機網絡可以接受不同的傳輸層協(xié)議一樣,每一個協(xié)議為應用程序提供不同的服務模型。
Ann和Bill所能提供的服務明顯受限于郵遞服務所提供的服務。例如,如果郵遞服務并不提供在兩所房子之間傳遞郵件所需要的最大時限(如3天),那么Ann和Bill也就不能保證各個堂兄妹之間的郵件的最大延遲。
同樣,傳輸層協(xié)議所提供的服務也通常受限于位于其下方的網絡層協(xié)議。如果網絡層協(xié)議不能提供主機之間傳送的PDU的延遲和帶寬保證,那么傳輸層協(xié)議也不能提供進程之間傳送的消息的延遲和帶寬保證。