网络层
网络层主要是解决寻址连接问题,例如两个主机在网络上通过IP进行连接通信
1.网络层概述
-
网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输
-
需要解决的主要问题:
-
因特网
- 使用TCP/IP协议栈
- 通过学习TCP/IP协议栈的网际层进行了解
2. 网络层提供的两种服务
2.1 面向连接的虚电路服务
2.2 无连接的数据报服务
tips:二者对比
3. IP地址
3.1 IPv4地址概述
- 因为IPv4地址不方便阅读,采用点分十进制表示法
举例
因为位数固定,也可以用凑值法来确定
3.2 分类编址的IPv4地址
-
只有ABC类地址可以分配给网络中的主机和路由器中的各接口
-
主机号为**全0(网络地址)和全1(广播地址)**的都不能分配给主机或者路由器的各接口
A类地址
B类地址
C类地址
总结
4.3.3 划分子网的IPv4地址
分配的IP地址数通常会存在空余,可以通过划分子网高效利用剩余IP,起到分类的作用
主机号可以被借用位数作为子网号
-
32byte的子网掩码可以表明分类IP地址的主机号被借用了几个作为子网号
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与子网掩码进行逻辑与运算
-
默认子网掩码
例:
例题
解
1.写出二进制子网掩码
2.进行与运算,写出主机的网络地址
4.3.4 无分类编址的IPv4地址
数量巨大的C类网因为地址太小,没有得到充分使用,IPv4地址面临耗尽的问题
- CIDR使用斜线记法,在斜线后面写出网络前缀所占比特的数量
例
- 路由聚合
将五个网络通过一个路由器进行转发:(找共同前缀,后面添加斜线)
例
只能分配两个IP,所以至多两个主机
4.3.5 IPv4地址的应用规划
-
定长的子网掩码FLSM
- 使用同一个子网掩码来划分子网
- 每个子网所分配的IP地址数量相同造成IP的浪费
子网号决定分类数目,主机号决定分配的IP个数
-
变长的子网掩码VLSM
- 根据不同IP地址的需求分配主机号,剩余编码可以作为网络前缀
优先分配地址需求数量较大的地址
4.4 数据报的发送和转发过程
主机判断 目的主机是否与自己在同一个网络
将两个IP地址进行 与 运算,不相等则不在同一个网络
- 默认网关(设置默认路由器的IP对数据进行转发)
- 路由器收到数据报如何转发
收到数据报中的信息后进行查表转发
4.5 静态路由配置及其可能产生的环路问题
4.5.1 静态路由配置
- 使用静态路由配置可能导致产生路由环路的错误
- 配置错误
- 聚合了不存在的网络
- 网络故障
R2不知道黄色的地址,所以可以手动配置(先转到R1路由器,再由R1进行转发)
4.5.2 静态路由配置错误导致路由环路
- 在静态配置错误后,路由器进行循环转发
防止这种问题设置了TTL字段
- 聚合了不存在的网络导致路由环路
防止这种问题设置了黑洞路由
4.6 路由器
4.6.1 路由器选择协议
- 静态路由选择
- 动态路由选择
因特网采用的路由选择协议的主要特点
-
常见的路由选择协议
- 内部网关(路由)协议
- 外部网关协议
-
路由器的基本结构
4.6.2 路由信息协议RIP的基本工作原理
RIP认为好的路由就是距离短的路由
路由信息协议RIP要求AS内内的每一个路由器都要维护子自己到AS内其他每一个网络的距离纪录记录,这组距离称为:“距离向量D-V”
当距离相同时,可以进行等价负载均衡(平分信息量)
-
三个要点
-
RIP路由器的更新规则
缺陷
- RIP存在路由环路或距离无穷计数问题
通过以下措施减少该问题的出现概率:
- 可以限制最大路径举例为15
4.6.3 开放最短路径优先(OSPF)的基本工作原理
- OSPF是为了是为了克服RIP算法的缺点提出的
- 最短路径优先:使用了Dijkstra的最短路径算法SPF
- OSPF相邻路由器之间通过交互Hello分组,建立和维护邻居关系
- 使用OSPF的每个路由器都有一个链路状态数据库LSDB,存储
生产链路通告(LSA):记录直连网络的链路状态信息,邻居路由器的链路状态信息
将LSDB中的数据,进行SPF计算,计算出最短路径,构建出路由表
- OSPF有五种分组
由于每个相邻路由器之间都需要交换分组,交换信息数目过多n*(n-1)/2
为了减少分组,进行了以下优化
- OSPF为了能够适配很大规模的网络,将很大的网络划分成小区域
6.4 边界网关(BGP)的基本工作原理
自制系统之间需要使用外部网关协议EGP这一类协议,使用较多的为BGP-4
-
在不同自治系统内,度量路由的代价可能不同,因此通过OSPF寻找最佳路由不可行
-
自治系统之间的路由必须考虑(考虑政治、经济、安全等)
-
BGP只能是找到一个较好的路由路径
每个系统都有自己的BGP发言人:
建立连接使用TCP报文段中进行连接
-
BGP发言人交换了网络可达性信息后,分别根据各自收到的路由信息找到较好的路由
-
构建连通图
-
封装RIP、OSPF、BGP 报文协议
7. IPv4数据报的首部格式
前置知识:
IPv4在传输时,需要与MTU比大小判断,如果大于MTU需要进行分片处理
例:MTU=1500,下述表需要被分成3份
IPv4数据报具体内容:
版本
- 占4比特,表示IP协议的版本
- 通信双方使用的IP协议的版本必须一致
首部长度
- 占4比特,表示IP数据报首部的长度。
- 最小十进制取值为5 bytes(表示IP数据报首部只有20字节固定部分)
- 最大取值为15bytes(表示IP数据报首部包含固定部分和可变部分)
区分服务
- 一般不使用
总长度字段
- 占比16 bytes,表示IP数据报的总长度(首部+数据载荷)
标识、标志、片偏移
- 三个字段共同作用于IP数据报分片
tips:片偏移结果必须为整数,不然需要重新分组
- 例题:具体应用
生存时间TTL
占8 bytes,最大生存周期为255秒;路由器转发时,将
生
存
时
间
−
本
路
由
器
耗
费
时
间
≠
0
生存时间-本路由器耗费时间 \ne0
生存时间−本路由器耗费时间=0
则转发,否则丢弃
协议
-
表明数据部分是哪种协议数据单元
-
常用协议数据单元
首部检验和(IPv6中不再使用)
- 占16 bytes,用来是否在传输过程中出现错误
源IP地址和目的IP地址
-
各占32bytes,用来填写发送主机与接收主机地址
-
例题:
因为偏移量要取整,所以要进行合理分配
首先使用MTU=800(最大传输大小),但是不整除,向下取整进行计算
4.8 网际控制报文协议(ICMP)
为了更有效地转发IP数据报和提高交付成功的机会使用ICMP
ICMP发送:差错报告报文和询问报文,被封装在IP数据报中发送
- ICMP差错报告报文种类:
终点不可达
当路由器或主机不能交付数据报时,发送该报文
源点抑制
当路由器或主机由于拥塞而丢弃数据报时,发送该报文
时间超过
当路由器收到IP地址不是自己的IP数据报,将其生存时间TTL减一
若结果为0则丢弃
参数问题
传输中首部出现误码,就丢弃该数据报,并且向源点发送参数问题
改变路由(重定向)
路由器把改变路由报文发送给主机,让主机优化路线
tips:以下情况不应发送ICMP差错报告报文
- ICMP询问报文:
回送请求和回答
用来测试目的站是否可达及了解其有关状态
时间戳请求和回答
进行时钟同步和测量时间
- 应用举例
PING命令:查看是否连通
traceroute:
4.9 虚拟专用网络(VPN)与网络地址转化(NAT)
VPN
利用公用的因特网做诶本机构各专用网之间的通信载体
VPN专用网中的IP是本机构可分配的专用地址
将左边换为个人也是如此
NAT
该方法缓解了IPv4地址耗尽的问题
- 流程
1.传输过去
2.返回
- 延伸NAPT:将端口号与IP地址一起进行转换(一个IP可以使多个主机与外界进行通信)
所以根据以上路由器的工作原理,只能由内网发起(不然路由器里面就没有对应记录 )