IPv4和IPv6
本篇博客为最近课堂所学笔记整理和网上查阅的一些资料,如有错误,感谢指正。
IPv4
IPv4基础
- 为了在网络层定义广泛使用的通信标准,覆盖异构网络产生的差异,网络层协议的定义应该符合奥卡。姆剃刀理论(如无必要,勿增实体,让协议标准只需要满足基本的跨网络转发需求)
- IPv4的头部分装为:
- 版本:字段长度为4位,作用是表示数据包的版本。
- 头部长度:字段长度为4位,作用是标识数据包的头部部分长度
- 服务类型:字段长度为8位,作用是让网络层设备根据服务类型字段的取值,为数据包提供专门的服务。
- 数据长度:字段长度为16位,作用是标识数据包的长度。
- 标识:字段长度为16位,网络设备有时需要对一个IPv4数据包进行分片,即分成多个IPv4数据包。因此,IPv4数据包头部需要一个字段来标识用一个IPv4数据包的多个分片。
- 标记:该字段是3个独立的标记位,其中第0位是保留位,取值为0;第1位和第2位具体为:
- DF:don’t fragment, 禁止分片。如果取值为1,则表示设备对数据包进行分片时,会选择丢弃数据包;如果为0,则表示设备需要对数据包进行分片
- MF:more fragment, 更多分片。如果取值为1,则表示该数据包之后,还有更多分片;如果取值为0,则表示该数据包是最后一个分片。
- 分片偏移:字段长度为13位,作用是在接收方重组数据包的各个分片时,确定每个分片在原数据包中的顺序。
- 生存时间:字段长度为8位,表示数据包到达目的端之前允许经过的路由器跳数。(该字段值由发送方进行设置)
- 协议:字段长度为8位,作用是标识数据包封装的是哪个协议的数据段。
- 头部校验和:字段长度为32位,目的是在网络层对IP数据包头部进行差错校验
- 源IP地址:字段长度为32位,作用时标识源主机的IP地址
- 目的IP地址:字段长度为32位,作用是标识数据包的目的IP地址
- 可选项与填充位:可选项字段的作用时根据特定需求提供一些扩展功能
IP地址基础
- IP地址格式
- IP地址由32 位二进制数组成,实际上使用的是点分十进制表示法。
- 点分十进制表示法把32位二进制数平均分成4组,每组8位(一字节),然后按组转换为十进制数,组与组之间使用点(.)隔开。
- 例如某数据包IP头部的源地址字段值为00111011001101010101001011000101,使用点分十进制表示法,表示为59.53.82.197。
- IP地址分为网络部分和主机部分,其中,网络部分(网络位或网络号)表示IP地址所在的网络,主机部分(主机位或主机号)标识网络中一个适配器。在IP地址中,网络位从最左侧位开始,到第N位为止;主机位从第N+1位开始,到最右侧位为止
- 最初在定义IP地址的网络位和主机位时,路由器的处理能力有限。为了减轻路由器的处理负担,IP地址的前8位固定为IP地址的网络位,后24位固定为主机位。
- IP地址由32 位二进制数组成,实际上使用的是点分十进制表示法。
- 有类IP地址:IP地址的前八位固定为网络位,意味着这种编址方式只能支持256(2的8次方)个网络进行相互通信,难以满足更多新建网络的IP地址需求。IP地址的主机位有24位,表示每个网络可以支持16777216(2的24次方)台主机。
- 对此人们定义了IP地址的类:
- A类地址:指第一位二进制数为0的IP地址。A类地址的前8位二进制数为网络位,后24位为主机位。A类地址的理论范围为0.0.0.0~127.255.255.255
- B类地址:指前两位二进制数为10的IP地址。B类地址的前16位二进制数为网络位,后16位为主机位。B类地址的理论范围为:128.0.0.0~191.255.255.255
- C类地址:指前三位二进制数为100的IP地址。C类地址的前24位二进制数为网络位,后8位为主机位。C类地址的理论范围为:192.0.0.0~233.255.255.255
- D类地址:指前四位二进制数为1110的IP地址。D类地址预留为组播地址,理论范围为224.0.0.0~239.255.255.255
- E类地址:指前四位二进制数为1111的IP地址。E类地址预留为科研机构保留地址,理论范围为240.0.0.0~255.255.255.255
- 在一个网络中,第一个IP地址代表整个网络,最后一个IP地址代表这个网络的广播地址,其他IP地址分配给这个网络中的主机。例如,在C类地址192.1.1.x中,192.1.1.0代表整个网络,192.1.1.255代表这个网络的广播地址,192.1.1.1~192.1.1.254共254个,可以作为该网络中各个主机的地址
- 对此人们定义了IP地址的类:
子网掩码
- IP地址时不同于MAC地址的分层地址,这种地址便于寻址。但是即使在一开始就将IP地址分为网络部分和主机部分,还是难以满足用户的日常需求。因此子网划分应运而生。
- 子网划分时借用自然分类IP地址的主机位作为“子网位”以此来划分出更多更小的IP子网。
- 此处对应出现了一个概念叫做子网掩码:
- 子网掩码又称为网络掩码,地址掩码,它的作用是用来指明一个IP地址的哪些标识位是主机所在的子网。
- 子网掩码是不能单独存在的,必须和IP地址一起使用,因为它只会告诉你IP地址中哪些位置是网络位哪些位置是子网位。
- 子网掩码和IP地址一样是32位二进制数,同样使用点分十进制,其中IP地址网络位的对应掩码位为1,主机位为0。如图所示:
- 有类网络的IP地址和子网掩码总结:
类 起始位 网络位 主机位 网络数/个 可用主机地址数/个 起始地址 最终地址 子网掩码 A 0 8 24 128(2的7次方) 16777214(2的24次方-2) 0.0.0.0 127.255.255.255 255.0.0.0 B 10 16 16 16384(2的14次方) 65534(2的16次方-2) 128.0.0.0 191.255.255.255 255.255.0.0 C 110 24 8 2097152(2的21次方) 254(2的8次方-2) 192.0.0.0 223.255.255.255 255.255.255.0 D 1110 N/A N/A N/A N/A 224.0.0.0 239.255.255.255 N/A E 1111 N/A N/A N/A N/A 240.0.0.0 255.255.255.255 N/A - 如果需要求子网IP地址,只需要对IP地址和子网掩码进行逻辑与运算即可求得子网IP地址
- IP地址不管是否进行子网划分,都是根据主机位的值区分网络号,主机地址,广播地址。
- 例如现在有一个B类地址:172.16.0.0,它的子网掩码位255.255.255.0,进行子网划分。
- 判断:
- 16位自然网络位(B类地址) + 8位子网位 (子网掩码有24位-16位自然网络位) + 8位主机位
- 划分出的第一个子网:
- 网络号:172.16.0000 0000.0 255.255.255.0(子网位全0,第一个IP子网,俗称零子网)
- 主机地址范围:172.16.0.1~172.16.0.254 255.255.255.0
- 广播地址: 172.16.0.255 255.255.255.0
- 划分出的最后一个子网:
- 网络号:172.16.1111 1111.0 255.255.255.0(子网位全1,最后一个IP子网,俗称广播子网)
- 主机地址范围:172.16.255.1 ~172.16.255.254 255.255.255.0
- 子网划分相关计算公式:
- 可以划分出多少个IP子网:2ⁿ(n的值为子网位数)
- 划分出的每个IP子网,可以提供的主机数量:2ⁿ-2(n为主机位数)
- 注意:划分出的IP子网能提供的IP地址数目是2ⁿ(n为主机位数)个,划分出的第一个IP地址是网络号,最后一个是广播地址。
子网划分方案
- FLSM定长子网掩码:划分出的每个IP子网掩码的长度相同
- VLSM可变长子网掩码:根据每个IP网段内需要的主机地址的 实际数目 灵活调整 不同IP子网的 掩码长度
- VLSM:应从需要主机地址数目最多的网段开始分析,如图:
- IP网段A需要50台PC+路由器AR1的一个接口=51个主机地址
- 2ⁿ-2>51 n最小取6,主机位6位,网络位则有:32-6=26位,子网掩码为255.255.255.192
- 假如给网段A分配的网络号为192.168.1.0/26,那么对应的主机地址范围是192.168.1.1/26——192.168.1.62/26,广播地址为192.168.1.63/26
- IP网段B同理
- VLSM:应从需要主机地址数目最多的网段开始分析,如图:
IPv6
IPv6地址格式:
- 128位2进制数组成
- 划分成8段,每段16位2进制,转换成4个十六进制数
- 段与段之间使用“:”隔开
- 这种方法叫做“冒号十六进制”
IPv6地址的组成和分类:
前缀位 + 接口标识符位 根据前缀长度判断前缀位和接口标识符位
- 注意:
- IPv6地址中没有类的概念
2.IPv4地址可以分为单播,组播,广播地址;而IPv6地址可以分为单播,组播,任播地址,没有广播地址!!!!
- IPv6地址中没有类的概念
Pv6单播地址
分为全球单播地址(可理解为公网地址—IPv6)、本地链路地址、站点本地地址、回环地址、未指定地址、内嵌IPv4地址。
- 全球单播地址:
- 2xxx:xxxxx/3 ~ 3FFF: :FFFF
- 2001::/16 IPV6因特网地址
- 2002::/16 6to4过渡地址
- 本地链路地址:FE80::/10 (前10位以FE80开头)
- 站点本地地址:FEC0::/10(已经弃用,已部署的ipv6站点含有)
- 未指定地址:0:0:0:0:0:0:0:0/128 => ::/128
- 回环地址:0:0:0:0:0:0:0:1/128 => ::1/128
- 内嵌IPv4地址:::192.168.30.1 => ::C0A8:1E01
IPv6组播地址
全部以FF开头
任播地址
任播地址的格式和全球单播地址相同,但是配置的时候需要注明这个地址是任播地址。
IPv6地址压缩原则
- 段内前导0压缩(也就是每段左边的0可以不写)
- 全0段压缩(某一段是4个0,可以用一个0替代)
- 连续N段全0段,可以用“::”表示
三大运营商使用的IPv6地址:
- 电信是240e开头的(240e::/20)
- 移动是2409开头的(2409:8000::/20)
- 联通是2408开头的(2408:8000::/20)
一些特殊的IP地址
IPv4中:
0.0.0.0
不确定地址(任意地址)严格来说,0.0.0.0已经不算是一个地址了,而是一个集合——所有不清楚的主机和目的网络
255.255.255.255
限制广播地址,对本机来说这个地址表示本网段内所有主机(注意:这个地址不能被路由器转发!)
127.0.0.1
本地环回地址,也叫本机地址(Localhost),表示自己。
224.0.0.1
组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。
169.254.x.x
如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。
10.x.x.x; 172.16.x.x~172.31.x.x; 192.168.x.x
私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。在Internet上,这类地址是不能出现的。
IPv6中
已经在IPv6中全部阐述,请查看IPv6内容