未来很长。
全部博文(148)
分类: 系统运维
2012-06-11 19:46:18
网络层/传输层 提供了面向连接和无连接的服务方式
网络层/传输层 提供了面向连接和无连接的服务方式
网络层:分成两种网络服务方式--数据报和虚电路方式。
数据报是一种无连接的网络服务,虚电路是一种面向连接的网络服务。
数据报的概念就是:在网络层上,数据包都是自己独立路由的,每个数据包都有目的端和源端的详细地址,这样就导致了最好到达目的端的数据包是无序的。
虚电路的概念就是:在网络层上,源端的网络实体和目的端的网络实体在数据包传输之前要进行虚电路的建立。在沿虚电路的路上每一个路由器都会为这路虚电路建立端口映射。在建立完之后,所有的数据包都会沿着该虚电路,按照顺序的到达目的端。
传输层:主要有两种传输服务方式--TCP和UDP。
TCP是面向连接的传输方式,UDP是面向无连接的传输方式。
如同网络层有两种不同类型的服务一样,传输层提供的服务类型也有两种。面向连接的传输服务(TCP)在许多方面与面向连接的网络服务(虚电路)相似。在这两者之中,连接有三个阶段:建立连接,数据传输,释放连接。另外,无连接的传输服务(UDP)和无连接的网络服务(数据报)也非常相似。
问题:现在问题就出来了,既然网络层提供了两种服务方式,那么为什么还要独立出一层传输层,同时传输层也要提供这两种方式呢?
答案在于:传输层的代码完全运行在用户的机器上,而网络层主要运行在承运商控制的路由器上,这也就是网络层应该在的地方,网络层的作用就是为数据包提供路由。这样就造成了用户对于网络层的控制几乎是没有的,用户只能控制自己机器上的程序。那么如果网络层提供的服务不够用怎么办?如果他频繁的丢失分组怎么办?用户在网络层上并没有真正的控制权,所以他们不可能用最好的路由器或者在数据层上用更好的错误处理机制来解决服务太差的问题,唯一的可能是在网络层之上的另一层中提高服务质量。这样就是为什么会出现传输层的原因。
从本质上来讲,由于传输层的存在,这使得传输服务有可能比网络服务更加可靠。丢失的分组和损坏的数据可以在传输层上检测出来,并且由传输层来补偿。