1. 网络层概述
(1)、相关简介
- 网络层的
主要任务
是实现网络互连
,进而实现数据包在各网络之间的传输
- 需要解决的问题:
- 网络层向运输层提供怎样的服务(
“可靠传输”还是“不可靠传输”
)
网络层对以下的分组丢失、分组失序、分组重复
的传输错误采取措施,使得接收方能正确接受发送方发送的数据
,就是 可靠传输,反之,如果什么措施也不采取直接丢弃
,则是 不可靠传输。
网络层寻址
问题路由选择
问题
(2)、数据包传送问题
- 路由器收到数据后,是
依据什么来决定将数据包从自己的哪个接口转发出去
?
依据数据包的目的地址
和路由器中的路由表
。
- 路由表中的
目的地址和相关接口的映射关系是怎样获得的
?
- 由
用户或网络管理员进行人工配置
,这种方法只适用于规模较小且网络拓扑不改变的小型互联网
。- 另一种是
实现各种路由选择协议
,由路由器执行路由选择协议中所规定的路由选择算法
,而自动得出路由表中的路有记录
,这种方法更适合规模较大且网络拓扑经常改变的大型互联网
2. 网络层提供的两种服务
(1)、面向连接的虚电路服务
- 通信之前
先建立虚电路 (Virtual Circuit)
,以保证双方通信所需的一切网络资源
。 - 如果再使用
可靠传输的网络协议
,就可使所发送的分组无差错按序到达终点,不丢失、不重复。 - 发送方 发送给 接收方 的所有分组
都沿着同一条虚电路传送
。
- 虚电路表示这
只是一条逻辑上的连接
,分组都沿着这条逻辑连接按照存储转发方式传送
,而并不是真正建立了一条物理连接
。- 请注意,
电路交换的电话通信
是先建立了一条真正的连接
。- 因此
分组交换的虚连接和电路交换的连接只是类似
,但并不完全一样。
(2)、无连接的数据报服务
- 网络层
向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
。 - 网络在发送分组时
不需要先建立连接
。每一个分组(即 IP 数据报)独立发送
,与其前后的分组无关(不进行编号)
。 - 网络层不提供服务质量的承诺。即
所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限
。
- 如果主机(即端系统)中的
进程之间的通信需要是可靠的
,那么就由网络的主机中的运输层负责可靠交付
(包括差错处理、流量控制等) 。- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
(3)、两者的对比
3. IPv4概述
(1)、简介
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口
分配一个在全世界范围内唯一的32位比特的标识符
。
(2)、三个历史阶段
- 分类编址
- 划分子网编址
- 无分类编址
4. 分类编址
该类IP地址主要分为A类、B类、C类、D类、E类
。
- 只有
A类、B类和C类
可分配给网络中的主机或路由器的各接口
主机号为“全0”
的地址是网络地址
,不能分配给主机或者路由器的各接口。主机号为“全1”
的地址是广播地址
,不能分配给主机或者路由器的各接口。
(1)、A类地址
(2)、B类地址
(3)、C类地址
(4)、相关说明
5. 子网划分编址
(1)、网络申请新的网络号会带来以下弊端
- 需要等待时间和花费更多的费用
- 会增加其他路由器中路由表记录的数量
- 浪费原有网络号中剩余的大量的IP地址
(2)、子网划分
因此从主机号部分借用一部分比特作为子网号
。
(3)、子网掩码的组成
- 子网掩码使用
连续的比特1来对应网络号和子网号
- 子网掩码使用
连续的比特0来对应主机号
- 将划分子网的
IPv4地址与其相应的子网掩码
进行逻辑与运算
就可得到IPv4地址所在子网的网络地址
。
(4)、默认的子网掩码
其就是未划分子网的情况下使用的子网掩码
。
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
6. 无分类编址
(1)、为什么要进行无分类编址?
划分子网
在一定程度上缓解了因特网在发展中的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用
,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁
。为此,提出了采用无分类编址
。
(2)、无分类域间路由选择协议CIDR
- CIDR使用各种长度的
“网络前缀”(network-prefix)
来代替分类地址中的网络号和子网号
。IPv4地址后面加上“/”
,在斜线后面写上网络前缀所占的比特数量
。
- IP 地址从
三级编址(使用子网掩码)
又回到了两级编址
。
(3)、地址的全部细节
- 地址块的最小地址
- 地址块的最大地址
- 地址块中的地址数量
- 地址块聚合某类网络
- 地址掩码
(4)、相关说明
路由聚合
的方法是找共同前缀
网络前缀越长
,地址块越小
,路由越具体
- 如果路由器查表转发分组时
发现有多条路由可选
,则选择网络前缀的最长的那条
,称为最长前缀匹配
。
7. IPv4地址的应用规划
(1)、定长的子网掩码
1. 描述
如果需要给一个网络划分分配IP地址
,且这个网络由多个子网构成
,那么我们需要选择其中需要接口数量最多的作为标准
进行子网划分
。而其他的子网的IP地址的分配也是这样。这就是所谓的定长的子网掩码
。
2.特点
- 使用
同一个子网掩码来划分子网
- 采用
定长的子网掩码
划分,只能划分出2^n个子网
,其中n是从主机号部分借用的用来作为子网号的比特数量
,每个子网所分配的IP地址数量相同 - 但是也因为
每个子网所分配的IP地址数量相同
,不够灵活,容易造成IP地址的浪费
。
(2)、变长的子网掩码
1. 描述
我们根据各子网各自的需求
进行子网的划分,从而形成物尽其用,尽量按需分配
。
2. 特点
- 使用
不同的子网掩码
来划分子网 - 子网划分方式灵活:
可以按需分配
每一个子网所分配的IP地址数量可以不同
,尽可能减少对IP地址的浪费
。
8. IP数据报的发送和转发过程
(1)、基本概念
- 直接交付:在
同一个网络中的交付
称为直接交付
。 - 间接交付:
不在同一个网络中的交付
称为间接交付
。 - 默认网关:一个网络会
选择一个路由器接口
作为自己的默认IP数据报的转发出口
。
(2)、转发和发送过程
1. 单播情况下
源主机发送一个IP数据报给默认网关
进行转发,IP数据报携带的目的主机号和相应的子网掩码进行相与运算
得到相应的网络地址
,路由器查看该IP数据报是否出错
,如果出错直接丢弃并通知源主机
,如果没有,然后查找路由表进行转发
。
2. 广播情况下
广播情况下只能在本网域进行发送
,不能通过路由器进行转发
。
9. 静态路由配置和可能产生的问题
(1)、静态路由配置
概念:由人工配置
的默认路由、网络路由、特定主机路由和黑洞路由
。
默认路由
(目的网络为0.0.0.0,地址掩码为0.0.0.0
)特定主机路由
(目的网络为特定主机的IP地址,地址掩码为255.255.255.255
)黑洞路由
(下一跳为null0
)
(2)、产生的问题
1. 配置错误
通过设置生存时间TTL字段
来防止路由环路问题
,每经过一个路由器进将其减一
,等于0时将其丢弃
。
2. 聚合了不存在的网络
在路由表中设置黑洞路由
来防止路由环路问题
3. 网络故障
在路由表中设置黑洞路由
来防止路由环路问题
10. 路由选择协议的概述
(1)、动态路由选择协议
路由器通过路由选择协议自动获取路由信息
。
特点:
- 比较复杂,开销较大,能
较好地适应网络状态的变化
。 适用于大规模网络
。
(2)、因特网所采用的路由选择协议的主要特点
- 动态路由选择,能
较好地适应网络
路由器之间交换路由信息
将整个因特网划分为较小的自治系统
。
(3)、自治系统
- 自治系统 AS:在
单一的技术管理下的一组路由器
,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由
,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由
。 自治系统之间的路由选择
简称为域间路由选择
,自治系统内部的路由选择
简称为域内路由选择
。
(5)、常见的路由选择协议
(4)、路由器的基本结构
- 交换表
- 一组输出端口
- 一组输入端口
- 输入缓存
- 输出缓存
(5)、数据经过路由器的过程
信号从某个输入端口进入路由器
,物理层将信号转换成比特流
,送交数据链路层处理,数据链路层识别从比特流中识别出帧
,去掉帧头和帧尾后,送交网络层处理,如果送交网络层的分组是普通待转发的数据分组
,则根据分组首部中的目的地址进行查表转发
,若找不到匹配的转发条目
,则丢弃该分组
,否则,按照匹配条目中所指示的端口进行转发。然后从某个输出端口输出
,网络层更新数据分组首部中某些字段的值
,例如将数据分组的生存时间减1,然后送交数据链路层进行封装,数据链路层将数据分组封装成帧
,交给物理层处理,物理层将帧看成比特流将其变换成相应的电信号进行发送
。
11. 路由信息协议RIP
(1)、相关介绍
- RIP要求自治系统AS内的每一个路由器
都要维护从它自己到AS内其他每一个网络的距离记录
。这一组距离,称为“距离向量”
。 - RIP
使用跳数作为度量来衡量到达目的网络的距离
- 路由器
到直连网络的距离定义为1
- 路由器到
非直连网络的距离定义为所经过的路由器数加1
- 允许一条路径
最多只能包含15个路由器
。距离等于16时相当于不可达
。因此,RIP只适用于小型互联网
。
- RIP认为
好的路由就是“距离短”的路由
,也就是所通过的路由数量最少的路由
- 当到达同一目的网络有
多条“距离相等”的路由
时,可以进行路由负载均衡
。
(2)、RIP包含以下三个要点
- 和谁交换 (仅和相邻路由器交换信息)
- 交换什么信息 (自己的路由表)
- 何时交换信息 (周期性交换信息)
(3)、RIP的基本工作过程
- 路由器
刚开始工作
时,只知道自己到直连网络的距离为1
- 每个路由器
仅和相邻路由器周期性地交换并更新路由信息
- 经过
多次交换和更新
后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址
,称为收敛
(4)、RIP的路由条目的更新规则
- 发现了
新的网络
,添加 - 到达目的网络,
相同下一跳
,最新信息
,更新 - 到达目的网络,
不同下一跳
,新路由优势
,更新 - 到达目的网络,不同下一跳,
新路由劣势
,不更新 - 到达目的网络,不同下一跳,等价负载均衡。
(5)、存在的问题
存在换消息传播得慢
的问题。其又称路由环路或无穷计数
问题。
采取的措施
- 限制
最大路径距离为15
(16表示不可达
) - 当路由表
发生改变时立即发送更新报文
,而不是周期性发送 - 让路由器记录收到某特定路由信息的接口,而
不让同一路由信息再通过此接口反向传送
(水平分割
)。
12. 开放最短路OSPF
(1)、简介
- OSPF
使用了最短路径算法SPF
- OPSF时
基于链路状态的
,而不像RIP那样是基于距离向量的 - 最短路径算法
SPF保证了不会产生路由环路
- OSPF不限制网络规模,更新效率高,收敛速度快
(2)、相关概念
- 链路状态是指本
路由器都和哪些路由器相临
,以及相应的链路代价
。 - 问候分组:用来
发现和维护邻居路由器的可达性
- 数据库描述分组:向
邻居路由器
给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 链路状态请求分组:向邻居路由器
请求发送某些链路状态项目的详细信息
- 链路状态更新分组:路由器使用这种分组将其链路状态进行洪泛发送,即
使用洪泛法对全网进行更新链路状态
- 链路状态确认分组:这是
对链路状态更新分组的确认分组
。 使用OSPF
的每一个路由器都会产生链路状态通告LSA
。其包含了直连网络的链路状态信息和邻居路由器的链路状态信息
。- LSA被
封装在链路状态更新分组
中,采用洪泛法
进行发送。 - 使用OSPF的每一个路由器都有一个
链路状态数据库LSDB
,用于存储LSA
- 通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终达到一致。
(3)、工作过程
链路中的路由器相互持续发送问候分组维持可达性
,然后相互发送数据库描述分组,如果发现自己的LSDB中有些数据没有需要更新,那么相应的路由器发送链路状态请求分组
,其他路由器发送相应的链路状态更新分组
,接收到相应的分组
后该路由器发送出链路状态确认分组
给其他路由器。
(4)、OSPF在多点接入网络中路由器邻居关系的建立
- 选举指定路由器DR和备用的指定路由器BDR
- 所有的非DR/BDR只与DR/BDR建立邻居关系
- 非DR/BDR之间通过DR/BDR交换信息
(5)、OSPF用于规模更大的网络
OSPF把一个自治系统再划分为多个更小范围
,叫做区域。
该种情况下的路由器
- 区域内路由器IR
- 区域边界路由器ABR
- 主干路由器BBR
- 自治系统边界路由器ASBR
13. 边界网关协议BGP
(1)、简介
BGP(Border Gateway Protocol) 是不同自治系统的路由器之间交换路由信息的协议
。它只能是力求寻找一条能够到达目的网络且比较好的路由
,而并非要寻找一条最佳路由。
(2)、其工作的相关要点
- 在配置BGP时,每个自治系统的管理员要
选择至少一个路由器作为该自治系统的“BGP发言人”
。 - 不同自治系统的BGP发言人要交换路由信息,
首先建立TCP连接
,端口号为179
,在此连接上交换BGP报文以建立BGP会话
,利用BGP会话交换路由信息
,使用TCP连接交换路由信息的两个BGP发言人
称彼此为对方的邻站或对等站
。
- BGP发言人除了运行BGP协议,还要
运行内部网关协议(OSPF或RIP)
- BGP发言人交换网络可达性的信息
- 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人根据所采用的策略从收到的路由信息中找出到达自治系统的较好的路由,也就是
构造出树形结构、不存在回路的自治系统连通圈
。
(4)、四种报文
- OPEN报文:用来
与相邻的另一个BGP发言人建立关系
,使通信初始化。 - UPDATE报文:用来通告某一路由的信息,以及列出要撤销的多条路由
- KEEPALIVE报文:用来周期性地
证实邻站的连通性
- NOTIFICATION报文:用来
发送检测到的差错
。
14. IPv4的首部格式
- 版本:占4比特,表示 IP 协议的版本。 。通信双方使用的 IP 协议的版本必须一致。目前广泛使用的 IP 协议版本号为4(即IPv4)。
- 首部长度占4比特,表示 IP 数据报首部的长度。该字段的取值以4字节为单位
- 可选字段:长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施字段增加了 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理 IP 数据报的开销。实际上可选字段很少被使用。
- 填充字段:确保首部长度为4字节的整数倍。使用全0进行填充。
- 区分服务:占8比特,用来获得更好的服务。
- 总长度:占16比特,表示 IP 数据报的总长度 (首部+数据载荷).最大取值为十进制的65535,以字节为单位。
- 标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识.
- 标志:占3比特。1表示不允许分片;0表示允许分片; MF 位:1表示“后面还有分片”;0表示“这是最后一个分片”;保留位:必须为0。
- 片偏移:占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位,片偏移以8个字节为单位。
- TTL: 占8比特,表示 IP 数据报的生存时间.
- 协议:占8比特,指明IPv4数据报的数据部分是何种协议数据单元。
- 首部检验和:占16比特,用来检测首部在传输过程中是否出现差错。比 CRC 检验码简单,称为因特网检验和。
- 源 IP 地址和目的 IP 地址:各占32比特,用来填写发送该 IP 数据报的源主机的 IP 地址和接收该 IP 数据报的目的主机的 IP 地址。
图示说明
15. 网际层控制报文协议ICMP
(1)、为什么需要网际层控制报文协议ICMP?
主要使为了更有效的转发IP数据报和提高交付成功的机会。
(2)、简介
主机和路由器使用ICMP来发送差错报告报文
和询问报文
。
(3)、差错报告报文
- 终点不可达:当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。分为
目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知
。
- 源点抑制:当路由器或主机
由于拥塞而丢弃数据报
时,就向源点发送源点抑制报文。
- 时间超过:当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间
TTL字段的值
减1.如果结果不为0,则将该IP数据报转发出去;如果结果为0
,出丢弃该数据报外,还向源点发送时间超过报文
。
- 参数问题:当路由器或目的主机收到IP数据报后,根据
首部中的检验和字段发现首部在传输过程中出现了误码
,就丢弃该数据报,并向源点发送参数问题报文。
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机
知道下次应将数据报发送给另外的主机
。
(4)、ICMP询问报文
- 回送请求和回答:是由主机或路由器向一个特定的目的主机发出的询问,其
用来测试目的主机是否可达及了解有关状态
- 时间戳和回答:是请求某个主机或路由器回答当前的日期和时间,用来
进行时钟同步和测量时间
。
(5)、应用举例
- 分组网间探测PING(Packet InterNet Groper)
- 跟踪路由(traceroute)
16. 虚拟专用网VPN与网络地址转换NAT
(1)、虚拟专用网VPN
利用公用的因特网作为本机构各专用网之间的通信载体
。
- 内联网VPN:
同一机构不同部门的内部网络
所构成的虚拟专用网VPN - 外联网VPN:一个机构的VPN需要有些
外部机构参加进来
。 - 远程接入VPN:在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到 因特网,
运行驻留在员工PC中的VPN软件与公司的主机之间建立VPN隧道
,即可访问专用网络中的资源
。
向外网发送数据报的过程
当该主机向全球上的一台主机发送数据报,此数据报会先被加密
,然后它在它所在的网络上的转发路由器被修改为自己网络在全球上的IP地址到源地址处
,目的地址上写的是目的主机在全球范围上的IP地址
。目的主机收到后,回复响应数据报,数据报上的源主机地址为该主机在全球范围上的IP地址
,目的地址为相应的接收方的在全球上的IP地址
,在我们所说中的就是它所在网络在全球的上的IP地址。到相应的路由器后
,路由器会将其目的地址修改为相应的主机的私有地址
。然后进行发送。
(2)、为什么引入网络地址转换NAT?
为缓解IP地址空间耗尽
的问题。
(3)、网络地址转换NAT
- NAT能使
大量使用内部专业地址的专用网络用户共享少量外部全球地址
来访问因特网上的主机和资源。 - NAT在一定程度上
屏蔽了内网的主机的地址
,对内网主机起到了保护作用
。 外网主机不能首先发起通信
。
1. 向外网发送数据报的过程
发送过程
当该主机向全球上的一台主机发送数据报,此数据报会先被加密,然后它在它所在的网络上的NAT转发路由器被修改为自己网络在全球上的IP地址到源地址处
,并在NAT转换表中进行记录内网地址和外网地址的映射
,目的地址上写的是目的主机在全球范围上的IP地址
。
接收过程
目的主机收到后,回复响应数据报,数据报上的源主机地址为该主机在全球范围上的IP地址
,目的地址为相应的接收方的在全球上的IP地址
,在我们所说中的就是它所在网络在全球的上的IP地址。到相应的路由器后,会从NAT转换表中进行查询
,路由器会将其目的地址修改为相应的主机的私有地址
。然后进行发送。
2. 存在的问题
如果NAT路由器具有N各全球地址
,那么至多只能由N个内网主机能够同时和因特网上的主机通信
。
3. 解决方法
网络地址与端口号转换NAPT:用一个全球的IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信,主机号和端口号一起进行转换
。