《计算机网络-自顶向下》04. 网络层-数据平面

article/2025/10/10 4:59:21

文章目录

    • 网络层
    • 数据平面和控制平面
      • 两者的概述
        • 数据平面
        • 控制平面
      • 控制平面:传统方法
      • 控制平面:SDN 方法
      • 网络服务模型
    • 路由器工作原理
      • 通用路由器体系结构
      • 输入端口的功能
        • 基于目标的转发
      • 交换结构
        • 内存交换方式
        • 总线交换方式
        • 纵横式交换方式
      • 输出端口的功能
      • 何时何处出现缓存队列
        • 输入排队
        • 输出排队
      • 分组调度
        • 先进先出
        • 优先权排队
        • 循环和加权公平排队
    • 网络协议:PIv4、寻址、IPv6 以及其它
      • IPv4 数据报格式
      • IPv4 数据报分片
      • IPv4 编址
        • IP和子网掩码
        • CIDR
        • 分类网络
        • 特殊地址
      • 分配地址
        • 获取一块地址(用于组织的子网内)
        • 获取主机地址:动态主机配置协议
      • 网络地址转换 —— NAT
      • 一些术语
    • 通用转发和 SDN
      • 匹配
      • 动作
    • 参考资料

网络层

从表面上看网络层的作用:将分组从一台发送主机移动到另一台接收主机。

完成该功能需要两个重要的网络层功能:

  • 转发:当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。
  • 路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。

数据平面和控制平面

两者的概述

数据平面

  • 数据平面指的是网络层中每台路由器的功能。
  • 决定从路由器其中一条输入链路如何转发到另外其中一条输出链路。

控制平面

  • 控制平面指的是网络范围内的逻辑。
  • 控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。

控制平面:传统方法

每台路由中都包含转发和路由选择两种功能。

在一台路由器中的路由选择算法与在其它路由器中的路由选择算法通信,以计算出它的转发表的值。

这种路由选择功能是由路由选择厂商在其产品中固定写入的。

使用这种方法,每台路由器都有一个与其它路由器的路由选择组件通信的路由选择组件。

路由选择算法有:LR、DV 算法。

image-20230405103409069

控制平面:SDN 方法

在 SDN 中将路由选择和转发进行了物理上的分离,即路由选择设备仅执行转发,而远程控制器计算并分发转发表。

image-20230405103432906

网络服务模型

网络层能可能提供的某些服务:

  • 确保交付:确保分组能够到达目的地。
  • 具有时延上界的确保交付:能够确保分组在规定时间内交付。
  • 有序分组交付:确保分组以发送的顺序到达目的地。
  • 确保最小带宽:确保最低传输速率。
  • 安全性:网络层能够在源加密所有数据报并在目的地解密这些分组,从而对所有运输层报文段提供机密性。

尽力而为服务:该服务传送的分组既不能保证以它们的发送顺序被接收方接收,也不能保证它们最终能交付等,其实尽力而为就是啥也不能保证,全凭运气,“尽力而为” 不过只是一种委婉的说法罢了。

路由器工作原理

通用路由器体系结构

image-20230326203814629

输入端口的功能

image-20230326204206206

线路端接:

  • 物理层
  • 输入链路的入口,接收 Bit 级。

数据链路处理:

  • 数据链路层
  • 协议、拆封

查找、转发、排队:

  • 在输入端口中的转发表查找合适的输出端口,这便是“匹配”。
  • 找到输出端口后,发送该分组进入交换结构,这便是“动作”。
  • 转发的方式:
    • 基于目标的转发:仅仅依赖于 IP 数据报的目标 IP 地址(传统方法)。
    • 通用转发:基于头部字段的任意集合进行转发。

基于目标的转发

image-20230326205745129

这种风格的转发表,路由器用分组目的地址的前缀与该表中的表项进行匹配。若存在一个匹配项,则路由器向与该匹配项相关联的链路转发分组。

最长前缀匹配规则:

image-20230326205834111

当存在同时与多个表项成功匹配时,以最长的那个匹配项为最终目的。

最长前缀匹配:在路由器中经常采用 TCAMs(ternary content addressable memories) 硬件来完成

  • 内容可寻址:将地址交给 TCAM ,它可以在一个时钟周期内检索出地址,不管表空间有多大

  • Cisco Catalyst 系列路由器 : 在 TCAM 中可以存储多达约为1百万条路由表项

交换结构

交换结构位于一台路由器的核心部位,因为正是通过这种交换结构,分组才能实际地从一个输入端口交换(即转发)到一个输出端口中。

有三种交换方式,如图所示:

image-20230326212536314

内存交换方式

略…

总线交换方式

略…

纵横式交换方式

略…

输出端口的功能

image-20230326212925498

  • 当数据报从交换机构的到达速度比传输速率快就需要输出端口缓存
  • 调度规则选择排队的数据报进行传输。

何时何处出现缓存队列

假设输入和输出链路的传输速率是相同的,为 R l i n e R_{line} Rline(单位:每秒分组数),交换结构传输速率为 R s w i t c h R_{switch} Rswitch

输入排队

image-20230405201231276

R s w i t c h R_{switch} Rswitch R l i n e R_{line} Rline N N N 倍,则会出现输入排队。

某一时刻,左上角和左下角的首个分组都需要传输到右上角输出端口,现在假设左上角分组正在传输,过程中左下角也需要传输,但此时到右上角的输出端口的通道已经被左上角占用了,因此会造成左下角阻塞,即便左下角后面的分组不需要传输到右上角,而是其它端口,例如右中间输出端口,尽管如此也会被阻塞,这样因为前部阻塞而造成的输入队列叫做输入队列交换机中的线路前部阻塞(Head-Of-the-Line, HOL)。

如果队列达到上限,则可能将出现丢包。

输出排队

image-20230405201358336

R s w i t c h R_{switch} Rswitch R l i n e R_{line} Rline N N N 倍,并且 N 个输入端口的目的地都为同一个相同的输出端口,交换机以 3 倍于线路速度的速度运行,则会出现输出排队。

同一时刻,三个输入端口同时发送给同一个输出端口(因为交换机的速度是线路的三倍,所以输入端不阻塞),当一个单位时间过后,右上角收到了来着三个输入端口的三个分组。接着又到达了两个新的分组,其中之一要传输给右上角的输出端口。

输出端口中的这些分组形成了一个输出队列,如果达到了上限,则有的包可能会被抛弃,从而迎接新的包。

当输出队列达到上限,又有新的分组到达时,如何选择队列中需要被丢弃的包,或者是丢弃新来的包,这都取决于分组调度

分组调度

先进先出

略…

优先权排队

略…

循环和加权公平排队

略…

网络协议:PIv4、寻址、IPv6 以及其它

IPv4 数据报格式

image-20230329183802492

表项比特数说明
版本4 bit规定了数据报的 IP 协议版本
首部长度4 bit确定 IP 数据报中数据实际开始的地方(因为 IPv4 数据报可包含一些选项)
服务类型8 bit区分不同的 IP 数据报
数据报长度16 bitIP 数据报的总长度(首部+数据),单位字节
标识、标志、片偏移16、3、13 bit用于 IP 分片
寿命(TTL)8 bit当 IP 数据报每经过一台路由器时,该值减一,若 TTL 为 0,则表示该数据报必须丢弃
协议8 bit指示 IP 数据报的数据部分应该交给哪个特定的运输层协议,例如 6 表示给 TCP,17 就给 UDP
首部检验和16 bit用于帮助路由器检测收到的 IP 数据报中的比特错误
源和目的 IP 地址32 bit当某源生成一个数据报时,它在源 IP 字段中插入它的 IP 地址,在目的 IP 地址字段中插入其最终目的地的地址,这通常由 DNS 查找来决定目的地址
选项32 bit该字段允许 IP 首部被扩展。(为了节约开销)
数据32 bit实际数据

选项: 若将首部扩展,则数据报首部会变长,故不能预先确定数据字段从何处开始。其次有些数据报要求处理选项字段中的信息,故而导致一台路由器处理一个 IP 数据报所需的时间变化可能很大。因此该字段也基本不用,IPv6 已经去掉该字段。

一个 IP 数据报总长为 20 字节(假设无选项字段)

IPv4 数据报分片

最大传送单元 MTU: 一个链路层帧能承受的最大数据量叫做最大传送单元。作用是限制路由器之间传送 IP 数据报的长度。

将 IP 数据报中的数据分片成两个或更多个较小的 IP 数据报,用单独的链路层帧封装这些较小的 IP 数据报,然后通过输出链路发送这些帧。每个这样的较小数据报称为

片到达目的的运输层以前都需要重新组装,其片组装的工作在端系统中进行。

如果收的数据报是片的话,要确定何时收到了最后一片,并且如何重新组装形成最初的数据报。

  • 当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识号。
  • 发送主机通常将它发送的每个数据报的标识号增加 1。
  • 当某路由器对一个数据报分片时,其中将初始化数据报的源地址、目的地址、标识号字段。
  • 当目的地从同一台发送主机收到一系列数据报时,它能够检查数据报的标识号以确定那些数据报实际上是数据报片。
  • 数据报的最后一个片的标志被设置为了 0。

为了让目的主机确认是否丢失一个片,使用偏移字段指定该片应放在初始 IP 数据报的哪个位置。

image-20230329193248266

IPv4 编址

IP和子网掩码

  • IP 地址长度:32 比特
  • 总共有 2 32 2^{32} 232 个 IP 地址
  • IP 地址常用电分十进制:即地址中的每个字节都用十进制表示,各字节间用点分开。

image-20230329194447373

  • IP 地址:223.1.1.0/24
  • /24 表示高 24 位是子网掩码,定义了网络号。

CIDR

  • 当使用子网寻址时,32比特的IP地址被分为两部分。
  • 格式:a.b.c.d/x
  • 高 x 位构成 IP 地址的网络部分,也常被称为前缀。
  • 一个组织通常被分配一块连续的地址,即具有相同的前缀的一段地址。
  • 剩下的 32-x 位用于区分该组织(即子网)内部设备的,其中所有设备都具有相同的网络前缀。

分类网络

A类、B类和C类为三种不同网络规模的网络提供单播地址。D类用于组播网络,E类地址范围是为未来或实验性目的保留的。

image-20230329202004024

Class前缀位网络地址位数剩余的位数网络数每个网络的主机数
A类地址082412816,777,214
B类地址10161616,38465,534
C类地址1102482,097,152254
D类地址(群播)1110未定义未定义未定义未定义
E类地址(保留)1111未定义未定义未定义未定义
分类前缀码开始地址结束地址对应CIDR修饰默认子网掩码
A类地址00.0.0.0127.255.255.255/8255.0.0.0
B类地址10128.0.0.0191.255.255.255/16255.255.0.0
C类地址110192.0.0.0223.255.255.255/24255.255.255.0
D类地址 (群播)1110224.0.0.0239.255.255.255/4未定义
E类地址 (保留)1111240.0.0.0255.255.255.255/4未定义

子网掩码和IP地址进行“与”运算可以得到其网络号。

特殊地址

https://www.rfc-editor.org/rfc/rfc3330

分配地址

要知道两点:

  1. 一个组织是如何得到一个地址块的。
  2. 一个设备(一台主机)是如何从某个组织得到的地址块中分配到一个地址的。

获取一块地址(用于组织的子网内)

网络管理员可以与 ISP 联系,由该 ISP 给分配。
那么 ISP 的地址块又从哪儿获取呢?
答:由 ICANN 分配。

获取主机地址:动态主机配置协议

当一个主机接入网络时,会去 DHCP 服务器获取一个 IP 地址,该地址可能是临时的,也可以是由网络管理员固定分配给你的。

image-20230329211159841

当一台设备被 DHCP 分配地址的过程:

  • DHCP 服务器发现(discover):客户端需要找到 DHCP 服务器,这可通过 DHCP 发现报文来完成。客户发送 UDP 分组向 67 端口发送该发现报文,该 UDP 分组封装在一个 IP 数据报中。使用广播目的地址 255.255.255.255 来发送,源IP使用 0.0.0.0
  • DHCP 服务器提供(offer):DHCP 服务器收到一个 DHCP 发现报文时,需要向客户端做出响应,该响应报文向该子网的所有节点广播(因为子网中可能存在多个 DHCP 服务器,该客户会选择其中一个最优的)。
  • DHCP 请求(request):客户从一个或多个 DHCP 服务器中选择一个,并向选中的服务器提供用 DHCP 请求报文进行响应。
  • DHCP ACK:DHCP 服务器用 DHCP ACK 报文对 DHCP 请求报文进行响应。(当客户收到该报文后,交互便完成了)

网络地址转换 —— NAT

NAT 就是一种将一个 IP 通过路由器转换为另一个 IP 的技术,NAT 解决了 IPv4 的 IP 地址数量的不足,地址分为公网IP和私有IP,一个设备想要上网就必须需要一个公网IP,但 IPv4 给每个设备分配一个公网 IP 显然不够,因此一个组织可以只一个公网IP,其子网使用私有IP,子网内的设备可以相互通信,但无法与外网的设备通信,如果想要和外网通信就需要一个公网IP,但前面说过了 IPv4 的地址数量不足以给每个设备都分配一个公网 IP。

因此当私有IP向访问外网时,NAT 可以将私有IP转换通过路由器转换为公网IP,反之当外网设备想和内网设备进行通信时,就通过路由器转换为私有IP。

image-20230329214958801

图中:
[1] -> [2] 是内网访问外网。
[3] -> [4] 是外网访问内网。

一些术语

  • 单播(unicast):是指在计算机网络的传输中,目的地址为单一目标的一种传输方式。
  • 多播(英语:multicast,又称群播,中国大陆也译作组播):是计算机网络中的一种群组通信,它把信息同时传递给一组目的计算机。

通用转发和 SDN

回顾基于目的转发的步骤:

  1. 先查找目的IP地址,此乃“匹配”。
  2. 如何将分组发送到特定输出端口的交换结构,此乃“动作”。

现在采用一种 “匹配加动作”,其中能对协议栈的多个首部字段进行“匹配”,这些首部字段是与不同层次的不同协议相关联的。其中“动作”包括但不限于:将分组转发到一个或多个输出端口、负载均衡、重写首部字值,阻挡或丢弃分组。

在通用转发中,转发表不再是“地址+输出端口”的简单转发表了,而是“匹配+动作”表,该表由远程控制器计算安装和更新(远程控制器和 CV 打交道)。

因为能够使用网络层或链路层源和目的地址做出转发决定,因此下图中的转发设备被称为“分组交换机”,而不是第三层的“路由器”或第二层的“交换机”。

image-20230404211733909

匹配加动作转发表在 OpenFlow 中被称为“流表”:

  • 首部字段值集合
  • 计数器集合
  • 当前分组匹配流表项时所采取的的动作集合

OpenFlow 是一个得到高度认可和成功的标准,它已经称为匹配加动作转发抽象、控制器以及更为一般的 SDN 革命等概念的先驱。

匹配

如下图所示,是分组中的 11 个首部字段和入端口ID,该ID能被 OpenFlow 中的匹配加动作规则所匹配。

OpenFlow 的匹配抽象允许对来自三个层次的协议首部所选择的字段进行匹配。

入端口是指分组交换机上接收分组的输入端口。

如果一个分组匹配多个流表项,选定的匹配和对应的动作将是其中有最高优先权的那个。

image-20230404214226675

动作

每个流表项都有零个或多个动作列表,这些动作决定了应用于与流表项匹配的分组的处理。如果存在多个动作,它们以在表中规定的次序执行。

以下动作可能是最重要的:

  • 转发
  • 丢弃
  • 修改字段

参考资料

  • 分类网络

http://chatgpt.dhexx.cn/article/MYA3CSGF.shtml

相关文章

计算机网络自顶向下方法 习题参考答案 第一章

复习题: R1. 没有什么不同。PC、服务器、手机等。Web服务器是端系统。 R2. Protocol is commonly described as a set of international courtesy rules. These well-established and time-honored rules have made it easier for nations and people to live a…

计算机网络自顶向下方法(第六版) 课后题答案 | 第三章

复习题 R1. a. 将此协议称为简单传输协议(STP)。在发送方端,STP 从发送过程中接收不超过 1196 字节的数据块、目标主机地址和目标端口号。STP 向每个块添加一个 4 字节的报头,并将目标进程的端口号放在这个报头中。然后 STP 将目标主机地址和报文段提供…

计算机网络—自顶向下 计算机网络和因特网

目录 1. 什么是计算机网络 1.1 概念 1.2 因特网的具体构成 2. 计算机网络的结构 2.1 网络边缘(The Network Edge) 2.1.1 接入网 2.1.2 物理媒体 2. 2 网络核心(The network core) 2.2.1 电路交换 2.2.2 多路复用 2.2.3 报文交换 2.2.4 分组交换 2.2.5 网络之…

计算机网络自顶向下方法(一)——计算机网络和因特网

不要成为理想的巨人,行动的矮子 文章目录 写在前面什么是Internet?具体构成及描述什么是Internet: 从服务角度 网络边缘网络边缘:采用网络设施的面向连接服务网络边缘:采用基础设施的无连接服务 网络核心网络核心:电路交换电路交…

【计算机网络:自顶向下方法】(二)应用层

tm 【计算机网络:自顶向下方法】(二)应用层 文章目录 应用层如何创建一个新的网络应用? 2.1 应用层原理网络应用的体系结构对等模式(P2P:Peer To Peer)混合体:客户-服务器和对等体系结构 进程通信分布式进程通信需要解决的问题问题1:…

计算机网络自顶向下-第 8 版

Computer Networking A Top Down Approach 8th Edition Computer Networking A Top Down Approach 8th Edition 概述本书资源计算机网络自顶向下方法第八版英文pdf图片预览 更新特点精彩试读作者介绍 概述 概述 Computer Networking A Top Down Approach第8版也就是计算机网…

自顶向下计算机网络 传输层

自顶向下计算机网络学习 传输层 一、概述和传输层服务1.1 传输层提供的服务1.2传输层和网络层的关系1.3 传输层协议可靠的、保序的传输:TCP不可靠、不保序的传输:UDP 二、多路复用与解复用2.1 什么是复用与解复用2.2 面向连接(TCP)的多路复用与分解2.3 无…

自顶向下计算机网络学习 应用层

自顶向下计算机网络学习 应用层 一、应用层协议原理1. 网络应用的体系结构1.1 客户-服务器(C/S)体系结构1.2 对等体(P2P)体系结构1.3 混合体:客户 - 服务器和对等体系结构 2.应用进程间的通信2.1 分布式进程需要解决的问题2.1.1 进程标识和寻…

计算机网络自顶向下方法 【第一章 计算机网络及因特网】

目录 1.1 什么是因特网1.1.1 具体构成描述1.1.2 服务描述1.1.3 网络协议 1.2 网络边缘1.2.1 接入网 1.3 网络核心1.3.1分组交换1.3.2 电路交换1.3.3 报文交换 1.4 交换网中的时延,丢包和吞吐量1.5 协议层次及其服务模型 1.1 什么是因特网 我们可以用两种方式描述因…

计算机网络自顶向下方法笔记01

《计算机网络自顶向下方法》学习笔记。之前学习过计算机网络微课,已经对计网中的很多概念都有了印象和一定的了解了,这时候再读自顶向下感觉比较轻松了。这本书没有涉及太多物理层的内容,第一章为概述。从第二章应用层开始,自顶向…

《计算机网络--自顶向下方法》第一章--计算机网络和英特网

1.1什么是英特网 1.1.1具体构成描述 主机(host)或端系统(end system):所有与因特网相连的计算设备 路由器(router):从一条入通信链路接收到达的分组,并通过一条出通信链…

计算机网络(自顶向下方法)-网络层

计算机网络(自顶向下方法)-网络层 4. 1 导论数据平面控制平面 4.2 路由器组成4.3 IP: Internet Protocol数据报格式分片IPv4地址子网IP 地址分类子网掩码(subnet mask)如何获得一个IP地址DHCP: Dynamic Host Configuration Protocol NAT:网络…

计算机网络(自顶向下)笔记

本书是自顶向下进行的, 在第一章概述计算机网络的层次结构,从第二章开始从上到下一章介绍一层(大致), 最后是移动互联网/网络安全的内容 计算机网络中的每一层都具有一定的功能, 通过层间接口向上层提供服务, 通过调用下层接口实现一定的功能. 每一层的学习方式 原理 功能向…

【计算机网络:自顶向下方法】(一)计算机网络和英特网

文章目录 1.1什么是Internet?概念internet 结构网络结构 1.2网络边缘1.3网络核心: 数据交换的功能电路交换分组交换分组交换: 排队延迟和丢失网络核心的关键功能电路交换和分组交换的比较电路交换分组交换 分类 1.4 接入网和物理媒体住宅接入 : modem接…

计算机网络重点知识整理(自顶向下)

前言 忙碌的学期结束了,趁自己对知识点的掌握还没有忘记,对计算机网络的知识点做一个整理,整理的侧重点在本校老师重点讲述部分,大家参考即可。 整理的资源来自教材(计算机网络自顶向下)以及PPT。 内容有误…

计算机网络(自顶向下方法)-Internet概述

计算机网络(自顶向下方法)-Internet概述 1.概论1.1 什么是Internet?从具体构成角度终端设备 什么是协议? 1.2 网络边缘1.3 网络核心电路交换分组交换数据报(datagram) 的工作原理虚电路(virtual circuit)的工作原理网络分类 1.4 接入网和物理…

计算机网络-自顶向下(学习笔记)

1. 计算机网络与互联网 1.1 什么是互联网 终端系统通过通信连接(communication links)和包交换机(packet switches)连接在一起 包交换机的两种主要类型 路由器(routers)与链路层交换机(link-layer swtiches)路由器应用于网络核心,链路层交换机用于接入层transmiss…

计算机网络自顶向下-应用层

一、简介: 网络应用是计算机网络存在的理由,没有了应用也不存在任何的网络协议。我们学习网络应用的原理和实现方面知识,从定义应用层概念开始,其中包括网络服务、客户】服务器、进程和运输层接口。 其中包括我们熟悉的web、emai…

《计算机网络 自顶向下方法》学习整理

《计算机网络 自顶向下方法》学习整理 计算机网络1、计算机网络(1)英特网(2)网络边缘(3)网络核心(4)时延、丢包、吞吐量(5)协议层次 2、应用层(1&…

计算机网络复习(自顶向下)知识点总结(一天一夜超8000字,详细知识点总结,带重点标注目录)

计算机网络复习(自顶向下)1~2章 复习目录一、计算机网络基本概念1.1 认识英特网1.2 网络边缘1.3 网络核心1.4 ⭐时延、丢包和吞吐量1.5 协议层次和服务模型1.6 安全和历史(略) 二、应用层2.1 应用层协议原理2.2 ⭐Web和HTTP协议2.…