子网划分核心原理 (网络原理1)
本章节将要讲解的是网络层协议:
IP协议是网络层最核心的协议,它主要解决数据传输中主机到主机的问题,而TCP是解决进程到进程的问题。
- IP = 目标网络+目标主机
路由器负责把数据从一个子网(局域网)路由到另一个子网,传统路由器只具备网络层及以下的功能。当代路由器已经是小型计算机了。
基本概念:
- 主机:配有IP地址,也要进⾏路由控制的设备;
- 路由器:即配有IP地址,⼜能进⾏路由控制;
- 节点:主机和路由器的统称;
IP协议报头
内核源码:
struct iphdr {unsigned char version : 4;unsigned char ihl : 4;unsigned char tos;unsigned short tot_len;unsigned short id;unsigned short frag_off;unsigned char ttl;unsigned char protocol;unsigned short chksum;IPADDR src_addr;IPADDR dst_addr;
};
4位版本:标识IP的版本,IPv4 的值为4
,IPv6 的值为6
。
4位首部长度:表示报头的长度
因为报头的选项长度是不确定的,所以报头长度就不是固定的,需要首部长度来标识报头的长度。
首部长度:4bite位(0~15),基本单位是4字节,也就是说首部长度需要乘以4字节才是所表示的报头长度,所以它能表示的长度范围是[0*4,15*4]字节。如上图TCP报头至少是20字节,x*4 = 20,x=5;即首部长度范围[5,15]。tcp报头长度一定能整除4字节。
8位服务类型
定义数据包的优先级和服务类型
16位总长度:整个数据包的长度,即报头+有效载荷
16位标识,3位标志,13位偏移和分片有关,到后续文章分片技术进行讲解。
8位生存时间
本质是计数器,数据包每经过一个路由器减 1,归零时丢弃。目的是防止因路由环路导致数据包无限循环(如 TTL=64 时最多经过 64 跳)。
8位协议
标识上层协议类型(如 TCP、UDP、ICMP),接收方需知道将数据交给哪个上层协议处理(例如 6
=TCP,17
=UDP)。
16位首部校验和
校验 IP 报头是否传输错误,确保报头字段(如目标 IP、协议类型)未被篡改或损坏。例如:电会产生磁场,会影响另一个线的流动,导致bite位反转,波峰变成波谷。
32位源/目的IP地址
标识发送方和接收方的逻辑地址,互联网依赖 IP 地址寻址,确保数据包能路由到正确目标,源地址用于回复或错误报告(如 ICMP)。
选项字段
扩展功能(如记录路由、时间戳),用于调试或特殊需求(现较少使用,因增加路由器处理负担)。
- 注意:IP版本基本上都是IPV4,IPV4和IPV6不兼容。
- 注意:IP不解决可靠性问题,但要保证交付的是正确的报文。
子网划分
共识:网络本身是几十年发展的产物,在网络建设时,是经历了几十年的规划建设的!—— 网络是被设计过的。
把一个局域网比作是学校,把主机比作是学生,IP比作是学号。我们拿着IP在网络中找到一个主机,和拿着学号在学校里找到一个学生差不多。我们并不是拿着学号去找学生一个一个比对,把所有人都遍历一遍,这样效率太低了。而是在学号上做特殊设计,比如
学号 = 学院号 + 班级号 + 班级内序号
这样就只需要做三轮比对就能快速找到对应的学生。
数据如何在网络中找到对端主机呢?
举个例子,比如数统院李四捡到了学生证,学号是0625866,找到并归还给对应学生的过程如下:
李四捡到学生证,发现学号开头是06,他知道绝对不是他们院的,但并不知道是那个院,只能交给学生会主席,学生会看到后知道是机械学院的,然后给隔壁学生会传,同样的一直传的机械学院,机械学生会看到是06开头后知道是给咱们院的,然后根据学号的后几位找到对应的学生张三。
- 张三、李四:通信主机
- 单个学院:局域网(内网,子网)
- 整个学校:广域网(外网,公网)
- 学院主席:路由器
- 学号:IP地址;学号=院号+院内编号;IP=网络位+主机位。
- 张三->学生会主席:内网转发
- 学生会主席->校群:公网转发
- 划分学院:子网划分
- 学校:运营商
学校的各种机制:学院、院号、学号等等在我们没有上大学时已经设计过好了,等上大学直接给我分配学号。同样的当我们上网时会给主机分配IP,当我们退出网络,这个IP就会分配给其他人使用。
为什么要子网划分?
快速高效的找到对应的主机通信。路由报文本质是查找主机,查找的本质:淘汰的过程。那么淘汰效率越高,查找效率就能越高。完成子网划分后可以根据网络号一次淘汰大量的主机,缩小查找范围,而不是一个一个的去遍历。
- 注意:路由器即属于子网1也属于子网2。
- 注意:在同一个子网内,网络号一定相同,主机号一定不同。
- 注意:路由器至少要配两个IP(两张网卡)。
- 注意:路由器IP的主机标识往往都是1。
分类划分法
IP地址占4字节,也就是32个比特位,我们知道IP是由网络位和主机位组成的,所以需要区分出那些位是网络位,那些位是主机位。
最早期使用分类划分法进行划分,如下:
整个IP分为三个部分,开头部分是用来区分该IP是属于哪一类,中间这一部分标识的是网络位,最后几位标识的是主机位。
为什么要分类?不同国家和地区对网络位和主机位的数量需求不同。
IP地址是四字节,只能表示1到42亿左右,,而全球人口已经到了80.2亿,IP成了一种稀缺资源。各个国家运营商都在抢,抢到后就可以构建自己的子网。
以上是最早期的IP划分方式,有很多缺点,有的国家拿到了某一类IP,但可能网络位或主机位用不完,造成浪费等等。
该方式划分得太粗了,太浪费,所以有了新的划分方式。使用子网掩码。
子网掩码
子网掩码:以若干个1开头以0为结尾的数字。IP地址跟子网掩码进行按位与得到网络号。如下:
子网掩码存在的意义?把网络划分得更细,更灵活。通过设定子网掩码中1的个数就能划分出网络位与主机位。
子网掩码和IP地址(网络号)要配置到路由器内部。
主机号0和全F已经作为特殊用途使用,真正标识主机的只有
子网范围=2^(子网掩码中0的个数)-2
个。主机号为0,则IP表示网络号。如果为全F,表示广播地址(所有主机)。
- 注意:两种划分方式不冲突,而是互补。
- 注意:子网掩码的划分方式只是提高了利用率,没有提高上限。
- 注意:因为IPv4稀缺,提出了IPv6,占16字节。中国在推广。其次现在NAT技术几乎已经解决了IPv4稀缺的问题。
关于NAT技术和分片技术,在下一期文章讲解。
非常感谢您能耐心读完这篇文章。倘若您从中有所收获,还望多多支持呀!