博主介绍:
– 我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~
前言
众所周知计算机网络共分五层(从底向上)分别是
- 物理层(最底部的)
- 数据链路层
- 网络层
- 运输层
- 应用层(最接近用户的)
计算机网络的第三层要做什么?
数据链路层遗留了两个问题
- 问题1:数据链路层无法做到可靠传输,网络层是否可以做到?
- 问题2:数据链路层无法做到用户在不同网络之间的通信,网络层是否可以做到?
4.1 网络层提供的两种服务
首先我们跟着前言的问题思路走,身为计算机网络的第三层,目的是什么?网络层提供了哪两种服务?
网络层应该向运输层(网络的第四层)提供怎样的服务(“面向连接”还是“无连接”),这个一直处于争论状态。争论的问题就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
第一个观点:假如让网络负责可靠交付
- 借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向连接的通信方式。
- 通信之前先建立虚电路,以保证双方通信所需的一切网络资源。
- 如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点,不丢失、不重复。
虚电路服务,H1发送给H2的所有分组都沿着同一条虚电路传送
为什么叫做虚电路?因为是逻辑连接的。
- 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
- 注意,电路交换的电话通信是先建立一条真正的连接。
- 因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
结论
这个时候我们可以看到缺点显而易见,建立一条真正的连接,在这个时候也只有这条连接可以做到可靠传输,如果还有用户要使用建立连接的那个路由就不能用了,这样做也造成了资源浪费,并且利用率也很低。这样就出现了新的观点
第二种观点:网络提供数据报服务
互联网的先驱者提出了一种崭新的网络设计思路。
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。
网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
结论
所以到这里也就看到了之前使用网络的方式做可靠传输,可行但是目前不适用,所以还是使用端系统方式,这种方式意思就是既然网络无法做到可靠传输就把这个问题给了连接的两端来做,那么我们既然没有义务做可靠传输,那就可以允许传送的分组可能出错、丢失、重复和失序等问题,那网络层的作用到这里有些眉目了,向上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。具体如何尽最大努力看后续做了哪些工作。
做了哪些努力
- 由于传输网络不提供端的可靠传输服务,这就使网络中的路由器可以做的比较简单,而且价格低廉(与电信网的交换机相比较)。
- 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责可靠交付(包括差错处理、流量控制等)。
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
- 互联网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
总结
到这里【问题1】相信已经很清楚了,网络不做可靠传输服务。所以网络不需要保证可靠性,可靠性要通过两个端进行保障,网络只需要提供一个简单灵活的、无连接的、尽最大努力交付的数据报服务的就可以了。
下一节我们继续去看网络层做的最大努力有多少
数据报服务
虚电路服务与数据报服务的对比
创作不易,点个赞吧!
如果需要后续再看点个收藏!
如果对我的文章有兴趣给个关注!
如果有问题,可以关注公众号【了凡银河系】点击联系我私聊。