IPV4协议格式
首部 | 版本
4位 | 首部长度 4位 | 服务类型 DSCP+ECN 6+2=8位 | 总长度
16位 | ||
标识 16位 | 标志 3位 | 分片偏移 13位 | ||||
生存时间 8位 | 协议 8位 | 首部校验和 16位 | ||||
源IP地址 32位 | ||||||
目的IP地址 32位 | ||||||
选项 + 填充 0 – 40 字节 | ||||||
数据 |
| |||||
| | | | | | |
说明:
版本: IP协议版本,4
首部长度: 4位,表示范围0-15,每个位表示的单位长度是4字节,所以首部长度最大60字节,并且是4的整数倍。
服务类型: (TOS)Type of service,最开始(RFC971)用前3位表示8个优先级,数字越大优先级越高,IP优先级如下:
0、 尽力服务数据;1、中优先级数据;2、高优先级数据;3、呼叫信号;4、视频会议;5、语音;6、预留;7、预留。
后(RFC2474)因8个级别不够,改为前6位为DSCP(6位区分服务码点),(RFC3168)后两位显示拥塞通知ECN。
Dscp的值有两种表示方法,数字和关键字两种形式。
数字形式映射到已定义的PHB(per-hop-behavior)标识码,一共64(2^6)个。
但这种表示方式比较难读懂,于是有了关键字形式:
Class selector(CS):后三位是0,即 CS6为101000;
Expedited Forwarding(EF):101110,是一个较高优先级;
Assured Forwarding(AF):前三位除以8,得到一个数,是ipv4优先级,余数是丢包优先级,例如AF12,SDCP为001 100,001是ipv4优先级1,
Default(BE):000 000
总长度: 16位,故ipV4数据报总长度 2^16 = 65536。数据部分长度就是该总长度 – 首部长度*4。
标识: 由IP模块为每个IP数据报设置成不同的值,用于分片和重组
标志: 3位,分别为0,DF,MF。
DF为don’t fragment不分片,1不分片,0分片;MF为more fragment,1时表示还有分片,0时表示最后一个分片。
分片偏移: 表示分片在整个数据报中的位置。
生存时间: TTL(time-to-live),也叫跳数。每个路由器-1,减到0时丢弃。
协议: 使用该IP数据报的高层协议,例如1表示CMP、2表示IGMP,6表示TCP,17表示UDP,89表示OSPF。
检验和: 16位反码加法,校验IP首部。
IPV4地址
之前分类,安装4个十进制数中的前几位把IP地址分为了几类,后来就无类了,靠子网掩码来随意划分网络和主机。把4个十进制化成二进制数字,然后和子网掩码进行逻辑与计算,得出的就是网络部分,后面的是主机部分。
网络部分就像电话区号,主机部分就像电话号,在子网内唯一,这个子网是用过路由器划分的,也就是一个路由器下面的每个主机要分配同样的网络号,即IP地址前n位和相应子网掩码相同。