(在网络上搜索找到关于传输层和网络层的解释,记录下来) 网络
在协议栈中,传输层位于网络层之上,传输层协议为不一样主机上运行的进程提供逻辑通讯,而网络层协议为不一样主机提供逻辑通讯。这个区别很微妙,可是却很是重要。让咱们用一家人做为类比来讲明一下这个区别。 加密
设想一下有两所房子,一个位于东海岸而另外一个位于西海岸,每所房子里都住着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的保密性,传输层协议也能够经过加密的方式来保证应用程序消息不被入侵读取。咱们会在之后的文章里逐渐接触到这些问题。进程