网络层
由于TCP/IP体系结构的因特网的网际层提供的是简单灵活、无连接的、尽最大努力交付的数据报服务,因此本章主要围绕网际层如何传送IP数据报这个主题进行讨论。
网络层提供的两种服务
-
面向连接的虚电路服务
-
可靠的通信由网络来保证
-
必须建立网络层的连接----虚电路VC(Virtual Circuit)
注意:虚电路表示这是一条逻辑上的连接,数据分组都沿着这条逻辑链接按照存储转发方式传送。所以这不是真正建立一条物理连接。
采用电路交换的电话通信,则是先建立一条真正的连接。
因此分组交换的虚连接与电路交换的连接只是类似,但并不完全一样。
-
通信双方沿着已建立的虚电路发送分组
-
目的主机的地址仅在连接建立阶段使用,之后每个分组的首部只需携带一条虚电路的编号(构成虚电路的每一段链路都有一个虚电路编号)。
-
这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方(无差错按序到达、不丢失、不重复)。
-
通信结束后,需要释放之前所建立的虚电路
-
很多广域分组交换网都使用面向连接的虚电路服务,例如,曾经的X.25和逐渐过时的帧中继FR、异步传输模式ATM等。
-
-
无连接的数据报服务
- 可靠通信应当由用户主机来保证
- 不需要建立网络层连接
- 每个分组可走不同路径
- 每个分组的首部必须携带目的主机的完整地址
- 这种通信方式所传送的分组可能误码、丢失、重复和失序
- 由于网络本身不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉
- 因特网采用了这种设计思想,也就是将复杂的网络处理功能置于因特网的边缘(用户主机和其内部的运输层),而将相对简单的尽最大努力的分组交付功能置于因特网核心。
665
IPv4
定义:
IPv4地址就是给因特网(Internet)上的 每一台主机(或路由器)的每一个接口 ** 分配一个 在全世界范围内是唯一的32比特的标识符**。
IP地址由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)进行分配。
- 我国用户可向亚太网络信息中心APNIC(Asia Pacifc Network Information Center)申请IP地址,需要缴费。
- 2011年2月3日,互联网号码分配管理局IANA(由ICANN行使职能)宣布,IPv4地址已经分配完毕
- 我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时全面开展商用部署IPv6.
表示方法:
每八个比特一组,采用点分十进制表示方法。
IPv4的地址编制方法经历三个历史阶段:
分类编址
区分:
注意 A、B、C类地址的二进制前缀,以及对应的网络号和主机号位数。
-
A类地址网络号第1位固定为
0
,网络号后面部分不能全0,也不能全1,所以网络号范围是1~126
可指派网络数量:2(8-1)-2 = 126 (减 2:除去最小网络号0和最大网络号127)
每个网络中可分配IP地址数量:224-2((减2:除去主机号为全0的网络地址和全1的广播地址)
-
B类地址网络号前2位固定为
10
,网络号后面部分可以全取0或1,所以网络号范围是128.0~191.255
可指派网络数量:2(16-2) = 126 (幂减 2:除去前缀的前两位)
每个网络中可分配IP地址数量:216-2 = 65534(减2:除去主机号为全0的网络地址和全1的广播地址)
(根据2002年9月发表的RFC3330文档,B类地址不需要保留网络号,也就是 128.0 已经可以分配了。)
-
C类地址网络号前3位固定为
110
,网络后后面部分可以全取0或1,所以网络号范围是192.0.0~223.255.255
1指派网络数量:2(24-3) = 126 (幂减 2:除去前缀的前两位)
每个网络中可分配IP地址数量:28-2 = 65534(减2:除去主机号为全0的网络地址和全1的广播地址)
(根据2002年9月发表的RFC3330文档,B类地址不需要保留网络号,也就是 192.0 已经可以分配了。)
-
D类地址为多播地址,IP地址为
224.0.0.0~239.255.255.255
注意:
-
[每类地址]都有一个最小网络号 0,即网络位全为 0 的地址保留不指派。都有一个最大网络号 255,作为广播地址不指派。
第一个可指派网络号为1,最后一个网络号为254。
-
[A 类地址]的最大网络号127 保留,作为本地环回测试地址,不指派。
最小的本地环回测试地址为 127.0.0.1
最大的本地环回测试地址为 127.255.255.254
划分子网
应用场景:
比如一个单位有300台主机,此时需要申请一个B类网络地址,也就是有65534个IP地址。很容易得知,分配出去300个IP地址后,申请得到的B类网络还剩下很多IP地址。这些剩余IP地址只能由该单位的同一个网络使用。
当单位扩大规模,需要再添加两个子网的时,又要为这两个子网分别申请B类地址,这会花费一些不必要的支出,实际上子网1申请到的B类地址还有很多没用到,我们希望能够将这些剩余地址应用到其他子网中(节约地址)。
为新增网络申请新的网络号会带来以下弊端:
-
需要等待时间和花费更多的费用
-
会增加其他路由器中路由表记录的数量
-
浪费原有网络中剩余的大量IP地址
划分子网:
灵魂是子网掩码。
通过一个32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号
- 子网掩码使用连续的**比特1对应网络号+子网号(**子网号来自原先的一部分主机号)
- 子网掩码使用连续的比特0对应主机号
- 将划分子网的IPv4地址与其相应的子网掩码进行**(逻辑与运算)【即掩码是1的部分】**就可得到IPv4地址所在子网的网络地址
无分类编址
应用场景:
划分子网在一定程度上缓解了因特网发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
1993年,IETF发布了无分类域间路由选择CIDR
-
CIDR消除了传统的A类、B类和C类地址,以及划分子网的概念
-
CIDR可以更加有效地分配IPv4地址空间
-
CIDR使用**“斜线记法”**,或称CIDR记法。即在IPv4地址后面加上斜线"/",在斜线后面写上网络前缀所占比特数量
CIDR实际上是将网络前缀都相同的连续IP地址组成一个"CIDR地址块"
我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节:
- 地址块的最小地址
- 地址块的最大地址
- 地址块中的地址数量
- 地址块聚合某类网络(A类、B类或C类)的数量
- 地址掩码(也可继续称为子网掩码)
IPv4划分地址块的不同应用
给定一个IPv4地址块,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中的不同网络,进而可以给个网络中的主机和路由器接口分配IPv4地址。
如何划分,有两种方法:
-
定长的子网掩码FLSM(Fixed Length Subnet Mask)
使用同一个子网掩码来划分子网,每个子网所分配的IP地址数量相
同,造成IP地址的浪费。 -
变长的子网掩码VLSM(Variable Length Subnet Mask)
使用不同的子网掩码来划分子网,每个子网所分配的IP地址数量可以不同,尽可能减少对IP地址的浪费。
下面举例说明:
-
定长思路
- 变长思路
”假设申请到的地址块为218.75.230.0/24,请使用变长的子网掩码给下图所示的小型互联网中的各设备分配IP地址“
分析主机号位数和网络前缀位数。
分析后可知,划分需求是:从地址块218.75.230.0/24中取出5个地址块:
(1个“/27”地址块,3个“/28”地址块,1个“/30”地址块),按需分配给下图所示的5个网络。
按照先给大子块分配(网络地址块少,主机地址数量多,)的原则,先给网络N2划分。
所以以网络N2为例:
218.75.230.0 是网络N2的网络地址,218.75.230.31是网络N2的广播地址。
中间即是网络N2的可分配地址。
以此类推…
IP数据报发送转发过程
同一个网络之间的主机可以直接通信,不同网络之间的主机通信需要路由器中转。
直接交付与间接交付
同一网络中的主机之间可以直接通信,属于直接交付。
不同网络之间的主机通信,需要路由器中转,属于间接交付。
源主机如何判断目的主机是否和自己在同一个网络中?
将自身IP地址与子网掩码相与得到自身的网络号1,再将目的IP地址与自身子网掩码相与得到网络号2。若两个网络号相等,则说明处在同一个网络,不能则不再同一网络,属于间接交付。
主机如何知道应该把IP数据报交给哪个路由器进行转发呢?
用户为了能让本网络主机与其他网络主机进行通信,就必须给其指定本网络中的一个路由器,由该路由器进行帮忙转发。
所指定的路由器,称为默认网关。
所谓默认网关,即当路由表中查不到数据时会将数据发往的路由器端口IP地址。
路由器收到IP数据包后如何转发?
路由器首先会检查IP数据报的首部是否出错:
若出错,丢弃该IP数据包并通告源主机;
未出错,则进行转发。
根据IP数据包的目的地址,在路由表中查找匹配的条目:
若找到匹配条目,则转发给条目中指示的吓一跳;
若找不到,则丢弃该IP数据包并通告源主机。
冲突域和广播域
-
中继器和集线器工作在物理层,既不隔离冲突域也不隔离广播域。
-
集线器、网桥和交换机(多端口网桥)工作在数据链路层,可以隔离冲突域,不能隔离广播域。
-
路由器工作在网络层,既隔离冲突域,也隔离广播域。
路由器隔离广播域。否则会有广播风暴。
路由聚合
如路由器A上连接同一网络的多台主机,路由器B与A相连。若A将所有主机的具体IP地址都报给B,则路由器B中会增加多项路由条目。
可实际上B向A中任意一个主机转发数据的时都是走同一个端口,因此我们可以将这些网络的共同前缀提取出来成为新的网络号,同时将剩余主机号置0放入路由器B中
如:A
连接了172.1.4.0/25
和172.1.7.0/24
,则提取公共前缀聚合后变为172.1.4.0/22
IPv4数据报首部格式
-
版本
占
4
比特,表示IP
协议版本。通信双方使用的IP
协议版本必须一致。目前广泛使用的IP
协议版本为号为4(IPv4)
-
首部长度
占
4
比特,表示IP
数据报首部长度。该字段取值以4字节为单位最小十进制取值为5,表示IP数据报首部只有20字节【
4
字节单位,所以取值5
对应20
字节】固定部分最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分
-
可选字段
长度从
1
到40
个字节不等。用来支持排错、测量及安全等措施可选字段增加了
IP
数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理IP数据报的开销。实际上可选字段很少被使用 -
填充字段
确保首部长度为
4
字节长度的整数倍,使用全0
进行填充 -
区分服务
占
8
比特,利用该字段的不同数值可提供不同等级的服务质量,只有在使用区分服务时,该字段才起作用。一般情况下不使用该字段 -
总长度
占16比特,表示
IP
数据报的总长度【首部+数据载荷】,最大取值为十进制65535
,以字节为单位 -
标识
占
16
比特,属于同一个数据报的各分片数据报应该具有相同的标识【可理解为ID】IP
软件维持一个计数器,每产生一个数据报,计数器值+1
,并将此值赋给标识字段 -
标志
占
3
比特,各比特含义如下-
DF
位:1
表示不允许分片,0
表示允许 -
MF
位:1
表示"后面还有分片",0
表示"这是最后一个分片" - 保留位:必须为
0
-
-
片偏移(必须是整数)
占
13
比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少单位片偏移以8个字节为单位
举例子:
-
生存时间
占8比特,最初以秒为单位,最大生存周期为
255
秒;路由器转发IP数据报时,将IP
数据报首部中的该字段值减去IP
数据报在本路由器上耗费的时间,若不为0
【说明路由器消耗时间后还活着】就转发,否则丢弃现在以"跳数"为单位,路由器转发IP数据报时,将IP数据报首部中的该字段值减1,若不为0就转发,否则丢弃【防止兜圈】
-
协议
占
8
比特,指明IPv4
数据报的数据部分是何种协议数据单元 -
首部检验和
占16比特,用来检测首部在传输过程中是否出现差错,比
CRC
检验码简单,称为因特网检验和IP
数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段【生存时间、标志、片偏移等】的取值可能发生变化由于
IP
层本身不提供可靠传输服务,并且计算首部校验和是一项耗时的操作,因此在IPv6
中,路由器不再计算首部校验和,从而更快转发IP
数据报 -
源IP地址和目的IP地址
各占32比特,用来填写发送该
IP
数据报的源主机IP
地址和接收该IP
数据报的目的主机
路由选择协议概述
路由选择分为静态路由选择与动态路由选择。
-
静态路由选择:
1.由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由。
2.这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、拓扑等)的变化。
3.一般只在小规模网络中采用。 -
动态路由选择:
1.路由器通过路由选择协议自动获取路由信息。
2.比较复杂、开销比较大。能较好地适应网络状态的变化。
3.适用于大规模网络。
静态路由配置
**概念:**是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表
可能由于:①配置错误 ②聚合了不存在的网络 ③网络故障 而出现路由环路错误
默认路由为:0.0.0.0/0。
作用是当路由表不知道往哪里转发时,就会往默认路由指定的下一跳位置转发。
根据网络号最长匹配原理,默认路由网络号长度为0,因此一定是最后一个被匹配的条目。
特定主机路由:具体主机IP/32。网络号前缀长度32保证了这是第一个被匹配的静态条目。
如何防止错误路由导致IP数据报永久兜圈?
在IP数据报首部设置生存时间TTL字段
IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃
对于聚合后或由于网络故障而不存在的路由条目设置黑洞路由
所谓黑洞路由,即路由器应该丢弃的路由。
路由器基本结构
-
路由选择部分的核心部件:路由选择处理机
任务:根据所使用的路由选择协议周期性地与其他路由器进行路由信息交互,来更新路由表。
-
分组转发部分:
分三部分 1.交换结构 2.一组输入端口 2.一组输出端口。
一些属性:
-
路由器处理不同信息时:
- 当信号从某个端口进入路由器时,路由器会将信号从输入端口查表转发到对应输出端口。
- 而如果是路由器之间交换路由信息的路由报文,则将这类分组送交路由选择处理机。
路由选择处理机根据分组的内容来更新自己的路由表。
- 路由表一般仅包含从目的网络到下一跳的映射
- 路由表需要对网络拓扑变化的计算最优化
- 转发表是从路由表得出的
- 转发表的结构应当使查找过程最优化
本课不严格区分路由表与转发表。
-
路由选择处理机除了处理收到的路由报文外,还会周期性给其他路由器发送自己所知道的路由信息。
-
路由器各端口还应具有输入缓冲区和输出缓冲区。
输入缓冲区用来暂存新进入路由器但还来不及处理的分组。
输出缓冲区用来暂存已经处理完毕但还来不及发送的分组。
-
路由器的端口一般都具有输入和输出的功能。
路由选择协议
因特网所采用的的路由选择协议主要特点
- 自适应:动态路由选择,能较好地适应网络状态的变化
- 分布式:路由器之间交换路由信息,共同完成路由信息获取和更新。
-
分层次:将整个因特网划分为许多较小的网络群自治系统
AS
-
域间路由选择使用外部网关协议 EGP
早期用网关代替路由器,现在可以用ERP代替EGP。
-
域内路由选择使用内部网关协议 IGP
现在可以用IRP代替EGP。
EGP 和 IGP 只是路由选择协议的分类名称,不是具体协议。
IGP 使用的协议具有独立性,和其他 IGP不相关。
路由信息协议RIP
特点:
-
路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
-
RIP
要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)” -
RIP
使用跳数作为度量来衡量到达目的网络的距离- 路由器到直连网络的距离定义为
1
- 路由器到非直连网络的距离定义为所经过的路由器数
+1
- 允许一条路径最多只能包含15个路由器。"距离"等于16时相当于不可达。因此,RIP只适用于小型互联网
- 路由器到直连网络的距离定义为
-
RIP
认为好的路由就是"距离短"的路由,也就是所通过路由器数量最少的路由。 -
当到达同一目的网络有多条"距离相等"的路由时,可以进行等价负载均衡。
-
RIP
包含以下三个要点- 和谁交换信息 仅和相邻路由器交换信息
- 交换什么信息 交换的是自己路由表的信息
- 何时交换信息 周期性交换信息(例如每30秒)
RIP存在的问题
存在"坏消息传播很慢"的问题,又称为路由环路(两个路由器相互学习错误路由,造成循环)或距离无穷计数问题。
这是距离向量算法的一个固有问题,可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
减少问题的措施:
- 限制最大路径距离为15(16表示不可达)。
- 当路由表发生变化时就立即发送更新报文(即"触发更新"),而不是周期性发送。
- 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口反方向传送(即**“水平分割”“毒性反转”**)。
开放最短路径优先OSPF
属性
开放最短路径优先OSPF(0pen Shortest Path First),是为克服RIP的缺点在1989年开发出来的。
“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
“**最短路径优先”**是因为使用了Dijkstra提出的最短路径算法SPF。
简单来说就是得到一个带权有向图,以当前路由器为起点,通过迪杰斯特拉算法得到到达某个点的最短路径
- OSPF基于链路状态,而不像RIP那样是基于距离向量。
- 采用SPF算法计算路由,从算法上保证了不会产生路由环路。
- OSPF不限制网络规模,更新效率高,收敛速度快
- 链路状态是指本路由器都和哪些路由器相邻,以及相应链路的"代价"
- "代价"的意思是费用、距离、时延、带宽等,这些由网络管理人员确定。
OSPF五种分组
-
问候(Hello)分组
用来发现和维护邻居路由器的可达性
-
数据库描述(Database Description)分组
向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
-
链路状态请求信息(Link State Request)分组
向邻居路由器请求发送特定链路状态项目的详细信息
-
链路状态更新LSU(Link State Update)分组
路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态
-
链路状态确认(Link State Acknowledgement)分组
这是对链路状态更新分组的确认分组
基本工作原理
-
OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。
-
Hello分组封装在IP数据报中,发往组播地址224.0.0.5;
-
发送周期为10秒;
-
40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达
-
-
使用OSPF的每个路由器都会产生链路状态通告LSA(link state advertisement),包含以下内容
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
-
LSA被封装在链路状态更新分组LSU(update group)中,采用洪泛法发送
洪泛法意味着其他路由器收到该 LSU ,也会从自己其他所有接口转发该分组。
-
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA
-
通过各路由器洪泛法发送封装有自己LSA的LSU分组,各路由器的LSDB最终达到一致
-
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各种到达其他各路由器的最短路径,即构建各自的路由表
OSPF基本工作过程
-
相邻路由器之间周期性交互发送问候分组(Hello),以便建立和维护邻居关系。
-
建立邻居关系后,给邻居路由器发送数据库描述分组(DD),也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。
-
R1 收到 R2 的数据库描述分组后,若发现自己缺少其中某些链路状态项目,R1 则会发送链路状态请求分组(LSR)。
-
R2 收到链路状态请求分组后,则会将其所缺少的链路状态项目的详细信息封装在**链路状态更新分组(LSU)**中发送给 R1 回去。
-
R1 收到链路状态更新分组后,将这些信息添加到自己的链路状态数据库中。
-
R1 给 R2 发送链路状态确认分组。
R2也可以给 R1 请求自己所缺少的链路状态项目的相信信息。
-
最终,R1 和 R2 的链路状态数据库将达到一致(同步)。
每30分钟或链路状态发生变化时,路由器都会发送链路状态更新分组,收到该分组的其他路由器也会洪泛转发并返回LS确认分组。
这又称为新情况下的链路状态数据库同步。
邻居关系的建立
一条总线上有多台主机,则它们互为邻居,因此每个路由器都要向其他路由器发送问候分组和链路状态更新分组。为了减少所发送分组的数量,则需要用相应方法对邻居关系进行删减。
OSPF采用选举指定路由器DR(Designated Router)和**备用的指定路由器BDR(**Backup Designated Router)的方法减少邻居数目
- 所有的非DR/BDR只与DR/BDR建立邻居关系
- 非DR/BDR之间通过DR/BDR交换信息
- 当DR失效时由BDR顶上
这与交换机生成树协议选举根交换机类似。
区域
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)。
格式:
-
每个区域都有一个32比特的区域标识符
-
主干区域用于连通其他区域。其他区域的标识符不能为0且互不相同
-
每个区域的规模不能太大,一般所包含的路由器不能超过200个。
好处:把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统。这样减少了整个网络上的通信量。
命名:
-
如果路由器的所有接口都在同一个区域内,则该路由器称为区域内路由器IR(internal router)。
-
为了本区域可以和自治系统内的其他区域连通,每个区域都会有一个区域边界路由器ABR(area border router)。
区域边界路由器的一个接口连接自身所在区域,另一个接口连接主干区域。
-
**主干区域内路由器称为主干路由器。**区域边界路由器一定是主干路由器。
-
主干区域内还要有一个路由器专门和本自治区外的其他自治系统交换路由信息。这个路由器称为自治系统边界路由器ASBR(AS border router)。
工作过程:
边界区域向主干区域发送自己所在区域的链路状态通告,向自己所在区域发送区域0,1,2的链路状态通告。
分层次划分区域,增加了交换信息种类,让OSPF协议更复杂了。但这也使每个区域内部交换路由信息的通信量大大减小。因此OSPF能够使用在规模很大的自治系统中。
边界网关协议BGP
应用场景:
1.内部网关协议IGP(如路由信息协议RIP或最短路径优先OSPF):
- 设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络
- 无需考虑自治系统外部其他方面的策略
2.外部网关协议EGP(如边界网关协议BGP):
-
在不同自治系统内,度量路由的"代价"(距离,宽带,费用等)可能不同。因此,对于自治系统之间的路由选择,使用"代价"作为度量来寻找最佳路由是不行的
比如
A
系统路由选择度量是距离,B
系统是带宽……那么A
到系统E
的路由怎样走最好呢?由于没有统一度量,所以不能直接得到最佳路由 -
自治系统之间的路由选择必须考虑相关策略(政治、经济、安全等)
- 如中国的数据报尽量要绕开美国的自治系统
-
BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子)而并非要寻找一条最佳路由
基本工作原理
-
在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人
-
不同自治系统的BGP发言人要交换路由信息:
-
首先必须建立TCP连接,端口号为179
-
在此TCP连接上交换BGP报文以建立BGP会话
-
利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
-
使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
-
-
BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP
-
BGP
发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统) -
当
BGP
发言人互相交换了网络可达性的信息后,各BGP
发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好路由。也就是构造出树形结构(防环路)的自治系统连通图
BGP-4中的报文
-
OPEN(打开)报文:用来与相邻的另一个
BGP
发言人建立关系,使通信初始化 - UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由
- KEEPALIVE(保活)报文:用来周期性地证实邻站的连通性
- NOTIFICATION(通知)报文:用来发送检测到的差错
BGP协议刚刚运行时,BGP的邻站交换整个BGP路由表,以后只在发生变化时更新变化部分。
网际控制报文ICMP
为了更有效地转发
IP
数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP
(Internet Control Message Protocol)
- 主机或路由器使用
ICMP
来发送差错报告报文和询问报文 -
ICMP
报文被封装在IP
数据报中发送
回答报文类型
- 终点不可达
当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据
ICMP
的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络位置、目的主机未知等13
种错误
- 源点抑制
当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报发送速率放慢
- 时间超过
当路由器收到一个目的
IP
地址不是自己的IP
数据报,会将其生存时间TTL字段值减1
。若结果不为0
,则将该IP
数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文
- 参数问题
当路由器或目的主机收到
IP
数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文
- 改变路由(重定向)
路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)
如主机
1
的默认路由是R1
,信息经过R1
时,R1
发现最佳路由不是自己,而是R2
,所以通过ICMP
告知主机1
不发送ICMP的情况
- 对
ICMP
差错报告报文不再发送ICMP
差错报告报文 - 对第一个分片的数据报片的所有后续数据报片都不发送
ICMP
差错报告报文 - 对具有多播地址的数据报都不发送
ICMP
差错报告报文 - 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送
ICMP
差错报告报文
询问报文类型
回送请求和回答
-
ICMP
回送请求报文是由主机或路由器向一个特定的目的主机发出的询问 - 收到此报文的主机必须给源主机或路由器发送
ICMP
回送回答报文 - 这种询问报文用来测试目的站是否可达及了解其有关状态
时间戳请求和回答
-
ICMP
时间戳请求报文是请某个主机或路由器回答当前的日期和时间 - 在
ICMP
时间戳回答报文中有一个32
比特的字段,其中写入的整数代表从1900
年1
月1
日起到当前时刻一共有多少秒 - 这种询问报文用来进行时钟同步和测量时间
ICMP应用举例
分组网间探测PING
- 用来测试主机或路由器间的连通性【
eNSP
的ping
命令】 - 应用层直接使用网际层的
ICMP
(没有通过运输层的TCP
或UDP
) - 使用
ICMP
回送请求和回答报文
跟踪路由tracerouce
-
用来测试IP数据报从源主机到达目的主机要经过哪些路由器
-
Windows
版本-
tracert
命令 - 应用层直接使用网际层
ICMP
- 使用了
ICMP
回送请求和回答报文以及差错报告报文
-
-
Unix
版本- traceroute 命令
- 在运输层使用
UDP
协议 - 仅使用
ICMP
差错报告报文
实现方法
由主机发送出去的数据包中的生存时间字段TTL由1开始逐渐增加,每个路由器都会返回一个时间超过报文,由此达到跟踪路由器的目的
虚拟专用网VPN和网络地址转换NAT
虚拟专用网VPN
利用公用的因特网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网。
由于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数据报一律不进行转发。
所有每个机构至少需要一个路由器具有合法的全球IP地址。这样各自的专用网才能利用公用的因特网进行通信。
两个专用网内的主机间发送的数据报,是通过了公用的因特网,但在效果上就好像是在本机构的专用网上传送一样。
数据报在因特网中可能要经过多个网络和路由器,但从逻辑上看,R1和R2之间好像是一条直通的点对点链路,因此也被称为IP隧道技术。
如下图所示,同一机构内不同部门的内部网络所构成的虚拟专用网VPN又称为内联网VPN。
有时一个机构的VPN需要有某些外部机构(通常就是合作伙伴)参加进来。这样的VPN就称为外联网VPN。
在外地工作的员工需要访问公司内部的专用网络时,只要在任何地点接入到因特网,运行驻留在员工PC中的VPN软件,在员工的PC和公司的主机之间建立VPN隧道,即可访问专用网络中的资源。这种VPN称为远程接入VPN。
网络地址转换NAT
应用场景:
虽然因特网采用了无分类编址方式来减缓IPv4地址空间耗尽的速度,但由于因特网用户数目的激增,特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加,IPv4地址空间即将面临耗尽的危险仍然没有被解除。
1994年提出了一种网络地址转换NAT的方法再次缓解了IPv4地址空间即将耗尽的问题。
NAT
能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源【为了节省IPv4
地址】
-
问题:该转换方法存在一个问题:如果NAT路由器具有N个全球IP地址,那么至多只能有N个内网主机能够同时和因特网上的主机通信。
-
解决:由于绝大多数的网络应用都是使用运输层协议
TCP
或UDP
来传送数据,因此可以利用运输层的端口号和IP地址一起进行转换。
这样,用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信。这种将端口号和IP
地址一起进行转换的技术叫作网络地址与端口号转换NAPT
杂项
路由器隔离广播域
路由器属于网络层设备,默认情况下不对广播数据包进行转发,因此自然达到隔离的效果。
路由器是连接不同网络的,广播只是在一个网络里面,所以路由器隔离开了不同网络之间的广播信号。
广播是数据链路层的广播,网络层只有点对点。
整理
SMTP邮件发送是TGP,视频通话是UDP
服务访问点:邻层实体之间的逻辑接口。
各层服务访问点 SAP
- 应用层 :用户界面
- 运输层:端口号
- 网络层:IP地址
- 数据链路层:Mac地址
- 物理层:网卡
各层协议数据单元
-
应用层:报文(message)
-
传输层:报文段(segment):(TCP报文段,UDP数据报)
-
网络层:分组packet(如果无连接方式:数据报 datagram)
-
数据链路层:帧(frame)
数据链路层又可分为两层 Mac层和llc层
LLC层是主要向上层提供服务的,Mac地址是网卡地址。文章来源:https://www.toymoban.com/news/detail-804792.html -
物理层:位(bit)文章来源地址https://www.toymoban.com/news/detail-804792.html
到了这里,关于[计网]网络层 湖科大第四章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!