三.IPv4协议
0. Internet网络层
1. IP数据报格式
(1)首部长度:4位,IP分组首部长度,以4字节为单位
(2)区分服务:8位,指示期望获得哪种类型的服务,只在网络提供区分服务时使用,一般情况下不使用,取00H
(3)总长度:16位,IP分组的总字节数(首部 + 数据)
·最大IP分组总长度:65535B
·最小IP分组首部:20B
·IP可封装的最大数据:65535 - 20 = 65515B
(4)生存时间:8位,IP分组在网络中可通过的跳步数,路由器转发一次减一,TTL = 0时丢弃
(5)协议:8位,指示IP分组封装的是哪个协议的数据包
(6)首部校验和:16位,实现对IP分组首部的差错检测,计算时置0,反码算术运算求和,由于TTL等会变化,校验和逐跳计算
(7)源/目的IP地址:32位,标识主机/路由器的IP地址
(8)选项字段(长度可变):1 - 40B,携带安全信息、源选路径、时间戳、路由记录等,实际很少使用
(9)填充字段(长度可变):0 - 3B,补齐首部,符合32位对齐,即保证首部长度为4字节的倍数
(10)标识:16位,标识一个IP分组,IP协议利用一个计数器,每产生一个IP分组加一
(11)标志位:3位
·DF:1禁止分片,0允许分片
·MF:1非最后一片,0最后一片或未分片
(12)片偏移:13位,一个IP分组分片封装原IP分组数据的相对偏移量,以8字节为单位
2. IP分片
(1)最大传输单元(MTU):链路层数据帧可封装数据的上限,不同链路的MTU不同
(2)分片与重组
·大IP分组向较小MTU链路转发时,可以被分片
·IP分片到达目的主机后进行重组
·IP首部的相关字段用于标识分片以及确定分片的相对顺序
·若分片不全,等待一段时间后丢弃所有分片
(3)过程
·假设原IP分组总长度为L,带转发链路的MTU为M,若L > M且DF = 0,则需要分片
·分片时每个分片的标识复制原IP分组
·通常,除最后一个分片,其他分片均分为MTU允许的最大分片
·一个最大分片可封装的数据是8的倍数,则可封装数据为:
·需要的总片数为:
·每片的片偏移取值为:
·每片的总长度为:
·每片MF标志位:除最后一片,全部取1
·举例:
3. IP编址
(1)编址对象:接口
·主机/路由器与物理链路的连接,实现网络层功能
·路由器通常有多个,主机通常有一到两个
(2)IP地址:32比特的二进制数
·编号标识主机、路由器的接口,与每个接口关联
(3)地址分配
·网络号为高位比特,主机号为低位比特
·同一个接口连接的主机网络号相同,构成一个IP子网,不跨越路由器
4. IP地址
(1)有类IP地址:A、B、C用于标识网络
·A类(50%):8位Net ID为0.0.0.0 - 127.255.255.255
·B类(25%):16位Net ID为128.0.0.0 - 191.255.255.255
·C类(12.5%):24位Net ID为192.0.0.0 - 223.255.255.255
·D类(6.25%):32位Net ID为224.0.0.0 - 239.255.255.255
·E类(6.25%):32位Net ID为240.0.0.0 - 255.255.255.255
(2)特殊IP地址
(3)私有IP地址:可以被重用
5. IP子网划分与子网掩码
(1)子网划分:将原网络主机号部分比特划为子网号
(2)子网掩码
·形如IP地址,Net ID、Sub ID全1,Host ID全0
·应用:将IP分组目的IP地址与子网掩码按位与运算,提取子网地址
(3)子网地址 + 子网掩码 -> 准确确定子网大小
6. CIDR(无类域间路由)
(1)消除传统的A、B、C类地址界限,融合子网地址与子网掩码,方便子网划分
(2)无类地址格式:a.b.c.d/x,其中x为前缀长度
(3)优点:提高IPv4地址空间分配效率,提高路由效率
(4)路由聚合:将多个子网聚合为一个较大的子网(即超网)
·聚合条件:部分子网地址连续,且个数满足2的幂次,不满足2的幂次需要在路由表中添加额外判断内容
·层级编址使路由信息通告更高效
(5)黑洞现象:应该发送到组织1的消息,错发到Fly-By-Night-ISP
·解决办法:在ISPs-R-Us添加组织1 的地址,应用最长前缀匹配优先原则