网络层解析(一):网络层的设计问题

网络层的功能

我们的上一个话题是数据链路层,大家都知道了,数据链路层处理的是一条线路上的问题,有些是点到点问题,有些是广播形式的竞争问题,它具有指定级别的可靠性,以太网802.11就是链路层协议的例子。
那么网络层是干啥的呢?网络层主要处理如何把多条链路结合到网络中,以及如何把网络与网络联结成互联网络,以便我们在两个相隔很远的计算机之间发送数据包。网络层的任务包括找到传递数据包所走的路径,可能沿途要经过许多跳的中间路由器。网络层是处理端到端数据传输的最底层。
为了完成这个任务,网络层需要知道网络拓扑结构,还需仔细选择路由器,避免线路负载过重或空闲,还要解决当发送方和接收方位于不同网络的跨网传输带来的问题。IP就是网络层协议的例子。

网络层的设计问题

存储转发数据包交换

如下图,网络层最重要的组件是网络服务提供商(ISP)提供的路由器,以及客户端设备。图中主机H1直接连到ISP的路由器A上,而H2位于一个局域网内,这个LAN上还有台路由器F,路由器F通过一条租用线路连接到ISP的设备上。然而,为了我们关注算法的目的,我们还是把客户端的路由器作为ISP网络的一部分来考虑,因为它们运行的算法相同。
网络层协议环境
若一台主机要发送一个数据包,先传输给最近的路由器,由路由器的链路层完成了对它校验和的验证之后,先被存储在路由器上,再沿着路径被转发到下一个路由器,直至到达目标主机。这种机制即为存储-转发数据包交换

提供给传输层的服务

  • 一个阵营
    以Internet社员为代表,认为路由器的任务仅仅是传送数据包,不用再做别的事情,主机应该接受网络是不可靠的这个事实,自己完成差错控制和流量控制任务。这种观点导致了网络服务应该是无连接的这样的结论,只需要发送包和接收包,每个数据包必须携带完整的目标地址,因为每个数据包的运送独与它前面的数据包。
  • 另一个阵营
    以电话公司为代表,认为网络应该提供可靠的、面向连接的服务。Internet正在朝着面向连接的特性进化,因为服务质量变得越来越重要了。

根据网络层提供的服务类型可能存在两种不同的组织方式。
若提供的是无连接的服务,则所有的数据包都被独立地注入到网络中,并且每个数据包独立路由,不需要提前建立任何连接,这样的情境中,数据包称为数据报
若提供的是面向连接的服务,则在发送数据宝之前先建立起一条从源路由器到目的路由器之间的路径,这个连接称为虚电路

无连接服务的实现

如图,假设主机H1上有进程P1(应用层)有一个很长的消息要发送给P2,它将消息递交给传输层,并指示传输层将消息传送给主机H2上的进程P2。
假设这个消息的长度是最大数据包长度的4倍,网络层必须将消息拆分成4个数据报1、2、3、4,再用某种点到点协议将这些数据包一次发送给路由器A。
至此,ISP接管传输任务。每个路由器都有一个内部表,DA为目的地址,NH为下一条地址。可以看到,数据报4的目的地址虽然也指向F,但它被A转发给了路由器B,这或许是由于A了解到在ACE路径上发生了流量拥塞,因此更新了路由表。
管理这些路由表并做出路由选择的算法就是路由算法IP协议是整个Internet的基础,是无连接网络服务的重要范例。路由器使用IP地址来单独转发每个数据包。
在这里插入图片描述

面向连接服务的实现

为了避免发送每个数据包都选择一条新路径,在传送包之前就在源机器和目标机器之间建立一条确定的路径,并保存在这些中间路由器的表中。当连接被释放之后,虚电路也随之消失。每个数据包包含一个标识符,指明它属于哪一条虚电路。

  • H1要与H2建立连接:
    H1选择连接标识符1,并告知网络要建立虚电路 。A的路由表增加第一行,表示若一个标了1的数据来自H1,则发到C,且赋予连接标识符1,以此类推。
  • H3要与H2建立连接:
    H3选择连接标识符1(因为它是发起连接的,所以只有1),并告知网络要建立虚电路。A的路由表增加第二行,表示若一个标了1的数据来自H3,则发到C,且赋予连接标识符2,这是为了让C区分来自H1和H3的分组

虚电路
一旦映射关系建立起来,从H1/H3的所有分组都沿着相同的路径传输。

虚电路与数据报网络的比较

问题数据包网络虚电路网络
连接建立
地址每个包都有完整源/目地址只需要一个VC(虚电路)tag(除了建立连接时所用的数据包也需使用源/目地址)
状态信息路由器不保留连接状态路由器保存每条连接的映射关系
路由每个分组独立选择路由建立虚电路时所用的数据包选择路由,后面所有包都遵循该路由
路由器失效的影响除了路由器失效期间丢失的包外无影响所有穿过失效路由器的VC都中断,需要重新建立
提供服务质量困难容易,建立每条VC前先看网络资源是否满足用户需求
拥塞控制困难容易,建立每条VC前先看网络资源是否满足用户需求

下一节,我们将切入正题,讨论路由算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值