📖 前言:网络层它承担着网络间的数据传输和路由选择等核心任务,通过在传输层协议的基础上添加了路由和转发等功能,使得数据能够在全球范围内的互联网中自由流动。在这篇博客中,我们将深入探讨网络层的工作原理和具体实现,了解其对于现代计算机网络应用的重要性和影响。
目录
- 🕒 0. 思维导图
- 🕒 1. 概述
- 🕒 2. 两种服务
- 🕘 2.1 面向连接的虚电路服务
- 🕘 2.2 无连接的数据报服务
- 🕒 3. IP地址
- 🕒 4. ARP协议
- 🕒 5. IPV4
- 🕒 6. IP数据报的发送和转发过程
- 🕒 7. 静态路由配置与路由环路问题
- 🕒 8. 路由选择协议
- 🕘 8.1 概述
- 🕘 8.2 路由信息协议RIP的基本工作原理
- 🕘 8.3 开放最短路径优先OSPF的基本工作原理
- 🕘 8.4 边界网关协议BGP的基本工作原理
- 🕒 9. 虚拟专用网VPN
- 🕒 10. 网络地址转换NAT
- 🕒 11. IPV6
- 🕒 12. 课后习题
🕒 0. 思维导图
🕒 1. 概述
主要任务是实现网络互连,进而实现数据包在各网络之间的传输
因特网(lnternet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。
综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。
🕒 2. 两种服务
🕘 2.1 面向连接的虚电路服务
- 可靠的通信由网络来保证
- 必须建立网络层的连接——虚电路VC(Virtual Circuit)
- 通信双方沿着已建立的虚电路发送分组
- 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
- 通信结束后,需要释放之前所建立的虚电路
- 很多广域分组交换网都使用面向连接的虚电路服务。例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等。
🕘 2.2 无连接的数据报服务
- 可靠通信应当由用户主机来保证
- 不需要建立网络层连接
- 每个分组可走不同路径
- 每个分组的首部必须携带目的主机的完整地址
- 这种通信方式所传送的分组可能误码、丢失、重复和失序
- 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉
- 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
对比方面 | 虚电路服务 | 数据报服务 |
---|---|---|
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须建立网络层连接 | 不需要建立网络层连接 |
终点地址 | 仅在连接建立阶段使用(需要进行路由选择),每个分组使用短的虚电路号(VCID),不需要为每条虚电路预分配带宽。 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组可走不同的路由 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丟失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
服务质量保证 | 可以将通信资源提前分配给每一个虚电路,容易实现 | 很难实现 |
由于TCP/IP体系结构的因特网的网际层提供的是简单灵活、无连接的,不可靠的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。
🕒 3. IP地址
IP地址是TCP/IP体系结构网际层所使用的地址
IP地址是Internet上的主机和路由器所使用的的地址,由两部分信息构成:
- 网络号:标识因特网上数以百万计的网络;
- 主机号:标识同一网络上不同主机(或路由器各接口)。
MAC地址不具备区分不同网络的功能,而IP地址可以通过网络号做到
- 如果只是一个单独网络,不接入因特网,则使用MAC地址就足够了(这不是一般用户的应用方式)
- 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
数据包转发过程中IP地址与MAC地址变换情况
- 数据报转发过程中源IP地址和目的IP地址保持不变;
- 数据包转发过程中源MAC地址和目的MAC地址(由ARP协议获得)逐个链路(或逐个网络)改变;
- 路由器上有路由表,记录了要到目的IP地址,先要走哪些路(即下一跳位置)。所以H1起初只带有目的IP地址,查询路由表后路由器指路,从而知道下一步该往哪里走,从而不断转发直至到达目的地。
【2018年 题37】路由器R通过以太网交换机S1和S2连接两个网络,R的接口、主机H1和H2的lP地址与MAC地址如下图所示。若H1向H2发送一个IP分组P,则H1发出的封装P的以太网帧的目的MAC地址、H2收到的封装P的以太网帧的源MAC地址分别是
A.00-a1-b2-c3-d4-62 00-1a-2b-3c-4d-52
B.00-a1-b2-c3-d4-62 00-1a-2b-3c-4d-61
C.00-1a-2b-3c-4d-51 00-1a-2b-3c-4d-52
D.00-1a-2b-3c-4d-51 00-a1-b2-c3-d4-61
解析:
🕒 4. ARP协议
地址解析协议ARP
协议属于TCP/IP
体系结构的网际层,其作用是已知设备所分配到的IP
地址,使用ARP
协议可以通过该IP地址获取到设备的MAC
地址。
- 数据的发送需要经过链路,仅仅知道IP地址是无法在数据链路层实现传输的,因此我们需要得到
IP
地址与MAC
地址的对应关系,即地址解析。 - 每台主机都会有一个ARP高速缓存表,记录有IP地址与MAC地址的对应关系。
- 初始
ARP
高速缓存表为空,假设此时B
知道C
的IP
地址,准备发送信息,但是由于不知道C
的MAC
地址,因此无法封装数据帧,所以此时会广播一个ARP请求报文(封装在MAC帧中,目的地址为广播地址FF-FF-FF-FF-FF-FF
),内容如下:- 我的
IP
地址是:xxx
;我的MAC
地址是:XXX
;我想知道C
主机的MAC
地址是多少?这个广播帧会被该广播域的所有主机收到; A
主机收到后交由上层处理,发现B
问的不是他,所以不予理会;C
收到后交由上层处理,发现这个IP
地址正是自己,因此首先将B的MAC地址和IP地址的对应关系记录到自己的高速缓存表中,接着返回给ARP响应报文(封装在单播MAC帧中,目的地址为B
的MAC地址),其中包含自己的MAC
地址。
- 我的
- ARP高速缓存条目有静态与动态两种类型:
- 动态代表是通过广播自动获取的条目,生命周期默认为两分钟;
- 静态是手工设置的条目,不同操作系统下的生命周期不同。
- ARP协议只能在一段链路或一个网络上使用。
- 除ARP请求和响应外,ARP还有其他类型的报文(例如用于检查IP地址冲交的“无故ARP、免费ARP(Gratuitous ARP)" )。
- ARP没有安全验证机制,存在ARP欺骗(攻击)问题。
🕒 5. IPV4
🔎 【网络协议详解】——IPv4
🕒 6. IP数据报的发送和转发过程
同一个网络之间的主机可以直接通信,不同网络之间的主机通信需要路由器中转。
接下来的举例忽略数据链路层的过程。
IP数据报的发送和转发过程包含以下两部分:
-
主机发送IP数据报
- 判断目的主机是否与自己在同一个网络(将自身的
IP
地址与子网掩码相与得到自身的网络号1
,再将目的IP
地址与自身子网掩码相与得到网络号2
。若两个网络号相等,则说明处在同一个网络)- 若在同一个网络,则属于直接交付;
- 若不在同一个网络,则属于间接交付
- 传输给主机所在网络的默认网关(路由器),由默认网关帮忙转发。所谓默认网关,即当路由表中查不到数据时会将数据发往的路由器端口IP地址。
- 判断目的主机是否与自己在同一个网络(将自身的
-
路由器转发IP数据报
- 检查IP数据报首部是否出错:
- 若出错,则直接丢弃该IP数据报并通告源主机;
- 若没有出错,则进行转发;
- 根据IP数据报的目的地址在路由表中查找匹配的条目(将目的地址与路由条目中的地址掩码相与得到目的网络地址,该目的网络地址与路由条目中的目的网络地址不相同,则这条路由条目不匹配):
- 若找到匹配的条目,则转发给条目中指示的下一跳;
- 若找不到,则丢弃该IP数据报并通告源主机;
- 检查IP数据报首部是否出错:
-
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域。
-
网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域。
-
路由器工作在网络层,既隔离冲突域,也隔离广播域,有效抑制广播风暴。
【2012年题37】下列关于IP路由器概念的描述中,正确的是()
Ⅰ 运行路由协议,设置路由表
Ⅱ 监测到拥塞时,合理丢弃lP分组
Ⅲ 对收到的IP分组头进行差错校验,确保传输的IP分组不丢失
Ⅳ 根据收到的IP分组的目的IP地址,将其转发到合适的输出线路上
A.仅Ⅲ、Ⅳ
B.仅Ⅰ、Ⅱ、Ⅲ
C.仅Ⅰ、Ⅱ、Ⅳ
D.Ⅰ、Ⅱ、Ⅲ、Ⅳ
【解析】
IP路由器工作在TCP/IP体系结构的网际层(或称IP层),TCP/IP体系结构的网际层并不负责可靠传输,也就是不能确保传输的IP分组不丢失。
IP路由器对收到的IP分组头进行差错校验,当发现错误时会丢弃该IP分组并向源主机发送ICMP差错报告报文(类型为参数错误)。
因此选C。
【2015年题47】某网络拓扑如下图所示,其中路由器内网接口、DHCP服务器、WWW服务器与主机1均采用静态IP地址配置,相关地址信息见图中标注;主机2~ 主机N通过DHCP服务器动态获取IP地址等配置信息。
(3)若主机1的子网掩码和默认网关分别配置为255.255.255.0和111.123.15.2,则该主机是否能访问WWW服务器?是否能访问Internet?请说明理由。
主机1可以访问WWW服务器。从IP地址与子网掩码配置以及物理连接方面看,主机1和WWW服务器在同一网络中。
主机1不能访问Internet,因为它的默认网关错误配置成了DHCP服务器的IP地址,DHCP服务器不具备路由器的功能,无法将IP分组转发到Internet。正确的配置应该指定为路由器该接口的IP地址。
🕒 7. 静态路由配置与路由环路问题
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。
- 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
- 一般只在小规模网络中采用。
使用静态路由配置可能出现以下导致产生路由环路的错误
- 配置错误
- 聚合了不存在的网络口
- 网络故障
路由条目的类型:
- 直连网络
- 静态路由(人工配置)
- 动态路由(路由选择协议)
特殊的静态路由条目
- 默认路由(目的网络为0.0.0.0,地址掩码为0.0.0.0)
- 特定主机路由(目的网络为特定主机的lP地址,地址掩码为255.255.255.255)
- 黑洞路由(下一跳为null0)
静态路由配置
默认路由、特定主机路由
静态路由配置错误
- 为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。
- IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。
聚合了不存在网络:
通过增加黑洞路由解决这一问题:
网络故障:
通过增加黑洞路由解决这一问题:
如果之前的故障消失了,则R1又自动地得出了其接口0的直连网络的路由条目,并将人工配置的针对该网络的黑洞路由条目设置为失效状态。
🕒 8. 路由选择协议
🕘 8.1 概述
静态路由选择 | 动态路由选择 |
---|---|
由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由 | 路由器通过路由选择协议自动获取路由信息 |
这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化 | 比较复杂、开销比较大。能较好地适应网络状态的变化 |
一般只在小规模网络中采用 | 适用于大规模网络 |
因特网所采用的的路由选择协议主要特点:
- 自适应:动态路由选择,能较好地适应网络状态的变化
- 分布式:路由器之间交换路由信息
- 分层次:将整个因特网划分为许多较小的自治系统AS(Autonomous System)
自治系统(AS):由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
每个自治系统都有唯一的编号,这个编号是由因特网地址分配组织(IANA)分配的。
自治系统的编号范围为1~65535
,其中:
1~64511
是注册的因特网编号64512~65535
是私有网络编号。
内部网关协议IGP(如路由信息协议RIP或最短路径优先OSPF)
- 设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络
- 无需考虑自治系统外部其他方面的策略
外部网关协议EGP(如边界网关协议BGP)
- 在不同自治系统内,度量路由的"代价"(距离,宽带,费用等)可能不同。因此,对于自治系统之间的路由选择,使用"代价"作为度量来寻找最佳路由是不行的
- 比如A系统路由选择度量是距离,B系统是带宽……那么A到系统E的路由怎样走最好呢?由于没有统一度量,所以不能直接得到最佳路由
- 自治系统之间的路由选择必须考虑相关策略(政治、经济、安全等)
- 如中国的数据报尽量要绕开美国的自治系统
IGP 与EGP 的区别有以下两点:
- IGP 是运行在AS 内部的路由协议,主要有RIP、OSPF 及IS-IS,IGP 着重于发现和计算路由。
- EGP 是运行于AS 之间的路由协议,现通常都是指BGP,BGP 是实现路由控制和选择最好(未必最优)的路由协议。
注:此处网关含义与路由器相同。
常见的路由选择协议:
路由器的基本结构:
- 路由表一般仅包含从目的网络到下一跳的映射
- 路由表需要对网络拓扑变化的计算最优化
- 转发表是从路由表得出的
- 转发表的结构应当使查找过程最优化
🕘 8.2 路由信息协议RIP的基本工作原理
🔎 【网络协议详解】——RIP协议
🕘 8.3 开放最短路径优先OSPF的基本工作原理
🔎 【网络协议详解】——OSPF协议
🕘 8.4 边界网关协议BGP的基本工作原理
🔎 【网络协议详解】——BGP协议
🕒 9. 虚拟专用网VPN
- 利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网VPN(Virtual Private Network)。
- 由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
专用(私有)地址:
10.0.0.0~10.255.255.255(10/8地址块)
172.16.0.0~172.31.255.255(172.16/12地址块)
192.168.0.0~192.168.255.255(192.168/16地址块)
IP隧道技术:
如下图所示,同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。
有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN。
在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN。
🕒 10. 网络地址转换NAT
虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
1994年提出了一种网络地址转换NAT(Network Address Translation)的方法再次缓解了IPv4地址空间即将耗尽的问题。
(静态或动态)NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
在因特网中的所有路由器,对目的地址是专用(私有)地址的数据报一律不进行转发。RFC1918指明的专用该地址是:
(1)10.0.0.0到10.255.255.255(或记为10/8,它又称为24位块)
(2)172.16.0.0到172.31.255.255(或记为172.16/12,它又称为20位块)
(3)192.168.0.0到192.168.255.255(或记为192.168/16,它又称为16位块)
该转换方法存在一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信。(1个私有IP地址对1个公有IP地址)
由于绝大多数的网络应用都是使用运输层协议TCP或UDP来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。
这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP地址一起进行转换的技术叫作网络地址与端口号转换NAPT(Network Address and Port Translation)。
不可以由外网主机主动与内网主机进行通信,对于一些P2P网络应用,需要外网主机主动与内网主机进行通信,在通过NAT时会遇到问题,需要网络应用自己使用一些特殊的NAT穿越技术来解决问题。
由于NAT对外网屏蔽了内网主机的网络地址,能为内网的主机提供一定的安全保护。
NAT技术实验:
实验背景:为了方便同学们访问图书馆资源,学校图书馆架设了一个FTP服务器,方便师生在家里通过Internet访问下载教学资源,同时申请了公网地址102.3.1.3/24
作为该服务器的对外地址,原公网地址调整为102.3.1.1/24
。同时教学办公楼、图书馆、南区学生宿舍、英东楼北区学生宿舍也有访问Internet的需求,但私有地址不能用在公网上,需要进行NAT地址转换。
请分别使用静态NAT、NAPT技术使得上述需求得以满足。本次实验在IP组网规划的那次实验基础上完成。
实验拓扑:
实验步骤:
1、配置Server1的IP地址等信息
2、完成出口路由器R1的静态NAT配置,以及ISP撤销上次配的静态路由
[ISP]int g0/0/1
[ISP-GigabitEthernet0/0/1]ip add 102.3.2.254 24
[ISP]undo ip route-static 172.16.0.0 20 102.3.1.1 # 撤销上次配的静态路由
[ISP-Serial4/0/0]ip add 102.3.1.2 24
[R1-Serial2/0/0]ip add 102.3.1.1 24
[R1-Serial2/0/0]nat static global 102.3.1.3 inside 172.16.14.189
3、配置Client1的IP地址及ISP接口地址(即Client1的网关地址)
4、验证Client1是否可以访问Server1的ftp服务器
在ISP的串口上启动抓包软件;双击Server1,打开服务器信息选项卡,选择FTPServer,配置好文件根目录为自己主机某个文件夹,点启动。
5、双击Client1,打开客户端信息选项卡,选择FtpClient,服务器地址输入Server1的外网地址,文件传输模式设为PORT,点击登录,查看是否登录成功,如看到服务器文件列表中文件与前一步所设文件夹内的内容一致,则成功登录,
思考题1:此时并未设置ISP上新增网段的路由,为何Client1可以访问Server1?
A:此时完成了静态 NAT,对Client1而言,访问的IP是102.3.1.3。对ISP而言,这个IP是它的直连网段(s0/0/0口所在网段)可达;对R1而言,前一个实验已经部署了默认路由,可达。
思考题2:为何删了ISP上的静态路由仍然可以连通呢?
A:此时完成了NAPT,对ISP而言,两边的网段
是102.3.1.0/24和102.3.2.0/24,都是它的直连网段,均可达;对R1而言,前一个实验已经部署了默认路由,可达。
思考题3:观察此时PC1-PC5访问Client1的数据包,如果Client1主动发起流量访问PC1,能否成功,为什么?
A:不能成功,因为没有做 NAPT之前,PC1的地址ISP路由不可达。Client1主动发起流量时,PC1没有做 NAPT。
🕒 11. IPV6
IPv6时代来临:IPv6是什么?
🔎 【网络协议详解】——IPv6协议
🕒 12. 课后习题
-
【单选题】一个C类网络至少需要划分为5个子网,每个子网最多20台主机,则适用的子网掩码是()。
A、255.255.255.192
B、255.255.255.240
C、255.255.255.248
D、255.255.255.224 -
【单选题】某单位分配了一个B类地址,计划将内部网络分成35个子网,将来要增加16个子网,每个子网中的主机数目接近800台,可行的掩码方案为( )。
A、255.255.248.0
B、255.255.252.0
C、255.255.254.0
D、255.255.255.0 -
【单选题】主机A发送IP数据报给主机B,途中经过了2个路由器,则在IP数据报的发送过程中使用ARP的次数是
A、1
B、2
C、3
D、4 -
【判断题】OSPF协议与RIP协议一样采用分类的IP地址,所以宣告网络时不需要指明子网掩码。
-
【单选题】不考虑NAT,在Internet中,IP数据报从源主机到目的主机可能需要经过多个网络和路由器,在整个传输过程中,IP数据报首部中的
A、源IP地址和目的IP地址都不会发生变化
B、源IP地址有可能发生变化而目的IP地址不会发生变化
C、源IP地址不会发生变化而目的IP地址有可能发生变化
D、源IP地址和目的IP地址都有可能发生变化 -
【单选题】为了减少IPv4地址的浪费,对于两个路由器之间的一条点对点链路,子网掩码应配置为
A、255.255.128.0
B、255.255.192.0
C、255.255.255.0
D、255.255.255.252
答案:1.D(解析:C类子网的掩码是255.255.255.0,要求的子网数转换为二进制5=101,占了三位,因而最后一个字节为11100000=224)
2.B(解析:
2
n
≥
800
,
2
m
≥
51
,
m
+
n
=
16
2^n \geq 800, 2^m\geq 51, m+n=16
2n≥800,2m≥51,m+n=16 248=11111000,252=11111100,254=11111110,255=11111111)
3.C(解析:ARP协议只能逐链路(或网络)使用。若源主机与目的主机之间有n个路由器,则使用ARP的次数为n+1。)
4.×(解析:OSPF采用划分子网的IP地址和CIDR地址,宣告网络时需要指明子网掩码。)
5.A(解析:源lP地址和目的IP地址始终保持不变;源MAC地址和目的MAC地址逐链路改变。)
6.D(解析:两个路由器之间的点对点链路,这种场景里只涉及两个路由器的两个接口需要进行区分,也就意味着只需要2个IP地址,所以我们分配IP地址时,这个链路所属的网络就只需要2个路由器接口IP地址+1个网络地址+1个广播地址=4个IP地址,所以主机号需要2位,网络号的位数=32位-2位=30位。根据子网掩码的定义,网络位全部取“1”,主机位取“0”,用点分十进制表示出来就是255.255.255.252)
OK,以上就是本期知识点“网络层”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页