IP地址

概述

image.png

  • IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  • 每个IP地址都包含两部分:网络ID主机ID,网络ID标识在同一个物理网络上的所有宿主机,主机ID标识网络上的每一个宿主机,运行TCP/IP的每个计算机都需要唯一的IP地址。

IPV4 VS IPV6

  • IPV4:IPV4有一个32位的连接地址,由4个8位字段组成,8位字段称为8位位组,每个8位位组之间用点号隔开,用于标识TCP/IP宿主机。
  • IPV6:IPv6的地址长度为128位,是IPv4地址长度的4倍,采用十六进制表示。IPv6有3种表示方法,主要使用冒分十六进制表示法。格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789

IPV4和IPV6的区别

IPv4和IPv6是是目前使用的两种Internet协议版本,IPv4和IPv6协议之间存在各种差异,包括它们的功能,但关键的一点是它生成的地址(地址空间)的数量的区别。

  1. 协议地址的区别
    1. 地址长度:IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度。
    2. 地址的表示方法:IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表示的二进制数。
    3. 地址配置:IPv4协议的地址可以通过手动或DHCP配置的。IPv4协议需要使用Internet控制消息协议版本6(ICMPv6)或DHCPv6的无状态地址自动配置(SLAAC)。
  2. 数据包的区别
    1. 包的大小:IPv4协议的数据包需要576个字节,碎片可选 ;IPv6协议的数据包需要1280个字节,不会碎片。
    2. 包头:IPv4协议的包头的长度为20个字节,不识别用于QoS处理的数据包流,包含checksum,包含最多40个字节的选项字段。IPv6协议的包头的长度为40个字节,包含指定QoS处理的数据包流的Flow Label字段,不包含checksum;IPv6协议没有字段,但IPv6扩展标头可用。
    3. 数据包碎片:IPv4协议的数据包碎片会由转发路由器和发送主机完成。IPv6协议的数据包碎片仅由发送主机完成。
  3. DNS记录
    • IPv4协议的地址(A)记录,映射主机名;指针(PTR)记录,IN-ADDR.ARPA DNS域。
    • IPv6协议的地址(AAAA)记录,映射主机名;指针(PTR)记录,IP6.ARPA DNS域
  4. IPSec支持:IPv4协议的IPSec支持只是可选的;IPv6协议有内置的IPSec支持。
  5. 地址解析协议:
    • IPv4协议:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。
    • IPv6协议:地址解析协议(ARP)被邻居发现协议(NDP)的功能所取代。
  6. 身份验证和加密:Pv6提供身份验证和加密;但IPv4不提供。

IP分类

Intenet委员会定义了五种地址类型以适应不同尺寸的网络。地址类型定义网络ID使用哪些位,它也定义了网络的可能数目和每个网络可能的宿主机数目.
IP协议 - 图2
IP地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用

分类 IP地址 子网掩码 可用网络号 最大网络数 每个网络最大主机数
A类 1.0.0.0-126.255.255.255 255.0.0.0 1~126 126(2^7-2) 16 777 214(2^24-2)
B类 128.0.0.0-191.255.255.255 255.255.0.0 128~191 16 383(2^14-1) 65 534(2^16-2)
C类 192.0.0.0-223.255.255.255 255.255.255.0 192~223 2 097 151(2^21-1) 254(2^8-2)
D类 多播地址
224~239

E类 保留地址
240~255

注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

255.255.255.255

该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。
注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。

0.0.0.0

常用于寻找自己的IP地址,例如在RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

169.54.0.0

无法自动获得网络地址,window自动生成的错误临时地址。

回环地址

127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
A、B、C类私有地址

私有地址

私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255,被企业或学校使用。
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

IP为什么要分类

根据IP地址访问终端是通过路由器,路由设备当中有一张路由表,该路由表记录了所有IP地址的位置,这样就可以进行包的转发了,如果我们不区分网络地址,那么这张路由表当中就要保存有所有IP地址的方向,这张路由表就会很大,就像下面说的那样:如果不分网络位和主机位,路由器的路由表就是都是32位的地址,那所有的路由器维护的路由表会很大,转发速度会变慢(因为查询变慢)。而且所有的路由器都要有全Internet的地址,所有人的路由器都要有足够的性能来存下全网地址。估计建造这样的Internet成本是现在的几万倍,甚至更高。
有了网络地址,就可以限定拥有相同网络地址的终端都在同一个范围内,那么路由表只需要维护这个网络地址的方向,就可以找到相应的终端了。

子网掩码

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。
这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。
使用子网可以把单个大网分成多个物理网络,并用路由器把它们连接起来。
子网掩码(Subnet Mask)用于屏蔽IP地址的一部分,使得TCP/IP能够区别网络ID和宿主机ID。当TCP/IP宿主机要通信时,子网掩码用于判断一个宿主机是在本地网络还是在远程网络。
缺省的子网掩码用于不分成子网的TCP/IP网络,对应于网络ID的所有位都置为1,每个8位位组的十进制数是255,对应于宿主机ID的所有位都置为0。
用于子网掩码的位数决定可能的子网数目和每个子网的宿主机数目,子网掩码的位数越多,则子网越多,但是宿主机也较少。
例:假设A类地址子网数是14,则所需位数至少为4,用于子网的位为:11111111, 11110000, 00000000, 00000000, 子网掩码为255.240.0.0,每个子网的宿主机数目为2^20-2=1,048, 574个。

子网划分

将网段
IP协议 - 图3

网络号不能全为0或者权威1,全为0代表一个网段,全为1代表一个广播

利用子网数来计算子网掩码

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
(1) 将子网数目转化为二进制来表示;
如欲将B类IP地址168.195.0.0划分成27个子网:27=11011;
(2) 取得该二进制的位数,为N;
该二进制为五位数,N = 5
(3) 取得该IP地址的类子网掩码,将其主机地址部分的的前N位置1即得出该IP地址划分子网的子网掩码。
将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0

利用主机数来计算子网掩码

如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
(1) 将主机数目转化为二进制来表示700=1010111100;
(2) 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;该二进制为十位数,N=10;
(3) 使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。

根据每个网络的主机数量进行子网地址的规划计算子网掩码

比如一个子网有10台主机,那么对于这个子网需要的IP地址是:10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。
如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224