文章目录
- 网络层
- 数据平面
- 路由器工作原理
- 网际协议(*IP*)
- IPv4
- IPv6
- DHCP
- NAT
- 控制平面
- 路由选择算法
- 因特网中自治系统内部的路由选择:OSPF
- ISP 之间的路由选择:BGP
- ICMP
- SNMP
网络层
尽力而为服务(best-effort services)
-
数据平面:数据平面功能(网络层中每台路由器的功能)决定到达路由器输入链路之一的数据报(网络层中的分组)如何转发到该路由器的输出链路之一。
-
控制平面:控制平面功能(网络范围的逻辑)控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。协调这些本地的每路由器转发操作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。
- 控制网络层组件和服务如何配置和管理
网络层功能:
- 转发:是数据平面中实现的唯一功能,硬件实现。当一个分组到达某路由器的一条输入链路时,该路由器必须将该分组移动到适当的输出链路。
- 路由选择:由控制平面实现,软件实现。当分组从发送发流向接收方时,网络层必须决定这些分组所采用的路由或路径。
数据平面
路由器工作原理
-
输入端口:
- 执行终结入物理链路的物理层功能,红框。
- 与位于入链路远端的数据链路层交互操作来执行数据链路层功能,绿框。
- 查询转发表决定路由器的输出端口,到达的分组通过交换结构转发到输出端口,蓝框。使用在每个线路卡的副本,转发决策能在每个输入端口本地做出。使用最长匹配原则,一旦通过查找确定了某分组的输出端口,则该分组就能够发送进入交换结构。
- 控制分组(如携带路由选择协议信息的分组)从输入端口转发到路由选择处理器。
-
交换结构:将路由器的输入端口连接到它的输出端口,完全包含在路由器中,是一个网络路由器中的网络。
-
内存交换
- 在 CPU 直接控制下交换的传统计算机
- 分组从输入端口处被复制到处理器内存中,查表,复制到输出端口的缓存中
- 一次仅能执行一个内存读/写,速度受内存带宽限制
-
总线交换
- 通过共享总线将分组直接传送到输出端口
- 一次只有一个分组能够跨越总线,路由器的交换带宽受总线速率的限制
-
互连网络交换
- 能够并行转发多个分组
-
-
输出端口:存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。输入和输出端口通常成对出现在同一线路卡上。
-
路由选择处理器:执行控制平面功能和网络管理功能。
- 传统路由器:执行路由选择协议,维护路由选择表与关联链路状态信息,并为该路由器计算转发表。
- SDN 路由器:负责与远程控制器通信,接收由远程控制器计算的转发表项,并在路由器的输入端口安装这些表项。
输入排队、输出排队、缓存
分组调度:排队的分组如何经输出链路传输
-
先进先出
-
优先权排队:到达输出链路的分组将被分类放入输出队列中的优先权类
-
循环和加权公平排队
网际协议(IP)
IPv4
- 版本(号):规定了数据报的 IP 协议版本,版本号规定了 IP 数据报的解释方式,不同的 IP 版本使用不同的数据报格式。
- 首部长度:无 Options 字段时,Header length = 20 字节。
- 服务类型:将不同类型的 IP 数据报区分。
- 数据报长度:IP 数据包的总长度(首部 + 数据)字节,理论最大值 65535 字节。
- 标识、标志、片偏移:分组分片。
- 寿命:确保数据报永远不会在网络中循环。
- 协议:指示 IP 数据报的数据部分应该给哪个特定的运输层协议。6:TCP,17:UDP。
- 首部检验和:帮助路由器检测收到的 IP 数据报中的比特错误。路由器丢弃出错的数据报。每台路由器必须重新计算检验和(TTL 和 Options 会变)。
- 源和目的 IP 地址:
- 选项:
- 数据(有效载荷):包含要交付给目的地的运输层报文段,或者 ICMP 报文。
无类别域间路由选择(Classless Interdomain Routing,CIDR),因特网的地址分配策略。
255.255.255.255
:当主机发出以广播地址为目的地址的数据时,该报文会交付给同一个网络中的所有主机。
IPv6
DHCP
动态主机配置协议(Dynamic Host Configuration Protocol,HDCP):自动将主机连接到一个网络,是一个客户-服务器协议。
- 给定主机每次与网络连接时能得到一个相同的 IP 地址。
- 给某个主机分配一个临时的 IP 地址,每次地址可能不同。
- 允许一台主机获取它的子网掩码、第一跳路由器地址(默认网关)、本地 DNS 服务器的地址。
- 即插即用协议、零配置协议。
- DHCP 服务器发现:新到达主机(客户)使用 DHCP 发现报文在 UDP 分组中向端口 67 发送。DHCP 客户生成包含 DHCP 发现报文的 IP 数据包,其中使用广播目的地址
255.255.255.255
并且使用“本主机”源 IP 地址0.0.0.0
。DHCP 客户将该 IP 数据报传递给链路层,链路层然后将该帧广播到与该子网连结的节点。 - DHCP 服务器提供:DHCP 服务器用 DHCP 提供报文(收到的发现报文的事务 ID、向客户推荐的 IP 地址、网络掩码、IP 地址有效的时间量)向客户做出响应,该报文向该子网的所有节点广播
255.255.255.255
(子网中可能存在多个 DHCP 服务器)。 - DHCP 请求:新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器用 DHCP 请求报文进行相应,回显配置的参数。
- DHCP ACK:服务器用 DHCP ACK 报文对 DHCP 请求报文进行相应,证实所要求的参数。
DHCP 提供了允许客户更新 IP 地址租用的机制。每当一个移动节点在子网之间移动时,就不能维持与远程应用之间的 TCP 连接。
NAT
网络地址转换(Network Address Translation,NAT)
控制平面
控制平面方法:
-
传统方法:路由器中的路由选择算法决定转发表中的值。
-
软件定义网络(SDN)方法:远程控制器计算和分发转发表以供每台路由器使用。
路由选择算法
目的是从发送方到接收方的过程中确定一条通过路由器网络的好的(最低开销)路径(最低开销路径:最短路径,源和目的地之间的具有最少链路数量的路径)。
路由算法的分类:
-
根据该算法是集中式还是分散式:
-
集中式路由选择算法:需要用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。
- 具有全局状态信息的算法称为链路状态(Link State,LS)算法,该算法必须知道网络中每条链路的开销。通过让每个节点向网络中所有其它节点广播链路状态分组来完成的,其中每个链路状态分组包含它所连接的链路的标识和开销。
-
分散式路由选择算法:路由器以迭代式、分布式的方式计算出最低开销路径,每个节点仅有与其直接相连链路的开销,通过迭代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点的最低开销路径。适合路由器直接交互的控制平面——传统方法
- 距离向量(Distance-Vector,DV)算法:每个节点维护到网络中所有其它节点的开销估计向量。
- 链路开销改变与链路故障:好消息传播快,坏消息传播慢
- 增加毒性逆转:改善坏消息传播
- 距离向量(Distance-Vector,DV)算法:每个节点维护到网络中所有其它节点的开销估计向量。
LS DV 报文复杂性 发送 O(|N||E|) 个报文 只传播好消息 收敛速度 O(|N|2) 收敛慢 健壮性 路由计算一定程度上是分离的,提供了一定的健壮性 一个不正确的节点计算值会扩散到整个网络 -
-
根据该算法是静态的还是动态的:
- 静态路由选择算法:路由随时间的变化非常缓慢,通常是人工进行调整。
- 动态路由选择算法:随着网络流量负载或拓扑发生变化而改变路由选择路径。
-
根据该算法是负载敏感的还是负载迟钝的:
- 负载敏感算法:链路开销会动态地变化以反映出底层链路的当前拥塞水平,趋向于绕开拥塞链路。
- 负载迟钝算法:某条链路的开销不明确地反应其当前的拥塞水平。
AS 间和 AS 内部路由选择协议不同原因:
AS 间 | AS 内部 | |
---|---|---|
策略 | 策略问题起主导作用 | 一切都是在相同的控制管理名义下进行的,策略问题在 AS 内部选择路由中起着微不足道的作用 |
规模 | 扩展一个路由选择算法及其数据结构以处理到大量网络或大量网络之间的路由选择的这种能力,是 AS 间路由选择的一个关键问题 | 可扩展性不是关注点,可以将大的 AS 分割 |
性能 | AS 间路由选择是面向策略的,因此所用路由器的质量是次要问题 | 策略不重要,重点关住一条路由实现的性能级别 |
因特网中自治系统内部的路由选择:OSPF
自治系统内部路由选择协议:在一个自治系统内运行的路由选择算法。
开放最短路优先(OSPF)是一种链路状态协议,使用洪泛链路状态信息和 Dijkstra 最低开销路径算法。
一台路由器构建了一幅关于整个自治系统的完整拓扑图,每台路由器在本地运行 Dijkstra 的最短路径算法,以确定一个以自身为根节点到所有子网的最短路径树。路由器向自治系统内所有其它路由器广播路由选择信息,当有链路状态发生变化 和 周期广播。
OSPF 通告包含在 OSPF 报文中,该 OSPF 报文直接由 IP 承载,对 OSPF 其上层协议的值为 89。OSPF 协议必须自己实现可靠报文传输、链路状态广播等功能,OSPF 需要检查链路正在运行(通过向邻居发送 HELLO 报文),并允许 OSPF 路由器获得邻居路由器的网络范围链路状态的数据库。
优点:
- 安全:仅有受信任的路由器能参与一个自治系统内的 OSPF 协议
- 多条相同开销的路径:OSPF 允许使用多条路径
- 对单播和多播路由选择的综合支持
- 支持在单个自治系统中的层次结构:一个 OSPF 自治系统能够层次化地配置多个区域
ISP 之间的路由选择:BGP
边界网关协议(Broder Gateway Protocol, BGP):所有自治系统运行相同的自治系统间路由选择协议。
BGP 是一种分布式和异步的协议。
在 BGP 中,分组并不是路由到一个特定的目的地址,而是路由到 CIDR 化的前缀。BGP 为每台路由器提供的手段:
-
从邻居自治系统获得前缀的可达性信息,通告 BGP 路由信息
- 每个自治系统不仅知道子网的存在,并且知道通向子网的自治系统的路径
- BGP 路由信息
- AS-PATH:检测和防止通告环路,当 PATH 中包含自己的 AS 时,拒绝该通告
- NEXT-HOP:是 AS-PATH 起始的路由器接口的 IP 地址
- 目的地前缀
-
确定到该前缀的“最好的”路由
-
热土豆路由选择:(从所有可能的路由中)选择的路由到开始该路由的 NEXT-HOP 路由器具有最小开销
对于每个路由器都想尽快地将分组送出其自治系统。是一种自私算法,即它试图减小在它自己 AS 中的开销,而忽略在其 AS 之外的端到端开销的其它部分。在相同 AS 中的不同路由器,可能对相同的前缀选择不同的路径。
-
路由选择算法,不是自私算法,对于给定前缀
- 仅有一条路由,选择
- 到相同前缀有两条或多条路由,则顺序调用下列消除规则直到余下一条路由
- 选择具有本地偏好值的路由
- 选择最短 AS-PATH 的路由,AS 跳的跳数
- 热土豆路由选择
- 用 BGP 标识符来选择路由
BGP 常被用于实现 IP 任播服务,IP 任播被 DNS 系统广泛用于将 DNS 请求指向最近的根 DNS 服务器
-
ICMP
因特网控制报文协议,被主机和路由器用来彼此沟通网络层信息,差错报告。
ICMP 位于 IP 之上(ICMP 报文是承载在 IP 分组中的)
ICMP 类型 | 编码 | 描述 |
---|---|---|
0 | 0 | 回显回答(对 ping 的回答) |
3 | 0 | 目的网络不可达 |
3 | 1 | 目的主机不可达 |
3 | 2 | 目的协议不可达 |
3 | 3 | 目的端口不可达 |
3 | 6 | 目的网络未知 |
3 | 7 | 目的主机未知 |
4 | 0 | 源抑制(拥塞通告) |
8 | 0 | 回显请求 |
9 | 0 | 路由器通告 |
10 | 0 | 路由器发现 |
11 | 0 | TTL 过期 |
12 | 0 | IP 首部损坏 |
SNMP
简单网络管理协议(Simple Network Management Protocol,SNMP)
参考:
- 《计算机网络:自顶向下方法》