网络层概述

网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输

要实现网络层任务,需要解决以下主要问题:

因特网(Internet)是目前全世界用户数量最多的互联网,它使用TCP/IP协议栈

由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在TCP/IP协议栈中网络层常称为网际层

综上所述,我们通过学习TCP/IP协议栈的网际层来学习网络层的理论知识和实践技术。

IPv4数据报的首部格式

首部长度

占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。

最小十进制取值为5,表示IP数据报首部只有20字节固定部分;

最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分; 可选字段

填充字段

区分服务

总长度

举例:()为二进制 首部长度=(0101) x 4 = 5 x 4 = 20(字节)

总长度=(0000001111111100) = 1020(字节)

数据载荷长度=总长度-首部长度=1020 - 20 = 1000(字节)

标识

标志

占3比特,各比特含义如下:

片偏移

举例:对IPv4数据报进行分片

片偏移除8是因为片偏移是以字节做单位。

生存时间TTL

协议

协议名称ICMPIGMPTCPUDPlPv6OSPF
协议字段值126174189

首部检验和

源lP地址和目的IP地址

例题:某公司网络下图所示。IP地址空间192.168.1.0/24被均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了IP地址,销售部子网的MTU=1500B,技术部子网的MTU=800 B.

(2)假设主机192.168.1.1向主机192.168.1.208发送一个总长度为150OB的IP分组,IP分组的头部长度为20B,路由器在通过接口F1转发该IP分组时进行了分片。若分片时尽可能分为最大片,则一个最大IP分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?

解析:

这么分是错的,因为片偏移量必须为整数。

应该取小于780且能被8整除的数,为776。

例题:题47-a图是网络拓扑,题47-b图是主机进行Web请求的1个以太网数据帧前80个字节的十六进制及ASCII码内容。(1) Web服务器的IP地址是什么?该主机的默认网关的MAC地址是什么? (4)该帧所封装的IP分组经过路由器R转发时,需修改IP分组头中的哪些字段。

解析:

同理,该主机的默认网关的MAC地址是前6给字节,也就是00-21-27-21-51-ee

IP分组经过路由器R时,生存时间字段被减1;

首部检验和会被重新计算;

若IP分组总长度大于MTU,则需要进行分片,此时总长度字段、标志字段片偏移字段都需要修改。