网络层:IP协议
IP协议报头
其中取值只有两种,分别是4和6,分别对应IPv4和IPv6
IP报头,单位是4个字节,可变长
type of service,表示当前IP协议所处的工作模式
实际上只有四位是有效的。而且这4为是彼此冲突的,只有1位为1,其他3位为0
4位工作模式分别为
最小延时:吃饭吃得快
最大吞吐量:吃饭吃的多 != 快
最高可靠性:减少丢包的概率
最小成本:硬件设备的开销
描述了一个IP数据包的长度(报头+载荷)
虽然IP自身有长度限制,但是IP也提供了拆包/组包这样的功能。当TCP载荷很大,超过了64KB,到了IP这一层就可以拆成多个IP数据报,每个数据报拿一部分载荷
上述的拆包过程是系统内核自动完成的,程序员通过软件代码无法干预到
其实IP的拆包并不是完全因为64K的限制,而是在数据链路层还有限制
16位标识:描述哪些IP数据报的载荷应该往一起组装
3位标志:只有两位有效,其中1位表示这次的IP数据是否拆包了,还有1位是结束标记
13位片偏移:描述包与包之间的先后顺序
单位是次数,存储的是一个整数,一个IP数据报,每次经过一个路由器转发,TTL就-1。如果TTL为0了,说明快要丢包了
TTL一般来说采用32或者64这样的整数,足以支持当前的网络传输,也能防止某个数据在网络上不停地转发下去
32位整数够用吗?
其实是够的。参考六度空间理论:世界上任何两个人想互相认识,只需要最多6位朋友的介绍
在计算机中,每个路由就代表一位朋友,即使互联网很复杂,要访问到世界的每一个角落,最多只需要2^5=32 / 2^6=64次就足够了