【网络层设计要点】
网络层是计算机网络中的关键层次,其主要任务是在互联网中的两台主机之间提供逻辑通信。设计时需考虑以下要点:
1. **存储-转发分组交换**:网络层采用分组交换策略,主机发送的分组在经过路由器时会被暂时存储,然后根据分组头部信息和路由表选择最佳路径转发。
2. **向传输层提供的服务**:网络层提供的服务应独立于具体网络技术,并且不暴露网络内部结构,提供统一的网络地址方案。服务类型包括无连接服务和面向连接服务。
- **无连接服务**:如Internet的IP协议,不保证数据传输的可靠性,错误控制和流量控制主要由传输层负责。
- **面向连接服务**:如ATM网络,先建立连接,然后通过虚电路传输数据,确保服务质量。
3. **无连接服务的实现**:数据报方式中,每个分组携带完整的目标地址,独立选择路由。而虚电路方式先建立连接,后续分组只需携带虚电路标识,简化路由处理。
4. **面向连接服务的实现**:虚电路建立后,后续分组沿同一路径传输,通信结束后释放连接。这种方式有利于实现服务质量控制,但对路由器内存和管理要求较高。
【路由算法】
路由算法用于决定数据包如何在网络中传输,理想情况下应具备正确性、简单性、健壮性和稳定性。路由器内部的两个主要进程是转发和路由表更新。路由算法种类多样,例如:
- **距离矢量路由算法**(如RIP,OSPF):每个路由器根据邻居传递的距离信息更新自己的路由表。
- **链路状态路由算法**(如OSPF):路由器广播链路状态信息,形成全网拓扑视图,然后使用最短路径优先算法计算路由。
- **边界网关协议BGP**:在互联网中用于AS(自治系统)之间的路由选择,考虑多种因素,如路径长度、策略等。
【拥塞控制算法**
网络层还需要关注拥塞控制,避免网络过载。常见策略包括:
- **随机早期检测RED**:在队列满之前随机丢弃数据包,防止拥塞扩散。
- **加性增减乘性减AIMD**:在拥塞发生时,线性增加慢启动阈值并指数减少拥塞窗口。
【服务质量QoS**
网络层的QoS设计旨在满足不同应用对延迟、带宽、抖动和丢包率的需求。对于实时应用,如语音或视频,可能需要预留资源的虚电路方式;而对于容忍丢失和时延的应用,数据报方式更为灵活。
网络层的设计和实现涉及多个方面,包括分组交换机制、服务模型、路由选择和拥塞控制,以及对服务质量的考量,这些都是构建高效、可靠和可扩展的网络基础设施的基础。