当前位置: 首页 > news >正文

计算机网络自顶向下方法32——网络层 网络层概述 转发和路由选择,数据平面和控制平面(传统方法,SDN方法) 网络服务模型

网络层深度解析(一):概述、平面分离与服务模型

网络层是互联网协议栈中最具核心地位的层次之一,它实现了主机到主机的通信服务,是连接全球所有端系统的基石。

一、网络层概述与核心价值

1. 核心职责
网络层负责将报文段从发送主机一路传输到接收主机。为此,它必须完成两大核心任务:

  • 转发:当数据包到达路由器的一条输入链路时,路由器必须将其移动到适当的输出链路。这是一个局部的、高速的操作。

  • 路由选择:确定数据包从源到目的地所采用的端到端路径。这是一个全局的、相对低速的计算过程。

2. 与运输层的关系
这是一个至关重要的区分:

  • 运输层:为运行在不同主机上的进程提供逻辑通信。

  • 网络层:为不同主机提供逻辑通信。

3. 网络层主要实现方式

  • 数据报网络:互联网所采用的方式。无连接服务,每个数据包独立路由。

  • 虚电路网络:源于电信网络。面向连接服务,在数据流动前先建立虚电路。

二、转发与路由选择:数据平面与控制平面

为了应对日益复杂的网络规模和管理需求,现代网络架构将路由器的功能明确划分为两个层面:数据平面控制平面

1. 基本概念

  • 数据平面:决定到达路由器的数据包如何转发到输出链路。它处理的是微观、局部、快速的操作,通常由硬件实现。

  • 控制平面:决定数据包从源到目的地的端到端路径。它处理的是宏观、全局、相对慢速的计算,通常由软件实现。

2. 传统方法:每路由器控制
在互联网早期,控制平面功能以分布式的方式实现:

  • 工作机制:每个路由器内部都运行着路由选择算法(如OSPF, BGP),路由器之间通过交换路由选择报文来通信。

  • 决策依据:每个路由器根据获取的网络信息,独立计算其转发表。

  • 类比:就像一群司机,每个人都拿着自己的地图(路由算法),通过互相问路(交换路由信息),各自决定自己的行车路线(计算转发表)。

3. SDN方法:逻辑集中式控制
软件定义网络是一种革命性的控制平面实现方式:

  • 核心思想:将网络的控制平面与数据平面分离。控制平面功能从各个路由器中抽离出来,由一个集中式的控制器(通常是一个服务器集群)来执行。

  • 工作机制

    1. 控制器通过一个南向API与网络中的所有路由器交互。

    2. 控制器收集整个网络的全局拓扑信息。

    3. 控制器为每个流计算路径,并将计算出的流表项直接下发到各个路由器的流表中。

  • 关键协议OpenFlow是SDN中最重要的南向接口协议。

  • 类比:像一个空中交通管制系统。控制器是塔台,拥有整个机场的全局视野,它直接向每个飞行员(路由器)下达精确的指令(流表项)。

4. 两种方法对比

特性传统每路由器控制SDN逻辑集中控制
控制位置分布式,在每个路由器中集中式,在外部控制器中
网络视图局部、不完整全局、统一
管理复杂度高(需配置每个设备)低(控制器统一配置)
创新速度慢(依赖设备厂商)快(软件可编程)
典型代表传统互联网大型数据中心、园区网
三、网络服务模型

网络服务模型定义了的是在发送主机与接收主机之间,网络层为运输层提供的端到端服务的特性。

1. 互联网的“尽力而为”服务模型
这是互联网最核心、也最成功的服务模型。

  • 核心承诺:网络会尽自己最大的努力来交付数据报,但不作任何保证

  • 具体表现

    • 不保证数据报的按时交付。

    • 不保证数据报的按序交付。

    • 不保证数据报的最终交付。

    • 不保证网络不会丢包。

  • 设计哲学:保持网络核心的极简主义,将复杂的可靠性、流量控制等问题交由端系统(通过TCP)来解决。这种“智能边缘,简单核心”的设计是互联网得以大规模扩展的关键。

2. 其他可能服务模型(对比)

  • 恒定比特率:提供类似专线的稳定带宽和延迟保证(如ATM CBR)。

  • 可用比特率:提供最小带宽保证,网络空闲时可使用更多带宽(如ATM ABR)。

总结

网络层通过数据平面实现高速的转发,通过控制平面(无论是分布式还是集中式)实现智能的路由选择。互联网采用 “尽力而为” 的服务模型,将复杂性推向边缘,从而获得了无与伦比的扩展性和鲁棒性。而SDN的兴起,则代表了控制平面从分布式走向逻辑集中式的重大演进,为网络带来了前所未有的可编程性和灵活管控能力。

http://www.dtcms.com/a/572892.html

相关文章:

  • 深入理解MySQL_3 I/O成本
  • 哪个网站可以做验证码兼职gom传奇网站建设
  • 做网站一年能赚多少钱没有备案的网站怎么挂广告
  • vscode-ssh无法进入docker问题解决
  • iOS 应用网络权限弹窗的问题及解决方案
  • 使用 FastAPI 异步动态读取 Nacos 配置
  • 怀远做网站电话网站建设期末作业要求
  • Arbess零基础学习 - 使用Arbess+GitLab实现PHP项目构建/主机部署
  • CS144 Lab:Lab0
  • 总结做产品开发的一些通病
  • 稳定币市场格局重构:分发权正在成为新的护城河!
  • 【C语言】深入理解指针(二)
  • C++:模板的灵魂——从编译期推导到元编程的演化史
  • 开发网站用得最多的是什么语言电子商务网站开发课程
  • 顺德中小企业网站建设网站销户说明
  • Python3 面向对象编程详解
  • 【 SLF4J + Logback】日志使用方法+技巧介绍+项目示例(SpringBoot)
  • 重构可见性:IT资产管理的下一次觉醒
  • mermaid install for free docker
  • 0 基础学前端:100 天拿 offer 实战课(第 6 天)—— JavaScript 入门:给网页加 “动态交互” 的 3 个核心案例
  • 宝塔nginx http转https代理
  • 建设企业网站登录901如何修改wordpress主题模板
  • 系统架构设计师论文-论软件体系结构的演化
  • 【大模型学习】第一章:自然语言处理(NLP)核心概念
  • 软件测试之压力测试知识总结
  • 高级系统架构师笔记——系统架构设计基础知识(3)软件架构风格
  • 备案网站负责人必须为法人吗网站建设需要客户提供什么内容
  • QML学习笔记(五十一)QML与C++交互:数据转换——基本数据类型
  • 机载电脑部署安装px4环境详细教程
  • Android APP 的压力测试与优化