计算机网路—网络层:数据平面
该学习笔记包括课本与慕课内容
目录
1.网际协议:IPV4
掌握IP编址
1.1IPV4数据报格式
IPV4的关键字段:
- 版本号:占4位,IP协议的版本号。不同IP版本使用不同的数据报格式
- 首部长度:占4位,IP分组首部长度。确定IP数据报中载荷实际开始的地方
- 服务类型(TOS):占8位,指示期望获得哪种类型的服务。
- 总长度:占16位,IP分组的总字节数(首部+数据)。理论最大长度65535字节,实际很少超过1500字节
- 标识、标志、片偏移:与IP分片有关
- 寿命(Time-To-Live TTL):占8位,IP分组在网络中可以通过的路由器数(或跳步数)。·路由器转发一次分组,TTL减1。如果TTL=0,路由器则丢弃该IP分组
- 协议:占8位,指示IP分组封装的是哪个协议的数据包(指示了IP数据报的数据部分应交给哪个特定的运输层协议)value=6->TCP、value=17->UDP。实现复用/分解
- 首部校验和:占16位,实现对IP分组首部的差错检测。计算校验和时,该字段置全0。采用反码算数运算求和,和的反码作为首部校验和字段逐跳计算、逐跳校验。路由器一般会丢弃检测出错误的数据报
- 源IP地址、目的IP地址:各占32位,分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址。通常源主机通过DNS查找来决定目的地址
- 选项:占长度可变,范围在1~40B之间,携带安全、源选路径、时间戳和路由记录等内容。少量选项的存在使问题复杂化,故IPV6首部已经去掉了IP选项
- 填充:占长度可变,范围在0~3B之间,目的是补齐整个首部,符合32位对齐,即保证首部长度是4字节的倍数
- 数据(有效载荷):包含要交付给目的地的运输层报文段(TCP或UDP),也可承载其他类型数据,如ICMP报文
1.2IPV4数据报分片
最大传送单元(Maximum Transmission Unit MTU):一个链路层帧能承载的最大数据量
问题:但确定链路的MTU比该IP数据报的长度小,如何将过大的IP分组挤进链路层帧的有效载荷字段?
方法:将IP数据报中的数据分片分成两个或更多个较小的IP数据报,用单独的链路层帧封装发送这些较小的IP数据报,然后通过链路发送这些帧。每个这些较小的数据报被称为片(fragment)
大lP分组向较小MTU链路转发时,可以被“分片”(fragmented),1个IP分组分为多片IP分组,IP分片到达昌的主机后进行“重组”(reassembled)
P首部的相关字段用于标识分片以及确定分片的相对顺序,总长度、标识、标志位和片偏移
最后一个片的标志被设为0,其他所有片的标志比特被设为1,为了让目的主机确定是否丢失了片(且能够按正确的顺序重新组装片),使用偏移字段指定该片应放在IP数据报哪个位置
IP分组数据格式
标识:占16位,标识一个IP分组IP协议利用一个计数器,每产生IP分组计数器加1,作为该lP分组位标识
标志位:占3位,DF (Don't Fragment)与MF (More Fragment)
- DF=1:禁止分片;
- DF =0:允许分片
- MF=1:非最后一片;
- MF =0:最后一片(或未分片)
片偏移:占13位,一个IP分组分片封装原IP分组数据的相对偏移量
IP分片过程
假设原IP分组总长度为L,待转发链路的MTU为M若L>M,且DF=O,则可以需要分片,分片时每个分片的标识复制原IP分组的标识,通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片,一个最大分片可封装的数据应该是8的倍数,因此,
一个最大分片可封装的数据为:
需要的总片数为:
每片的片偏移字段取值为:
每片的MF标志位为:
每片的总长度字段为:
1.3IPv4编址
接口:主机与物理链路之间的接口。实现网络层功能,路由器通常有多个接口主机通常只有一个或两个接口(e.g.,有线的以太网接口,无线的802.11接口)
IP地址:32比特(IPv4)编号标识主机、路由器的接口
网络号(NetlD)一高位比特
主机号(HostlD)一低位比特
IP子网:P地址具有相同网络号的设备接口,不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口
点分十进制法:地址中的每个字节按十进制形式书写,各字节间以句点隔开
因特网的地址分配策略被称为无类别域间路由选择(Classless Interdomain Routing)
a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,称为该地址的前缀(prefix)
1.4有类编址
IP地址的网络部分长度被限制为8、16或24bit,分别称为A、B和C类网络
IP子网划分与子网掩码
IP地址:
- 网络号(NetlD)一高位比特
- 子网号(SubID)一原网络主机号部分比特
- 主机号(HostID)-低位比特
子网地址+子网掩码→准确确定子网大小
- A网的默认子网掩码为:255.0.0.0
- B网的默认子网掩码为:255.255.0.0
- C网的默认子网掩码为:255.255.255.0
- 借用3比特划分子网的B网的子网掩码为:255.255.224.0
例如:子网201.2.3.0,255.255.255.0,划分为等长的4个子网
分别是:
201.2.3.0, 255.255.255.192
201.2.3.64, 255.255.255.192
201.2.3.128, 255.255.255.192
201.2.3.192, 255.255.255.192
解析:该网络子网掩码为/24,要划分为4个子网,要借用主机位2位作为子网位。
因为二进制数0和1按一位排列组合,只有这4种,分别为:00,01,10, 11
00是A子网
01是B子网
10是C子网
11是D子网
借用主机2位,所以子网掩码+2位,由原来的255.255.255.0 (/24)变为255.255.255.192(/25)
11111111.11111111.11111111.11000000即255.255.255.192
结论:C类网络等分成4个子网,子网掩码往右移动2位,就能等分成4个子网,即2^2。网络地址计算小技巧:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址。