(一)网络层的功能
1.异构网络互联
2.路由与转发:
路由器两个主要功能:路由选择(确定哪一条路径) 分组转发:(当一个分组到达时采取的路径)
3.拥塞控制:
区分拥塞控制和流量控制:
流量控制要做的是抑制发送端发送数据的速率
拥塞控制必须确保通信子网能够传送带传送的数据,是一个全局性的问题。有开环控制(静态)和闭环控制(动态)两种。
(二)路由选择
1.静态路由与动态路由
静态路由算法(️非自适应路由算法)管理员手工配置的路由信息。
动态路由算法(自适应路由算法)路由表项是通过相互连接的路由器之间彼此交换信息。
常用路由算法:距离-向量路由算法(RIP协议), 链路状态路由算法(QSPF协议)
2.距离-向量路由算法(RIP):
应用层协议、使用UDP传送数据,一个RIP报文最多包括25个路由,超过则再用一个RIP报文传送。RIP允许一条路径最多包含15个路由器,距离为16则不可达。
分散性:路由器只掌握物理相连的邻居及其链路费用。
路由选择表包含: 每条路径的目的地(另一个结点),路径的代价(距离)
特点:好消息传得快,坏消息传得慢(路由环路问题)
3.链路状态路由算法(OSPF):
网络层协议,使用分布式的链路状态协议,用IP数据报传送
全局性:所有路由器掌握完整的网络拓扑和链路费用信息。
特点:(3条)
1)向本自治系统中所有路由器发送信息,这里使用的方法是泛洪法(路由器通过所有端口向所有相邻的路由器发送信息。而每个相邻路由器又将此信息发往其素偶相邻路由器。
2)发送的信息是与路由器相邻的所有路由器的链路状态。
3)只有当链路状态发送变化时,路由器才向所有路由器发送此信息。
两者比较:RIP 每个结点仅与直接邻居交谈,但提供从自己网络所有其他结点的最低费用。OSPF中,每个结点通过广播的方式与所有其他结点交谈,但仅告诉与他直接相连的链路的费用。RIP可能遇到路由环路等问题
4.层次路由
自治系统(AS)
1)AS内部使用内部网关协议(IGP),城内路由选择,具体有RIP和OSPF
2)AS之间使用的外部网关协议(EGP),域间路由选择,具体BGP-4
使用层次路由的时候,每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不知道其他区域的内部结构。
(三)IPv4
1.IPv4分组的格式
由首部和数据部分组成,首部前一部分固定20B,后面是一些可选字段,长度可变
一种八片首饰:
首部长度,以4B为单位
总长度,首部和数据之和的长度,单位为1B
片偏移,较长分组在分片之后,某片在原分组中的相对位置,单位8B(每个分片的长度一定是8B的整数倍)
最大传送单元(MTU):以太网的MTU为1500B,而许多广域网的MTU不超过578B
通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。IP首部中的标志位有3比特,但只有后两位有意义。MF(More Fragment)和 DF(Don’t Fragment)
网络层转发分组的流程:
1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址N。
2)若网络N与此路由器直接相连,则把数据报直接交付给目的主机D,这称为路由器的直接交付;否则是间接交付,执行3
3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行4
4)若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行5
5)若路由表中有一默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6
6)报告转发分组出错
2.IPv4地址与NAT
IP地址被分为5类:ABCD(E)
不用做主机的IP地址:
主机号全为0,表示本网络本身
主机号全为1,表示网络的广播地址(直接广播地址)
127.x.x.x保留为换回自检地址,表示任意地址本身
32位全0,表示本网络上的本主机
32位全1,表示整个TCP/IP网络的广播地址,受限广播地址
网络地址转换(NAT):通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,节省了IP地址的消耗,隐藏了内部网络结构。私有IP地址只用于LAN(局域网)
私有 IP地址网段:
A类:1个A类网段,即10.0.0.0~10.255.255.255
B类:16个B类网段,即172.16.0.0~172.31.255.255
C类:256个C类网段,即192.168.0.0~192.168.255.255
NAT路由器至少有一个有效的外部全球地址。使用本地地址的主机与外界通信的时候,NAT路由器使用NAT转换表将本地地址转换为全球地址,或者将全球地址转换为本地地址。
NAT转换表存放着{本地IP地址:端口}到{全球IP地址:端口}的映射
3.子网划分与子网掩码、CIDR
子网划分纯属于一个单位内部的事情,单位对外仍然表现为没有划分子网的网络。
从主机号借用若然比特作为子网号,当然主机号也就相应的减少了相同的比特。地址结构如下:IP地址={<网络号>, <子网号>, <主机号>}
子网掩码是一个与IP地址相对应的、长32bit的二进制串,它由一串1和一串0组成,其中1对应于IP地址中的网络号及子网号,而0对应于主机号,而0对应于主机号。
计算机只需将IP地址和其对应的子网掩码逐位“与”,就可以得到相应子网的网络地址。
路由器的路由表中,所包含信息的主要内容必须有 目的网络地址、子网掩码、下一跳地址。
无分类域间路由选择(CIDR):
将网络前缀都相同的连续IP地址组成“CIDR地址块”。一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称为构成超网。路由聚合使得路由表中的一个项目可以表示多个原来传统分类地址的路由,有利于减少路由器之间的路由选择信息的交换,从而提高网络性能。
CIDR的优点在于网络前缀长度的灵活性。由于上层网络的前缀长度较短,因此相应的路由表的项目较少。而内部又可以采用延长网络前缀的方法来灵活地划分子网。
最长前缀匹配(最佳匹配):使用CIDR时,在查找路由表时可能会得到不止一个匹配结果。此时,应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体。
4.ARP、DHCP、ICMP
IP地址与硬件地址:
虽然在IP数据报首部中有完整的源IP地址和目的IP地址,但路由器只根据目的IP地址的网络号进行路由选择。
在局域网的数据链路层,只能看见MAC帧。而通过路由器转发IP分组时,此IP分组在每个网络中都被路由器解封装和重新封装。因此IP数据报在被路由器转发时,其数据链路层封装所使用的MAC地址是不断改变的。
路由器由于互联多个网络,因此它不仅有多个IP地址,也有多个硬件地址。
地址解析地址(ARP)
无论网络层使用什么协议,在实际网络的链路层的链路上传送数据帧的是欧,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议(ARP)
每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称为ARP表。
ARP的4种典型情况:
1)发送方是主机时,要把IP数据报发送到本网络上的另一台主机。这时用ARP找到目的主机的硬件地址。
2)发送方是主机时,要把IP数据报发送到另一个网络上的一台主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成。
3)发送方是路由器时,要把IP数据报转发到本网络上的一台主机。这时用ARP找到目的主机的硬件地址。
4)发送方是路由器时,要把IP数据报转发到另一个网络上的一台主机,这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由找到的这个路由器完成。
动态主机配置协议(DHCP)应用层协议,基于UDP协议:
动态主机配置协议,常用️于给主机动态地分配IP地址,它提供了即插即用的联网机制。这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。
DHCP的工作原理:使用客户/服务器方式。需要IP地址的主机 在启动时候就向DHCP服务器广播发送发现报文,此时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才能回答此广播报文。DHCP服务器的回答报文称为提供报文。
DHCP服务器聚合DHCP客户端的交换过程:
1)DHCP客户机广播“DHCP发现”消息
2)DHCP服务器收到后,向网络中广播“DHCP提供”消息
3)DHCP客户机收到提供消息后,如果接受,则通过广播“DHCP请求”消息向DHCP服务器请求提供IP地址。
4)DHCP服务器广播“DHCP确认”消息,将IP地址分配给DHCP客户机。
DHCP服务器提供的IP地址是临时的,DHCP客户只能在一段有限的时间内(租用期)使用这个分配到的IP地址。
特点:允许地址重用,支持移动用户加入网络,支持再用地址续租。
网际控制报文协议(ICMP)IP层协议
为了提高IP数据报交付成果的机会,在网络层使用网际控制报文协议(ICMP)来让主机或路由器报告差错和异常情况。共5种情况:
1)终点不可达(不可交付)
2)源点抑制(因拥塞丢失数据)
3)时间超过(当路由器收到TTL=0的数据报,要丢弃且向源点发送时间超过报文)
4)参数问题(数据报首部中有的字段的值不正确)
5)改变路由(重定向) 值得更好的路由
不应发送ICMP差错报文的几种情况:
1)对ICMP差错报告报文不再发送
2)对第一个分片的数据报片的所有后续数据报不再发送
3)对具有组播地址的数据报不再发送
4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送
ICMP询问报文有4种类型(常用前两种):回送请求和回答报文(如PING)、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文。 Ping工作在应用层,它直接使用网络层的ICMP,而未使用传输的TCP或UDP。Traceroute /Tracert 工作在网络层。