Note4- 网络层:数据平面
知识点
网络层有哪些功能?
- 转发:分组从一个路由器的一个输入链路转发到一个输出链路上
- 路由选择:确定网络范围内,分组从源到目的采取的端到端路径
IPv4 数据报格式及各字段功能?
- 首部长度。IP 分组首部长度,以 4 字节为单位
- 总长度。IP 分组的总字节数(首部 + 数据),占 16 位,最大 65535B
- 标识。计数器,每产生一个数据报就加 1,并赋值给标识字段,作为该 IP 分组的标识
- 标志位。非最后一片的 MF=1,最后一片或未分片的 MF=0,DF=0 表示允许分片
- 片偏移。一个 IP 分组分片在原分组中的相对位置,以 8 字节为单位。如果未分片,该字段为 0
- TTL。IP 分组在网络中可以通过的路由器数,TTL=0,则路由器丢弃
- 协议。知识封装的是哪个协议的数据包
- 首部校验和。对IP 分组首部的差错检测,算法与 UDP 校验和算法一样。逐跳计算,逐跳检验
- 选项字段。携带安全、源选路径、时间戳和路由记录等内容。实际上很少被使用
- 填充。保证首部长度是 4 字节的倍数
简述 IP 分片过程?
假设原 IP 分组总长度为 L,待转发链路的 MTU 为 M,若 L>M,且 DF=0,则需要分片。分片时每个分片的标识复制原 IP 分组的标识。通常分片时,除最后一个分片,其他分片均分为 MTU 允许的最大分片。一个最大分片可封装的数据应该是 8 的倍数。
因此,一个最大分片可封装的数据为:
什么是 IP 子网?
- IP 地址具有相同网络号的设备接口
- 不跨越路由器及以上层网络设备可以彼此物理联通的接口
IP 地址有类地址划分是怎么样的?
网络层转发分组的过程?
每个路由器维护一个转发表,转发表的每一项都是二元组(目的网络 (CIDR 编制),下一跳地址),路由器判断目的 IP 应该属于哪个子网,转发到对应的接口。匹配时采用最长匹配原则。
DHCP 协议是什么?它的基本工作原理?
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议。这是一个应用层协议,基于 UDP,端口号 67。需要 IP 地址的主机在启动时向 DHCP 服务器广播发送发现报文,DHCP 服务器收到后先在数据库中查找该计算机的配置信息,若找到,则返回找到的信息,若找不到,则从服务器的 IP 地址池中取一个地址分配给该计算机。
什么是 NAT?它的作用及实现?
网络地址转换 (NAT) 是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的 IP 地址。它使得整个专用网络只需要一个全球 IP 地址就可以与因特网连通,由于专用网本地 IP 地址是可重用的,所以 NAT 大大节省了 IP 地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络收到攻击的风险。
实现:
- 替换:利用(NAT IP 地址,新端口号)替换每个外出 IP 数据报的(源 IP 地址,源端口号)
- 记录:将每对(NAT IP 地址,新端口号)与(源 IP 地址,源端口号)的替换信息存储到 NAT 转换表中
- 替换:根据 NAT 转换表,利用(源 IP 地址,源端口号)替换进入内网 IP 数据包的(目的 IP 地址,目的端口号),即(NAT IP 地址,新端口号)
ICMP 协议是什么?它的作用及分类?
ICMP(Internet Control Message Protocol),因特网控制报文协议。让主机或路由器报告差错和异常情况。ICMP 报文作为 IP 层数据报的数据,加上数据报首部,组成 IP 数据报发送出去。ICMP 报文有两类。
差错报告报文 5 种:
- 终点不可达。
- 源抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源发送源抑制报文,使源将发送速率放慢
- 超时。当路由器收到 TTL 为零的数据报时,则丢弃并向源发送时间超过报文。
- 参数问题。当数据报的首部有字段值不正确时,丢弃并向源发送参数问题报文。
- 重定向。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。
网络探询报文 2 种: - 回声请求和应答报文。主机探测某个目的主机是否可达,比如 ping。
- 时间戳请求与应答报文。
几种不发送 ICMP 差错报告的特殊情况: - 对 ICMP 差错报告报文不在发送 ICMP 差错报告报文
- 对非第一个 IP 数据报分片不发送
- 对所有多播 IP 数据报均不发送 ICMP 差错报告报文
- 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的 IP 数据报不再发送 ICMP 差错报告报文
ICMP 差错报告报文是什么样的?
IPv6 数据报是什么样的?相比 IPv4 改变了什么?
- 增加的
- 优先级 (priority)。标识数据报的优先级
- 流标签 (flow Label)。标识同一“流”中的数据报
- 下一个首部 (next header)。标识下一个选项首部或上层协议首部(如 TCP 首部)
- 移出的
- 校验和 (checksum)。彻底移除,以减少每跳处理时间
- 选项 (options)。允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部”字段指示
- 对于 ICMPv6 报文
- 附加了一些报文类型,如 Packet Too Big(因为路由器不对 IPv6 分片)
- 多播组管理功能
MOOC 习题
如图所示网络。
请回答下列问题:
- 主机在配置 IP 地址时,其正确的子网掩码和默认网关分别是多少?
- 若路由器 R 在向互联网转发一个由主机 192.168.1.5 发送、ID=12345、length=500B、DF=1 的 IP 分组时,则该 IP 分组首部的哪些字段会被修改?如何修改?
- 若主机 192.168.1.10 向互联网 ID=6789、length=1500B、DF=0 的 IP 分组时,路由器需要将该 IP 分组分为几片(每片尽可能封装为最大片)?给出分片结果,包括每片的 ID、DF、MF、length、offset 的取值。
- 子网掩码即前 28 位均为 1,为:255.255.255.240。默认网关为 192.168.1.1
- TTL 会减一,源 IP 地址会修改为 130.11.22.3,CheckSum 字段重新计算
- 按公式计算即可。
,所以一个分片最大可封装数据 ,所以有分片数量 ,分片结果略,注意 offset 以 8 字节为单位。