文章目录
1、网络层协议1、ip协议2、ip报文格式
2、ip地址介绍1、ip地址基础2、ip地址的构成,计算3、ip地址分类4、单播地址的特点5、地址规划6、特殊的ip地址
3、子网划分1、点到点的链路,划分掩码2、路由汇总(子网的反运算)
1、网络层协议
1、ip协议
指的标识不同设备的地址,网卡的ip地址
实现数据包的寻址和转发,寻址就是根据目标Ip这条路来进行转发
2、ip报文格式
ip头部,最小是20byte,最大是40byte
20个字节包含了以下字段
ip协议的版本号,4,version
包头长度+可选长度的总大小,header length
服务类型字段,type of service,做Qos用的,将报文做一个等级分类,等级高的,转发效率就快一点,等级低的,就慢一点,根据优先级来判断,网络优化
报文的总长度,就是ip头部,tcp头部,用户数据这些长度
用总长度-ip头部 = 段的大小(用户数据+tcp) TTL值,生存时间,源主机到目标主机的时间,默认值64,128,255,每经过一次路由器的话,就会减1,最终为0的时候,就会丢弃,避免了带宽的占用,就是解决了环路产生之后的问题,不能防止环路,只能发生环路之后最终解决的问题
路由环路,就是报文在一系列路由之间进行转发,但是无法到达目的主机
ttl值没有到0,会一直环下去
正常情况下,ttl的值不会为0
protocol,协议号,这个ip报文的上层协议,tcp是6,udp是17,icmp是1,传输的时候,目标端根据这个协议号,就交给对应的协议进程进行处理
包头校验格,目标主机算出来的值与原值不同的话,直接进行丢弃
源ip地址和目的ip地址
ip分片
网络层中的ip,来进行分片,因为从应用层数据下来的数据太长了,所以的话,进行分片传输,在各个链路上面进行传输
分片流程
在一个链路上面规定链路层数据帧的最大长度,称为链路层MTU
就是ip数据包+帧头和帧尾,大于链路层的mtu的话,就将这个数据报文进行分片的操作从而进行传输,适配链路传输的大小
第一个分片包含了完整的传输层协议头,tcp或者udp,后面的分片包含数据部分,不会重复发送传输层的头信息
最后的接受者,进行重组分片的数据
identification,flags,fragment offset,这三个字段进行ip报文的分片
identification 标识这一组唯一的id
Fragment Offset 表示当前分片在原始数据包中的位置,单位是8字节,如果是值为2的话,就是2*8距离原始数据包的距离
flags 就是3个位的字段
bit0(Reserved bit) 保留未使用,必须为0
bit1(DF - Don’t Fragment) ,设置为1 数据包不应被分片,若无法进行传输,则丢弃数据包;0的话则代表可以分片;由上层的应用来决定的
bit2(MF - More Fragments) 设置1 ,后面还有更多的分片,就不是最后一个分片;如果是最后一个的话,则设置为0
2、ip地址介绍
1、ip地址基础
作用
用于标识一个节点,或者网络设备的接口,网卡上面有地址
用于ip报文在网络中寻址
计算
ip地址的长度为32bit,4个字节,总的长度为2^32,所以的话,不够用,每一个都有2个选择,总共有32位,
ipv6,2^128次方,128比特,16个字节,完全够用
点分十进制
11000000 .10101000 .00001010 .00000001 二进制
192.168.10.1 十进制,相乘
有一个非常简单计算,用于简单的计算
128 64 32 16 8 4 2 1
22转换为二进制因为16+4+2=22所以话,对应的话就为1 = 00010110
转换为10进制的话,
# 上面是简单的算法,下面是常用的算法
100转换为二进制的话
# 100-128 不能减,所以为0
# 100-64=36
# 36-32=4,可以减,所以为1
# 到4才能减,所以为1
最后的结果为 01100100
# 转换为10进制的话,1*2^2+1*2^5+1*2^6等于100
ip地址取值范围
0.0.0.0~255.255.255.255,也就是32个0或者32个1
2、ip地址的构成,计算
网络部分和主机部分组成
网络部分用来标识一个网络,主机部分标识一个网络中的不同主机
网络号代表所属的网段,主机号代表网段里面的主机
对于不同的网段来说,主机号可以重复的使用
子网掩码就是区分ip地址的网络号,从而区分网段
子网掩码
子网掩码的相同,就是相同的网段
有连续的0和1组成
0代表主机位,1代表网络位
192.168.45.120/25 ---
# 进行与运算 1跟1才为1,其余全为0
25 ----- 10000000
120 ---- 01111000
# 计算值
00000000
得出网络地址为192.168.45.0/25
可用地址为 2^7 - 2(广播地址和网络地址) = 126个可用地址
算出了网络地址,直接将主机位后面全部为1,就能算出广播地址
01111111 = 127
192.168.1.100/16
网络地址为192.168.0.0/16
广播地址为192.168.255.255/16
总的地址数量为2^16
可用的地址数量为2^16-1
172.16.10.80/26
网络地址为172.16.10.64/26
广播地址为172.16.10.127/26
网络地址和广播地址
网络地址,主机位全为0
广播地址,主机位全为1,网络地址算出来,就可以算出广播地址
只要主机位不是全0或者全1的话,其余的都可以用,192.168.1.255/16可以用,因为主机位不全是0或者不全是1,根据子网掩码进行划分
3、ip地址分类
A类地址
第一个bit为0,前8位是网络位
所以的话,A类地址的范围,0.0.0.0 ~ 127.255.255.255/0
全0就是最小,全1就是最大的
B类地址
前2个bit位10,前16位为网络位
范围,128.0.0.0 ~ 191.255.255.255/16
C类地址
前3个bit位110,前24位网络位
范围,192.0.0.0 ~ 233.255.255.255/24
D类地址
组播地址,前面4个位1110
一对多的通信
E类地址
前面4个1111 总结
ABCE类地址,是单播地址,一对一的通信
全部都分配完了,2011年
在多链路中,一个网段被分配出去了,另外一个链路就不能使用这个分段了,避免主机位重复,但是这样会造成一个原因,就是会造成大量的浪费
有类地址,就是根据ip的类别进行地址规划
无类地址,没有严格的类的概念,可变长度的子网掩码
ABC类单播地址中分为公网地址或者私网地址
公网地址必须由IANA(分配机制)进行分配,保证在互联网内唯一性
私网地址是由用户自行使用,可以重复使用,提高地址的利用率,缓解了公网Ipv4地址不足
在同一个私网网络中保证私有地址的唯一性,不同的私有网络可以重复使用私有地址
4、单播地址的特点
一对一的通信的
主机位全为0的主机,是代表的一个网段,不能分配给主机使用,用来区分不同网段的
主机位全为1的主机,是代表的一个广播地址,代表了这个网段的所有主机,所以不能分配给主机使用
之前访问这个广播地址,所有的主机有回应的,就会获得这些活动主机,现在的话不会进行回应,这个就是漏洞攻击;所以的话,现在就是直接进行丢弃即可
5、地址规划
企业内部的话,私有地址尽量不要在同一个网段,避免冲突,如果2个公司没有通信的要求的话,私网地址可以相同
私网地址,然后通过nat转发可以到公网,通过这个公网进行访问
6、特殊的ip地址
255.255.255.255 广播地址,发往该网段的所有主机,全网广播地址,代表了任意主机,但是路由器不会转发,目标ip为255.255.255.255的广播报文,有限广播地址
默认的情况下,路由器不转发任意的广播地址的报文,用于隔离广播域,路由器的一个接口就是一个广播域
子网广播地址,192.168.1.31/27 ,代表了这个网段的所有主机
0.0.0.0 代表了任意的主机,可以作为报文的源地址使用,但是不能作为目标地址使用
环回地址,127.0.0.0 ~ 127.255.255.255 用于系统内部通信使用,目标ip为127开头的所有报文,但是不会发送到链路上面,这个地址访问不了的话,就是网卡驱动出现了问题
所以的话,A类地址中的1.0.0.0 到 126.255.255.255 这些才能使用,127.0.0.0到127.255.255.255保留用于其他用途 169.254.0.0/24 当主机自动获取地址失败后,可以使用该网段中的某个地址进行临时通信,就是dhcp获取失败时,可以使用这个地址
3、子网划分
需求,企业获得了C类地址,192.168.1.0/24,有5个部分,每个部门获取到主机为10~28台主机
2^n -2 >=29(加上一个网关地址)
# 所以的话n=5就非常的合适,8-5=3,2^3=8个子网
# 可以划分8个子网,每个子网里面的地址为32个,可分配的地址为30个,满足29的需求
# 192.168.1.0~192.168.1.31/27
# 192.168.1.32~192.168.1.63/27 不同的网段
上面的子网划分被称为等长子网划分,子网相同
需求,A部门100台主机,B部门58台主机,C部门27台主机,D部门10台主机
从大的主机上面进行划分,然后依次在后面添加,192.168.1.0/24包含了192.168.1.0/25/26/27等等的网段
2^n - 2 >=100 n=7
192.168.1.0~192.168.1.127/25
2^n -2 >=58 n=6
192.168.1.128~192.168.1.191/26
上面被称为可变子网划分
1、点到点的链路,划分掩码
分配效率最高的话,2^n - 2 = 2,设置子网掩码30是最高的,255.255.255.252
如果在路由器上面配置1.1.1.1/31的话,在链路点到点的话,2^1=2个地址,网段地址,广播地址,可以用,那是因为ip地址不够了,所以的话就使用网络地址和广播地址
以太网链路上面,配置不同的网段,是不能进行通信的,也就是交换机的与其他的设备的链路上面
但是ppp协议的点到点可以进行通信
2、路由汇总(子网的反运算)
主机位相同的即可进行汇总
将192.168.0.0/24和192.168.1.0/24 用一个网络号来表示所有的网络
# 换算成二进制
192.168.0000 0000. 00000000
192.168.0000 0001.00000000
# 相同的地方,也就是23
192.168.0.0/23可以全部包含地址
路由汇总分为精确汇总和非精确汇总
精确的汇总:汇总的地址和被汇总的地址范围一样
非精确汇总:就是将汇总的和没有汇总的都包含在里面
# 比如
192.168.0.0/21包含了
192.168.0000 0 000 .0000 0000 192.168.0.0/24
192.168.0000 0 001 .0000 0000 192.168.1.0/24
192.168.0000 0 010 .0000 0000 192.168.2.0/24
192.168.0000 0 011 .0000 0000 192.168.3.0/24
192.168.0000 0 100 .0000 0000 192.168.4.0/24 # 还包含了其他的
能精确的精确汇总,不能精确汇总的话,就不汇总,直接单独划分出来
# 规律的话就是2个网段可以汇总
192.168.0.0/24
192.168.1.0/24 192.168.0.0/23
192.168.2.0/24
192.168.3.0/24 192.168.2.0/23 等等等
# 下面的子网的距离,就可以直接进行汇总
0-1 2^1 2个子网 2-3 4-5 6-7 /23
0-3 2^2 4个子网 4-7 8-11 12-15 16-19 /22
0-7 2^3 8个子网 8-15 16-23 24-31 /21
0-15 2^4 16个子网
0-31 2^5 32个子网都能汇总
# 这些子网都符合精确汇总
192.168.0.0/24到192.168.31.0/24 31-0+1=32=2^5,可以有一个网段来写出来
精确汇总的话就是192.168.0.0/19 2^5=32 所以的话,需要借5个主机位,24-5=19的网络位就代表了里面的所有地址
192.168.1.0/24~192.168.10.0/24
# 精确汇总
192.168.1.0/24
192.168.2.0/23
192.168.4.0/22
192.168.8.0/23
192.168.10.0/24
192.168.8.0/23 # 里面一共有512个地址
192.168.8.0~192.168.8.255 # 有256个地址
192.168.9.0~192.168.9.255 # 256个地址
# 可用地址的话
192.168.8.1~192.168.8.254
192.168.9.1~192.168.9.254
172.16.5.0/24到172.16.20.0/24
# 精确汇总
192.168.5.0/24
192.168.6.0/23
192.168.8.0/21 包含了 192.168.8.0 ~ 192.168.15.0
192.168.16.0/22 包含了 192.168.16.0 ~ 192.168.19.0
192.168.20.0/24
总结
精确的划分,就能避免环路,避免不良的地址规划
设备的lookbackup规划,采用的/32主机路由,172.16.1.0/24,是环回地址