版本(4):版本字段,IP v4
首部长度:IP包头部长度,因为长度可变(因为下面有一个“可选项”),因此需要定义,
优先级与服务类型(8);优先级与服务类型,提供3层的QoS
总长度(16):IP数据总长度
标识符(16)、标志(3)、段偏移量(13):上层来的数据到IP层会被分片,这几个字段用来对数据包进行标识,使数据到达目的端重组的时候,不会乱序
TTL(8):生命周期字段,经过一个路由器值减1,为0时,数据包丢弃。为了防止一个数据包在网络中无限循环下去
协议号(8):协议字段,用来标识封装的上层数据时UDP还是TCP,UDP是17,TCP是6
重点强调 IPv4是32位
IP v4 :2(32)=42亿9千万
IP v6 :2(128) (跟IP v4 的提升是扩充了IP地址的容量,包头是定长的)
Windows 95 、98 攻击方法:死亡之ping
A类: IP的二进制位必须是以0开头(但是要排除全0地址)
00000001.00000000.00000000.00000000 ----换算成十进制 1.0.0.0
01111111.11111111.11111111.11111111 ----换算成十进制 127.255.255.255
本地回环地址:127.0.0.1 代表自身网络协议是正常的,没有网络也可以Ping 通
B类: IP的二进制位,必须是以10开头
10000000.00000000.00000000.00000000 ----换算成十进制 128.0.0.0
10111111.11111111.11111111.11111111 ----换算成十进制 191.255.255.255
C类: IP的二进制位必须以110开头
11000000.00000000.00000000.00000000 ----换算成十进制 192.0.0.0
11011111.11111111.11111111.11111111 ---换算成十进制 223.255.255.255
A、B、C类是允许正常分配使用,一般电脑是使用的C类
D类: IP的二进制位必须是以1110开头 ,整个D类都不允许分配给普通电脑或服务器使用,作为组播地址使用
11100000.00000000.00000000.00000000 ----换算成十进制 224.0.0.0
11101111.11111111.11111111.11111111 ---换算成十进制 239.255.255.255
E类:IP的二进制位必须是以1111开头,整个E类不允许使用,作为保存存在
11110000.00000000.00000000.00000000 ----换算成十进制 240.0.0.0
11111111.11111111.11111111.11111111 ---换算成十进制 255.255.255.255
从A、B、C类,各拿出了一组,做私有IP (一般家里、学校、公司,都是使用的私有IP)
A类:10.0.0.0---10.255.255.255
B类:172.16.0.0---172.31.255.255
C类:192.168.0.0---192.168.255.255
A类里面,默认前一组数(前8位二进制)作为网络地址,代表不同的网段,后三组代表同一个网段里不同的主机
总共有1-126个网段,每个网段里有2(24)主机
(主机数的“-2”是因为最后一段的 “0”代表这个整个网络的网络地址,最后一位“255”代表是广播地址,所以不能使用 要减2)
A类:前8位为网络地址,后24位为主机地址
网段数:2(7)-2=126 (是7次方是因为第一位是不能变只能是0;-2是因为一个是要排除全0的地址,一个是本地回环地址127.0.0.1-------A特殊 )
主机数:2(24)-2=1677万
B类:前16位为网络地址,后16位为主机地址
网段数:2(14)=16384 (14是因为前两位不能变)
主机数:2(16)-2=65534
C类:前24位为网络地址,后8位为主机地址
网段数:2(21)=2097152
主机数:2(8)-2=254
A类默认子网掩码:255.0.0.0
B类默认子网掩码:255.255.0.0
C类默认子网掩码:255.255.255.0
每类的网络地址、主机地址跟子网掩码是一一对应的。比如A类是前八位是网络地址,子网掩码是一个255
到底是如何区分网络地址跟主机地址?跟是什么A类还是B\C类无关,是由子网掩码决定的
255换算成二进制是11111111,子网掩码是1,对应的IP地址就是网络地址
子网掩码如果是0,对应的IP地址就是主机地址
注意:私有IP地址不需要进行子网掩码划分(为什么没有意义,私有IP不需要花钱,私有IP的重复的),公有IP做子网掩码划分才有意义
节省IPv4的IP地址/保护IP,两种方式:私有IP 、子网划分 (在用户角度可以省钱)
1)子网掩码必须和IP地址同时出现,否则没有意义 (当只有IP出现,会套用默认的子网掩码)
(192.168.31.200/24指代 子网掩码255.255.255.0;/16指代255.255.0.0)
2)和子网掩码1对应的IP地址,代表网络地址;和子网掩码0对应IP地址代表主机地址
3)子网中只要1是连续的(中间没有被0隔开),就是合理子网掩码
(最大子网数不能超过64个,否则没有意义,如果分了64个网段,每个网段4个IP主机地址,只有1个IP是可用的,因为1个是网络地址、1个是广播地址、还有一个要做网关 )
192.168.31.200/24
192.168.31.1025 ----255.255.255.128----11111111.11111111.11111111.10000000
画图比较直观,但是不适合划分太多数量,使用换算公式
(网络地址跟广播地址,整个网段的第一个IP跟最后一个IP)
网络地址:把IP地址和子网掩码的二进制,按位(把IP与掩码的第一、二、三、九位)进行“逻辑与”运算
广播地址:有效子网掩码中,有几个0,就把IP地址的后几位换位1
子网个数:有效子网掩码中,有几个1,子网数就是2的几次方
主机个数:有效子网掩码中,有几个0,主机数就是2的几次方减2
不论是A类,还是B类的IP地址,最终都会套用C类子网掩码进行使用
子网掩码 二进制位数 子网数 主机数
255.255.255.0 /24 (24个连续的1) 1 256-2
255.255.255.128 /25 2 128-2
255.255.255.192 /26 4 64-2
255.255.255.224 /27 8 32-2
255.255.255.240 /28 16 16-2
255.255.255.248 /29 32 8-2
255.255.255.252 /30 64 4-2
(子网掩码总共只有这几种可能)
拓展:逻辑与运算&逻辑或运算
如果出现1和0竞争,那么这组及开始往后的掩码就是有效子网掩码 。对C类IP来讲,后8位是有效的,B类是后16位,C类是后24位
逻辑与运算:1跟1是1 ,只要有一个0,结果都是0
逻辑或运算:只要有一个1,就是1,两个0就是0
192.168.1.100/24 11000000.10101000.00000001.01100100
255.255.255.128 11111111 .11111111.11111111.10000000
网络地址: 11000000.10101000.00000001.00000000 =192.168.1.0
广播地址: 11000000.10101000.00000001.01111111 =192.168.1.127
子网数:2(1)=2
主机数:2(7)-2=126
192.168.1.165 11000000.10101000.00000001.10100101
255.255.255.224 11111111.11111111.11111111.11100000
(是连续的1,没有被0隔断,是有效的)
网络地址: 11000000.10101000.00000001.10100000 =192.168.1.160
广播地址:(粘贴IP地址11000000.10101000.00000001.10011111 =192.168.1.191
子网数:2(3)=8
主机数:2(5)-2=30
画图:一个0-255,有3个1,相当于切了三次,分成了8个子网段,每段有30个主机IP,网络地址是160,广播地址是191,
实际工作中遇到的问题应该是:
我有10台服务器,需要买多少个IP让这些服务器可以正常上网?
引申出,买16个主机数的,只有13个可用IP ,万一多一个怎么办? 如果多一个服务器,压力不大,作为备份,压力大就要扩充网段
节省IPv4 的方式: 动态IP、 私有IP 、子网掩码划分。目前解决IP v4的IP数量不够的方式就是升级IP协议成IP v 6 (IP v6 与IP v4 无法通信。IP v6 目前还没有大范围使用)
跟IP v4 的包头 对比:比IP v4 的包头更加简单,源地址增加了有2(128)数量,不再有选项,是固定大小的
IP v6 地址表示----重点内容
是用16进制写的,人为规定,每4个16进制,用“:”隔开 ,(1个16进制代表4个二进制位)每16个二进制位分一组用“:”隔开
IP v 6IP生效之后,就不再有公有IP、私有IP之说了,不需要考虑私有IP,所有的IP都是公有IP ,因为IP够用了 。也不再需要NAT转换,理论上速度会更快
零压缩法是真正的写法,两个::就代表省略了0