4.1网络层的功能
-
1.异网互联:使用
路由器
连接数据链路层
和物理层
均不同的网络。【路由器连接的设备物理层,数据链路层和网络层可以不同】 -
2.转发:从一个端口输入保存后选择另一个端口转发【微观】
-
3.路由选择:选择合适的路由线路【宏观】
-
4.SDN的基本概念:
- 数据平面:
- 时间短,用硬件实现
- 路由器内部实现
- 具体处理转发过程
- 控制平面
- 控制和管理
网络协议
的运行 - 时间长,用软件实现
- OSPF,RIP,BGP协议路由选择过程
- 控制和管理
- 数据平面:
传统方式 | SDN方式 |
---|---|
路由选择 和转发 都在路由器 中 | 路由选择 在SDN控制器中,转发 在路由器 中 |
SDN优点:①控制更灵活②成本更低
SDN的问题:①安全风险②瓶颈问题
- 5.拥塞控制:
- 原因:接收方来不及接收,只能丢弃
- 判断依据:网络负载增加吞吐量却下将。
- 方法:
- 1.开环控制【静态】
- 2.闭环控制【动态】
4.2 IPv4
4.2.1 IPv4分组
IP数据报过长需要切割成多个分组
1.IPv4分组格式
版本 | 首部长度 (Header Length) | 区分服务 (Differentiated Services) | 总长度 (Total Length) |
---|---|---|---|
4位,判断是IPv4还是IPv6 | 4位,单位是4字节 | 8位,决定路由器发送的优先级 | 16位,单位是1B |
标识 (Identification) | 标志 (Flags) | 片偏移 (Fragment Offset) |
---|---|---|
16位,表明来自哪个原始分组 | 3位,第一位无效,第二位为0表示允许分片,第三位为1表示后面还有分组 | 13位,单位是8B |
生存时间 (Time to Live) | 协议 (Protocol) | 头部校验和 (Header Checksum) |
---|---|---|
8位,每经过一个路由器减一,为0时丢弃,并返回ICMP | 8位,表明传输层协议,6代表TCP,17代表UDP | 16位,只校验首部是否正确 |
源 IP 地址 (Source IP Address) |
---|
32 bits |
目标 IP 地址 (Destination IP Address) |
---|
32 bits |
选项 (Options) | 填充(Fill) |
---|---|
可变长度,支持数据部分排错 | 可变长度 ,用于填充首部为8字节的整数倍 |
数据部分 |
---|
TCP或UDP |
单位记忆:一种【总长单位】
八片【片偏移量单位】
的首饰【首部长度单位】
2. IP数据报分片
如果IP分组过长,且标志位的第二位为0
(代表不允许分片)
路由器会丢弃分组,并返回ICMP差错报告。
标识
代表来自原来的哪一个IP分组。
标志
: 第一位无效,第二位【DF】为0标识允许分片,第三位【MF】为1标识后面还有分组
4.3.2 IPv4地址与NAT
1.IPv4地址:
主机号全为0::网络本身
主机号全为1::广播地址
网络号 | 主机号 | 是否可作为源地址 | 是否可作为目标地址 | 目的 |
---|---|---|---|---|
全0 | 全0 | 可以 | 不可以 | 在本网络中代表主机,路由器使用代表默认路由 |
全0 | 特定值 | 可以 | 不可以 | 本网络的目的主机 |
全1 | 全1 | 不可以 | 可以 | 本网络广播 |
特定值 | 全0 | 不可以 | 不可以 | 本网络的网络地址 |
特定值 | 全1 | 不可以 | 可以 | 特定网络进行广播 |
127 | 非0非1的有效范围 | 可以 | 可以 | 用于本地测试 |
私有地址:
- A类:10.0.0.0 ~ 10.255.255.255
- B类:172.16.0.0~172.31.0.0
- C类:192.168.0.0~192.168.255.0
2.网络地址转换NAT
不使用NAT技术,IP分组头部源地址不变。
使用NAT技术,路由器在转发前会将源主机的IP转换成路由器的IP。
路由器无法处理私有IP地址。
- 使用NAT技术:
- 发送数据:
路由器
将源主机IP地址修改为路由器
IP地址 - 接收数据:
路由器
根据目的地址的端口号修改目的地址IP
【局域网内部IP】 和端口号
。若没有匹配的表项,直接丢弃。
- 发送数据:
4.3.3 子网划分与子网掩码,CIDR
1.子网划分
从
主机号
取部分作为子网号
,构成三级IP地址
主机号不能全0全1
使用CIDR技术子网号可以全1
外部网络
不知道内部子网划分
,
划分子网后路由器的表项由【目的网络地址,网络子网掩码,下一跳地址】
划分子网:网络地址由少
变多
聚合子网:网络地址由多
变少
2.子网掩码
子网掩码
与IP地址相与
获取主机的网络地址。
3.无分类编址CIDR
消除传统A,B,C,D,E类网络划分,在IP地址后面的数字表明使用多少个IP二进制值作为网络地址。
网络前缀相同的是同一CIDR地址快
在路由转发表项匹配都不符合,使用0.0.0.0默认路由,交付给其他路由器处理。
4.网络层转发分组过程
1.提取IP地址
2.使用子网掩码
与IP地址
相与然后和路由器连接的网络的网络号做对比
3.有相同就直接发送,都不符合检查特定地址
。
4.检测到无路径就对比路由表。有就发送
5.如果没有就使用0.0.0.0默认路由
发给其他路由器重复上述操作
6.在IP的生存周期内没有找到目的主机,丢弃IP分组并发出CIMP差错报文
4.3.4 ARP,DHCP,ICMP
每个
主机和路由器
都有ARP高速缓存
- 地址解析协议ARP
- 请求使用
广播
ARP根据IP地址请求获取对应的MAC地址 - 响应使用
单播
发送发送自己的MAC地址 - ARP协议格式
- 请求使用
自己的IP地址 | 需查询的IP地址 | 自己的MAC地址 | FF-FF-FF-FF-FF-FF(广播MAC地址) |
---|
-
发送IP分组:
- 1.ARP高速缓存有就直接写入目的
MAC地址
- 2.没有就用
FF-FF-FF-FF-FF-FF
帧广播
ARP请求 - 3.局域网内所有主机都能收到
- 4.然后
单播
响应ARP请求,写入高速缓存
- 1.ARP高速缓存有就直接写入目的
-
动态主机配置协议DHCP
基于
UDP
协议的应用层
协议,使用C/S
模式
使用广播
发出DHCP请求,也使用广播
响应请求
-
过程:
- 1.
客户端
使用以广播 【DHCP发现】 询问是否有DHCP服务器
- 2.
DHCP
服务器接收到 【DHCP发现】 消息,发送自己愿意分配的IP地址
给源主机
- 3.如果主机
收到多个
【DHCP】 响应,接受第一个响应的IP
,并以广播回复接受使用IP地址
。其他服务器收回预分配IP
。
- 1.
-
网际控制报文协议ICMP
种类:ICMP差错报告
- 1.终点不可达
- 2.原点抑制
- 3.超过生命周期
- 4.参数问题 【数据报首部不正确】
- 5.改变路由 【选择更好的路由线路】
ICMP询问报文
- 1.
回送请求
和回答报文
- 2.
时间戳请求
和回答报文
- 3.
地址掩码请求
和回答报文
- 4.
路由器询问
和通告报文
- 1.
-
不发生ICMP差错报告报文情况:
- 1.对ICMP差错报告报文
- 2.第一个分片后的分片
- 3.所有组播地址的数据报
- 4.特殊地址如【127.0.0.0或127.0.0.0】
4.4 IPv6
-
解决IP耗尽措施:①采用无分类编址CIDR ②使用NAT转换 ③
使用IPv6
【根本方法】 -
IPv4和IPv6的主要区别:
- IPv4长度为32位,IPv6长度
128位
- IPv6可选字段移出首部,变成
扩展首部
- 自动配置IP地址,不需要DHCP服务器
IPv6首部
是8B的整数倍
,IPv4首部
是4B的整数倍
- IPv6
仅可以在主机分片
,IPv4
可以在主机和路由器
分片
- IPv4长度为32位,IPv6长度
注意:IPv6中只能有一个双冒号
IPv6支持单播
【点对点】,多播
【一对多】,任播
【将数据发到一个组的任意一个主机中】通信。
I P v 4 到 I P v 6 过度 { 双栈协议 : 一台设备同时使用 I P v 4 和 I P v 6 地址 隧道技术 : 将协议数据报重新封装 IPv4到IPv6过度 \begin{cases} 双栈协议:一台设备同时使用IPv4和IPv6地址\\ 隧道技术:将协议数据报重新封装 \end{cases} IPv4到IPv6过度{双栈协议:一台设备同时使用IPv4和IPv6地址隧道技术:将协议数据报重新封装
4.2 路由算法
- 静态路由算法:【非自适应路由算法】,由管理员手动配置路由信息,不适合大型网络,
更新速度慢
。 - 动态路由算法:【自适应路由算法】,
路由器之间交换路由信息,根据算法优化
。 - 层次路由使用原因:①因特网规模大 ②不让外界知道内部网络拓扑结构
路由选择协议 { 内部网关协议 , 在 A S 内部使用, R I P , O S P F 外部网关协议 , 在 A S 之间使用, B G P 路由选择协议 \begin{cases} 内部网关协议,在AS内部使用,RIP,OSPF\\ 外部网关协议,在AS之间使用,BGP \end{cases} 路由选择协议{内部网关协议,在AS内部使用,RIP,OSPF外部网关协议,在AS之间使用,BGP
4.5 路由协议
内部网关协议:RIP【小型网络,基于
距离向量
】,OSPF【大型网络,基于链路状态
】
4.5.1 RIP协议【信息路由协议】
应用层
协议,使用UDP
传输数据,使用广播交换
。
每个路由器需要维护到其他网络的唯一最佳路径
。
一条路径最多只能有15个路由器
,等于16时表示不可达
,适合小型网络。
-
特点:
- 使用
距离向量
- 仅和相邻路由器交换信息。
- 交换自己知道的所有信息
- 30秒交换一次
- 180秒内没交换,确认出现故障,跟新对应表项信息
- 好消息传得快,坏消息传得慢【跟新收敛慢】
- 使用
-
算法:
- ①交换信息到达时,将下一跳地址改为发送方地址,且跳数加1
- ②若原来表中没有目的网络,直接加入路由表
- ③若有相同目的网络,且下一跳地址相同,直接覆盖
- ④若有相同目的网络,下一跳地址不同留下跳数少的
4.5.2 OSPF协议【开放最短路径优先协议】
使用网络层
的IP
协议。IP协议字段89
。
-
特点:
- 给
自治系统
中所有路由器发送信息,使用洪泛法
【类似广播】 - 发送的是本路由器与相邻路由器的链路状态。
- 只有
链路发生变化时
,才洪泛
发出信息。 - 可以根据不同业务类型,计算出不同的路由。如果有多条
代价相同
的路径,则可以将通信量分配给这几条路径,负载均衡。 - 不会出现坏消息传得慢
- 使用迪杰斯特拉算法
规模大时OSPF比RIP好
- 给
-
过程:
- ①每隔10s给邻居发
HELLO问候分组
- ②设置到邻居的度量
metric
- ③构造链路分组,向
邻居
发送摘要 - ④摘要存在,不做处理,没有或
更新了
的发送链路状态请求分组
- ⑤收到相邻分组进行更新后返回确认信息。
- ①每隔10s给邻居发
外部网关协议
4.5.3 边界网关协议(BGP)
应用层
协议,基于TCP
【提高更可靠服务,减少路由选择】
-
过程:
- ①与邻站发言人交换信息
- ②交换网络
可达性
- ③
发生变化时跟新
【包含完整路径】
-
特点:
- ①支持CIDR
- ②刚运行时交换整个路由表,之后仅在发生变化时更新
变化部分
。
4.6 IP组播
4.6.1 组播的概念
单播: 发送数据包到一个目的地,使用单播地址,“点对点服务”
广播:发送到同一个局域网的所有设备,使用FF-FF-FF-FF-FF-FF
MAC地址
组播:发送到同一个组播IP的主机。源主机仅仅发送一次,路由协议建立组播分发树,尽可能接近目的主机时开始复制和发送不同路线的主机。减少了网络负载和发送者的负担。
4.6.2 IP组播地址
D类地址,前4位1110
【只能作为目的地址】
传输层协议使用UDP。
- 特点:
- 1.尽力交付,不提供可靠交付
- 2.只能用于目的地址
- 3.不产生ICMP差错报文
- 4.不是所有D类地址都用于组播
物理地址的组播地址范围:
01-00-5E-(00-00-00)至01-00-5E-(7F-FF-FF)
第25位为0,后23位与组播IP的后23位相同
4.6.3 IGMP和组播路由算法
IGMP:让路由器知道是否有主机的进程
退出或参加某组播
组播路由算法:1.基于链路状态的路由选择 2.基于距离-向量的路由选择 3.在任何路由器协议之上,协议无关组播