网络层
- 1. 概述
- 2. 网络层提供的两种服务
- 2.1 面向连接的虚电路服务
- 2.2 无连接的数据报服务
- 2.3 虚电路服务 VS 数据报服务
- 3. IPv4地址及其应用
- 3.1 分类编址的IPv4地址
- 3.1.1 A类地址
- 3.1.2 B类地址
- 3.1.3 C类地址
- 3.2 划分子网的IPv4地址
- 3.3 无分类编址的IPv4地址
- 3.4 IPv4地址的应用规划
- 4. IP数据报的发送和转发过程
- 5. 路由选择
- 5.1 静态路由选择
- 5.1.1 如何解决路由环路问题
- 5.1.1.1 路由配置错误
- 5.1.1.2 聚合了不存在的网络
- 5.1.1.3 网络故障
- 5.2 动态路由选择
- 5.2.1 路由选择协议
- 5.2.2 常见路由选择协议
- 5.2.3 路由器结构
- 5.2.3.1 路由选择部分
- 5.2.3.2 分组转发部分
- 5.3 静态路由选择 VS 动态路由选择
- 5.4 路由信息协议RIP
- 5.4.1 工作原理
- 5.4.2 “坏消息传的慢”问题
- 5.5 开放最短路径优先协议OSPF
- 5.5.1 基本工作原理
- 5.5.2 OSPF的5种分组
- 5.5.3 OSPF在多点接入网络中关于邻居关系的建立
- 5.5.4 OSPF将AS划分为多个区域
- 5.6 边界网关协议BGP
- 5.6.1 基本工作原理
- 5.6.2 BGP的4种报文
- 5.7 封装不同路由选择协议报文的协议
- 6. IPv4数据报首部格式
- 6.1 IP数据报分片
- 7. 网际控制报文协议ICMP
- 7.1 5种ICMP差错报告报文
- 7.2 不该发送ICMP差错报告报文的情况
- 7.3 常用的2种ICMP询问报文
- 7.4 ICMP应用
- 8. 虚拟专用网VPN
- 9. 网络地址转换NAT
- 9.1 网络地址转换NAT
- 9.2 网络地址与端口号转换NAPT
- 9.3 注意事项
1. 概述
- 主要任务:实现网络互连,完成数据包在各网络之间进行传输的任务;
- 解决的主要问题:
1)网络层向运输层提供怎样的服务(可靠传输/不可靠传输);
2)网络层寻址;
3)路由选择; - 因特网是目前使用最广泛的互联网,使用TCP/IP协议栈;
- TCP/IP协议栈中网络层使用网际协议IP,因此TCP/IP协议栈中网络层也称为网际层;
2. 网络层提供的两种服务
- 面向连接的虚电路服务,可为运输层提供面向连接的可靠传输服务;
- 无连接的数据报服务,可为运输层提供无连接的不可靠传输服务;
2.1 面向连接的虚电路服务
- 此种方式认为网络的可靠通信由网络来保证,双方通信之前必须建立网络层连接,通信结束后必须释放虚电路连接;
- 该网络层连接是一个逻辑连接,称为虚电路VC(Virtual Circuit);
- 通信双方沿已经建立的虚电路发送分组;
- 目的主机的地址仅在建立虚电路连接时使用,之后每个分组的首部只需携带一条虚电路的编号即可;
- 结合可靠传输的网络协议,可向运输层提供面向连接的可靠传输服务;
- 很多广域分组交换网使用面向连接的虚电路服务;
2.2 无连接的数据报服务
- 此种方式认为网络的可靠通信应由通信主机来保证,双方通信无需建立网络层连接;
- 网络本身不提供可靠传输服务;
- 分组可通过路由选择机制走不同的路径;
- 每个分组必须提供完整目的主机地址;
- 此通信方式可能会发生分组误码、丢失、重复和失序问题;
- 因特网设计使用无连接的数据报服务,将复杂的网络处理功能置于因特网边缘(用户主机和运输层);
- 网络层尽最大努力交付数据报;
2.3 虚电路服务 VS 数据报服务
3. IPv4地址及其应用
- IP地址由ICANN(因特网名字和数字分配机构)进行分配;
- IPv4地址是为因特网上的每一台主机(或路由器)的每一个接口分配一个唯一的标识符;
- IPv4地址为32比特;
- IPv4地址采用点分十进制表示方法表示,如a.b.c.d,每8位表示一个数字;
- 点分十进制法表示IP地址,涉及到二进制与十进制之间的转换;
- IPv4地址编址方法经历三个历史阶段:
3.1 分类编址的IPv4地址
- 将IP地址分为以下五类:
- 只有A/B/C类地址可分配给网络中的主机或路由器各接口;
- 主机号为全0的地址是网络地址, 不能分配给网络中的主机或路由器各接口;
- 主机号为全1的地址是广播地址, 不能分配给网络中的主机或路由器各接口;
3.1.1 A类地址
- 切记A类地址中,除了主机号全0和主机号全1的IP地址不能分配给主机之外,网络号为0和127的IP地址也不能分配;
- 网络号为0的IP是保留网络,不能分配;
- 网络号为127的IP是本地环回测试网络,不能分配;
3.1.2 B类地址
3.1.3 C类地址
3.2 划分子网的IPv4地址
- 在分类编址的IPv4地址上,引入子网号,用于划分子网;
- 子网号占用主机号中的部分位;
- 使用32位子网掩码可表明分类IP地址中的主机号使用多少比特作为子网号;
- 子网掩码使用连续的比特1对应网络号和子网号,使用连续的比特0对应主机号;
- 将子网掩码和IP地址做逻辑与运算可得IP地址所在的子网网络地址;
- 默认子网掩码指未划分子网时使用的子网掩码,如A类地址对应的默认子网掩码为255.0.0.0;
3.3 无分类编址的IPv4地址
- 使用无分类域间路由选择CIDR(Classless Inter-Domain Routing)进行无分类编址;
- CIDR消除了传统的分类地址概念以及子网划分概念;
- CIDR可更加有效地分配IPv4的地址空间;
- CIDR使用斜线记法,在IPv4地址后增加斜线/,在斜线后标明网络前缀所占的比特数量,如128.14.35.7/20;
- CIDR实际是将网络前缀相同的连续IP地址组成一个CIDR地址块;
- CIDR可实现路由聚合,即构造超网:寻找多个路由的共同网络前缀,将其表示为一个聚合地址块;
- 网络前缀越长,地址块越小,路由越具体;
- 若路由器查表转发分组时有多条路由可选,则按照最长前缀匹配原则选择网络前缀最长的路由;
3.4 IPv4地址的应用规划
- 可使用划分子网的方法充分利用IP地址,避免IP地址的浪费;
- 划分子网通过将主机号中的部分比特位用作子网号实现;
- 使用子网掩码可表明IP地址中的主机号使用多少比特作为子网号;
- 可使用定长子网掩码FLSM(Fixed Length Subnet Mask)、变长子网掩码VLSM(Variable Length Subnet Mask)划分子网;
4. IP数据报的发送和转发过程
- IP数据报的发送和转发过程涉及:1)源主机发送IP数据报;2)路由器转发IP数据报;
- 相同网络内主机通信时,IP数据报直接交付;
- 不同网络内主机通信时,IP数据报间接交付,需要路由器进行转发;
- 路由器隔离广播域,不会转发任何广播IP数据报;
- 只有本网络内的主机才会收到广播IP数据报;
- 用户主机要想与其他网络通信,需要配置一台路由器转发数据报,该路由器称为默认网关;
- 通过将目的地址与源地址对应子网掩码进行与运算,判断是否两台主机处于同一网络;
5. 路由选择
- 路由选择方式分为:1)静态路由选择;2)动态路由选择;
- 路由条目的类型:1)直连网络;2)静态路由(人工配置);3)动态路由(路由选择协议);
- 路由表中有多条路由可选时,使用最长前缀匹配原则(网络前缀越长,路由越具体)!!
5.1 静态路由选择
- 静态路由选择指用户或网络管理员使用相关命令人工配置路由表;
- 人工配置方式简单、开销小,但不能及时适应网络状态(流量、拓扑)的变化;
- 适用于小规模网络;
- 人工配置方式可能会导致路由环路问题,造成路由环路的原因有:1)路由配置错误;2)聚合了不存在的网络;3)网络故障;
- 特殊的静态路由条目:
1)默认路由(目的地址为0.0.0.0,地址掩码为0.0.0.0),如果路由表中未查到合适的转发路由,则使用默认路由;
2)黑洞路由(下一跳为null0):路由器内部的虚拟接口,表示丢弃该IP数据报;
3)特定主机路由(目的地址为特定主机IP地址,地址掩码为255.255.255.255):表示到达该特定主机的详细路由;
5.1.1 如何解决路由环路问题
- 路由环路:不同路由器中的路由形成循环,IP数据报在路由环路中循环转发;
5.1.1.1 路由配置错误
- 人工配置路由表时,错误地配置了不同路由器中的路由,而这些路由形成了路由环路;
- 解决方案:在IP数据报首部设有生存时间TTL字段,当IP数据报到达路由器后,TTL-=1,如果此时TTL!=0,则对该IP数据报进行转发,否则被丢弃;
5.1.1.2 聚合了不存在的网络
- 路由表中可通过提取共同前缀进行路由聚合操作,但聚合了不存在的网络结合默认路由导致路由环路;
- 解决方案:在路由表中对不存在的网络地址配置对应的黑洞路由即可;
5.1.1.3 网络故障
- 网络故障导致路由表中对应路由被删除,进而使用默认路由导致路由环路;
- 解决方案:在路由表中为故障网络配置对应的黑洞路由即可;
5.2 动态路由选择
- 动态路由选择指路由器通过路由选择协议自动获取路由信息;
- 动态获取方式复杂、开销大,但可以及时适应网络状态(流量、拓扑)的变化;
- 适用于大规模网络;
5.2.1 路由选择协议
- 特点:
1)自适应:动态路由选择,可及时适应网络状态的变换;
2)分布式:网络上的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新;
3)分层次:可将整个因特网划分为许多较小的自治系统AS(Autonomous System); - AS内路由选择称为域内路由选择,使用内部网关协议IGP或IRP;
- AS间路由选择称为域间路由选择,使用外部网关协议EGP或ERP
5.2.2 常见路由选择协议
5.2.3 路由器结构
- 路由器基本机构分为:1)路由选择部分;2)分组转发部分;
- 路由选择协议运行在路由器上;
5.2.3.1 路由选择部分
- 核心组件:路由选择处理机;
- 作用:根据自己使用的路由选择协议,周期性地与其他路由器进行路由信息交互,完成路由表更新;
5.2.3.2 分组转发部分
- 转发内容:1)路由报文;2)普通数据分组;
- 由三部分构造:1)交换结构;2)输入端口;3)输出端口;
- 普通数据分组根据转发表的内容进行转发或丢弃;路由报文送交路由选择处理机,依据报文内容更新路由表;
- 转发表的内容来自路由表,路由表中包括目的网络以及下一跳地址;
- 输入端口具有输入缓冲区,用于暂存进入路由器但来不及处理分组;输出端口具有输出缓冲区,用于暂存已经处理完毕但还来不及发送的分组;
5.3 静态路由选择 VS 动态路由选择
5.4 路由信息协议RIP
- RIP:Routing Information Protocol;
- RIP基于距离向量;
- RIP要求自治系统AS内部的每个路由器必须记录路由器自身到AS内其他网络的距离,这组距离称为距离向量D-V(Distance-Vector);
- RIP使用跳数衡量路由器到目的网络的距离:
1)直连网络:距离为1;
2)非直连网络:距离为中间路由器的数量+1;
3)RIP限制一条路径中最多只能含有15个路由器,即最大距离为15,距离为16时相当于不可达; - RIP只适用于小型互联网;
- RIP优先选择“距离短”的路由,也就是经过路由器数量最少的路由。如果有多条等价路由(距离相等),RIP会进行等价负载均衡,将通信量均衡分布到多个等价路由上;
- RIP涉及的3个要点:
1)仅和相邻路由器交换信息;
2)交换路由表信息;
3)周期性交换;
5.4.1 工作原理
-
工作过程:
-
路由表更新原则:路由器B收到相邻路由器A的路由表信息后,将A发送的路由表信息进行更新:①下一跳设为A;2)距离均加1;
5.4.2 “坏消息传的慢”问题
- “坏消息传的慢”问题也称为路由环路或距离无穷计数问题,这是距离向量算法的固有问题;
- RIP基于距离向量,因此存在“坏消息传的慢”问题;
- 可采用如下方式缓解“坏消息传的慢”问题:
1)限制最大路径距离为15,16表示不可达;
2)路由表发生变化时立即发送更新报文(“触发更新”),而不是周期性发送;
3)让路由器记录收到某特定路由信息的接口,不让该路由信息再通过该接口反方向传送(“水平分割”);
5.5 开放最短路径优先协议OSPF
- OSPF:Open Shortest Path First;
- 底层实现基于迪杰斯特拉提出的基于带权有向图的最短路径算法SPF;
- OSPF基于链路状态,解决了RIP的缺点;
- OSPF使用SPF算法计算路由,从算法上保证不会出现路由环路;
- OSPF不限制网络规模,被广泛使用,更新效率高,收敛速度快;
- 链路状态指路由器与哪些路由器相邻,以及链路的“代价”,“代价”表示费用、距离等含义,由网络管理人员定义;如:
5.5.1 基本工作原理
- 每个路由器都会建立维护自己的邻居表,维护邻居关系;
- LSU会被路由器所有接口转发,因此一个自治系统AS中的路由器最终会记录所有路由器的链路状态通告LSA;
5.5.2 OSPF的5种分组
5.5.3 OSPF在多点接入网络中关于邻居关系的建立
- 目的:降低路由器发送分组的数量;
5.5.4 OSPF将AS划分为多个区域
- 目的:使OSPF适用于规模更大的网络;
5.6 边界网关协议BGP
- BGP属于域间路由选择协议,无法通过度量“代价”计算最短路径以确定最优路由;
- BGP应用于不同的AS(自治系统)之间的路由选择,需要考虑相关策略(如政治、经济、安全等);
- BGP的目的是确定一条可到达目的网络且比较好的路由(不会兜圈子即发送路由环路),而非最佳路由;
- BGP适用于多级结构的因特网;
5.6.1 基本工作原理
-
配置BGP时,每个自治系统的管理员需至少选择一个路由器作为“BGP发言人”;
-
不同自治系统的BGP发言人需交换路由信息,首先建立TCP连接,端口号为179:
1)在此TCP连接上交换BGP报文以建立BGP会话;
2)利用BGP会话交换路由信息;
3)使用TCP连接交换路由信息的两个BGP发言人,彼此为对方的邻站或对等站; -
BGP发言人除了运行BGP外,还要运行自治系统内所使用的路由选择协议RIP等;
-
BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统);
-
BGP发言人互相交换了网络可达性消息后,各BGP发言人根据所采用的的策略从收到的路由信息中找到到达各自治系统的较好的路由(即构造出树形结构、不存在回路的自治系统连通图)。
-
BGP只有在初始运行时邻站之间交换完整的BGP路由表,而后只会交换路由表中变化的部分,这样做可以节省网络带宽、减少路由器的处理开销;
5.6.2 BGP的4种报文
5.7 封装不同路由选择协议报文的协议
6. IPv4数据报首部格式
- TTL可防止IP数据报在网络中永久兜圈(路由环路):路由器将IP数据报首部中TTL字段值减1,如果为0则丢弃,否则转发数据报!
- 首部检验和只对数据报首部进行检错;
6.1 IP数据报分片
- 数据链路层将IP数据报封装成帧,但帧的数据载荷部分有大小限制(MTU),因此过大的IP数据报将会被分为多个小的数据报然后分别封装成帧,进而进行传输;
7. 网际控制报文协议ICMP
- ICMP:Internet Control Message Protocol;
- 目的:更有效地转发IP数据报和提高交付成功的机会;
- 主机或路由器使用ICMP发送差错报告报文和询问报文;
- ICMP报文封装在IP数据报中发送;
7.1 5种ICMP差错报告报文
-
1)终点不可达:
-
2)源点抑制:
-
3)时间超过:
-
4)参数问题:
-
5)改变路由:
7.2 不该发送ICMP差错报告报文的情况
7.3 常用的2种ICMP询问报文
7.4 ICMP应用
- 1)分组网间探测PING:测试本机与目的主机的连通性;
- 2)跟踪路由traceroute:查看本主机发送数据报到目的主机需要经过那些路由器;
8. 虚拟专用网VPN
-
VPN:Virtual Private Network;
-
虚拟专用网:利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网称为虚拟专用网;
-
一个机构可申请到的IP地址数量远小于机构内所拥有的主机数量,因此虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址(不需要申请,非公有地址),如:
-
虚拟专用网分类:
1)内联网VPN:同一机构内不同部门的内部网络所构成的虚拟专用网;
2)外联网VPN:有时一个机构的VPN需要某些外部机构参与进来,这样的VPN称为外联网VPN;
3)远程接入VPN:员工在外部想访问公司内部的专用网时,只要PC接入因特网,运行PC中的VPN软件,即可使PC和公司主机之间建立VPN隧道,进而访问专用网中的资源,此种VPN称为远程接入VPN; -
专用网A、B之间通信基本过程(专用网至少有一个路由器具有合法的全球IP地址):
1)A中主机将数据封装为内部IP数据报,发送给路由器R1;
2)路由器R1对内部IP数据报进行加密,并使用该路由器的公有地址作为新的源地址发送加密的IP数据报;
3)根据数据报中新的目的地址(路由器R2的公有地址)可使专用网B的路由器R2收到数据报;
4)R2路由器对数据报进行解密可得到原始的内部IP数据报,进而得到原始的源地址和目的地址,最后将数据报发送到目的地址对应的主机中;
- IP隧道技术:专用网之间通信需要借助公用因特网作为信息载体,传输过程中可能经过许多不同的网络和路由器,但在逻辑上看专用网之间有一条直通的点对点的链路,因此也称为IP隧道技术;
9. 网络地址转换NAT
9.1 网络地址转换NAT
- NAT:Network Address Translation;
- 目的:缓解IPv4地址空间即将耗尽的问题;
- 效果:可使大量使用内部专用地址的专用网络用户共享少量的外部全球地址来访问因特网上的主机和资源;
- 缺点:如果NAT路由器只有N个全球IP地址,则最多只能有N个内网主机可同时和因特网上的主机通信;
- 专用网连接因特网的路由器中安装NAT软件,这样的路由器称为NAT路由器,至少有一个有效的外部全球IP地址;
- NAT基本工作流程:
1)关键在于内网地址与外部地址的转换:内网发送数据时需要将内网地址转为外部地址(源地址),而内网接收数据时需要将外部地址转为内网地址(目的地址);
2)转换工作由NAT路由器通过查找内部的转换表完成;
9.2 网络地址与端口号转换NAPT
- NAPT:Network Address and Port Translation;
- 目的:解决NAT的缺点;
- 方案:结合运输层的端口号和IP地址一起进行转换;
- 效果:使用同一个外部全球IP地址的多个内网主机可同时与因特网上的主机进行通信;
- 基本工作流程与NAT类似,区别在于NAPT转换表内的记录项同时包括IP地址和端口号;
9.3 注意事项
- 1)一般外网主机是无法主动向内网主机发起通信的,因此内网主机不能直接充当因特网服务器!对于有些P2P网络应用,外网主机需要主动向内网主机发起通信,而此时在进行NAT时则会出现问题,要想建立通信需要网络应用采用特殊的NAT穿透技术实现!!
- 2)由于NAT对外网屏蔽了内网主机的网络地址,可为内网的主机提供一定的安全保护!!
参考:《计算机网络微课堂》