TCP/IP协议的设置。

一、IP
IP是英文Internet Protocol的缩写,意思是“之间互连的协议”,也就是为计算机相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机,只要遵守IP协议就可以与因特网互连互通。正是因为有了IP协议,因特网才得以迅速发展成为世界上大的、开放的计算机通信。因此,IP协议也可以叫做“因特网协议”。
互联网是由许多小型构成的,每个上都有许多主机,这样便构成了一个有的结构。IP在设计时就考虑到分配的特点,将每个IP都分割成号和主机号两部分,以便于IP的寻址操作。
IP是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的。通常我们使用点式十进制来表示,如192.168.1.5等等。
每个IP又可分为两部分。即号部分和主机号部分:号表示其所属的段编号,主机号则表示该网段中该主机的编号。按照规模的大小,IP可以分为A、B、C、D、E五类,其中A、B、C类是三种主要的类型,D类专供多目传送用的多目,E类用于扩展备用。A、B、C三类IP有效范围如下表:
类别 号 /占位数 主机号 /占位数 用途
A 1~126 / 8 0~255 0~255 1~254 / 24 级
B 128~191 0~255 / 16 0~255 1~254 / 16 跨过组织
C 192~223 0~255 0~255 / 24 1~254 / 8 企业组织

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即号占位太多,而主机号位太少,所以其能提供的主机也越来越稀缺,目前除了使用NAT在企业内部利用保留自行分配以外,通常都对一个高类别的IP进行再划分,以形成多个子网,提供给不同规模的用户群使用。
二、什么是子网掩码
子网掩码(subnet mask)又叫掩码、掩码、子遮罩,它是一种用来指明一个IP的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合IP一起使用。子网掩码只有一个作用,就是将某个IP划分成和主机两部分。
子网掩码是标志两个IP是否同属于一个子网的,也是32位二进制,其每一个为1代表该位是位,为0代表主机位。它和IP一样也是使用点式十进制来表示的。如果两个IP在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
在计算子网掩码时,我们要注意IP中的保留,即“ 0”和广播,它们是指主机或全为“ 0”或“ 1”时的IP,它们代表着本和广播,一般是不能被计算在内的。
三、常用的子网掩码

子网掩码有数百种,这里只介绍常用的两网掩码,它们分别是“255.255.255.0”和“255.255.0.0”。
1. 子网掩码是“255.255.255.0”的:
后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP。但是实际可用的IP数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。
2. 子网掩码是“255.255.0.0”的:
后面两个数字可以在0~255范围内任意变化,可以提供65536个IP。但是实际可用的IP数量减2,即65534个。
IP的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地机不在同一子网内的目的机的数据,会因为错误的判断而认为目的机是在同一子网内。
四、子网掩码的算法
对于无须再划分成子网的IP来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP为 10.14.3.0,无须再分割子网,则该IP的子网掩码为255.255.0.0。如果它是一个C类,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP,还需要将其高位主机位再作为划分出的子网号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。
一、利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
1)将子网数目为二进制来表示
2)取得该二进制的位数,为 N
3)取得该IP的类子网掩码,将其主机部分的的前N位置 1 即得出该IP划分子网的子网掩码。
如欲将B类IP168.195.0.0划分成27个子网:
1)27=11011
2)该二进制为五位数,N = 5
3)将B类的子网掩码255.255.0.0的主机前5位置 1,得到 255.255.248.0
即为划分成 27个子网的B类IP 168.195.0.0的子网掩码。
二、利用主机数来计算
1)将主机数目为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP),则取得该主机的二进制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机将占据不止8位。
3)使用255.255.255.255来将该类IP的主机位数全部置1,从后向前的将N位全部置为 0,即为子网掩码值。
如欲将B类IP168.195.0.0划分成若干子网,每个子网内有主机700台:
1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该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的子网掩码。
下面列出各类IP所能划分出的所有子网,其划分后的主机和子网占位数,以及主机和子网的(大)数目,注意要去掉保留的IP(即划分后有主机位或子网位全为“0”或全为“1”的):


五、举例
1、一个主机的IP是211.112.18.137,掩码是255.255.255.224,要求计算这个主机所在的和广播。
常规办法是:
把这个主机和子网掩码都换算成二进制数,两者进行逻辑与运算后即可得到。
另一种方法:
255.255.255.224的掩码所容纳的IP有256-224=32个(包括和广播),那么具有这种掩码的一定是32的倍数。而是子网IP的开始,广播是结束,可使用的主机在这个范围内,因此略小于137而又是32的倍数的只有128,所以得出是211.112.18.128。而广播就是下一个的减1。而下一个32的倍数是160,因此可以得到广播为211.112.18.159。
2、根据每个的主机数量进行子网的规划和计算子网掩码。
比如一个子网有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
于16,所以我们只能分配具有32个(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224