【计算机网络】-网络层-网络层的设计问题
网络层的功能概述
负责通过多个链路在端点之间传递数据包
网络层所在位置:
存储-转发数据包交换
存储-转发数据包交换过程
1.若一台主机要发送一个数据包,它会将数据包发送给最近路由器
2.在该数据包到达路由器,并且路由器的链路层完成了对它校验和的验证后,它先被存储在路由器上,路由器根据数据包的头部信息和路由表,选择路由
3.根据所选路由,将该数据包转发到下一跳路由器,直到到达目的主机为止
4.在目的主机上它被交给相应的进程
向传输层提供的服务
设计网络层服务时需要考虑问题
1.向上层提供的服务应该独立于路由器技术
2.路由器的数量、类型和拓扑结构对传输层不可见
3.网络地址应该有统一的编址方案,甚至可跨越多个LAN和WAN
提供服务的类型
无连接服务
Internet社团的观点:通信子网不可靠的,主机应该接受“网络是不可靠的”这样的事实,且自己来完成错误控制和流控。网络层只需提供无连接服务,而将复杂的功能放在传输层
例:Internet提供了无连接的网络层服务
面向连接服务
电话公司的观点:通信子网应该提供可靠的、面向连接的服务。服务质量是最主要的因素
例:ATM提供了面向连接的网络层服务
无连接服务的实现
数据报
提供无连接的服务,每个数据包携带完整的目的地址,独立进行路由选择
数据报子网的工作过程
1.每一台路由器的内部都有一张内部表,它指明了针对每一个可能的目标地址应当将数据包发送到哪里去
2.每一个表项由两个部分所组成,其一是目标地址,其二是通往目标地址所使用的出境线路
3.当然只能使用直接连接的线路,比如A只有两个出境的线路,分别通往B和C,所以每一个入境的数据包必须要转发给这两个路由器之一,即使它的目标地址是其他的一台路由器,因此A的初始化表如图所示,出境线路都是B或者C
4.在路由器A,数据包1、2和3分别到达入境线路并经过验证校验和之后,被路由器暂时保存起来,根据A上的表,每个数据包被放在一个新帧中,并且被转发到通往C的出境线路,之后数据包1被转发给E,之后数据包1被转发给E,进一步又转发给F,当它到达F的时候,它被封装在一个帧内通过连有h2的lan被发送出去,数据包2,3遵循同样的线路
5.数据包4的情形有些不同,当它到达A的时候,尽管它的目标地址是指向F的,但是它被转发给路由器B,这有可能是路由器A意识到了ACE路径出现了拥塞,进而更新了路由表
面向连接服务的实现
虚电路
1.提供面向连接的服务,在发送数据数据包之前,必须先建立起一条从源路由器到目的路由器之间的路径,这个连接称为虚电路(VC)
2.使用该虚电路进行通信
3.通信结束后,释放该虚电路
虚电路的工作过程
1.建立虚电路,每个随后的数据包都包含一个标示符,指明该数据包属于哪个虚电路
2.使用该虚电路进行通信
3.通信结束后,终止虚电路
虚电路子网和数据报子网的比较(important)
连接建立时间与地址查找时间的权衡
- 虚电路需要在建立连接时,花费时间
- 数据报则在每次路由时,查找过程复杂
路由器内存空间与带宽的权衡
- 虚电路方式,数据包只要包含电路号,不用包含完整的目的地址,但路由器需要维护虚电路的状态信息
- 数据报方式,每个数据报都携带完整的目的/源地址,但路由器不需要维护虚电路的状态信息
服务质量QoS(Quality of Service)
- 虚电路方式很容易保证QoS,可以提前预留资源,适用于实时操作,但比较脆弱
- 数据报不太容易保证QoS,但是对于通信线路的故障,适应性很强