网络层的设计问题
网络层的核心功能:将上层的报文段(segments)从源主机传输到目标主机
在发送端将报文段封装成分组
在接收端从分组中提取报文段上交给传输层
首先讨论网络层需要解决的基本问题,第一个问题就是网络层如何来设计
网络层的设计问题
存储转发数据报交换
首先我们来看一下局域网、广域网和因特网的关系
数据的传输基于分组的存储转发
提供给传输层的服务
网络层要给传输层提供服务,那我们要如何设计呢?
首先明确设计的目标:
- 服务独立于路由器技术
- 路由器的数量、类型和拓扑对传输层 不可见
- 传输层使用的网络地址具有统一编址方案
基于这样的目标,我们有两种服务类型:
面向连接的服务——虚电路服务
无连接服务——数据报服务
下面详细介绍
面向连接服务的实现
这是什么意思呢?
传输数据之前需要先建立连接
传输数据时保持通路
传输数据之后释放连接
虚电路的建立
- 传输数据之前要先Call setup
- 源到目标路径上的所有路由器都要为经过的连接维护 “state”
- Virtual-Circuit Table 每个打开的虚电路占一项。
- 每个分组携带 VC identifier
- 虚电路号不是目标地址
虚电路服务的思路来源于传统的电信网。 电信网负责保证可靠通信的一切措施,因此电信网的结点交换机复杂而昂贵。
无连接服务的实现
数据报网络:网络随时接受主机发送的分组(即数据报),不需要建立源到目标的“电路”
路由器: 不保留任何有关连接的状态信息
- 没有网络级连接的概念
- 网络为每个分组独立地选择路由
- 分组路由使用目标主机地址
- 相同源到目标的分组可能走不同的路
特点
- 网络尽最大努力地将分组交付给目的主机,但网络对源主机没有任何承诺 数据报提供的服务是不可靠的,它不能保证服务质量。
- 网络不保证所传送的分组不丢失,也不保证按源主机发送分组的先后顺序,以及在时限内必须将分组交付给目的主机。
- 当网络发生拥塞时网络中的结点可根据情况丢弃分组。