MENU

网络层(一)网络层提供服务的方式

November 17, 2018 • Read: 615 • 计算机网络

引言

在计算机网络领域。网络层应该向传输层提供怎样的服务(“面向连接”还是“无连接的”)曾引起长期的争论。争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?

对于上面的问题,现在已经有了很明确的答案——端系统来负责可靠交付

网络层提供可靠交付—虚电路服务

想法来源

一些人认为应该模仿电信网的成功经验,让网络提供可靠交付。传统电信网的主要业务是提供电话服务。电信网络使用昂贵的程控交换机(其软件也很复杂),用面向连接的通信方式,使电信网络能够向用户(实际是电话机)提供可靠传输的服务。因此,他们认为,计算机网络也应模仿打电话所使用的面向连接的通信方式。

实施方式

当两个计算机进行通信时,也应当建立连接(但在分组交换中是建立一条虚电路Virtual Circuit),以保证双方通信所需的一切网络资源。然后双方就沿着已建立的虚电路发送分组。这样的分组的首部不需要填写完整的目的主机地址,而只需要填写这条虚电路的变化,因此减小分组的开销。这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,当然也不会丢失、不会重复。在通信结束时,释放双方建立的虚电路。

虚电路:表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储方式转传送,而不是真正建立了一条物理连接。请注意,电路交换的电话通信是先建立了一条真正的连接。因此,分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。


如上图所见,主机H1和主机H2之间交换的分组都必须在事先建立的虚电路上传送

虚电路未被采用的原因?

虚电路增加了中间设备的成本,同时依旧对传输层存在依赖性,很明显,假设虚电路断了,主机之间就无法访问了

网络层提供不可靠交付—数据报服务

想法来源

电信网提供端到端可靠传输的服务队电话业务是适合的,因为电信网的终端(电话机)非常简单,没有智能,也没有差错处理能力。
但是计算机网络的端系统是有智能的计算机,计算机有很强的差错处理能力(这点和电话机有本质区别)。因此因特网在设计上就采用了和电信网完全不同的思路

设计思路

网络层向上只提供简单灵活的、无连接的、进最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(一个IP数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。这样,所传送的分组可能出错、丢失、重复和失序(即不按发送顺序到达终点),当然也不保证交付的时限

尽最大努力交付:虽然并不表示路由器可以任意丢弃分组,但在网络上这种交付的实质就是不可靠交付


如上图所见,主机H1向主机H2发送的分组各自独立地选择路由,并且在传送过程中还可能丢失

数据报服务优势

可能很多人好奇,既然虚电路保证发送的分组无差错、按序到达终点,且不丢失不重复。而数据报服务只能尽最大努力交付,为什么现在数据报服务方式得到推广呢?

这是因为,由于传输网络不提供端到端的可靠传输服务,就使得网络中的路由器可以做的比较简单,而且价格低廉(与电信网的交换机相比)。如果主机(即端系统)中的进程之间的通信是可靠的,那么就由主机中的运输层负责(包括差错处理、流量控制等)。这样设计的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。因特网能够发展到今天的规模,证明了当初采用这种设计思路的正确性。用户数据报服务,充分发挥了大众终端(PC)的作用,降低了网络造价,易于推广

虚电路与数据报的主要区别

Archives Tip
QR Code for this page
Tipping QR Code