网络层:
网络层是TCP/IP协议的核心层,实现跨网络的数据包路由与转发,解决"不同网络之间如何通信问题",为上层(传输层)提供端到端的网络服务,就是在复杂的网络环境中找到一个合适的路径。
IP协议:
IP协议是TCP/IP协议簇的核心,位于网络层,核心是实现不同网络间的数据包路由与转发,为上层协议提供端到端数据传输服务。
目录
一、IP协议
1、基本概念

主机:配有IP地址,但是不进行路由控制的设备;
路由器:即配有IP地址,又能进行路由控制;
节点:主机和路由器的统称。
2、协议头格式

IP数据报由头部(20字节固定部分和可变选项)和数据部分组成。
- 4位版本号:指定IP协议的版本,IPv4(32位地址,主流)或IPv6(128位地址,下一代)。
- 32位源IP/目的IP:分别标识发送方和接收方的网络地址,是路由转发的核心依据。
-
16位总长度:整个数据报的字节数(头部+数据),最大值65535字节。
-
16位标识:唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里的 这个id是相同的。
- TTL(8位生存时间):数据报到达目的地最大报文跳数。防止数据包无限循环转发,每经过一个路由器减1,为0则丢弃(默认值16/32等)。
- 8位协议字段:标识上层协议(如TCP=6、UDP=17、ICMP=1),用于数据报交付给对应协议处理。
- 头部校验和:仅校验头部数据,检测传输过程中的错误(数据部分错误由上层处理)。
3、地址管理
网段划分
IP地址分为两个部分:
网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。
注意:
①不同的子网其实就是把网络号相同的主机放到一起。
②如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复。
③手动管理子网的IP确保每台主机的IP地址不同是非常麻烦的,但是有一种技术叫DHCP可以自动的给子网内新增主机节点分配IP地址。
过去曾经提出过一种划分网络号和主机号的方案,把所有IP地址分为五类,如图

A类:0.0.0.0到127.255.255.255
B类:128.0.0.0到191.255.255.255
C类:192.0.0.0到223.255.255.255
D类:224.0.0.0到239.255.255.255
E类:240.0.0.0到247.255.255.255
但是这种方法有局限性:
- 地址浪费严重:比如一个小型公司用C类地址(默认子网掩码255.255.255.0,支持254台主机),若仅需10台主机,剩余244个地址被浪费;
- 路由表臃肿:每个网络对应一条路由条目,大量小型网络导致路由器路由表条目暴增,转发效率下降。
针对这种情况提出了CIDR:
引入一个额外的子网掩码来区分网络号与主机号;
子网掩码也是一个32位的正整数,通常用一串0来结尾;
将IP地址和子网掩码进行按位与操作得带网络号;
网络号和主机号的划分与这个IP地址是A类还是B类无关。
4、路由选择
路由的过程是一跳一跳(Hop by Hop)"问路"的过程
一跳就是数据链路层中的一个区间,具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。
IP数据包的传输过程也和问路一样:
①当IP数据包到达路由器时,路由器会先查看目的IP
②路由器决定这个数据包时能直接发送给目标主机还是需要发送给下一个路由器。
③依次反复,直到到达目的IP地址。
判断数据包该发送到哪里依靠每个节点内部维护一个路由表:
路由表是路由器/主机中存储的路由信息数据库,核心作用是为网络层IP数据包提供"转发决策依据"------路由器通过查询路由表,确定数据包的"下一跳地址"和"出口接口",实现跨网络的数据包转发。
当IP数据包到达路由器时,路由器只知道"目的IP地址",但不知道如何通过物理接口(如以太网口、串口)将数据包转发到目标网络。路由表通过存储"目的网络→转发路径"的映射关系,回答两个关键问题:
①这个数据包要去的目标网络,我是否可达?
②若可达,应该从哪个接口发出去,交给哪个下一跳设备?