1.网络层概述
网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。
要实现网络层任务,需要解决以下主要问题:
- 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
- 网络层寻址问题
- 路由选择问题
因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈。
由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层。
综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。
2.网络层提供的两种服务
2.1面向连接的虚电路服务
- 可靠通信由网络来保证
- 必须建立网络层的连接——虚电路VC(Virtual Circuit)
- 通信双方沿着已建立的虚电路发送分组
- 目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。
- 这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
- 通信结束后,需要释放之前所建立的虚电路。
2.2无连接的数据报服务
- 可靠通信应当由用户主机来保证
- 不需要建立网络层连接
- 每个分组可走不同的路径
- 每个分组的首部必须携带目的主机的完整地址
- 这种通信方式所传送的分组可能误码、丢失、重复和失序。
- 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。
- 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
由于TCP/IP体系结构的因特网的网际层提供的是简单灵活。无连接的。尽最大努力交付的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。
3.IPv4
3.1IPv4地址概述
在TCP/IP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。
IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。
IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。
我国用户可向亚太网络信息中心APNIC(Asia Pacific Network Information Center)申请IP地址,需要缴费。
2011年2月3日,互联网号码分配管理局IANA(由ICANN行使职能)宣布,IPv4地址已经分配完毕。
我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署IPv6。
lPv4地址的编址方法经历了如下三个历史阶段:
32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用
8位无符号二进制整数转十进制数
十进制正整数转8位无符号二进制数
除2取余法
3.2分类编址的IPv4地址
注意事项
- 只有A类、B类和C类地址可分配给网络中的主机或路由器的各接口
- 主机号为“全0”的地址是网络地址,不能分配给主机或路由器的各接口
- 主机号为“全1”的地址是广播地址,不能分配给主机或路由器的各接口
A类地址
B类地址
注意:有些教材中指出128.0是保留网络号,B类第一个可指派的网络号为128.1.
但根据2002年9月发表的RFC 3330文档,128.0网络号已经可以分配了。有兴趣的同学可以自行查询以128.0开头的IP地址,看看它们属于哪些国家。
C类地址
注意:有些教材中指出192.0.0是保留网络号,C类第一个可指派的网络号为192.0.1。
但根据2002年9月发表的RFC 3330文档,192.0.0网络号已经可以分配了。只不过目前还没有分配出去。
【解析】
1.根据地址左起第一个十进制数的值,可以判断出网络类别(小于127的为A类,128~191的为B类,192~223的为C类);
⒉根据网络类别,就可找出地址中的网络号部分和主机号部分(A类地址网络号为左起第一个字节,B类地址网络号为左起前两个字节,C类地址网络号为左起前三个字节);
3.以下三种情况的地址不能指派给主机或路由器接口:
(1)A类网络号0和127
(2)主机号为“全0”,这是网络地址
(3)主机号为“全1”,这是广播地址
【2017年题36】下列IP地址中,只能作为IP分组的源IP地址但不能作为目的IP地址的是A
A.0.0.0.0
B.127.0.0.1
C.20.10.10.3
D.255.255.255.255
【解析】
地址0.0.0.0是一个特殊的IPv4地址,只能作为源地址使用,表示“在本网络上的本主机”。封装有DHCP Discovery报文的IP分组的源地址使用0.0.0.0;
以127开头且后面三个字节非“全O”或“全1”的IP地址是一类特殊的IPv4地址,既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试,例如常用的环回测试地址127.0.0.1;
地址255.255.255.255是一个特殊的IPv4地址,只能作为目的地址使用,表示“只在本网络上进行广播(各路由器均不转发)”。
综上所述,选项A正确。
【解析】
1.找出图中有哪些网络;
2.根据各网络中主机和路由器接口总数量来决定给各网络分配哪个类别的网络号;
3.依据所确定的网路号类别,为每个网络挑选一个网络号。
3.3划分子网的IPv4地址
为新增网络申请新的网络号会带来以下弊端:
- 需要等待时间和花费更多的费用
- 会增加其他路由器中路由表记录的数量
- 浪费原有网络中剩余的大量IP地址
从主机号部分借用一部分作为子网号
如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?
32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 子网掩码使用连续的比特1来对应网络号和子网号
- 子网掩码使用连续的比特0来对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址
【举例】已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。
【2012年题39】某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,如该主机向其所在子网发送广播分组,则目的地址可以是D
A.180.80.76.0
B.180.80.76.255
C.180.80.77.255
D.180.80.79.255
默认的子网掩码是指在未划分子网的情况下使用的子网掩码。
3.4无分类编址的IPv4地址
划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IP地址紧张的问题,同时还专门成立IPv6工作组负责研究新版本IP以彻底解决IP地址耗尽问题。
1993年,IETF发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing)的RFC文档:RFC 1517~1519和1520。
- CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念;
- CIDR可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网
的规模继续增长。
CIDR使用“斜线记法”,或称CIDR记法。即在IPv4地址后面加上斜线“/”,在斜线后面写上网络前缀所占的比特数量。
CIDR 实际上是将网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节:
- 地址块的最小地址
- 地址块的最大地址
- 地址块中的地址数量
- 地址块聚合某类网络(A类、B类或C类)的数量
- 地址掩码(也可继续称为子网掩码)
【例1】请给出CIDR地址块128.14.35.7/20的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
【练习】请给出CIDR地址块206.0.64.8/18的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
路由聚合(构造超网)
网络前缀越长,地址块越小,路由越具体;
若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。
习题
【2011年题38】在子网192.168.4.0/30中,能接收目的地址为192.168.4.3的IP分组的最大主机数是C
A.0
B.1
C.2
D.4
【2018年 题38】某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21和35.230.56.0/21,将该4条路由聚合后的目的网络地址为C
A.35.230.0.0/19
B.35.230.0.0/20
C. 35.230.32.0/19
D.35.230.32.0/20
4.IPv4地址的应用规划
定长的子网掩码FLSM(Fixed Length Subnet Mask)
- 使用同一个子网掩码来划分子网
- 每个子网所分配的IP地址数量相同,造成lP地址的浪费
变长的子网掩码VLSM(Variable Length Subnet Mask)
- 使用不同的子网掩码来划分子网
- 每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费
在该地址块中给左图所示的网络N1~N5分配子块,分配原则是“每个子块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点”。建议先给大的子块分配。
5.IP数据报的发送和转发过程
IP数据报的发送和转发过程包含以下两部分:
- 主机发送IP数据报
- 路由器转发IP数据报
为了将重点放在TCP/IP协议栈的网际层发送和转发IP数据报的过程上,在之后的举例中,我们忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程以及以太网交换机自学习和转发帧的过程。
由默认网关帮主机将IP数据报转发出去。
练习题:
【2010年题38】下列网络设备中,能够抑制广播风暴的是
I中继器
II集线器
III网桥
IV 路由器
A.仅I和II
B.仅I1
C.仅III和IV
D.仅IV
【解析】
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域。
网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域。
路由器工作在网络层,既隔离冲突域,也隔离广播域。
【2012年题37】下列关于IP路由器概念的描述中,正确的是
I运行路由协议,设置路由表
II监测到拥塞时,合理丢弃IP分组
Ⅲ对收到的IP分组头进行差错校验,确保传输的IP分组不丢失
IV根据收到的IP分组的目的IP地址,将其转发到合适的输出线路上
A.仅III、IV
B.仅I、II、IMI
C.仅I、II、IV
D.I、II、I1I、IV
【解析】
IP路由器工作在TCP/IP体系结构的网际层(或称IP层),TCP/IP体系结构的网际层并不负责可靠传输,也就是不能确保传输的IP分组不丢失。
IP路由器对收到的IP分组头进行差错校验,当发现错误时会丢弃该IP分组并向源主机发送ICMP差错报告报文(类型为参数错误)。
【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服务器的lP地址,DHCP服务器不具备路由器的功能,无法将lP分组转发到Internet。
6.静态路由配置及其可能产生的路由环路问题
-
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表。
-
这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
-
一般只在小规模网络中采用。
-
-
使用静态路由配置可能出现以下导致产生路由环路的错误
-
配置错误
-
聚合了不存在的网络
-
网络故障
-
-
路由条目的类型
- 直连网络
- 静态路由(人工配置)
- 动态路由(路由选择协议)
-
特殊的静态路由条目
- 默认路由(目的网络为0.0.0.0,地址掩码为0.0.0.0)
- 特定主机路由(目的网络为特定主机的IP地址,地址掩码为255.255.255.255)
- 黑洞路由(下一跳为null0)
默认路由举例
举例:静态路由配置错误导致路由环路
为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。
IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。
举例:聚合了不存在的网络而导致路由环路
7.路由选择协议
7.1概述
静态路由选择
- 由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由。
- 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
- 一般只在小规模网络中采用。
动态路由选择
- 路由器通过路由选择协议自动获取路由信息。
- 比较复杂、开销比较大。能较好地适应网络状态的变化。
- 适用于大规模网络。
因特网所采用的路由选择协议的主要特点
因特网采用分层次的路由选择协议
常见的路由选择协议
路由器的基本结构
7.2路由信息协议RIP的基本工作原理
-
路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
-
RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)”。
-
RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。
-
路由器到直连网络的距离定义为1。
-
路由器到非直连网络的距离定义为所经过的路由器数加1。
-
允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网。
-
- RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。
-
当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡。
-
RIP包含以下三个要点:
- 和谁交换信息:仅和相邻路由器交换信息
- 交换什么信息;自己的路由表
- 何时交换信息;周期性交换
RIP的基本工作过程:
- 路由器刚开始工作时,只知道自己到直连网络的距离为1。
- 每个路由器仅和相邻路由器周期性地交换并更新路由信息。
- 若干次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛。
RIP的路由条目的更新规则:
【2010年题35】某自治系统内采用RIP协议,若该自治系统内的路由器R1收到其邻居路田器R2的距离矢量,距离矢量中包含信息<net1,16>,则能得出的结论是 D
A.R2可以经过R1到达net1,跳数为17
B.R2可以到达net1,跳数为16
C.R1可以经过R2到达net1,跳数为17
D.R1不能经过R2到达net1
【解析】在RIP协议中,距离16表明目的网络不可达。
因此,R2无法到达net1,R1也无法通过R2到达net1。
-
RIP存在“坏消息传播得慢”的问题
-
“坏消息传播得慢”又称为路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题。
-
可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
- 限制最大路径距离为15(16表示不可达)
- 当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送
- 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)
【2016年题37】假设R1、R2、R3采用RIP协议交换路由信息,且均已收飙。看K3位测到网给201.1.2.0/25不可达,并向R2通告一次新的距离向量,则R2更新后,其到达该网络的距离是 B
A.2
B.3
C.16
D.17
【解析】
根据题目所给“R3检测到网络201.1.2.0/25不可达”可知,R3与该网络是直连的。只有直连的才能最先检测到。
又根据题目所给“R1、R2、R3采用RIP协议交换路由信息,且均已收敛”可知,先前它们各自的路由表中关于该目的网络的路由条目分别是:
再根据题目所给“R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量”可知,
最后根据题目所给“则R2更新后”可知,
7.3开放最短路径优先OSPF的基本工作原理
-
开放最短路径优先OSPF(Open Shortest Path First),是为克服RIP的缺点在1989年开发出来的。
- “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。
-
OSPF是基于链路状态的,而不像RIP那样是基于距离向量的。
-
OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路。
-
OSPF不限制网络规模,更新效率高,收敛速度快。
-
链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”(cost)。
- “代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。
- OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。
- Hello分组封装在lP数据报中,发往组播地址224.0.0.5;
- 发送周期为10秒
- 40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达。
-
使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)。LSA中包含以下内容:
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
-
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。
-
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。
-
通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致。
-
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。
-
OSPF有以下五种分组类型
- 类型1,问候(Hello)分组。用来发现和维护邻居路由器的可达性。
- 类型2,数据库描述(Database Description)分组。向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 类型3,链路状态请求(Link State Request)分组。向邻居路由器请求发送某些链路状态项目的详细信息。
- 类型4,链路状态更新(Link State Update)分组。路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态。
- 类型5,链路状态确认(Link State Acknowledgment)分组。这是对链路状态更新分组的确认分组。
- 为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)
7.4边界网关协议BGP的基本工作原理
- 外部网关协议EGP (例如边界网关协议BGP)
- 在不同自治系统内,度量路由的“代价”(距离,带宽,费用等可能不同。因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的。
-
在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人"
-
不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179
- 口在此TCP连接上交换BGP报文以建立BGP会话
- 利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
- 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
-
BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIlP。
- BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)
- 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图。
- BGP-4有以下四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化。
- UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由。
- KEEPALIVE(保活)报文:用来周期性地证实邻站的连通性。
- NOTIFICATION(通知)报文:用来发送检测到的差错。
【2013年题47(3)】R1与R2之间利用哪个路由协议交换路由信息?该路由协议的报文被封装到哪个协的公细中去输?
【解析】
R1和R2分别位于两个不同的自治系统AS1和AS2中;
自治系统之间需要使用外部网关协议EGP这一类协议,具体为边界网关协议BGP,目前使用最多的版本是BGP-4;BGP-4报文被封装在TCP报文段中进行传输。
【2017年题37】直接封装RIP、OSPF、BGP报文的协议分别是 D
A.TCP、UDP、IP
B.TCP、IP、UDP
C. UDP、TCP、IP
D.UDP、IP、TCP
8.IPv4数据报的首部格式
-
版本。占4比特,表示lP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。
-
首部长度。占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。最小十进制取值为5,表示lP数据报首部只有20字节固定部分;
-
可选字段。长度从1个字节到40个字节不等。用来支持排错、测量及安全等措施可选字段增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
-
填充字段。确保首部长度为4字节的整数倍。使用全0进行填充。
- 总长度。占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位。
-
标识。占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。
IP软件维持一个计数器,每产生一个数据报,计数器值加1,并将此值赋给标识字段。 -
标志。
占3比特,各比特含义如下:- DF位:1表示不允许分片;0表示允许分片
- MF位:1表示“后面还有分片”;0表示“这是最后一个分片”
- 保留位:必须为0
-
片偏移。
占13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。
片偏移以8个字节为单位。
- 生存时间TTL。
占8比特,最初以秒为单位,最大生存周期为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去lIP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转发,否则就丢弃。
- 协议.
占8比特,指明IPv4数据报的数据部分是何种协议数据单元。常用的一些协议和相应的协议字段值如下。
-
首部检验和
占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段(生存时间、标志、片偏移等)的取值可能发生变化。
由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此在IPv6中,路由器不再计算首部校验和,从而更快转发IP数据报。 -
源IP地址和目的IP地址
各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据报的目的主机的IP地址。
【2018年题47】某公司网络下图所示。IP地址空间192.168.1.0/24被均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了IP地址,销售部子网的MTU=1500B,技术部子网的MTU=800 B.
(2))假设主机192.168.1.1向主机192.168.1.208发送一个总长度为150OB的IP分组,IP分组的头部长度为20B,路由器在通过接口F1转发该IP分组时进行了分片。若分片时尽可能分为最大片,则一个最大IP分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?
9.网际控制报文协议ICMP
- 为了更有效地转发lP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。
- 主机或路由器使用ICMP来发送差错报告报文和询问报文。
- ICMP报文被封装在IP数据报中发送。
9.1ICMP差错报告报文
ICMP差错报告报文共有以下五种:
1.终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误。
2.源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
3.时间超过。当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段的值减1。
若结果不为0,则将该IP数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文。
4.参数问题。当路由器或目的主机收到IlP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文。
5.改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
- 以下情况不应发送ICMP差错报告报文:
- 对ICMP差错报告报文不再发送ICMP差错报告报文
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
- 对具有多播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
【2010年题36】若路由器R因为拥塞丢弃IP分组,则此时R可向发出该IP分组的源主机发送的ICMP报文类型是C
A.路由重定向
B.目的不可达
C.源点抑制
D.超时
9.2ICMP询问报文
常用的ICMP询问报文有以下两种:
-
回送请求和回答
-
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
-
收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
这种询问报文用来测试目的站是否可达及了解其有关状态。
-
-
时间戳请求和回答
- ICMP时间戳请求报文是请某个主机或路由器回答当前的曰期和时间。
- 在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。
这种询问报文用来进行时钟同步和测量时间。
9.3ICMP应用举例
-
分组网间探测PING(Packet InterNet Groper)
-
用来测试主机或路由器间的连通性
-
应用层直接使用网际层的ICMP(没有通过运输层的TCP或UDP)
-
使用ICMP回送请求和回答报文
-
-
用来测试IP数据报从源主机到达目的主机要经过哪些路由器
-
Windows版本
- tracert命令
- 应用层直接使用网际层ICMP
- 使用了ICMP回送请求和回答报文以及差错报告报文
-
Unix版本
- traceroute命令
- 在运输层使用UDP协议
- 仅使用ICMP差错报告报文
10.虚拟专用网VPN与网络地址转换NAT
10.1虚拟专用网VPN
虚拟专用网VPN(Virtual Private Network)
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
由于IPv4地址的紧缺,一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此,虚拟专用网中的各主机所分配的地址应该是本机构可自由分配的专用地址,而不是需要申请的、在因特网上使用的公有地址。
如下图所示,同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。
有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN,
在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN。
10.2网络地址转换NAT
网络地址转换NAT(Network Address Translation)
虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
参考:4.2 网络层提供的两种服务_哔哩哔哩_bilibili