计算机网络原理 笔记 4
网络层
概述
网络层分为数据平面和控制平面
数据平面是将数据在输入链路和输出链路之间进行转发,控制平面是协调转发操作
转发和路由选择
- 转发:将数据报从输入链路转移到输出链路(数据平面)
- 路由选择:决定每个分组的路由(控制平面)
- 转发表:由路由选择确定,决定了转发的路由
确定转发表
- 传统方法:人工
- 路由器决定自身的转发表,但是需要路由器间的通信
- SDN:由远程控制器决定每个路由器的转发表
网络服务模型
可能的服务:
- 确保交付
- 时延上界
- 有序分组
- 最小带宽
- 安全性
尽力而为服务:不提供任何服务
工作原理
四个组件:
- 输入端口:查询转发表决定输出路由,并且将数据转移至交换结构
- 交换结构:连接输入端口与输出端口
- 输出端口:从建环结构获取数据并此昂输出链路传输
- 路由选择处理器:执行控制平面功能,计算转发表(通常是一种传统的CPU)
转发策略:
- 基于目的地转发
- 通用转发
输入端口处理和基于目的地转发
最简单的情况下,每一个目的地址有一个对应的链路接口对应,采用前缀匹配的方法与最长前缀匹配规则(同时匹配多个前缀的时候选择最长的那个),为了效率通常使用SRAM,DRAM,TCAM
排队是指不同输入端口的数据在进入交换结构时排队
交换
交换方式很多
- 内存:直接经由CPU控制,这导致了速率较慢(受到内存带宽的限制),并且不能同时转发多个分组
- 总线:每一段数据会加上一个标签用于标记输出端口,所有输出端口都能接收数据但是只有被标记的可以保存数据,速率受到总线速率的影响,并且不允许并发
- 互联网:如纵横式交换机,共条总线,当想从输入端口发送到特定输出端口时只需要闭合对应交点即可,不同输出端口的分组可以并行
输出端口
何处排队
输入排队
当交换结构的速率不够快的时候会发生,并且会有线路前部阻塞,即同一个输出端口队列中前部的分组被堵塞会导致后面的也被堵塞
如果分组到达速率达到容量的,则输入队列会无限增长
输出排队
发送过快时会发生,采用丢弃新包或已有包来解决,同时有主动队列管理策略,如随机早期检测
传输顺序由分组调度决定
缓存的数量与链路容量的关系为:
分组调度
排队的分组怎么经过输出链路传输问题
- FCFS:先来先服务
- 优先权排队:被分类放入优先权类中,同一类中的分组采用FCFS,非抢占式优先权排队中,分组开始传输就不能被打断
- 循环和加权公平排队:分组会被分类,但是不同类之间是平等的,也即会依次循环发送每一个类中的队列头,当某个类为空(链路空闲)时立即寻找其下一个类,例如加权公平排队,每个类会分配一个权重,并且加权分类吞吐量
网际协议
IPv4
- 版本号:确定剩余解释方式
- 首部长度:确定载荷与选项的分隔
- 服务类型:区别不同类型IP数据报
- 数据报长度:首部 + 数据
- 标识、标志、片偏移:与分片有关
- 寿命(TTL):确保数据报不会循环
- 协议:指定运输层协议
- 检验和:检测比特错误,求和取反码
IPv4分片
一个链路层帧能承载的最大数据量称为最大传送单元,限制着IP数据包长度,并且一段路径上的链路之间可能有不同协议不同的MTU,因此采用分片技术,每一个大数据报被分为若干片
标识、标志、片偏移三个字段用于分片,标志比特用于标记最后一个片,片偏移用于决定正确的顺序
IPv4编址
点分十进制记法:每个字节用十进制书写,不同字节用句点隔开,如
具有相同前缀的一些主机或路由器可以连接形成子网
其中代表前为相同,为子网掩码
地址分配策略为无类别域间路由选择
地址聚合
得到地址
获取组织地址
由上游管理机构分配
获取主机地址
采用动态主机配置协议(又称即插即用或零配置),主机可以通过其来自动获取IP地址
- DHCP发现:主机发现能够交互的DHCP服务器,通过DHCP发现报文,由链路层进行广播
- DHCP提供:DHCP服务器回应一份DHCP提供报文,包含一些必要信息
- DHCP请求:客户选择一个服务器,向其发送DHCP请求报文
- DHCP ACK:服务器回应DHCP ACK报文
网络地址转换
在小型区域内合理使用一个IP地址的方法
NAT路由器是一个具有单一IP地址的打你设备,其中包含一张NAT转换表,用于将公网IP和端口转换为子网IP与端口
也即NAT用公网的端口进行寻址
中间盒
网络核心中的非交换机组成,包括NAT,流量负载均衡,流量防火墙等
IPv6
改动:
- 地址容量扩大:,引入任播地址,将数据报交给一组主机中的任意一个
- 简化首部
- 流标签:发送方要求进行特殊处理的流
字段:
- 版本号,指明是IPv4还是IPv6
- 流量类型:同IPv4的TOS
- 下一个首部:运输层协议
- 跳限制:最多能经过的路由器数目
去除了分片,取而代之的是差错报文,即数据太大时会被直接丢弃,并且向发送方返回一个ICMP差错报文
IPv4迁移到IPv6
- 好笑版:宣布标志日
- 实用版:建隧道
隧道指两台IPv6路由器之间的IPv4路由器的集合,方法是将IPv6的整个数据报作为数据包裹在IPv4载荷中进行传输,并且在下一个IPv6节点进行解包
通用转发和SDN
匹配加动作转发表称为流表,每个表项包括:
- 首部字段值的集合
- 计数器集合
- 动作集合
匹配
对来自不同层次的协议首部的一部分字段进行匹配,允许通配,例如将匹配所有开头的IP地址
动作
- 转发:转发到特定端口、端口集合或其余所有端口
- 丢弃
- 修改字段:在被转发之前重写首部字段(IP协议不可重写)
- 封装并转发给远程控制器