四、网络层
网络层服务
在发送主机和接收主机之间对传送段(segment)
在发送端将段封装到数据报中
在接收端,将段上交给传输层实体
网络层协议存在于每一个主机和路由器
路由器检查每一个经过它的IP数据报头部
网络层关键功能
转发
数据平面(实施怎么走)
将分组从路由器的输入接口转发到合适的输出接口
路由
控制平面(决定怎么走)
使用路由算法来决定分组从发送主机到目标接收主机的路径

传统方式
在每一路由器中的单独路由器算法原件,在控制平面进行交互

SDN方式
一个不同的(通常是远程的)控制器与本地控制代理(CAs)交互

网络服务模型

连接建立

网络层服务模型

网络层:数据平面
路由器组成

输入端口功能

输入端口缓存

交换结构

通过内存交换

通过总线交换

通过互联网络的交换

输出端口功能

输出端口排队

调度机制
调度:选择下一个要通过链路传输的分组
丢弃策略:
- tail drop:丢弃刚到达的分组
- priority:根据优先权丢失/移除分组
- random:随机地丢弃/移除
FIFO scheduling:
按照分组到来的次序发送
优先权调度:
发送最高优先权分组
分为多类,不同类别有不同的优先权
- 类别可能依赖于标记或者其他的头部字段
- 先传高优先级的队列中的分组,除非没有
- 每类中的分组按照FIFO次序传输

Round Robin scheduling:
将分组分为多类
循环扫描不同类型的队列,发送完一类的一个分组,再发送下一个类的一个分组,循环所有类

Weighted Fair Queuing:
一般化的Round Robin
在每段时间内,每个队列得到的服务是和权重成正比的
每个类在每一个循环中获得不同权重的服务量

IP:Internet Protocol
网络层功能

IP数据报格式

IP分片和重组(Fragmentation & Reassembly)

例子

IP编址
IP地址:32位表示,对主机或者路由器的接口编址
接口:主机/路由器和物理链路的连接处
- 路由器通常有多个接口
- 主机也有可能有多个接口
- IP地址和每一个接口关联
一个IP地址和一个接口想关联

子网(Subnets)
IP地址:
- 子网部分(高位bits)
- 主机部分(低位bits)
一个子网内的节点它们的IP地址高位部分相同,这些节点构成的网络的一部分叫做子网
无需路由器介入,子网内各主机可以在物理上相互直接到达

例子

上述网络有6个子网
IP地址分类

全0和全1的地址有特殊定义,这里需要去掉

特殊IP地址
约定
- 子网部分:全0——本网络
- 主机部分:全0——本主机
- 主机部分:全1——广播地址,这个网络的所有主机
特殊IP地址

127.x.x.x
表示回路(测试)地址,该地址会在到达IP层时,会反转朝上,表示本机
内网(专用)IP地址

CIDR(Classless InterDomain Routing)
无类域间路由
- 子网部分可以在任意位置
- 地址格式
a.b.c.d/x
,x表示地址中子网号的长度

与子网掩码进行与操作就可以得到一个网络号,主机号全为零(因为不需要)
子网掩码(subnet mask)

转发表和转发算法

如何获取一个IP地址
系统管理员将地址配置在一个文件中
DHCP(Dynamic Host Configuration Protocol):从服务器中动态获得一个IP地址
DHCP
允许主机再加入网络的时候,动态地从服务器那里获得IP地址

工作概况

DHCP client-server scenario
建立在UDP之上


如何获得一个网络的子网部分
从ISP获得地址块中分配一个小地址块

层次编址:路由聚集(route aggregation)
层次编址允许路由信息的有效广播

IPX的路由器将IP0-IPN的IP聚集起来之后,再向外通告路由
当组织进行了迁移,例如组织7从IPX迁移到IPY时,IPY路由器将会更改通告

这样后就需要进行最长前缀匹配,因为IPX和IPY都对200.23.18.0进行了成功的匹配,但是IPY通告的前缀最长,更精准,所以下一跳将会是IPY路由器
ISP如何获得一个地址块
ICANN:Internet Corporation for Assigned Names and Numbers
NAT:网络地址转换(Network Address Translation)

动机
本地网络只有一个有效IP地址

实现
NAT路由器必须具备:

路由器用端口号区分内网主机

问题

NAT穿越
三种方案



IPV6
动机

数据报格式
头部

与IPV4的变化

从IPV4到IPV6的平移
隧道(Tunneling)
在IPV4路由器之间传输IPV4数据报中携带IPV6数据报



通用转发和SDN
数量众多、功能各异的中间盒

网络设备控制平面的实现方式特点

传统方式实现网络功能的问题

SDN的主要思路

SDN控制平面和数据平面分离的优势

垂直集成和水平集成的差异

SDN特点
1、通用“flow-based”基于流的匹配+行动(OpenFlow)
2、控制平面和数据平面分离
3、控制平面功能在数据交换设备之外实现
4、可编程控制应用,在控制器之上以网络应用形式实现各种网络功能
SDN架构
数据平面交换机


SDN控制器


控制应用


OpenFlow数据平面抽象

流表的表项结构

抽象
match+action:统一化各种网络设备提供的功能
路由器、防火墙、交换机、NAT都能由match+action实现相关功能
例子

网络层:控制平面
概念
路由的概念


网络的图抽象

边和路径的代价

最优化原则(optimality principle)
汇集树(sink tree)
- 此节点到所有其它节点的最优路径形成的树
- 路由选择算法就是为所有路由器找到并使用汇集树

路由的原则
路由选择算法的原则


路由选择算法的分类
①全局

①分布式

②静态
路由随时间变化缓慢

②动态
路由变化很快

路由选择算法
Link State
LS路由工作过程

链路状态路由选择(link state routing)

1、发现相邻节点,获知对方网络地址

2、测量到相邻节点的代价(延迟、开销)


3、组装一个分组,描述相邻节点的情况


4、将分组通过扩散的方法发送到所有其它路由器


5、通过Dijkstra算法找出最短路径

Dijkstra算法缺点
可能会引起震荡
LS应用情况
- OSPF协议是一种LS协议,被用于Internet上
- IS-IS(Internet system-intermediate system):被用于Internet主干中,Netware
Distance Vector
距离矢量路由选择(distance vector routing)
动态路由算法之一
DV应用情况
ARPANET、Internet(RIP)、DECnet
基本思想

具体实现


例子


Bellman-Ford例子

距离矢量算法
核心思路


无穷计算问题

水平分裂(split horizon)算法
一种对无穷计算问题的解决办法

LS和DV算法的比较

因特网中自治系统内部的路由选择
RIP(Routing Information Protocol)

RIP通告(advertisements)

例子


链路失效和恢复

RIP进程处理

OSPF(Open Shortest Path First)

高级特性(RIP没有)

层次性OSPF路由


ISP之间的路由选择:BGP
层次路由
一个平面的路由

平面路由的问题

层次路由:将互联网分成一个个AS(路由器区域)

路由变成了:2个层次路由

层次路由的优点
解决了规模问题

解决了管理问题

互联网AS间路由:BGP

eBGP、iBGP连接

BGP基础

路径的属性 & BGP路由

BGP路径通告


BGP报文

BGP、OSPF、转发表表项
路由器是如何设置到这些远程子网前缀的转发表表项的


BGP路径选择

热土豆路由

BGP:通过路径通告执行策略


内部网关协议和外部网关协议差异很大

SDN(Software Defined Network)控制平面

SDN特点

SDN架构
数据平面交换机

SDN控制器

控制应用

SDN控制器里的元件

OpenFlow协议

控制器到交换机的报文

交换机到控制器的报文

例子


OpenDaylight(ODL)控制器

ONOS控制器

SDN面临的挑战

网络管理和SNMP
网络管理
- 自治系统(autonomous system):1000多个相互的软件和硬件部件
- 其它复杂的系统也需要被监视和控制
“网络管理”包括了硬件、软件和人类元素的设置,综合和协调,以便监测,测试,轮询,配置,分析,评价和控制网络和网元资源,用合理的成本满足实时性,运行能和服务质量的要求
网络管理的五大功能

网络管理架构

SNMP协议

报文类型


网课视频以及资料来源