📑来源
本笔记基于他人笔记《计算机 408 课程笔记》改进而来,该笔记获取自 Git 仓库 npee-408-note,GitHub @ JackyLee3362
https://github.com/JackyLee3362/npee-408-note
网络层提供的两种服务
- 虚电路服务:面向连接,让网络负责可靠交付
- 数据报服务:无连接,让主机负责可靠交付
网络层的功能
异构网络互联
- 中继系统
- 物理层中继系统:中继器,集线器(Hub)
- 数据链路层中继系统:网桥,交换机
- 网络层中继系统:路由器
- 网络层以上的中继系统:网关
路由与转发
- 路由选择
- 分组转发
- 拥塞控制
- 判断拥塞状态的方法:观察网络的 吞吐量 和 网络负载 的关系
- 两种方法
- 开环控制
- 闭环控制
网际互联协议 IP
网际互联协议 IP(Internet Protocol )
- IPv4
- IPv6
IPv4 协议
- IPv4 即现在普遍使用的 IP(版本 4)协议
- 基本单元:IP 分组 / IP 数据报
IPv4 数据报
IPv4 数据报格式
- IP 数据报 = 首部 + 数据部分
- 版本:IPv4 或 IPv6
- 首部长度:单位 4B,最常用的首部长度是 20B
- 总长度:单位 1B
- 生存时间(TTL,Time to Live):经过一个路由器 -1,变成 0 则丢弃
- 协议:数据部分使用的协议
- 首部校验和:只检验分组的首部,而不校验数据部分
- 标志:
- 中间位 DF(Don’t Fragment):DF=1,禁止分片,DF=0,允许分片
- 最低位 MF(More Fragment):MF=1,后面还有分片,MF=0,代表最后一片/没分片
- 片偏移:指出较长分组分片后,某片在原分组中的相对位置。单位 8B
IPv4 数据报分片与转发
- IP 数据报采用 16 位二进制反码求和算法检验数据报的首部
- 途径最大传输单元(Maximum Transmission Unit,MTU)较小网络,数据报会被分片,到达目的站后再进行重组。
- MTU 最大传输单元 Maximum Transmission Unit
- 以太网 MTU 不超过:1500B
- 广域网 MTU 不超过:576B
- 网络层转发分组的流程
- 直接交付
- 间接交付
- 注意:得到下一跳IP路由器的IP地址后并不是直接将该地址填入待发送的数据报,而是将该IP地址转换成MAC地址(通过ARP),将其放到MAC帧首部中,然后根据这个MAC地址找到下一跳路由器。在不同网络中传送时,MAC帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址,请注意区分 知识点
IPv4 地址
IPv4 地址的表示方法
点分十进制记法
IPv4 地址的结构
- IPv4 地址的结构 = {<网络号>, <主机号>}
- 网络号 net-id
- 主机号 host-id
IPv4 地址的编制方法
- 分类的 IP 地址:这是最基本的编制方法
- A类:1 - 126
- B类:128 - 191
- C类:192 - 223
- D类:224 - 239
- E类:240 - 255
- 子网划分:对最基本编制方法的改进
- 子网掩码
- IP 地址的结构 = {<网络号>, <子网号>, <主机号>}
- 构成超网:较新的无分类编制方法
- 无类别域间路由选择 CIDR Classless Inter-Domain Routing
- IP 地址的结构 = {<网络前缀>, <主机号>}
- 一个 CIDR 地址快可以表示很多地址,这种地址的聚合称为路由聚合
- 最长前缀匹配(最佳匹配)
- 无类别域间路由选择 CIDR Classless Inter-Domain Routing
特殊 IPv4 地址与私有 IPv4 地址
- 特殊 IPv4 地址
- 主机号全 0:网络本身
- 主机号全 1:广播地址
- 127.x.x.x :环回自检地址 Loopback Test,目的地址为环回自检地址的IP数据报永远不会出现在网络上
- 0.0.0.0:本网络上的本主机
- 255.255.255.255 :整个TCP/IP网络的广播地址(受限广播地址)
- 私有 IPv4 地址网段
- A 类网段 1 个:10.0.0.0 - 10.255.255.255
- B 类网段 16 个:172.16.0.0 - 172.31.255.255
- C 类网段 256 个:192.168.0.0 - 192.168.255.255
子网划分
子网掩码
- 子网掩码长度=32位
- 某位=1:IP地址中的对应位为网络号和子网号
- 某位=0:IP地址中的对应位为主机号
相关计算
- 计算可用的子网数
- 主机地址
- 有效子网
- 广播地址
子网划分方法
- 等长子网划分:子网网络规模相同
- 可变子网划分(Variable Length Subnet Mask,VLSM):子网网络规模不同
无分类域间路由选择 CIDR
无分类域间路由选择 CIDR (Classless Inter-Domain Routing)消除了传统地址分类和子网划分的概念,使用无分类的两级编址,用各种长度的“网络前缀”(network- prefix)来代替分类地址中的网络号和子网号。
CIDR 地址块
CIDR 把网络前缀都相同的连续的 IP 地址组成 CIDR 地址块。
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,路由聚合也称为构成超网 (supernetting)。
最长前缀匹配
应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配 (longest-prefix matching),其又称为最长匹配或最佳匹配。
二叉线索查找路由表
为了进行更加有效的查找,通常是将无分类编址的路由 表存放在一种层次的数据结构中,然后自上而下地按层 次进行查找。这里最常用的就是二叉线索 (binary trie)。
IPv6 协议
- IPv6主要特点
- IPv6头部长度为:128bit or 16B
- 一般意义上说,IPv6不允许分片(在源节点可以分片,路由器不能分片)
- IPv6的首部必须是 8B 的整数倍,IPv4首部必须是 4B 的整数倍
- IPv6地址
- 基本类型地址:单播,多播,任播
- 过渡策略:双协议栈、隧道协议
IPv6 数据报
- 基本首部 (base header)
- 有效载荷 (payload)
- 扩展首部
- 数据
- 目的地址
- 单播 (unicast):传统的点对点通信
- 多播 (multicast):一点对多点的通信
- 任播 (anycast):任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个
IPv6 地址
IPv6 地址的表示方法
IPv6 使用冒号十六进制记法 (colon hexadecimal notation, 简写为colon hex)
而且冒号十六进制记法可以允许零压缩 (zero compression),即一连串连续的零可以为一对冒号所取代
在任一地址中只能使用一次零压缩
IPv6 地址类别
结点与接口
IPv6 将实现 IPv6 的主机和路由器均称为结点。
IPv6 地址是分配给结点上面的接口的。
一个接口可以有多个单播地址。
一个结点接口的单播地址可用来唯一地标志该结点。
IPv4 与 IPv6 联系
IPv4 与 IPv6 区别
- IPv6 将地址从32位(4B) 扩大到128位(16B),更大的地址空间。
- IPv6 将 IPv4 的校验和字段彻底移除,以减少每跳的处理时间。
- IPv6 将 IPv4 的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查大大提高了路由器的处理效率。
- IPv6 支持即插即用 (即自动配置),不需要 DHCP 协议。
- IPv6 首部长度必须是 8B 的整数倍,IPv4 首部是 4B 的整数倍
- IPv6 只能在主机处分片,IPv4 可以在路由器和主机处分片。
- ICMPv6:附加报文类型“分组过大”
- IPv6 支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应
- IPv6 取消了协议字段,改成下一个首部字段。
从 IPv4 向 IPv6 过渡策略
-
使用双协议栈
-
使用隧道技术
IP 地址与硬件地址的区别
- 硬件地址(或物理地址)是数据链路层和物理层使用的地址。
- IP 地址是网络层和以上各层使用的地址,是一种逻辑地址(称 IP 地址是逻辑地址是因为 IP 地址是用软件实现的)。
- 在端到端通信过程中,源、目的IP地址始终不变,源、目的 MAC 地址则在每段链路传输时都会被改变。
IP 多播
-
多播的概念
-
IP 多播地址
- 使用 D 类地址
- 映射到 MAC 地址:01-00-5E-[0+IP地址后23位置]
-
IP 多播需要的协议
- 网际组管理协议 IGMP (Internet Group Management Protocol)
- 多播路由选择协议
-
IP 多播所传送的分组需要使用多播 IP 地址
-
多播组的标识符就是 IP 地址中的 D 类地址(多播地址)
-
对多播数据报不产生 ICMP 差错报文
移动 IP
- 移动 IP 概念
- 移动结点、本地代理、外部代理
- 移动 IP 通信过程
- 主地址 辅地址
地址解析协议 ARP
地址解析协议 ARP (Address Resolution Protocol) ,是网络层协议
地址解析协议作用
从网络层使用的 IP 地址, 解析出在数据链路层使用的硬件地址。
当目的主机和源主机不在同一个局域网时,通过 ARP 找到默认网关的硬件地址,然后由默认网关把分组转发给下一个网络。
ARP 高速缓存
每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表,这样可以减少 ARP 广播的数量。
网际控制报文协议 ICMP
网际控制报文协议 ICMP (Internet Control Message Protocol)
-
ICMP是网络层的协议
-
使用ICMP的目的:提高IP数据报交付成功的机会
-
ICMP差错报告报文 ↓
- 终点不可达
- 源点抑制
- 时间超过
- 参数问题
- 改变路由(重定向)
-
ICMP询问报文 ↓
- 回答请求和回答报文(常用)
- 时间戳请求和回答报文(常用)
- 掩码地址请求和回答报文
- 路由器询问和通告报文
-
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
-
ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
ICMP 报文的格式
ICMP 报文的种类
-
ICMP 差错报告报文
-
ICMP 询问报文
ICMP 应用
PING (Packet InterNet Groper),用来测试两个主机之间的连通性。
Traceroute,用来跟踪一个分组从源点到终点的路径。
网际组管理协议 IGMP
网际组管理协议 IGMP (Internet Group Management Protocol)
在主机和多播路由器之间的所有通信都是使用 IP 多播。
因为组成员关系是动态的,因此本地多播路由器要 周期性地探询本地局域网上的主机。
工作阶段
- 第一阶段:加入多播组。
- 第二阶段:探询组成员变化情况。
多播路由选择协议
多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
使用方法
(1) 洪泛与剪除
采用了反向路径广播 RPB (Reverse Path Broadcasting)的策略。
(2) 隧道技术 (tunneling)
(3) 基于核心的发现技术
这种方法是对每一个多播组 G 指定一个核心 (core) 路由器,给出它的 IP 单播地址。
动态主机配置协议 DHCP
动态主机配置协议 DHCP(Dynamic Host Configuration Protocol)
- DHCP 应用层协议
- DHCP 基于 UDP 协议
- 工作原理(什么模型)C/S Model
- 相关
- 提供报文
- 租用期
路由算法
静态路由算法 / 非自适应路由算法
- 网络管理员手工配置路由信息
动态路由算法 / 自适应路由算法
- 距离向量路由算法 Distance Vector Algorithms
- 要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点
- 比如RIP算法
- 链路状态路由算法 (比如OSPF算法)
层次路由
- 内部网关协议 IGP Interior Gateway Protocols / 域内路由选择
- RIP协议
- OSPF协议
- 外部网关协议 EGP Exterior Gateway Protocols / 域间路由选择
- 边界网关协议 BGP Border Gateway Protocol
路由协议
自洽系统 AS
自洽系统 AS(Autonomous System)
- 自洽系统内部的路由选择―域内路由选择
- 自洽系统之间的路由选择―域间路由选择
域内路由和域间路由
- 内部网关协议 IGP (Interior Gateway Protocol)
- RIP
- OSPF
- 外部网关协议 EGP (External Gateway Protocol)
- BGP
RIP 协议
路由信息协议/RIP 协议(Routing Information Protocol)
- 是一种分布式的基于距离向量的路由选择协议
- 特点 ↓
- 仅和相邻路由器交换信息
- 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
- 按规定的时间间隔交换路由信息,比如每隔30s
- 采用「跳数 Hop Count」作为距离的度量,慢收敛
- 优点:简单,开销小,收敛过程快
- 缺点
- 限制了网络的规模,能使用的最大距离为15
- 坏消息传得慢
- RIP是应用层协议,使用UDP传输数据(端口520)
特点
路由信息协议 RIP (Routing Information Protocol)是一种分布式的、基于距离向量的路由选择协议。
RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离(跳数)记录,使用跳数判断到其他网络的距离。
RIP 不能在两个网络之间同时使用多条路由。
RIP能使用的最大距离为 15跳,适用于小型网络。
RIP好消息传播得快,坏消息传播得慢,导致更新过程收敛时间过长。
运行RIP协议的路由器周期性地和相邻路由器交换自己的路由表,即:
(1) 仅和相邻路由器交换信息。
(2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
(3) 按固定的时间间隔交换路由信息
RIP2 协议的报文格式
OSPF 协议
OSPF 协议(Open System Path First Protocol)
- 基本特点
- 向本自洽系统中的所有路由器发送信息,使用泛洪法(RIP仅向自己相邻的几个路由器发送信息)
- 是网络层协议,不使用UDP或TCP,而直接用IP数据报传送
- OSPF的基本工作原理
- 五种分组类型
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组
- 链路状态确认分组
特点
开放最短路径优先 OSPF (Open Shortest Path First)使用了最短路径算法 SPF,采用分布式的链路状态协议 (link state protocol)。
所有的路由器最终建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它 在全网范围内是一致的(这称为链路状态数据库的同步)。
OSPF包括邻居表、拓扑表(链路状态数据库)、路由表。
OSPF 不用 UDP 而是直接用 IP 数据报传送。
OSPF 对于不同类型的业务可计算出不同的路由。
OSPF 能实现多路径间的负载平衡:如果到同一个目的网络有多条相同代价的路径,那么可以
将通信量分配给这几条路径。
OSPF 支持可变长度的子网划分和无分类编址 CIDR。
划分区域
OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
OSPF使用层次结构的区域划分,区域分为:
- 主干区域
- 常规区域
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
OSPF 分组
OSPF 通过洪泛发送更新分组。
所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
BGP 边界网关协议
BGP 边界网关协议(Boarder Gateway Protocol)
- 应用层协议
- 基于 TCP
- RIP OSPF BGP 三种路由协议的比较
特点
BGP 是不同自治系统的路由器之间交换路由信息的协议。
边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
使用 TCP 连接交换路由信息的两个 BGP 发言人, 彼此成为对方的邻站(neighbor)或对等站(peer) 。
BGP 报文
路由协议区别
当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
RIP好消息传播得快,坏消息传播得慢,而OSPF 没有“坏消息传播得慢”的问题,更新过程收敛速度快。
虚拟专用网 VPN
采用这样的专用 IP 地址的互连网络称为专用互 联网或本地互联网,或更简单些,就叫作专用 网。专用 IP地址也叫作可重用地址(reusable address)。
利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。
使用隧道技术实现VPN。
内联网 intranet 和外联网 extranet
由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网 (intranet),表示部门 A 和 B 都是在同 一个机构的内部。
一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网 (extranet)。
网络地址转换 NAT
网络地址转换 NAT Network Address Translation
- NAT工作在哪一层 :传输层 ,因为它要查看端口号,而端口号是在传输层的
- 专用互联网:采用私有IP地址(可重用地址)在互联网络称为专用互联网或本地互联网
网络地址转换 NAT (Network Address Translation), 需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫作 NAT 路由器,它至少有一个有效的外部全球IP地址。
专用网内部的主机不能充当服务器用。
网络地址与端口号转换 NAPT
网络地址与端口号转换 NAPT(Network Address and Port Translation)
使多个拥有本地地址的主机,共 用一个 NAT 路由器上的全球 IP 地址
多协议标记交换 MPLS
MPLS并没有取代 IP,而是作为一种 IP 增强技术
工作过程
在 MPLS 域的入口处,给每一个 IP 数据报打上 固定长度“标记”,
标记交换功能是为了快速转发,但在这之前 LSR 需要使用路由选择功能构造转发表
当分组离开 MPLS 域时,MPLS 出口结点把 分组的标记去除。
转发等价类 FEC
转发等价类 FEC (Forwarding Equivalence Class)就是路由器按照同样方式对待的分组的集合,将属于同样 FEC 的分组都指派同样的标记
FEC 和标记是一一对应的关系。
MPLS 首部格式
网络层设备
路由器 Router
- 组成
- 交换结构
- 一组输入端口
- 一组输出端口
- 功能
- 分组转发
- 路由计算
- 路由表 路由转发
- 路由表是根据路由选择算法得出的
- 与网桥的区别
- 网桥与高层协议无关,而路由器是面向协议的
- 路由表:| 目的网络IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
路由器结构
- 路由选择部分(控制部分)
- 分组转发部分
- 交换结构(switching fabric)
- 一组输入端口
- 一组输出端口
路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
输入端口与输出端口
输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
分组丢弃
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
交换结构
交换方法
- 通过存储器
- 通过总线
- 通过纵横交换结构( crossbar switch fabric )