IPv4数据报格式
数据报:网络层分组
IPv4数据报关键字段
版本号
4bit;
声明数据报的IP协议版本;
4:IPv4,6:IPv6首部长度
4bit;
单位为4byte,即该字段中的数值1代表4byte的长度
IPv4数据报包含可变数量的选项,故须指定首部的实际长度;
典型的,数据报不含可变选项,长度为20byte服务类型
区分不同类型数据报;
1998 年这个字段改名为区分服务;
事实上,网络一般不提供区分服务,该字段往往不使用数据报长度
16bit;
以byte记的IP分组总长度(首部+有效载荷)标识,标志,片偏移
与IP分片相关;
新版本即IPv6不允许在路由器上对分组分片;寿命(Time-To-Live,TTL)
确保数据报不会永远在网络中循环;
数据报每经过一台路由器,TTL减一,TTL为0时,数据报被丢弃;协议
指示IP数据报的有效载荷应当交付哪个特定的运输层协议;
协议号绑定了网络层与运输层;
可以是TCP,UDP,ICMP等首部检验和
用于路由器对IP数据报中比特错误的检验;
路由器通常丢弃检测出错误的数据报;
逐跳计算,逐跳检验。数据报上有一些可变字段,如TTL,故路由器必须更新数据报的检验和字段;
发送方计算检验和时,逻辑上将检验和字段置0,对整个IP分组计算检验和,并将检验和填入检验和字段;
采用带回卷的反码计算校验和,这样便于检验
注意IP层只对IP首部计算检验和源和目的地的IP地址
各32bit
标识收发双方 网络层接口 的ip地址选项
选项字段允许扩展IP首部;
选项字段是可选的,它使得IP首部长度不定,范围在1~40B之间;
携带安全、源选路径、时间戳和路由记录等内容
实际上很少被使用
IPv6中已去掉了选项字段;填充
确保首部长度是4byte的倍数有效载荷
有效载荷可以是运输层报文段的数据,也可以是其它类型的数据,如ICMP报文;
IP数据报分片
为何需要分片?
- 链路层协议所能承载的网络层分组长度不同。
最大传送单元(Maximun Transmission Unit,MTU)
一个链路层帧能承载的最大数据量
链路层协议的MTU严格地限制了IP数据报的长度。
问题在于发送方到接收方的路径上,每段链路可能使用不同的链路层协议,不同的链路层协议有不同的MTU。
分片
- 对路由器的一个到达分组,其大小大于相应输出链路的MTU时,路由器对其分片,即将之拆解成多个较小的IP数据报,用单独的链路层帧封装这些小IP数据报,称其为片
- 标识,标志,片偏移字段用于分片组织;
标识
- 同一ip数据报有相同而唯一的标识号,即同一数据报的多个片标识相同;
- IP协议维护一个计数器,每产生一个IP分组标识计数加一,作为该分组的标识;
- 不同IP分组可能有同样的标识,但标识号再结合收发双方ip地址可唯一确定ip分组;
标志
标志字段占3bit,包括一个保留位,一个DF (Don't Fragment) 位,一个MF (More Fragment) 位。
DF =1:禁止分片;
DF =0:允许分片MF =1:非最后一片;
MF =0:最后一片(或未分片)
偏移
- 偏移字段指示片在原ip数据报中的偏移;
- 占13位
- 片偏移字段以8字节为单位
片组装
- 运输层希望收到完整的未分片的报文;
- 网络核心应当保持简单,片组装工作不应由路由器进行;
- 片的重组工作在端系统中进行;
- 在目的地主机,数据报的有效载荷仅当IP层已完全重构为初始IP数据报时,才会传递给目的地运输层;
- 若一个或多个片一直没有到达目的地,该不完整的数据报将被丢弃;
IPv6废止了分片机制
IPv4编址
网络接口
- 主机/路由器与物理链路的连接
- 主机通常只有一个网络接口(事实上,通常也有多个不同类型的网络接口,如wifi接口,以太网接口);
- 路由器必须有多个网络接口;
IPv4地址
标识网络接口的编号
一个IP地址技术上是与一个接口关联的,而非与该接口所在的主机或路由器关联;
IPv4地址4byte,32bit,故有约40亿个可能的IP地址;
点分十进制 地址中的每个字节用它的十进制形式书写,字节间用句点(.)分隔。
全球因特网中每台路由器和主机上的每个接口,都必须有一个全球唯一的IP地址(除非使用了NAT技术)
子网
- 在网络拓扑结构的图模型中,将路由器的对应顶点按接口拆分,所得到的新图中,每一个连通分支就是一个子网;
- 不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口 组成一个子网
子网掩码
a.b.c.d/x;
子网地址的记法,该记法表示接入子网的所有接口的ip地址前x位都应与a.b.c.d的前x位一致;
因特网地址分配策略
分类编址方案
- CIDR被采用前的早期方案;
- 子网主要被分为A,B,C三类,其子网地址长度分别为8,16,24比特;
- D类地址用作广播地址;
- E类地址保留;
- 该方案由于子网大小与组织规模不能良匹配,造成大量地址浪费;
特殊IP
私有IP
无类别域间路由选择(Classless Interdomain Routing,CIDR)
子网寻址
a.b.c.d/x
32bit的地址划分为两部分:
- a.b.c.d/x的前x位构成了IP地址的网络部分,称作该地址的前缀;一个组织通常被分配一块连续的地址,即地址前缀相同;
- a.b.c.d/x的后32-x位用于区分该组织的内部设备;
获取地址块
因特网名字和编号分配机构(Internet Corporation for Assigned Names and Numbers,ICANN)
- 非营利性组织,基于[RFC 2050]管理;
- 负责IP地址分配;
- 管理DNS根服务器;
- 分配域名与解决域名纷争;
ICANN地址支持组织
- ICANN向区域性因特网注册机构分配地址,区域性因特网注册机构和ICANN一起组成了ICANN地址支持组织,处理本地域内的地址分配与管理;
ISP获取地址块
ISP向ICANN地址支持组织申请地址块;
组织获取地址块
- 为获得用于某组织的子网,网络管理员与其ISP联系;
- ISP会从其所拥有的大地址块中,提供一个小地址块;
获取主机与路由器地址
- 一个组织获取了一个地址块后,需要为组织内的主机与路由器接口逐个分配IP地址;
路由器IP
系统管理员常通过远程网络管理工具手工配置路由器中各接口的IP地址
主机IP
- 主机地址可手动配置;
- 但目前,通常通过DHCP动态配置