地址聚合:转换成二进制,寻找相同项
最长匹配前缀:转换成二进制,寻找最长项(最详细)
子网掩码:比较两个(多个)IP地址相同位即为子网掩码(要把相同位化成1)
note:
- 网络层的重要作用就是把异构网络互联起来
4.1 网络层的功能
4.1.1 异构网络互联
- 中继系统
- 物理层
- 中继器
- 集线器
- 数据链路层
- 网桥
- 交换机
- 网络层
- 路由器
- 网络层以上
- 网关
- 物理层
note:
- 其中物理层和数据链路层依旧是同一个网络,只是把其范围扩大了而已
- 网络层的传送数据单元:数据报 or 分组
4.1.2 路由与转发
- 路由器的功能
- 路由选择
- 根据路由协议构造路由表
- 路由表需要不断维护和更新
- 特点
- 动态性
- 局部性
- 分组转发
- 转发表查询
- 转发
- 队列管理
- 路由选择
note
- 做题技巧:报文的时延长,分组的时间往往是小数
- 电路交换用于数据量大,传送时间>呼叫时间,好处是时延小
4.1.3 拥塞控制
- 拥塞的定义:出现过量的分组而使得网络性能下降
- 判断是否进入拥塞状态的方法
- 网络负载增加,吞吐量<正常吞吐量:轻度拥塞
- 网络负载增加,吞吐量<<正常吞吐量:拥塞状态
- 网路负载增加,吞吐量=0:死锁状态
- ~解决的问题:获取拥塞信息,利用信息进行控制
- ~的作用
- 确保子网承载所达到的流量
- 特点:全局性过程。涉及到主机和路由器
- 流量控制和拥塞控制的区别
- 流量控制
- 接收端和发送端通信量的控制
- 抑制发送端
- 拥塞控制:全局性问题
- 流量控制
- ~的方法
- 开环控制:设置用户协议,静态。预先设定,运行后不改动
- 闭环控制:动态。及时检测,随时调整
PS:
- IP 协议是不可靠的,所以网络层的目的是进行数据传输(但不可靠)
- 网络层协议可以不同,IPV4 和 IPV6
- 网络层通过 IP 地址标识主机
- TCP 是传输层协议,FTP 是应用层协议
- 什么是广播域和冲突域
4.2 路由算法
4.2.1 静态路由与动态路由
- 转发分组依赖转发表,转发表由路由算法得到
- 分类
- 静态:
- 手工配置
- 简单可靠
- 适用场景:军事系统 | 商业网络
- 动态
- 相邻路由器,彼此交换信息,不断更新路由表
- 流量控制
- 增加网络负担
- 分类
- 距离-向量路由算法
- 链路状态路由算法
- 静态:
4.2.2 距离-向量路由算法
4.2.3 链路状态路由算法
- A 节点检查所有直连链路的状态,并发送给所有其他节点
- 特点
- 所有节点具有完全的拓扑结构
- 主动测试
- 定期发送
- 更好的可扩展性
- 特征
- 相邻路由器的链路状态:度量
- 费用
- 距离
- 时延
- 带宽
- 相邻路由器的链路状态:度量
- 典型
- OSPF 算法
4.2.4 层次路由
- 路由选择按照层次方式进行
- 互联网划分成小的自治系统
- 自治系统独立选择路由协议
- 路由选择协议
- IGP
- RIP
- OSPF:可以对自治系统再划分 | 可以用于大规模自治系统
- EGP:BGP-4
- IGP
note
- 路由选择分为直接交付和间接交付
- 同一网段为直接交付,反之间接交付
- 简介交付的最后一跳为直接交付
- 直接交付不涉及路由器是指A,B两点间的交付是否存在其他路由器,而不是最后一段是否是路由器交给主机B的,下面的图片在最后那个部分是画错了的
- mac地址的目的地址是记录的下一跳的,源地址是记录的上一跳的
4.3 IPv4
4.3.1 IPv4 的分组
note:HLEN(首部长度)
- IP 数据报格式
- 首部长度:占 4 位 | 32 位为单位(4B) | max:60 B | often:20 B
- 总长度:占 16 位 | 首部和数据之和| max:65535 B | 以太网帧的 MTU:1500 B | 8位为单位(1B)。它是指分片后的总长度
- 标识:因为存在分片所以相同数据报片,标识的数字相同(但标识不是序号,因为 IP 是无连接服务)
- 标志
- MF(more fragment):MF:1(还有分片)
- DF(don’t fragment):DF:0(允许分片)
- IP 分组可以在中间路由器分片,但只能在目的主机重组
- 分片中,首部和总长度是仅仅指该分片的长度,唯一和整个报文联系的是标识
- 片偏移:8B 偏移量(此为数据部分的偏移量)
- 首部校验和:只校验首部
- 协议:指示使用的协议,如果是 6 表示 TCP,如果是 7 表示 UDP
note
- 首部长度的单位:4B,总长度单位:1B,片偏移单位:8B。(计算实际长度的时候,就是用各个部分的数值乘以他们的单位
- 填充部分要让整个分组长度为 4B 的整数倍
- 分片,除了最后一片,其余必须是 8B 的整数倍。这里的分片不包含(每个分片)首部。如 1420(首部+分片长度)并不是 8B 的整数倍
- 计算题IP 数据报分片
- 网络层转发流程
note:
- 特别注意,分组转发的时候,IP 地址恒定不变,变得是每一次转发由 IP 解析为 MAC 的地址
4.3.2 IP 地址与 NAT
- IPv 4 地址
- 网络号在因特网范围内唯一,主机号在该网段内唯一
- 不做主机的 IP 地址
- 主机号全为 0:网络本身
- 主机号全为 1:本网络的广播地址
- 127.0.0.0:环路自检,不会出现在其他网络上
- 32 位全为 0:本网络的本主机
- 32 位全为 1:本网络的广播地址
- IP 地址的重要特点
- 路由器根据网络号转发分组
- 一台主机 n 个网络就需要 n 个 IP 地址
- 转发器(桥接器,网桥)位于网络层下是连接一个网络
- 网络地址转换
- 将专用网络映射位公用网络
- 私有网络
- A:10.0.0.0 ~ 10.255.255.255
- B:172.16.0.0 ~172.31.255.255
- C:192.168.0.0 ~ 192.168.255.255
- NAT 转发时需要查看传输层的端口号
A类地址:以0开头, 第一个字节范围:1~126(1.0.0.0 - 126.255.255.255);
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)
E类地址:保留
直接广播地址是主机号全为 1 ,且只能作为目的地址,可以向网络中任意网络地址发送均可。
本地广播是 32 位全为 1,且只能在本网内发送,路由器不转发。
IP 地址与 MAC 地址的比较
- 二者都表示一个主机的地址
- IP 用于网络层,是逻辑地址;MAC 是数据链路层,是硬件地址
note:
- NAT 路由器在转发 IP 数据报时,一定更换其 IP 地址(即将私有地址转换为公网地址),同时端口也要更换
4.3.3 子网划分与子网掩码、CIDR(无类域间路由)
PS:无类域间路由子网号可以全为 0,1 但主机号不行
note:
- 子网划分与 NAT 的区别:子网划分是对于一个 IP 地址的主机号进行划分,因为实际上分配给你的 IP 还可以在分的更小。而 NAT 地址是一个公网地址对应 n 个私网地址(其中私网地址是 IP 分类中专门拿出一些不进行全球 IP 地址分配的那些 IP 地址段)
- 子网划分
- 基本思路
- 子网划分是一个单位内部的事情
- 从主机号借用位划分子网
- 主机号全为 0 是网络号,全为 1 是广播地址
- 基本思路
- 子网掩码
- 目前所有网络都有子网掩码,默认的子网掩码是 255.0.0.0,255.255.0.0 … 而网络号与之对应
- 目的在于,在外网看来,使用同一 IP 地址的一组计算机(实际上进行了子网划分后)表现为一个计算机网络,但实际我要发送一个数据给这组计算机中的具体某一个时,必须要通过子网掩码确定具体的某一台。
- 表达对原网络中主机号的借位。方法是,本来的 IP 地址与上 提供的子网掩码,得到具体的 IP 地址
- 路由表包含的信息
- 目的网络地址
- 子网掩码
- 下一跳地址
- 使用子网掩码路由器的转发
- CIDR
- 组成:网络前缀,主机号
- 全为 0 和 1 的主机号地址不使用
- CIDR 是为了汇聚超网
note
- 默认路由的目的地址和子网掩码都是 0.0.0.0
- 特定路由,子网掩码是255.255.255.255。一般域名服务器是使用特定路由
4.3.4 ARP、DHCP 和 ICMP
- IP 地址与硬件地址
- (1)IP 地址在多个路由器之间转发
- (2)然后在目标 LAN 中通过数据链路层的 MAC 地址以广播的方式寻址
- 特点
- 路由器只是根据 IP 地址的网络号进行路由选择
- MAC 地址不断改变
- 路由器可以具有多个 IP 地址和 MAC 地址
- 特别的,路由器有多个 IP 地址和硬件地址
- 地址解析协议(ARP)
- 作用:同一个局域网内 IP 地址到 MAC 地址的映射
- 每台主机都设置有一个 ARP 高速缓存。存放本局域网中主机和路由器的 IP 地址到 MAC 地址的映射。
- 特点
- 动态维护 ARP 表
- 工作在网络层
- NAT 工作在传输层
- ARP 响应分组是单播
- 工作过程
- 先广播,再单播
💡 ARP 不属于数据链路层的原因,ARP 本身属于网络层,为 IP 协议提供地址转换。数据链路层使用硬件地址而不是 IP 地址,即使没有 ARP 协议,数据链路层也可以正常工作,所以 ARP 不属于数据链路层
- 动态主机配置协议(DHCP)
- 作用:给主机动态分配 IP 地址
- 特点
- 工作在应用层,基于 UDP
- 允许多个 DHCP 服务器,这样就有多个应答,DHCP 客户机选择最先到达的
- DHCP 分配的 IP 地址是临时的
- DHCP 的服务器和客户机之间是广播
- 工作过程
DHCPDiscover:的源IP地址和目的IP地址分别是:0.0.0.0,255.255.255.255
- 网际控制报文协议(ICMP)
- 作用:让主机和路由器报告差错和异常情况
- 特点:工作在网络层
- 分类
- ICMP 差错报告报文
- 终点不可达:路由器或主机不能交付数据报
- 源点抑制:路由器或主机由于拥塞丢弃数据报,之后源点放慢发送速率
- 时间超时:TTL 为 0 ,丢弃+超时报文
- 参数问题
- 重定向
- 不发送的情况
- ICMP 差错报告报文不对自己发送
- 已经发送了一个分片,其他分片不发
- 组播数据报不发
- 特殊地址不发
- ICMP 询问报文
- 回送请求和回答报文,时间戳请求和回答报文,掩码地址请求和回送报文,路由器询问和通告报文
- 常见应用:Ping(packet interNet Croper,分组网间探测)
- 使用了 ICMP 回送请求与回送回答报文
- 工作在应用层,而直接使用 ICMP ,绕开了传输层的 TCP 和 UDP
- 用于检测主机之间的连通性
- 有的主机为了防止恶意攻击,对 Ping 命令不予回应,比如百度
- 当我们 ping 某个服务器时,PC 端先发送 4 个 ICMP 回送请求报文,如果服务器正常运行,则返回 4 个ICMP 回送回答报文。这些报文都带有时间戳,所以可以很好的计算出往返时间
- 常见应用:Traceroute(windows 中使用 tracert)用于跟踪一个分组从源点到终点的路径
- 它使用了 ICMP 中的时间超过差错报文和终点不可达报文
- 工作流程
- 源主机利用 traceroute 命令发送一个无法交付的 UDP 数据报(即端口错误)
- 设置第一个数据报 P1 的生存时间为 1,当 P1 到达第一个路由器 R1 时,R1 收下,并让 TTL -1,这样 TTL =0,R1 就丢弃 P1,然后向源主机发送时间超过差错报告
- 接着源主机发送第二个报文,P2,设置 TTL 为 2,当R1收到后,TTL-1,然后继续发送,当 R2 收到后,TTL-1=0,丢弃,并返回时间超过差错报告
- 以此类推,当目的主机收到一个 TTL =1 的报文时,返回一个终点不可达报文
- ICMP 差错报告报文
💡 直接广播地址和本地广播地址(首先广播地址):直接是主机号全为1,需要直到本网地址;本地广播是IP地址全为1
💡
ICMP 报告种类 | ICMP 报文类型 |
---|---|
差错报告报文 | 终点不可达 |
源点抑制 | |
时间超过 | |
参数问题 | |
改变路由 | |
询问报文 | 回送请求和回答 |
时间戳请求和回答 |
拓展
🔦IP 地址和 MAC 地址各有什么特点和联系?两个地址放在一个数据帧中会冲突吗,为什么
IP 地址是因特网中分配给每一个主机的全球唯一的 32 位标识符。而 MAC 是 48 位硬件唯一标识符,二者都用于在一定范围内确定主机的地址。不会产生冲突,因为两者位于协议栈的不同层。
🔦 为什么划分子网,子网掩码的作用
划分子网是因为二级地址分配不灵活,利用率低。子网掩码用于确定一个 IP 地址所属的子网地址
🔦 IP 广播和数据链路层广播的区别
IP 广播是网络层,通过数据报对一个网络上所有主机进行广播。而数据链路层广播是在局域网上通过数据帧,对所有主机进行广播
🔦 IP 协议和 UDP 协议的区别
IP 协议 | UDP 协议 | |
---|---|---|
可靠程度 | 不可靠 | 不可靠(比IP稍好) |
网络协议层次 | 网络层 | 传输层 |
功能 | 路由转发 | 提供端到端通信 |
🔦 IP 地址,MAC 地址和端口号的区别和联系
IP | MAC | 端口号 | |
---|---|---|---|
层次 | 网络层 | 链路层 | 传输层 |
实质 | 逻辑地址 | 硬件地址 | 应用程序端口号 |
位置 | IP 数据报首部 | MAC 帧首部 | 传输层协议首部 |
作用 | 网络中识别主机 | 链路中识别主机 | 识别应用程序端口,实现端到端通信 |
- 主机通信发送数据,将数据从应用层交给传输层。
- 传输层根据应用程序接口封装成报文交给网络层。
- 网络层添加IP地址在首部交给数据链路层。
- 数据链路层添加MAC地址交给物理线路进行传输。
4.4 IPv6
IPv6 的特点
- 解决 IP 地址耗尽的问题
- CIDR(无类别域间路由,Classless Inter-Domain Routing)
- NAT 用于节省全球地址
- IPv6
- IPv6的主要特点
- 128 位地址
- 自动配置
- 源节点才能分片
- 首部长度是 8B 的整数倍,固定长度40 B
- 安全性
- 不提供校验和
- 目的地址的三种基本类型
- 单播:点对点
- 多播:一对多
- 任播:一对多再对一,即给任播组内的任意主机之一通信
- 表示法:128 位
- 每 4 位一个 16 进制
- 每 4 个 16 进制一组(8组)
- 每组中,开头连续的 0 可以省略
- 0000 ~ 0(简写)
- n 组 0 可以缩写位 :: 通过总组数来判断省略
- 相连的才能省
- 最多一个 ::
零压缩:一串连续的零可以被 :: 取代,但冒号只能出现一次,前导零可以省略。
- 分级
- 顶级:全球公共拓扑
- 场点级:单个场点
- 单个网络接口
- 过渡
- 双协议栈:主机同时使用两个协议
- 隧道技术:将 IPv6 封装到 IPv4 数据报的数据部分
IPv4 和 IPv6 的比较
ipv4 | ipv6 | |
---|---|---|
地址数 | 32 | 128 |
首部 | 减少了头部字段数目,仅7个字段(首部字段固定长度) | |
Qos | 支持 | 支持 |
校验和字段 | 有 | 没有 |
拓展
🔦 为什么需要 IPV6
从根本上解决 IPV4 地址短缺地问题。IPV6 能够通过网络层对数据加密并检验,提高了安全性。
- IPv6 Essentials, 3rd Edition
-
4.5 路由协议
1.自治系统(AS:Autonomous System)
- 类比美国的各州
- AS 内部有一个路由选择协议;
AS 之间也有一个不同于内部的路由选择协议; - 所有内部的路由器必须是连通的
-
2.域内路由和域间路由
内部网关协议
- IGP
- RIP(Routing Information Protocol:路由信息协议)
- OSPF(开放最短路径优先)
- IGP
- 外部网关协议
- EGP
- BGP-4
- EGP
-
3.路由信息协议(RIP)
规定
- 维护自己和其他所有网络的距离(跳数)
- 跳数少 = 好
- 最多 15 跳,16 跳就是不可达了
- 默认 30s 广播一次
- 特点
- 仅和相邻路由器交换信息
- 交换的信息是路由表(下一跳,最短距离)
- 收敛后路由表的目的网络的距离是最短的
- 距离向量算法
- 优点
- 开销小
- 实现简单
- 收敛快
- 缺点
- 规模小
- 坏消息传得慢
- 其他
- RIP 是应用层协议
- 基于 UDP
4.开放最短路径优先协议(OSPF)
- 基本特点
- 向所有本区域内的路由器泛洪发送信息
- 这个信息是部分信息:相邻路由器链路状态和度量(代价)
- 链路状态发生变化才泛洪
- 网络层协议,使用 IP 数据报传输
- 对自治区域再划分
- 组播方式
- 其他特点
- 灵活配置
- 多路径间的负载均衡
- 鉴别功能
- 支持边长子网划分和 CIDR
- 基本工作原理
- 频繁交换信息
- 各自建立链路状态数据库(全网拓扑图)
- 使用 D 算法得到到达目的网络的最优路径
- 链路状态发生变化再重新计算
五种分组类型
路径向量协议
- 特点
- 只找还不错的路由
- 应用层
- 基于 TCP 报文
- 变化后,只更新变化部分
- 可达性信息是到达某个网络的路径
- 工作原理
- 报文
- 打开报文
- 更新报文
- 保活报文:随时确定你还活到
- 通知报文:发送差错
- 三种路由协议的比较
- IGP 和 EGP 的区别
- IGP 是自治区内部路由,力求最佳路由,不关心其他自治区使用什么协议
- EGP 是自治区域间路由,力求较好路由,不关心内部协议
- 为什么三种路由协议使用对应的传输协议
- RIP:与相邻路由交换信息,使用 UDP 开销小
- OSPF,要泛洪,直接使用 IP 更灵活
- BGP 要交换整个路由表和更新信息,TCP 提供可靠交付,减少宽带消耗
PS
EGP 是 使用 IP 协议。
4.6 IP 组播
1.组播的概念
- 应用
- 视频点播
- 视频会议
- 原理:主机只发送一个数据给多个接收者,这些数据在分叉时复制(副本)转发
- 特点
- 基于 UDP ,发送给多个接收者
- 一台接受的主机可以属于多个分组(一台主机可以开启多个视频点播一样)
- 使用 IGMP(因特网组管理协议)加入组播组
- 组播需要组播路由器的支持
- 使用 D 类地址:每一个组一个标识地址
2.IP 组播地址
所谓组播就是,一个源主机希望给一组计算机发送数据,但不需要源主机一个一个对一组计算机中的每一个其他主机发送,而是把数据发送到一个组播地址,然后该地址会给其他主机发送一份副本
采用 D 类地址:224.0.0.0~239.255.255.255
- 注意
- 不可靠,采用 UDP
- 只能用于目的地址,而源地址是单播
- 不产生 ICMP 差错报文
- 并非所有 D 地址可以作为组播地址
- 场景:斗鱼直播
- 分类
- 硬件组播
- 因特网范围的组播:最终回归硬件组播
- 组播mac地址
- 01-00-5E
- 剩下的由 D 类地址的后 23 位转换的来
3.IGMP 与组播路由算法
- IGMP 可以知道组播组成员的信息,包括,加入和离开组播组的主机
- 特点
- IGMP 部管理因特网范围内所有的组播组,只是对本局域网内的管理(加入 or 退出)
- IGMP 是 TCP/IP 的一部分
- 构造组播树避免路由环路
- 工作方式
- 第一阶段
- 主机向组播组申请加入
- 组播路由器将成员信息转发给其他组播路由器
- 第二阶段:组播路由器周期探询本地主机,只要一台响应则视为活跃
- 第一阶段
4.7 移动 IP
1.移动 IP 的概念
移动结点以固定的 IP 地址,实现在不同网段漫游的功能
- 支持移动性的因特网体系结构
- 具体技术
- 移动节点以固定的 IP 地址实现跨越不同的网段的漫游功能
- 不改变 IP 地址,而改变驻留地址
- 三种功能实体
- 移动结点:永久 IP 地址
- 本地归属
- 外部归属
2.移动 IP 通信过程
- 特点
- 本地地址不变
- 本地代理用于维护当前的位置信息
- 转交地址用于标识当前的地址,便于路由选择
- 基本的通信流程
- 移动结点在本地:使用 TCP/IP 通信
- 移动结点在外部
- 移动结点回到本地
- 注销转交地址
- 移动主机被分配有主 IP 地址和转交地址
note
- 移动 IP 的分组路由分为单播,广播,组播
4.8 网络层设备
- 路由器的组成和功能
- 任务
- 连接异构网络,完成路由转发
- 基本的包过滤防火墙
- 功能
- 路由选择的核心是路由选择处理机:通过指定的路由选择协议构造路由表
- 分组转发
- 交换结构:选择适合的端口输出
- 一组输入端口:从物理层的比特流中提取链路层帧,从帧中提取数据报
- 一组输出端口
- 常用的三种交换方式
- 存储器交换,早期路由器是普通的计算机
- 路由处理机是 CPU
- 分组转发是存储器
- 总线交换
- 通过共享总线交换
- 互连网络交换
- 多个总线
- 存储器交换,早期路由器是普通的计算机
- 任务
特点
- 网络层设备
- 实现下三层功能
- PS:如果一个存储转发设备实现了某层的功能,那么它就可以互联在该层次(以及该层次一下)使用不用协议的两个网络
路由器与网桥的区别
路由器面向协议
路由表与路由转发
IP 网关 = IP 路由器;互联网 = 互连网
- 交换机与路由器地区别
- 交换机只能用于单一网络内,计算机地互联
- 路由器还支持异构网络地互联
- 链路层广播和 IP 广播地含义
- 链路层广播:对本局域网内广播 MAC 帧
- IP 广播:对目的网络广播 IP 地址
- 关于 ARP 响应
- 如果目的主机在同一个局域网,则目的主机返回 ARP 响应分组
- 如果不在,则本局域网路由器响应
- 层次路由划分自治系统
- 首部长度,总长度和片偏移地基本单位:4B,1B,8B
- IPv6 首部长40B,地址长度 16B
- https://blog.csdn.net/qq_25827845/article/details/70946185 路由聚合
- 网络访问全流程(转)
- 面向连接和非连接
- 通常物理设备可以互联本层及以下的不同网段,除了集线器之外
- 在路由器进行互联的多个局域网结构中,物理层,数据链路层和网络层协议可以不同,网络层以上的高层协议必须相同