ip提供不可靠,无连接的服务。
不可靠:ip协议不保证ip数据报能成功到达目的地。任何要求的可靠性必须由上层来提供。
无连接:ip并不维护任何关于后续数据报的状态信息。
ip首部
- 版本:区分ip的版本,主要是ipv4和ipv6
- 首部长度:指首部占32bit的数目,因为首部长度是4 bit字段,所以首部最长可以有(2^4-1)*4=60个字节。默认该值为5,即20个字节
- 服务类型:包含3bit的优先权子字段,4bit的TOS子字段和1bit未用位但必须置零
- 总长度:总长度包含首部和数据,最大为2^16-1,即65535,但同时不能大于数据链路层的MTU。当数据包过小时,需要填充内容,根据总长度可区分哪些是数据内容,哪些是填充内容。
- 标识:用于标识数据报。如果发生分报,分报的标识也是相同的。
- 标志:占用3位(,这三位分别是:R,D,M三位,第一位是保留位,没有被使用,目前只有后两个比特有意义。
R:标志字段中的第一位是一个保留位,现在还没有使用,可能将来会用到这位
D:标志字段中间的一位是 DF (Don’t fragment),表示传输的数据不允许分片。一般DF = 1的话,表示数据一次性传输过去,不允许分片。
M:标志字段的最低位是 MF (More fragment)。代表数据是否分片,如果MF位值为1,表示后面还有数据,还没有传输完毕,相当于数据分片,分批次传输,如果MF = 0表示最后一个分片或者只有一个分片
三位同时只能有一位为1 - 片偏移(Fragment offset)占用13位:每次分片传输的数据之间的偏移距离,也就是某分片的数据在原数据中的相对位置,一般偏移以8字节为单位。比如:在网络层传输的ip数据报总长度最大不能超过65535字节,如果超过了,要么对ip数据报进行分片传输,否则将丢弃。
- 生存时间(TTL):记录了数据报可以经过的最大路由数,每经过一个则减一
- 协议:标识是哪个协议传的数据
- 首部校验和:只校验首部,不包含数据部分
ip路由选择
- 寻找ip完全匹配
- 寻找网络号匹配
- 走默认路由
子网
子网的好处:缩减路由表规模