网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机。可以将这一任务划分为两种功能分组转发
和路由选择
$ {转发表} \Leftarrow {路由表} \Leftarrow {路由选择处理机(通过路由选择协议)}$
核心思想
:可靠通信应有网路自身来保证
虚电路
:通信前,必须先建立网络层连接(虚电路),以保证通信双方所需要的一切网络资源,通信双方沿着已建立的虚电路发送分组.逻辑
上的连接,通信结束后,需要释放之前建立的虚电路。分组沿着这条逻辑连接按照存储转发方式
传送,而不是真正建立了一条物理连接。
核心思想
:可靠通信应由用户主机来保证
两台主机通信时不需要建立网络层连接
每个分组可走不同的路径
通信结束后,没有需要释放的连接
将众多异构网络连接起来面临很多问题
如果异构网络在网络层均使用IP协议
IPv4地址的表示方法
IPv4采用点分十进制表示方法
?
I P 地址 : : = { < 网络号 > , < 主机号 > } {IP地址}::=\{{<网络号>,<主机号>}\} IP地址::={<网络号>,<主机号>}
eg:
可以看到主机H1和H2的网络号相同,所以他们处在同一网络中,H3和H4的网络号相同,所以他们处在同一个网络中
注意:
A
、B
、C
类地址都是单播地址
,只有个单播地址
可以分配给网络中的主机(或路由器)的各接口主机号
为全0
的地址是网络地址,不能分配给主机(或路由器)的各接口主机号
为全1
的地址是广播地址,不能分配给主机(或路由器)的各接口A类网络的网络号共8位,其中第一位为0
最小网络号为0,表示本网络,不能指派
,最小可指派的网络号为1,网络地址为1.0.0.0
最大网路号为127,作为本地环回测试地址,不能指派,最小的本地主机环回测试地址为127.0.0.1
,最大的本地主机环回测试地址为127.255.255.254
可指派的A类网络数量为 2 8 ? 1 ? 2 = 126 2^{8 - 1} - 2 = 126 28?1?2=126 减二的原因如2、3上最大网络(127)和和最小网络号(0)不能被指派
每个A类网络中可以分配的地址数量 2 24 ? 2 2^{24} - 2 224?2减二的原因是主机号全0的地址是网络地址,主机号全1的地址是广播地址
10
,网络号为
16
16
16位128.0
、最大可指派网络号为191.255
24
位192.0.0
,该网络的网络地址为192.0.0.0
223.255.255
,该网络的网络地址为223.255.255.0
IPv4分类编址方法不够灵活、容易造成大量IPv4地址资源浪费
子网掩码可以表明分类IPv4地址的主机号部分被借用了几个比特作为子网号
子网掩码由32比特构成
A 类: 255.0.0.0 A类:255.0.0.0 A类:255.0.0.0
B 类: 255.255.0.0 B类:255.255.0.0 B类:255.255.0.0
C 类: 255.255.255.0 C类:255.255.255.0 C类:255.255.255.0
无分类编址方法使用的地址掩码
与划分子网使用的子网掩码
类似,由32比特构成
网络前缀
主机号
斜线记法
:简化的无分类编址表示,不采用点分十进制,而是在无分类编址的IPv4地址后面加上/
,在斜线后面写上网络前缀所占的比特数
CIRD
:无分类域间路由选择
CIRD是将网络前缀都相同、连续的多个无分类IPv4地址,组成一个CIRD地址块
,只要知道CIRD地址块中的任何一个地址就可以知道该地址快的以下全部细节
地址块中的最小地址
地址块中的最大地址
地址块中的地址数量
地址块中聚合某类网络(A类、B类、C类)的数量
地址掩码
路由聚合
IPv4地址的应用规划是指将给定的IPv4地址块(或分类网络)划分成更小的地址块(或子网),并将这些地址块(或子网)分配给互联网中的不同网路,进而可以给各网络中的主机和路由器接口分配IPv4地址,一般有两种方法,一是采用定长的子网掩码
,二是采用变长子网掩码
定长子网掩码
容易造成地址浪费
?
数据包在传送过程中IPv4地址与MAC地址的变化情况
在数据包传送过程中,数据包的源IP地址和目的IP地址保持不变
在数据包传送过程中,数据包的源MAC地址和目的MAC地址逐链路或逐网络改变
我们知道IP地址并不知道MAC地址,那么在数据链路层封装以太网帧时就无法填写目的MAC地址,如何由IP地址得到MAC地址是网际层地址解析协议ARP
要处理的问题。
ARP协议
提供和了一种从网际层的IP地址解析出数据链路层的硬件地址的方法
源主机ns56A以广播的形式发送ARP请求报文,当每个主机收到ARP请求报文后,发现报文中的请求的下一跳IP地址和自己相同时,以单播的形式发送ARP响应报文
交换机br56A上截获的ARP求情报文格式如下:
操作码
:占两个字节,取值为1表示是ARP请求分组,取值为2表示是ARP响应分组
ARP缓存用来存放IP地址和MAC地址之间的最新映射
每台主机或路由器的每个网络接口都维护一张ARP缓存表
ARP缓存表主要包括三个字段
ARP缓存的更新和删除策略
主要包含一下两个过程:
4字节
为单位,用来表示IPv4数据报的首部长度,最小取值为0101B(十进制下的5),再乘以4字节即20字节,表示IPv4数据报首部只有20字节固定部分,最大取值为1111B(十进制下的15),再乘以4字节即60字节,表示IPv4数据报首部包含20字节固定部分和`最大40字节可变部分长度为1字节到40字节不等,用来支持排错、测量以及安全措施等功能,虽然可选字段增加了IPv4数据报的功能,但这同时也使得IPv4数据报首部的长度成为可变的,增加了因特网中每个路由器处理IPv4数据报的开销
实际上,可选字段很少被用到
用来确保IPv4数据报的首部长度是四字节的整数倍,使用全0进行填充
长度为16比特,该字段的取值以字节为单位,用来表示IPv4数据报的长度 (首部长度 + 数据载荷长度) (首部长度+数据载荷长度) (首部长度+数据载荷长度)最大取值为 2 16 ? 1 = 65535 2^{16} - 1 = 65535 216?1=65535
数据链路层规定了帧的最大数据载荷
即最大传送单元MTU
,当IPv4数据报长度超过MTU
时无法封装成帧。需要将原IPv4数据报分片乘更小的IPv4数据报,再将各分片数据包封装成帧。
标识
、标志
、片偏移
这三个字段共同用于IPv4数据报的分片
相同的标识
,IP软件会维持一个计数器,每产生一个IPv4数据报,计数器值就加1,并将此值赋给标识字段片偏移
:长度为13个比特,该字段的取值以8字节为单位
,用来指出分片IPv4数据报的数据载荷偏移其原IPv4数据报的位置有多远,只能为整数
长度为8比特,最大取值为
2
8
?
1
=
255
2^8 - 1 = 255
28?1=255,该字段的取值最初以秒为单位,后改为以跳数
为单位,路由器收到待转发的IPv4数据报时,将其首部中该字段的值减1,结果不为0就转发,否则就丢弃
长度为8个比特,用来指明IPv4数据报的数据载荷是何种数据单元PDU
长度为16比特,用于检验IPv4数据报在传输过程中其首部是否出现了差错
IPv4数据报每经过一个路由器,其首部中的某些字段的值(如生成时间TTL、标志、片偏移等)都可能发生变化,因此路由器都要重新计算一下首部检验和
二进制反码求和的运算,两个二进制反码求和的运算规则是从低位向高位逐列计算,0和0相加是0,0和1相加是1,1和1相加是0,但要产生一个仅为1,加到下一列,若最高位相加后产生进位,则最后得到的结果要加1
IPv6中不再计算检验和
我们知道因特网中有海量的路由,我们并不能手动为每个网络都去配置静态路由
静态路由选择
动态路由选择
因特网采用的路由选择协议主要有一下三个特点
自适应:因特网采用动态路由选择,能较好地适应网络变化
分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新
分层次:将整个因特网划分成许多较小的自治系统(AS)
例如一个较大的因特网服务提供商ISP就可划分为一个自治系统,在自治系统的内部和外部采用不同的路由选择协议,分别进行路由选择
一个自治系统内部的网络采用内部网关协议IGP
进行路由选择
自治系统之间的网络采用外部网关协议EGP
进行路由选择
IGP
、EGP
只是路由选择协议的分类名称而不是具体的路由选择协议
外部网关协议和内部网关协议名称中使用的是网关
,因为早期的RFC文档中,没有使用路由器
而是使用网关这一名词
距离向量D-V
:RIP要求自治系统AS内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录,这是一组距离,称为距离向量(Distance-Vector,D-V)跳数
:RIP使用跳数作为度量来衡量到达目的网络的距离
?
RIP认为好的路由 = "距离短"的路由
当到达同一目的网络有多条RIP距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上
RIP的三个重要特点
仅和相邻路由器交换信息
交换路由器自己的路由表,即本路由器到所在自治系统AS中个各网络的最短RIP距离,以及到各网络英国的下一跳路由器
周期性交换信息:为了加快RIP的收敛速度,当网络拓扑发生变化时,路由器要即使向相邻路由器通告拓扑变化后的路由信息,这称为触发更新
开放最短路径优先是为了克服路由信息协议RIP
开发出来的
开放
:表示OSPF协议不是受某一厂商控制,而是公开发表最短路径优先
:是指使用Dijkstra提出的最短路径优先算法开放最短路径优先只是一个协议的名称,并不代表别的路由选择协议使用的不是最短路径优先原则
OSPF
是基于链路状态的,不像RIP
是基于距离向量的
OSPF
不限制网络规模,更新效率高,收敛速度快
链路状态(LS)
:指本路由器和哪些路由器相邻,以及相应链路的代价
问候(hello)分组
来建立和维护邻居关系
? 1. 问候分组
封装在IP数据报中,发往组播地址224.0.0.5
,IP数据报首部 中的协议号字段的取值为89,表明IP数据报中的数据载荷为OSPF分 组
OSPF分组直接使用网际层的IP数据报进行封装,RIP报文使用运输层用户数据报协议UDP进行封装,从数据包按网络体系结构逐层封装的角度看,OSPF属于网际层协议而RIP属于应用层协议
问候分组的发送周期为10秒
若40秒未收到来自邻居路由器的问候分组则认为邻居路由器不可达
每个路由器都会建立一张邻居表
使用OSPF的每个路由器都会产生链路状态通告LSA
LSA
包含一下两类链路状态信息
直连网络的链路状态信息
邻居路由器的链路状态信息
链路状态通告LSA被封装在链路状态更新分组LSU
中,采用可靠的洪泛法(Flooding)进行发送
洪泛法的要点是路由器向自己所有邻居路由器发送链路状态更新分组,收到该分组的路由器又将该分组转发给自己所有的邻居路由器(但其上游路由器除外),依次类推
可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认
使用OSPF的每一个路由器都有一个链路状态数据库,用于存储链路状态通告
通过各路由器洪泛发送封装又各自链路状态通告的链路状态更新分组,各路由器的链路状态数据库最终将达到一致
使用OSPF的各路由器,基于链路状态数据库LSDB进行最短路径优先计算,构建出各自到达其他路由器的最短路径,即构建各自的路由表
在多点接入网络中,每台路由器和其余路由器均互为邻居关系
为了减少发送问候分组和链路状态更新分组的数量,OSPF采用选举指定路由器DR
和备用的指定路由器BDR
,所有的非DR/BDR
只与DR/BDR
建立邻居关系
为了使OSPF协议能够用于规模很大的网络,OSPF把一个自治系统AS
划分成若干更小的范围,称为区域
划分区域的好处:把利用洪泛法交换链路状态信息的范围局限于每一个区域,而不是整个自治系统AS,这样就减少了整个网络上的通信量
?
没有同一的路由度量,因此寻找最佳路由是无意义的
? 自治系统之间的路由选择协议应当允许使用多种路由选择策略,包括政治、经济、安全等,它们都是由网络管理人员对每一个路由器进行设置的。但这些策略并不是自治系统之间的路由选择协议本身
综上BGP只能是
力求
寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而非要寻找一条最佳路由
BGP发言人:在配置BGP时,每个AS的管理员要选择至少一个路由器作为该AS的BGP发言人,BGP发言人一般往往选择BGP边界路由器
不同AS的BGP发言人要交换路由信息,需要先建立TCP连接
,然后再在此连接的基础上建立BGP会话
,利用BGP会话
交换路由信息
利用BGP会话交换路由信息的两个BGP发言人
,彼此称为对方的邻站或对等站
打开报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化
保活报文:用来周期性证实邻站的连通性
更新报文:用来通告某一条路由的信息,以及列出要撤销的多条路由
通知报文:用来发送检测到的差错
IP数据报
中发送?
终点不可达:当路由器或主机不能交付IP数据报时,就向源点发送终点不可达报文,具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种
源点抑制:当路由器或主机由于拥塞而丢弃IP数据报时,就向发送该IP数据报的源点发送源点抑制报文,使源点知道应当把IP数据报的发送速率放慢
超时:当路由器收到一个目的IP地址不是自己的IP数据报时,会将其首部中的生存时间TTL字段的值减1,若结果不为0,则路由器将该数据报转发出去。若结果为0,路由器不但要丢弃该数据报,还要向发送该数据报的源点发送超时差错报告报文
参数问题:当路由器或主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文
重定向:路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机
由主机或路由器向一个特定的目的主机或路由器发出,收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答
这种询问报文用来测试目的站是否可达,以了解其有关状态
用来请求某个主机或路由器回答当前的日期和时间
在ICMP时间戳回答报文中有一个32比特的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共多少秒。
这种询问报文用来进行时钟同步和测量时间
跟踪路由应用traceroute,用于探测IP数据报从源主机到达目的主机要经过那些路由器
虚拟专用网:利用公用的因特网作为本机构各专用网之间的通信载体,这样形成的网络又称为虚拟专用网
给专用网内各主机配置的IP地址应该是该专用网所在机构可以自行分配的地址,这类地址仅在机构内部有效,称为专用地址,不需要向因特网的管理机构申请
虚拟
的含义:虽然两个专用网内的主机间发送的数据报是通过公用的因特网传送的,但从效果上就好像是本机构的专用网上传送一样
网络地址转换使用了减缓IPv4地址空间耗尽的速度
NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源‘
这种方法需要在专用网络连接到的因特网的路由器上安装NAT软件,装有NAT软件的路由器称为NAT路由器,它至少要有一个有效的外部全球地址IP,所有使用内部专用地址的主机在和外部因特网通信时,都要在NAT路由器上将其内部专用地址转换成 I P G IP_G IPG?
NAPT实现了一个全球IP地址支持多台专用网主机同时访问互联网