Bootstrap

计算机网络网络层数据链路层协议详解

网络层

工作:地址管理和路由选择

IP协议

在这里插入图片描述

  1. 4位版本:IP协议的版本号,当前只有两个取值,4和6(0100,0110),下面面讨论IPv4
  2. 4位首部长度:IP报头和TCP类似,都是可变得带有选项,4位的取值范围0-15,这里的单位也是4个字节,如果取值是1111,实际表示的首部长度就是60字节
  3. 8位服务类型(TOS):说是8位实际只有4位是有效的。4位TOS分别表示,最小延时,最大吞吐量,最高可靠性,最小成本。(同一时刻,只能取一种状态)这里的TOS相当于是切换形态。
  4. 16位总长度:UDP也有类似的情况,16位说明最大长度64k,因此单个IP数据包最大长度确实不能超过64k。如果要构造更长的数据包,IP协议自身实现了分包和组包的操作。
  5. 第二行的16位标识,3位标志,13位片偏移这三个字段就是用来进行分包和组包的。如下图所示:

在这里插入图片描述
在这里插入图片描述

16位标识:多个被拆出的IP数据报16位标识的值是相同的,可以用来区分从不同IP包里拆出的数据。
13位偏移:用来描述包的先后顺序,片偏移准确来说也不是单纯的1,2,3,4而是可以基于片偏移来计算出中间差多少空间。
3为标志:3位只有一位是好使的,0表示后面还有后续,1表示这是最后一个包。(结束标记)

如何基于UDP实现分包组包?
解决方案就是照抄IP作业

  1. 8位生存时间(TTL):表示一个IP数据报能在网络上还能存在多久,这里的单位不是s或者ms,而是转发次数。IP数据包被发送的时候会有一个初始的TTL(比如常见的取值128或者64),IP数据包每次经过了一个路由器TTL就会-1,如果TTL减到0
;