在协议栈中,传输层位于网络层之上,传输层协议为不同主机上运行的进程提供逻辑通信(提供端到端服务),而网络层协议为不同主机提供逻辑通信(提供点到点服务)。这个区别很微妙,但是却非常重要。让我们用一家人作为类比来说明一下这个区别。
设想一下有两所房子,一个位于东海岸而另一个位于西海岸,每所房子里都住着12个小孩。东海岸的房子里的小孩和西海岸房子里的小孩是堂兄妹。两所房子里的孩子喜欢互相通信——每个孩子每周都给每一个堂兄妹写一封信,每一封信都由老式的邮局分别用信封来寄。这样,每一家每周就都有144封信要送到另一家(这些孩子如果可以用电子邮件的话就可以省掉很多钱了!)在每一家里面.都由一个孩子——西海岸的房子里的Ann和东海岸房子里的BilI——负责邮件的收集和分发。每周Ann都从她的兄弟姐妹那里收集起来信件,并将这些信件送到每天都来的邮递服务员那里。当信件到达西海岸的房子,Ann又将这些信件分发给她的兄弟姐妹。BilI在东海岸有着同样的工作。
在这个例于中,邮递服务提供着两所房子之间的逻辑通信——邮递服务在两所房子之间传递邮件,而不是针对每个人的服务。另一方面,Ann和BilI提供堂兄妹之间的逻辑通信——Ann和BilI从他们的兄弟姐妹那里收集邮件并将邮件递送给他们。注意,从这些堂兄妹的角度看,Ann和BilI是邮件的服务人,尽管他们俩只是端到端寄送服务的一部分(终端系统部分)。这个例子是传输层和网络层之间的关系的一个形象比喻:
主机(也称为终端系统)=房子
进程=堂兄妹
应用程序消息=信封里的信
网络层协议=邮递服务(包括邮递员)
传输层协议=Ann和Bill