网络层
功能
TIP
把分组从源端传到目的端。
- 路由选择与分组转发。
- 异构网络互联。
- 拥塞控制。
IP 协议
IP 协议是无连接、不可靠、尽力传输的。
数据报格式
- 总长度单位为 1 B
- 片偏移单位是 8 B
- 首部长度单位是 4 B
IP 地址
IP 地址分类
IP 地址 = 网络号 + 主机号
私有 IP 地址不能唯一标识一台主机,而其他 IP 地址可以唯一标识一台主机。
CIDR 无分类编址
CIDR,全称为Classless Inter-Domain Routing(无类域间路由),是一种用于分配 IP 地址的方法,旨在更有效地利用地址空间。它引入了前缀长度的概念,通过指定网络前缀的位数,使网络管理员能够更灵活地划分 IP 地址,以适应实际需求。
在过去的互联网发展中,使用的是基于类别的 IP 地址分配方法,分为 A 类、B 类、C 类等。这种分配方式导致了大量地址浪费,随着互联网用户数量的增加,IPv4 地址空间逐渐枯竭。
由于传统的 IP 地址分配方式,路由器需要维护一个庞大的路由表,其中包含了大量的网络地址和对应的路由信息。这导致了路由表的膨胀,影响了路由器的性能和互联网的稳定性。
CIDR 的提出旨在解决 IPv4 地址空间枯竭和路由表膨胀的问题。通过更灵活的地址分配和路由表的汇总,CIDR 可以更有效地利用 IP 地址空间,减小路由表的规模。
CIDR 表示法的基本格式为:
地址/前缀长度
例如,前缀长度为 24 的 IP 地址 192.168.1.1
将表示为 192.168.1.1/24
。这意味着该 IP 地址的前 24 位用于标识网络号,而剩余的 8 位用于标识主机号。
NAT 网络地址转换
内网如何与外部的互联网建立起联系的?
网络地址转换技术NAT——主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
NAT 路由器/网关至少含有一个有效的外部全球 IP 地址。
ARP 地址解析协议
首先思考,当我们在数据链路层拿到了目的地址的 ip 的时候,我们如何才能找到其 MAC 地址?这就是 ARP 协议要做的事情。
ARP(Address Resolution Protocol,地址解析协议)是用来将 IP 地址解析为 MAC 地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系。
TIP
解决下一跳走哪里的问题。
ARP 协议使用过程:
- 检查 ARP 高速缓存,有对应项则直接写入 MAC 帧;
- 没有则用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧封装并广播 ARP 请求分组,同一局域网中所有主机都能收到该请求;
- 目的主机收到请求后就会向源主机单播一个 ARP 响应分组,源主机收到后将此映射写入 ARP 缓存(10-20分钟更新一次)。
ARP协议4种典型情况:
- 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
- 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器 (网关)的硬件地址;
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
ICMP 因特网控制报文协议
因特网控制报文协议 ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中的一个重要子协议,通常被IP层或更高层协议(TCP或UDP)使用,属于网络层协议。
一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。 所以我们就需要一种协议来完成这样的功能——ICMP协议。
它主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于收集各种网络信息、诊断和排除各种网络故障以及用户数据的传递具有至关重要的作用。
ICMP 的差错报告和网络探寻主要是通过发送特定 ICMP 报文实现的。
ICMP 报文
ICMP 报文位于 IP 数据报的数据部份,因此其属于网络层协议。
ICMP 的报文类型分为两种:差错报告报文与询问报文。因而也就引出了 ICMP 的两个功能:
- 差错报告报文:通知再发送过程中 IP 包被丢弃的原因。
- 询问报文:确认 IP 包是否成功到达目标地址。
最常见的应用:PING
IPv6
从根本上解决了 IPv4 地址耗尽问题。
- 将地址从 4B 扩大到 16B。
- 将首部的可选字段移除,变为扩展首部。
- 支持自动配置地址、即插即用,不需要 DHCP 协议。
- 首部长度必须是 8B 的整数倍。
- 只能在主机处分片,IPv4 可以在主机处和路由器处分片。
路由算法
算出最佳路由,并将其填入到路由表中。
距离向量路由算法 RIP
- RIP 是一种基于分布式的基于距离向量的路由选择协议,最大的优点是简单。
- 网络中的每一个路由器都维护从它自己到每一个目的网络的唯一最佳距离记录。
- 距离通常为跳数,1 表示直接相连,16 表示网络不可达。
- RIP 协议仅和相邻的路由器交换信息。
- 路由器交换的信息是自己的路由表。
- 每 30 秒交换一次路由信息。
链路状态路由算法 OSPF
- OSRF 是开放最短路径优先协议。
- 最主要的特征是使用了分布式的链路状态协议。
- 使用洪范法向自治系统内所有路由器发送信息:广播📢。
- 交换的是相邻的所有路由器的链路状态,包括本路由器和哪些路由器相邻,以及链路的代价,距离、时延、带宽等。
- 只有当链路状态发生变化时,路由器才向所有路由器洪泛此信息
- 最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。