网络层的功能
向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
异构网络互联
中继系统:
- 物理层:转发器,集线器
- 数据链路层:网桥,交换机
- 网络层:路由器
- 网络层以上:网关
路由与转发
路由器两个功能:
- 路由选择
- 分组转发
SDN基本概念
将网络层抽象的划分为数据层面和控制层面
软件定义网路(SDN)
SDN的优点:
- 全局集中式控制和分布式高速转发
- 灵活可编程与性能的平衡
- 降低成本
SDN的问题:
- 安全风险,集中管理容易收到攻击
- 瓶颈问题,随着网络规模的扩大,控制器可能成为网络性能的瓶颈
拥塞控制
在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞
判断拥塞:观察网络吞吐量与网络负载的关系:
- 随着网络负载的增加,吞吐量明显小于正常吞吐量,进入轻度拥塞状态
- 网络吞吐量随着网络负载的增大而下降,进入拥塞状态
- 网络负载增大,吞吐量下降为0,进入死锁状态
流量控制和拥塞控制的区别:
流量控制 | 拥塞控制 |
---|---|
指在发送端和接收端之间的点对点通信的控制,所要做的就是抑制发送端发送数据的速率,以便接收方来得及接收 | 确保通信子网能够传送待传的数据,是一个全局性问题,设计网络中所有的主机,路由器以及导致网络传输能力下降的因素 |
拥塞控制两种方法:
- 开环控制:静态的预防方法
- 闭环控制:动态方法
路由算法
- 静态路由算法(非自适应路由算法)
- 动态路由算法(自适应路由算法)
动态路由算法:
- 距离-向量路由算法
- 链路状态路由算法
距离-向量路由算法
路由选择表:
- 每条路径的目的地(另一结点)
- 路径的代价(距离)
路由向量算法的实质是:迭代计算一条路由中的站数或延迟时间,从而得到到达一个目标的最短通路(最小代价)
要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点
RIP算法
链路状态路由算法
OSPF算法
采用Dijkstra算法求最短路径
三个特征:
-
向本自治系统中所有路由器发送信息,使用
洪泛法
,即路由器通过所有端口向所有相邻的路由器发送信息 - 发送的信息是与路由器相邻的所有路由器的链路状态
- 只有当链路状态发送变化时,路由器才向所有路由器发送信息
主要优点:
- 每个路由结点都使用同样的原始状态数据独立的计算路径而不依赖中间结点的计算
- 容易查找故障
- 有更好的规模可伸展性
距离-向量路由算法与链路状态路由算法的比较:
距离-向量路由算法 | 链路状态路由算法 |
---|---|
每个结点仅与它的直接邻居交谈,提供从自己到网络中其它结点的最低费用估计 | 每个结点通过广播的方式与所有其它结点交谈,仅告诉它们与它直接相连的链路的费用 |
层次路由
路由选择协议:
- 内部网关协议(IGP):域内路由选择,RIP和OSPF
- 外部网关协议(EGP):域间路由选择,BGP
IPv4
IPv4分组格式
IP分组由首部和数据部分组成
- 版本
- 首部长度:占4位,最大长度为60B(15*4B),最常用的长度为20B
-
总长度:占16位,首部加数据部分,数据报最大长度为
216
−
1
2^{16}-1
2
16
−
1
=65535B,以太网帧的最大传送单元MTU(首部加数据)为1500B - 标识:占16位
- 标志:占3位,MF=1表示后面还有分片,MF=0表示最后一个分片,DF=0时允许分片
- 片偏移:占13位,分片的长度为8B的整数倍
- 生存时间(TTL):占8位
- 协议:占8位,6表示TCP,17表示UDP
- 首部校验和:占16位,只校验分组的首部
- 源地址字段:占4B
- 目的地址字段:占4B
字段 | 基本单位 |
---|---|
首部长度 | 4B |
总长度 | 1B |
片偏移 | 8B |
IPv4地址与NAT
IPv4地址
- A类:1-126
- B类:128-191
- C类:192-223
- D类:224-239
IP地址::={<网络号>,<主机号>}
特殊IP地址:
- 主机号全为0表示网络本身
- 主机号全为1表示网络的广播地址,又称直接广播地址
- 127.x.x.x保留为环回自检地址,表示任何主机本身,目的地址为环回地址的IP数据报永远不会出现在网络上
- 32全为0,0.0.0.0表示本网络上的本主机
- 32全为1,255.255.255.255表示整个TCP/IP网络的广播地址,又称受限广播地址
三种类别的IP地址的使用范围:
网络类别 | 最大可用网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A |
2 7 − 2 2^7-2 2 7 − 2 |
1 | 126 |
2 24 − 2 2^{24}-2 2 24 − 2 |
B |
2 14 2^{14} 2 14 |
128.0 | 191.255 |
2 16 − 2 2^{16}-2 2 16 − 2 |
C |
2 21 2^{21} 2 21 |
192.0.0 | 223.255.255 |
2 8 − 2 2^8-2 2 8 − 2 |
NAT
网络地址转换(NAT)是指通过将专用网络地址转换为公用地址从而对外隐藏内部管理的IP地址
私有IP字段:
- A类:1个A类网段,10.0.0.0~10.255.255.255
- B类:16个B类网段,172.16.0.0~172.31.255.255
- C类:256个C类网段,192.168.0.0~192.168.255.255
NAT路由器使用NAT转换表进行本地IP地址和全球IP地址的转换
NAT转换表:{本地IP地址:端口}到{全球IP地址:端口}的映射
子网划分与子网掩码、CIDR
子网划分
子网划分:在IP地址中又增加了一个“子网号字段”,使两级IP地址变成了三级IP地址、
子网划分属于一个单位内部的事情,单位对外仍表现为没有划分子网的网络
从主机号借用若干比特作为子网号
IP地址 = {<网络号>,<子网号>,<主机号>}
子网掩码
1对应IP地址中的网络号及子网号,而0对应主机号
将IP地址与子网掩码进行 与 操作就可得出对应子网的网络地址
无分类编址CIDR
CIDR消除了传统A、B、C类地址及子网划分的概念,可以更有效地分配IPv4的地址空间
CIDR的网络前缀的位数不是固定的,可以任意选取
IP::{<网络前缀>,<主机号>}
路由聚合(构成超网):将网络前缀都相同的连续IP地址组成CIDR地址块,一个CIDR地址块可以表示很多地址
最长前缀匹配(最佳匹配):使用CIDR时,路由表中的每个项目由网络前缀和下一跳地址组成,选择具有最长网络前缀的路由,路由越具体
网络层转发分组
转发表:(目的网络,下一跳地址)
- 主机路由:对特定目的主机的IP地址专门指明一个路由,以方便网络管理员控制和测试网络
- 默认路由:用特殊前缀0.0.0.0/0表示默认路由
ARP、DHCP与ICMP
路由器由于互联多个网络,因此它不仅有多个IP地址,也有多个硬件地址
地址解析协议(ARP)
ARP:完成IP地址到MAC地址的映射
每台主机都设有一个ARP高速缓存,存放本局域网上各主机和路由器的IP地址到MAC地址的映射表
ARP工作在网络层
ARP请求分组是广播发送的,ARP响应分组时普通单播
动态主机配置协议(DHCP)
DHCP常用于给主机动态的分配IP地址
DHCP是应用层协议,基于UDP
使用客户/服务器模式
广播发送报文
网际控制报文协议(ICMP)
ICMP是IP层协议
报文类型:
- ICMP差错报告报文
- ICMP询问报文
ICMP差错报告报文:
- 终点不可达:主机或路由器不能交付数据报时
- 源点抑制:路由器或主机由于拥塞而丢弃数据报
- 时间超过:路由器收到生存时间为0的数据报,丢弃,并发送时间超过报文
- 参数问题:收到的数据报的首部中有的字段的值不正确时
- 改变路由(重定向)
不应发送ICMP差错报告报文的几种情况
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有的后续数据报片都不发送
- 对具有组播地址的数据报都不发送
- 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报不发送
ICMP询问报文:
- 回送请求和回答报文
- 时间戳请求和回答报文
- 地址掩码请求和回答报文
- 路由器询问和通告报文
IPv6
解决IP地址耗尽问题的措施:
- 采用无分类编址CIDR,使IP地址的分配更加合理
- 采用网络地址转换(NAT)方法节省全球IP地址
- 采用具有更大地址空间的新版本IPv6
IPv6的主要特点:
- 更大的地址空间
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用(自动配置)
- 支持资源的预分配
-
IPv6只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片,一般意义上说:
IPv6不允许分片
- IPv6的首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
- 增大了安全性
IPv6数据报的目的地址:
- 单播
- 多播
- 任播
IPv6使用点分十进制表示法
双冒号表示法在一个地址中仅能出现一次
IPv4向IPv6过渡:
- 双协议栈
- 隧道技术
路由协议
域内路由与域间路由
内部网关协议(IGP)
RIP和OSPF
外部网关协议(EGP)
BGP-4
路由信息协议(RIP)
RIP是一种分布式的而基于距离向量的路由选择协议,最大的优点是简单
距离也称为跳数
一条路径最多允许15跳,距离为16时,表示网络不可达
每30s广播一次RIP路由更新信息
RIP的特点
- 仅和相邻的路由器交换信息
- 交换的信息是当前路由器所知道的全部信息,即自己的路由表
- 按固定的时间间隔交换路由信息,30s
距离向量算法
路由表:<目的网络N,距离d,下一跳路由器地址X>
RIP最大的优点:实现简单、开销小、收敛过程较快
RIP的缺点:
- RIP限制了网络的规模,最大距离为15
- 路由器之间交换的是路由器完整的路由表,网络规模越大,开销越大
- 网络出现故障时,会出现慢收敛现象(需要较长时间才能将此信息传送到所有路由器),俗称坏消息传得慢
RIP是应用层协议
使用UDP传送数据
开放最短路径优先(OSPF)协议
基本特点
OSPF协议是使用分布式链路状态路由算法的典型代表
使用洪泛法
OSPF是网络层协议
直接用IP数据报传送
工作原理
所有路由器最终都能建立一个链路状态数据库(链路状态数据库的同步)
使用Dijkstra最短路径算法
OSPF将一个自治系统再划分为若干更小的范围,称为区域
五种分组类型
- 问候分组:发现和维持邻站的可达性
- 数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
- 链路状态更新分组:用洪泛法对全网更新链路状态
- 链路状态确认分组:对链路更新分组的确认
边界网关协议(BGP)
BGP采用路径向量路由选择协议
BGP是应用层协议,基于TCP
每个BGP发言人除必须运行BGP以外,还必须运行该AS所用的内部网关协议,如OSPF或RIP
BGP-4使用4种报文
- 打开(Open)报文:与相邻的另一个BGP发言人建立关系
- 更新(Update)报文:发送某一路由信息,以及列出要撤离的多条路由
- 保活(Keepalive)报文:确认打开报文并周期性地证实邻站关系
- 通知(Notification)报文:发送检测到地差错
三种路由协议比较:
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最小 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻地路由器 | 网络中地所有路由器 | 和本结点相邻地路由器 |
交换内容 | 当前本路由器知道的全部内容,即自己地路由表 | 与本路由器相邻地所有路由器地链路状态 | 首次:整个路由表;非首次:有变化地部分 |
应用层次 | 应用层 | 网络层 | 应用层 |
IP组播
组播一定应用于UDP
IP组播地址
组播数据报使用D类地址作为目的地址
首部中协议字段的值为2,表明使用IGMP
- 组播数据报也是尽最大努力交付,不提供可靠交付
- 组播地址只能用于目的地址
- 对组播数据报不产生ICMP差错报文
- 并非所有的D类地址都可作为组播地址
IP组播分为:
- 只在本局域网上进行硬件组播
- 在因特网的范围内进行组播
IGMP
因特网组管理协议(IGMP)
在许多由路由器互联的支持硬件多点传送的网络上实现因特网组播时,三种路由算法:
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 可以建立在任何路由器协议之上,称为协议无关的组播(PIM)
移动IP
支持移动性的因特网体系结构于协议共称为移动IP
基于IPv4的移动IP定义三种功能实体:
- 移动结点:具有永久IP地址的移动结点
- 归属代理(本地代理):在归属网络中代表移动结点执行移动管理功能的实体
- 外埠代理(外部代理):在外部网络中帮助移动结点完成移动管理的功能实体
归属代理和外部代理统称为移动代理
移动结点的本地地址于当前转交地址的联合称为移动绑定
移动IP为移动主机设置了两个IP地址
- 主地址
- 辅地址(转交地址)
移动主机在本地网时,使用的时主地址,当移动到另一个网络时,需要获得一个临时的辅地址,主地址仍然不变,回到本地网时,辅地址改变或撤销,主地址仍然不变
网络层设备
冲突域:连接到同一物理介质上的所有结点的集合
广播域:接收同样广播消息的结点集合
路由器的组成和功能
路由器是网络层设备,实现了网络模型的下三层,物理层、数据链路层和网络层
路由选择部分也称控制部分,核心构件是路由选择处理机
分组转发部分由三部分组成:
- 交换结构
- 一组输入端口
- 一组输出端口
三种交换方法:
- 通过存储器进行交换
- 通过总线进行交换
- 通过互联网络进行交换
路由器主要完成两个功能:
- 分组转发
- 路由计算
网桥与高层协议无关,而路由器是面向协议的
路由表与路由转发
路由表:目的网络IP地址、子网掩码、下一跳IP地址、接口
路由表不等于转发表
Tips
网络的异构性是指传输介质、数据编码方式、链路控制协议及不同的数据单元格式和转发机制,这些特点分别在物理层和数据链路层协议中定义
路由器是第三层设备,向传输层及以上层次隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同
网络层以上的协议数据是路由器处理不了的,网络层以上的高层协议必须相同
软件定义网络(SDN)的特点:
- 控制与转发功能分离
- 控制层面集中化
- 接口开放可编程
慢收敛是导致网络发生路由回路的根本原因
路由选择分为:
- 直接交付
- 间接交付
同一网段直接交付,不涉及路由器
划分子网仅提高IP地址的利用率,并不增加网络的数量
IPv6没有校验和字段,首部长度固定
路由收敛是指网络设备的路由表与网络拓扑结构保持一致
主干路由器可以兼作区域边界路由器
多个单播可以仿真组播,但是一个组播所需要的带宽要小于多个单播带宽之和
用多个单播仿真一个组播时,路由器的时延将很大