网络层
网路层功能
-
实现异构网络互联
网络层的任务是使异构的网络实现互联,使全球范围内数以百计的网络互联起来,并且能够相互通信。使用物理层或数据链路层的中继系统,只是把一个网络扩大了,而从网络层角度来看,它仍然属于同一个网络,一般并不称之为网络互联。因此网络互联通常是指用路由器进行网络互联和路由选择。
-
路由与转发
路由器
路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络并完成路由转发。在同一个网络中传递数据无须路由器的参与,而跨网段通信必须通过路由器进行转发。路由器是网络层设备,实现了网络模型的下三层,即物理层、数据链路层、网络层。
路由器的两个功能:
1. 路由选择:按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。
2. 分组转发:根据转发表将用户的 IP 数据报从合适的端口转发出去。
路由器与网桥的区别:网桥与高层协议无关,而路由器是面向协议的,它依据网络地址进行操作,并进行路由选择、分段、帧格式转换、对数据报的生存时间和流量进行控制。
路由算法
静态路由:需要管理员手工配置路由表。优点是简便、可靠、在负荷稳定、拓扑变化不大的网络中运行效果很好。缺点是只能用于小规模网络,不能自动调整路由。
动态路由:路由器之间交换信息,按照一定的算法,不断更新路由表,获得最优寻路效果。优点是能改善网络的性能并有助于流量控制。缺点是算法复杂,会增加网络负担,有时因对动态变化的反应太快而引起动荡或反应太慢影响网络路由的一致性。动态路由包括:距离-向量路由算法和链路状态路由算法。
距离-向量路由算法:路由器只掌握物理相连的邻居及链路费用;路由表维护从它自己到其他每一个目的网络的唯一最佳距离记录;只和相邻路由器交换信息;每30s更新一次。常见的算法是 RIP 算法,它采用“跳数”作为距离的度量,最多允许15跳,RIP 是应用层协议, 使用 UDP 传输数据。
链路状态路由算法:所有路由器掌握完整的网络拓扑和链路费用信息;路由器向所有路由器发送信息;与相邻的所有路由器交换链路状态;当链路状态发生变化时才会交换。典型的链路状态算法是 OSPF 算法,使用了 Dijkstra 提出的最短路径算法 SPFA ,每个路由器都知道到达所有其余路由器的最短距离,OSPF 是网络层协议,直接使用 IP 数据报传送。
层次路由:当网络规模扩大时,路由器的路由表成比例地增大,这不仅消耗越来越多的路由器缓冲区空间,而且需要用更多 CPU 时间来扫描路由表,用更多的带宽来交换路由信息,因此路由选择必须按照层次的方式进行。
IPv4
IP 数据报分片:数据链路层能承载的最大数据量称为最大传送单元(MTU),当 IP 数据报的总长度大于链路 MTU 时,就需要将 IP 数据报中的数据分装多个较小的 IP 数据报中,即分片。
网络层转发分组的流程:
1)从数据报的首部提取目的主机的 IP 地址 D,得出目的网络地址 N。
2)若网络 N 与此路由器直接相连,则把数据报直接交付给目的主机 D,这是路由器的直接交付;否则是间接交付,执行3)
3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4)
4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行5)
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6)
6)报告转发分组出错。
IP 地址的重要特点:
1)每个 IP 地址都由网络号和主机号两部分构成。IP 地址管理机构在分配 IP 地址时只分配网络号,而主机号由该网络自行分配;路由器仅根据目的主机所连接的网络号来转发,减少路由表所占的存储空间。
2)用转发器或桥接器(网桥等)连接的若干 LAN 仍然是同一个网络,因此该 LAN 中所有主机的 IP 地址的网络号必须相同。
3)在同一个局域网上的主机或路由器的 IP 地址中的网络号必须一样。路由器总具有两个或两个以上的 IP 地址,路由器的每个端口都有一个不同网络号的 IP 地址。
子网划分:
因为两级 IP 地址空间利用率有时很低,给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变差,不够灵活,所以将主机号再划分出一个子“网号字段”,网络号不变,也就是说路由器的转发基本不变,变的只是到达目的网络后根据子网号找到子网,最后把 IP 数据报直接交付给目的主机。地址结构:{<网络号>,<子网号>,<主机号>}
子网掩码:
使用子网掩码与某主机的 IP 地址进行逐位“与”运算,得出该主机所在子网的网络号。意思是进行子网划分后,IP 地址没有变,只是路由器在转发时需要目的网络地址、子网掩码、下一跳地址以进行网络匹配。
ARP 协议:
无论网络层使用何种协议,在实际链路上传送数据帧时,最终必须是硬件地址,所以用 ARP 协议来完成 IP 地址到 MAC 地址的映射,即地址解析协议 ARP。
若 ARP 高速缓存中有目的主机的 IP 地址,则可以查找到对应的 MAC 地址,再将此硬件地址写入 MAC 帧,就可以在局域网上发送。若无目的主机的 IP 地址,则需要使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组,目的主机接收到后将自己的 IP 地址和 MAC 地址发送回去。
ARP 的四种典型情况:
1)发送方是主机,要把 IP 数据报发送到本网络上另一台主机。用 ARP 找到目的主机的硬件地址。
2)发送方是主机,要把 IP 数据报发送到另一个网络上的一台主机。用 ARP 找到本网络上的一个路由器硬件地址,剩下的工作由此路由器完成。
3)发送方是路由器,要把 IP 数据报转发到本网络上的一台主机,用 ARP 找到目的主机的硬件地址。
4)发送方是路由器,要把 IP 数据报转发到另一个网络上的一台主机。用 ARP 找到本网络上的一个路由器硬件地址,剩下的工作由此路由器完成。
ARP 欺骗:
攻击者可以向某一主机发送伪 ARP 应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了 ARP 欺骗。
网际控制报文协议(ICMP):
为了提高 IP 数据报交付成功的机会,在网络层使用 ICMP 协议来让主机或路由器报告差错和异常情况。差错和异常情况包括:终点不可达、源点抑制、时间超时、参数问题、改变路由...
ARP 协议为 IP 协议提供服务,IP 协议为 ICMP 协议提供服务。
IPv6
IPv6的特点:
1)更大的地址空间,从 IPv4 的32位增大到128位。
2)扩展的地质结构层次。
3)灵活的首部格式。
4)允许协议继续扩充。
5)支持即插即用(即自动配置)。
6)支持资源的预分配。
7)IPv6 只有在包的源结点才能分片,是端到端的。
8)IPv6 首部长度必须是 8B 的整数倍,而 IPv4 首部是 4B 的整数倍。
9)增大了安全性。身份验证和保密功能是关键特征。
IP 组播
让源计算机一次将单个分组发送给多个目标主机。主机主播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续发送。支持视频直播、视频会议等,不能回放。
特点:
1)组播数据报也是“尽最大努力交付”,不提供可靠传输。
2)组播地址只能用于目的地址,而不能用于源地址。
3)对组播数据报不产生 ICMP 差错报文,因此,若在 PING 命令后面键入组播地址,将永远收不到响应。
4)并非所有的 D 类地址都可作为组播地址。
因特网组管理协议 IGMP :
使路由器知道组播组成员的信息。IGMP 应视为 TCP/IP 的一部分。
-
拥塞控制
因出现过量的分组而引起网络性能下降的现象称为拥塞。
拥塞控制的作用是确保子网能够承载所达到的流量,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等,单一地增加资源并不能解决拥塞。
流量控制与拥塞控制的区别:流量控制往往是指在发送端和接收端之间的点对点通信量的控制,所要做到的是抑制发送端发送数据的速率,以便接收端能够来得及接收。而拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。