一、IP地址分类及其表示
IP地址 ::={<网络号>,<主机号>}
IP地址分类:
IP地址类别 | 网络号 | 网络范围 | 主机号 | IP地址范围 |
A类 | 8bit,第一位固定为0 | 0-127 | 24bit | 1.0.0.0 - 127.255.255.255 |
B类 | 16bit,前两位固定为0 |
128.0-191.255 |
16bit | 128.0.0.0 - 191.255.255.255 |
C类 | 24bit,前三位固定为0 | 192.0.0 - 223.255.255 | 8bit | 192.0.0.0 - 223.255.255.255 |
D类 | ||||
E类 |
二、IP数据报格式
IP数据报报头固定长度为20个字节,可变部分长度从1字节到40个字节不等,但需用全0补齐为4字节的整数倍。
重要字段解释:
总长度:16位,指的是首部和数据之和的长度。在IP层的下面的每一种数据链路层协议都规定了数据帧的数据字段的最大长度,称为最大传送单元MTU。当一个IP数据报封装成链路层的帧时,此数据包的总长度一定不能超过下面的数据链路层所规定的值。如果超过,则需把过长的数据包进行分片处理。
标识:16位,IP软件维持一个计数器,每产生一个数据报,计数器加1。当数据报由于超过MTL而分片时,这个数据字段就被复制到每一个的数据报片的标识字段中。相同标识字段值的数据报被重新合成为原来的数据报
标志:3位,最低位MF(more fragment),MF=1,表示还有分片,MF=0,表示此数据报为最后一个分片;中间位DF(Don't fragment),DF = 0,表示可以分片
片偏移:13位,表示该片相对于原来数据报的相对位置。片偏移是以8字节位偏移单位。
生存时间ttl: 8位,表示数据报在网络中生存时间,每经过一次路由器,ttl减1。当ttl为0,则被该路由器丢弃
首部校验和:只检验数据报的首部
三、数据报的转发流程
路由表的存储内容:(目的网络地址,子网掩玛,下一跳地址)
转发流程:
1.从收到的数据报中提取目的地址D
2.先判断是否直接交付。对路由器的直接相连的网路逐个检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址相匹配,若匹配,则直接交付。否则执行3
3.若路由表中有目的地址为D的特定路由,则把数据报传送给路由表中所指明的下一跳路由,否则执行4
4.对路由表中的每一行,用行中子网掩码逐位相与,结果为N,若N与该行的目的网络地址匹配,则把数据报交付给该行指定的下一跳路由,否则,执行5
5.若路由器有默认路由,则交付给默认路由,否则执行6
6.报告转发出错