当听到网络上的其他协议的时候像什么TCP、UDP、ICMP等等,网络方面的小白可能会比较陌生,但是当听到IP这个词的时候相信大家应该不会感到陌生,最起码也会听过这个词。IP可是当下网络中一个相当重要的协议,本文就给大家来讲讲这个IP协议。
IP(Internet Protocol)—— 网际网络互联协议
IP协议是为计算机网络互相进行通信而设计的协议。其功能主要有两个:寻址和分段。IP协议根据发送的数据包包头中的目的地地址将数据包发送到目的地址。若数据过大时,IP可将数据分段并在送达后重新组装。
注:IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。
IP协议的数据包前也有一个首部如下图:(注:图片源自网络)
首部注释:
Ver:IP版本号,目前普遍有IPV4和IPV6两个版本。
IHL:首部长度。描述IP首部所占用的大小。
Service Type:服务优先级和服务类型,共有六种。
Packet Length:包长度,描述了数据包的长度(首部长度+数据长度)。
Identification:16位标识,每一个IP封装的数据包都会有一个标识码,用于数据包重组。
Flag:3位标识,用于标识数据是否被分段。
Frag.Offset:片偏移,它标识了数据被分段后此数据包在整个数据中的位置。简单来说就是标识了此包是被分段后的数据的第几个数据包。
Time to Live:死亡时间(范围是0-255),初始值是255,每当数据包经过一个路由器此事件就减1,当为0时此数据包被丢弃不继续传送。死亡时间的主要作用是防环,防止数据包在路由环路中无限循环传送。
Protocol:协议,描述不同的上层协议(如:TCP和UDP)。IP协议是打包发送经过上层封装后的数据,所以需要描述区分上层协议。常见协议的协议号:TCP 6;UDP 17;EIGRP 88;OSPF 89。
Header Checksum:首部校验和,用来检测发送过去的数据是否出错。
Source Address:源地址,用于描述数据的发送地。
Destination Address:目标地址,描述数据发送方的目的地。
Options:选项部分(可以没有)用于数据加密等操作使用。
Padding:填充部分。
IP首部的大小最小为20字节最大为60字节,相差的40字节为选项部分(可以没有)。
IP的数据包封装:如下图(注:图片源自网络)
本图很详细的描述了IP数据包的封装过程:数据经过上层封装后再由IP协议进行分段打包后发送。
IPV4地址
下面来给大家说下目前使用十分广泛的IPV4地址。IPV4地址由32位二进制组成(分为四部分,每部为8位二进制,之间用“.”分割开)。IPV4地址分为网络位和主机位,并用子网掩码区分,所以完整的IPV4地址需要有子网掩码。
例:IP地址:192.168.1.1(11000000.10101000.00000001.00000001)
子网掩码:255.255.255.0 (11111111.11111111.11111111.00000000)
子网掩码:如上面的例子,子网掩码要与IP地址搭配使用,用来区分网络位和主机位。在掩码的二进制表示中为1的部分对应的就是IP地址的网络位,0的部分为主机位。上面的例子中IP地址的前三个部分就是网络位,后一部分为主机位。同一网段中的IP地址网络位相同,主机位不同。
IPV4地址的分类:
1)共分为五类,通过IPV4地址的第一个8位辨别类别
二进制 十进制
A类:00000000 - 01111111 0 - 127
B类:10000000 - 10111111 128 - 191
C类:11000000 - 11011111 192 - 223
D类:11100000 - 11101111 224 - 239
E类:11110000 - 11111110 240 - 254
这里的ABC类网为单播地址,D类网为组播地址,E类网为科研使用(日常生活中遇不到)。
A类地址前8位为网络位,后24位位主机位。
B类地址前16位为网络位,后16位为主机位。
C类地址前24位为网络位,后8位为主机位。
2)IPV4地址还存在公有和私有的分类
公有IP地址:全球唯一性,需要付费使用。常见的就是运营商网络,家里交宽带费上网其实是花钱向运营商租用公有IP地址,上网 时将自己家的家用路由器下放的私有IP地址转换成公有IP上网。
私有IP地址:本地唯一性,无需付费使用。比如家里的家用路由器下放的地址就是私有IP地址。私有地址有三段(下面列出的都是网段代表该网段的全部地址):
A:10.0.0.0/8(“/:后面的是子网掩码)
B:172.16.0.0/16 - 172.31.0.0/16
C:192.168.0.0/24 - 192.168.255.0/24
3)还有一些特殊的IP地址
127.0.0.1(本地换回地址):数据发送给这个地址将会环回到本地主机,就是无论主机联不联网都能 ping通这个地址。该地址不会出现在任何网络中。
0.0.0.0/0(缺省地址):代表所有地址。
169.254.0.0/16(本地私有地址):当主机没有联网时自动获取地址就会得到该网段中的一个地址。
IPV4子网划分
子网划分是将一个大的网段划分为许多个小的网段,这在现实中是十分常用的。它的作用是合理规划IP、减少广播域、以及更方便管理网络。
下面给大家讲讲如何进行子网划分:
1)首先要将所要划分的网段的IP网段和子网掩码化成二进制(这里以192.168.1.0/24为例)
将它的IP网段和子网掩码化成2进制:192.168.1.0 —— 11000000.10101000.00000001.00000000
255.255.255.0 —— 11111111.11111111.11111111.00000000
2)确定要划分成的子网数,并同时确定2的几次幂大于或者等于你要划分的子网数
比如我要划分成8段子网,那么就是2的3次幂等于8
3)刚刚确定了幂数,接下来把化好的二进制掩码的“1”向后加幂数个位就是新的掩码
比如刚刚幂数是三,掩码是11111111.11111111.11111111.00000000
变为11111111.11111111.11111111.11100000
4)IP地址也同样往后数幂数次位,将这几位用二进制顺序排列之后就是子网
刚刚幂数是3,那么划分出来的子网如下:
二进制 十进制 网段主机范围
11000000.10101000.00000001.00000000 192.168.1.0/27 192.168.1.1/27 - 192.168.1.30/27
11000000.10101000.00000001.00100000 192.168.1.32/27 192.168.1.33/27 - 192.168.1.62/27
11000000.10101000.00000001.01000000 192.168.1.64/27 192.168.1.65/27 - 192.168.1.94/27
11000000.10101000.00000001.01100000 192.168.1.96/27 192.168.1.97/27 - 192.168.1.126
11000000.10101000.00000001.10000000 192.168.1.128/27 192.168.1.129/27 - 192.168.1.158/27
11000000.10101000.00000001.10100000 192.168.1.160/27 192.168.1.161/27 - 192.168.1.190/27
11000000.10101000.00000001.11000000 192.168.1.192/27 192.168.1.193/27 - 192.168.1.222/27
11000000.10101000.00000001.11100000 192.168.1.224/27 192.168.1.225/27 -192.168.1.254/27
注:一个网段的第一个地址和最后一个地址不用于主机上,第一个地址代表了网段内的所有主机,最后一个地址是这个网段的广播地 址。
子网汇总与超网
子网汇总是将多个小的网络汇总成一个大的网络。
子网汇总方法:(这里以192.168.1.0/24和192.168.2.0/24为例)
1)将需要汇总的网段的IP地址化为二进制
192.168.1.0 —— 11000000.10101000.00000001.00000000
192.168.2.0 —— 11000000.10101000.00000010.00000000
2)将化好的二进制比对,找出从左到右的连续相同位。这些位不变,其他位全变成0,同时化为十进制。这就是汇总后的地址
相同位 不同位
11000000.10101000.000000 01.00000000
11000000.10101000.000000 10.00000000
所以汇总地址变为了
二进制 十进制
11000000.10101000.00000000.00000000 ——— 192.168.0.0
3)将二进制相同位全变为“1”剩下的是“0”再变为十进制,就是新的掩码
11000000.10101000.000000全变为1剩下的是0
二进制 十进制
11111111.11111111.11111100.00000000 ———— 255.255.252.0
所以汇总好的地址位192.168.0.0/22
超网:子网汇总后的掩码数小于该网段的主类网段的掩码数这就是超网。
例:比如刚刚汇总好的网段192.168.0.0/22
该网段主类网为 192.168.0.0/24
这里22<24 这就是超网