网络层:数据平面

目标

理解网络服务的基本原理
网络服务模型
转发和路由
路由器工作原理
通用转发
网络层协议的实例

网络层服务

  1. 在发送主机和接收主机对之间传送段
  2. 在发送端,将段封装到数据报中
  3. 在接收端,将段上交给传输层实体
  4. 网络层协议存在于每一个主机和路由器
  5. 路由器检查每一个经过它的IP数据报的头部

路由器组成

IP

IP分片和重组
IP编址
子网:IP地址高位部分相同,无需路由器介入。
IP地址分类:A类(126 networks, 16million hosts),B类,C类(大部分)
127.x.x.x 表示回路地址:自上而下到达IP层再反转回去
DHCP协议:动态从服务器获取IP地址

通用转发和SDN

每个路由器都有控制平面和数据平面,分布化实现,用路由表粘连控制平面和数据平面(控制平面控制路由表,数据平面利用路由表信息进行转发)
SDN特点:1)基于流的匹配+行动;2)控制平面和数据平面分离;3)控制平面功能在数据交换设备之外实现;4)可编程控制应用。
SDN架构:(自下而上) 数据平面交换机(基于南向API,SDN控制器访问基于流的交换机),SDN控制器(通过北向API和控制应用交互,通过南向API和网络交换机交互;逻辑上集中,实现上分布),控制应用(采用下层SDN控制器提供的API,实现网络功能,e.g.防火墙、接入控制、负载均衡)。
南向接口:SDN控制器(软件层面)与网络设备(硬件层面)之间的通信接口。e.g.OpenFlow
北向接口:提供给其他厂家或运营商进行接入和管理的接口,即向上提供的接口。
通用流表的组成:模式,行动,优先权,计数器
转发表和流表是怎样计算出来的:通过控制平面

网络层:控制平面

目标

传统路由选择算法
SDN控制器
ICMP
网络管理

路由选择算法

路由:按照某种指标(站数、延迟、费用、队列长度)找到一条从源节点到目标节点的较好路径
路由器之间的最优路径=主机对之间的最优路径
路由选择算法就是为所有路由路由器找到并使用汇集树。
路由选择算法的原则:正确性,简单性(不应为获取路由信息而增加通信量),健壮性(能适应通信量和网络拓扑变化),稳定性,公平性,最优性。
链路状态算法 link state
步骤:1)获得整个网络拓扑和边的代价信息(我的链路状态分组在全网泛洪);2)计算本站点到其它站点的最优路径(Dijkstra算法,可以找例题!复杂度O(n^2),堆优化后是O(nlogn)),得到路由表;3)按此路由表转发分组。
e.g.OSPF,IS-IS
距离矢量算法 distance vector
思想:各路由器维护一张到目标的路由表;各路由器与相邻路由器交换路由表;根据获得的路由信息更新路由表。(最后让各个节点收敛到一个真实状态)
特点:好消息传得快,坏消息传的慢(无穷计算->水平分裂算法:减少影响,不能杜绝发生)。

比较:
(1)消息复杂度:DV胜出
(2)收敛时间:LS胜出
(3)健壮性:LS胜出

因特网中自治系统内部的路由器选择

路由分为内部网关协议和外部网关协议。
内部网关协议有RIP协议和OSPF协议。
RIP(routing information protocal)协议基于DV算法。
OSPF(open shortest path first)协议基于LS算法。特性:安全,允许多个代价相同的路径存在,有多重代价矩阵。

ISP之间的路由选择

(自治区之间的路由选择协议,外部网关协议)
BGP协议:边界网关协议。将互联网各个自治系统(AS)粘在一起的胶水。
使用TCP协议交换BGP报文。(只要了解什么是层次性路由,为什么要用层次性路由)
层次路由的优点:解决了规模问题,解决了管理问题。
热土豆策略:选择具备最小内部区域代价的网关作为出口,不考虑代价。

SDN控制平面

传统方式:per-router控制平面
SDN方式:逻辑上的集中控制平面(2005年后,详见上)
为什么需要逻辑上的集中控制平面:管理更容易,允许可编程的路由器,控制平面的开放实现
传统方式实现流量工程困难,用SDN方式容易。
SDN控制器的实现:ODL,ONOS

ICMP 因特网控制报文协议

网络管理和SNMP