一、网络层概述
1.概述
1.1 数据平面
1.2 控制平面
- 主要作用是协调这些本地路由器的转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。
2.转发和路由选择
2.1 转发
- 是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。
- 转发发生的时间尺度很短(通常为几纳秒),通常用硬件实现。
2.2 路由选择
- 是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程。
- 路由选择发生的时间尺度较长(通常为几秒),通常用软件实现。
3.控制平面方法
3.1 传统的方法
- 每台网络路由器中都有一个关键元素是它的转发表。
- 路由选择算法决定了插入该路由器转发表的内容。
- 在一台路由器中的路由选择算法与在其他路由器中的路由选择算法通信,以计算出它的转发表的值。
- 通过路由选择协议进行通信。
3.2 SDN方法
- 软件定义网络(Software- Defined Networking,SDN)。
- 路由选择功能与路由器分离,路由选择设备仅执行转发,远程控制器计算并分发转发表。
- 远程控制器可能实现在具有高可靠性和冗余的远程数据中心中。
4.网络服务模型
4.1 概述
- 定义了分组在发送与接收端系统之间的端到端之间运输的特性。
4.2 可以提供的服务
- 确保交付。
- 具有时延上界的确保交付。
- 有序分组交付。
- 确保最小带宽。
- 安全性。
4.3 示例
- 英特网的网络层提供了单一的服务,称为尽力而为服务,不做任何保障。
- ATM网络体系结构提供了确保按序时延、有界时延和确保最小带宽。
- 集成服务体系结构提供了端到端时延保证以及无拥塞通信。
二、路由器
1.路由器组建
1.1 输入端口
- 执行终结入物理链路的物理层功能。
- 与位于入链路远端的数据链路层交互来执行数据链路层功能。
- 执行查找功能。
1.2 交换结构
1.3 输出端口
- 存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。
1.4 路由选择处理器
2.输入端口处理和基于目的转发
- 路由器使用转发表来查找输出端口。
- 转发表是路由选择处理器计算和更新或者接收来自远程SDN控制器的内容。
- 必须出现物理层和链路层处理。
- 必须检查分组的版本号、检验和以及寿命字段,并重写后两个字段。
- 必须更新用于网络管理的计数器。
3.交换
3.1 经内存交换
- 输入端口与输出端口之间的交换是在CPU(路由选择处理器)的直接控制下完成的。
3.2 经总线交换
- 输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预。
3.3 经互联网络交换
- 纵横式交换机是一种由2N条总线组成互联网络,它连接N个输入端口与N个输出端口。是非阻塞的,可以并行转发多个分组,但是如果来自不同的输入端口的分组目的地为相同的输出端口则需要排队。
4.输出端口处理
- 选择和取出排队的分组进行传输,执行所需的链路层和物理层传输功能。
5.排队
5.1 输入排队
- 如果交换结构不能快得(相对于输入线路而言)使所有到达分组无时延地通过它传送,在输入端口将出现分组排队。
- 线路前部(Head- Of- the- Line,HOL)阻塞:在一个输入队列中排队的分组必须等待通过交换结构发送(即使输出端口是空闲的),因为它被位于线路前部的另一个分组所阻塞。
5.2 输出排队
- 当没有足够的内存缓存一个入分组时,必须作出决定:要么丢弃到达的分组(弃尾策略),要么删除一个或多个已排队的分组为新来的分组腾出空间。
- 分组丢弃与标记策略统称为主动队列管理(Active Queue Management,AQM)算法,随机早期检测(Random Early Detection,RED)算法是得到最广泛研究和实现的AQM算法之一。
6.分组调度
6.1 先进先出
- 如果链路当前正忙于传输另一个分组,到达链路输出队列的分组要排队等待传输。
- 如果没有足够的缓存空间来容纳到达的分组,队列的分组丢弃策略则确定该分组是否将被丢弃或者从队列中去除其他分组以便为达到的分组腾出空间。
6.2 优先权排队
- 到达输出链路的分组被分类放入输出队列中的优先权类。
- 在同一优先权类的分组之间的选择通常以先进先出方式完成。
6.3 循环和加权公平排队
- 分组方式类似于优先权排队分类。
- 循环调度器在这些类之间轮流提供服务。
- 加权公平排队(Weighted Fair Queuing,WFQ)规则与循环排队的不同之处在于,每个类在任何时间间隔内可能收到不同数量的服务。
三、网际协议
1.IPv4数据报格式
1.1 版本号
- 4比特,规定了数据报的IP协议版本,不同的IP版本使用不同的数据报格式。
1.2?首部长度
- 4比特,大多数IP数据报不包含选项字段,一般的IP数据报具有20字节的首部。
1.3 服务类型?
- 8比特,使不同类型的IP数据报(例如,一些特别要求低时延、高吞吐量或可靠性的数据报)能够互相区别。
1.4 数据报长度
1.5 标识、标志、片偏移
1.6 寿命
- 用来确保数据报不会永远(如由于长时间的路由选择环路)在网络中循环。
1.7 协议
- 仅当一个IP数据报到达其最终目的地时才会使用。指示了IP数据报的数据部分应该交给哪个特定的运输层协议。
1.8 首部检验和
- 用于帮助路由器检测收到的IP数据报中的比特错误。
- 计算方式:将首部中的每两个字节当作一个数,用反码算术对这些数求和。
1.9 源和目的IP地址
1.10 选项
1.11 数据(有效载荷)
2.IPv4数据报分片
- 一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit,MTU)。
- 发送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU。
- 需要将IP数据报中的数据分片成两个或多个较小的IP数据报,每个这些较小的数据报都称为片(fragment)。
- 数据报的重新组装工作在端系统中。
- 当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识。
- 为了让目的主机绝对地相信它已经收到来初始数据报的最后一个片,最后一个片的标志比特被设置为0,所有其他的片的标志比特被设置为1。
- 为了让目的主机确定是否丢失了一个片且能按正确顺序重新组装片,使用偏移字段指定该片应该放在初始IP数据报的哪个位置。
3.IPv4编址
3.1 概述
- 接口:主机或路由器与物理链路之间的边界。一个IP地址与一个接口相关联,而不是与包括该接口的主机或路由器相关联。
- IP地址:长度为32比特(等价为4字节),总共有2^32(约40亿)个可能的IP地址。使用点分十进制记法书写。
- 子网。
- 子网掩码,eg:223.1.1.0/24中/24为子网掩码。
- 默认网关:第一跳路由器地址。
3.2 地址分配策略
- 无类别域间路由选择(Classless Interdomain Routing,CIDR):地址被分为两部分a.b.c.d/x,其中x指示了地址第一部分中的比特数。
- 分类编制方案:具有8、16、24比特子网地址的子网分别被称为A、B、C类网络。
3.3 获取一块地址
- 从一个ISP获取一组地址。
- 英特网名字和编号分配机制(Internet Corporation for Assigned Names and Numbers,ICANN):分配IP地址、管理DNS根服务器、分配域名、解决域名纷争。
3.4 获取主机地址
- 动态主机配置协议(Dynamic Host Configuration,DHCP):DHCP允许主机自动获取(被分配)一个IP地址、子网掩码、默认网关、它的本地DNS服务器。
- 步骤:DHCP服务发现、DHCP服务提供、DHCP请求、DHCP ACK。
4.网络地址转换
- 网络地址转换(Network Address Translation,NAT)能使路由器对外界隐藏家庭网络细节。
- 具有专用地址的地域是指其地址仅对该网络中的设备有意义的网络。
- 路由器从ISP的DHCP服务器得到它的地址,并且路由器运行一个DHCP服务器,为位于NAT-DHCP路由控制的家庭网络地址空间的计算机提供地址。
- 使用NAT转换表进行地址转换。
5.IPv6
5.1 IPv6数据报格式
- 版本:4比特字段用于标识IP版本号。
- 流量类型:8比特字段类似于IPv4中的服务类型字段。
- 流标签:20比特字段用于标识一条数据报的流。
- 有效载荷长度:16比特字段给出了IPv6数据报中跟在定长的40字节首部后面的字节数量。
- 下一个首部:标识数据报中的内容(数据字段)需要交付给哪个协议。
- 跳限制:转发数据报的每台路由器将对该字段减1,如果跳限制计数达到0则该数据报将被丢弃。
- 源地址和目的地址:128比特。
- 数据:IPv6的有效载荷部分。
5.2 IPv6与IPv4比较
- 扩大的地址容量,由32比特增加到128比特。
- 简化高效的40字节首部。
- 流标签。
- IPv6不允许在中间路由器上进行分片与重新组装。
- IPv6没有首部检验和字段。
- IPv6没有选项字段。
四、通用转发和SDN
1.流表
- 匹配加动作转发表在OpenFlow中称为流表。
- 每个表项包括:首部字段值的集合,入分组将与之匹配。计数器集合,包括已经与该表项匹配的分组数量,以及自从该表项上次更新以来的时间。
- 当分组匹配流表项时所采取的动作集合。
2.匹配
3.动作
|