今天厦门的net群里有人问了一个问题
访问局域网中的一台机器上的SqlServer2005,这台机器的IP是172.23.0.0,然后客户端的IP是192.168.0.12,这样似乎连接不上?
很快有人给出答案说要配置路由。
然后呢我给出的答案是配置双ip.因为按我的猜想他的局域网应该是物理连线在一块的。也就是好多台的机子可能并到一个大的交换机或者hub上去了。
这样的话他要配置路由的话 应该是在物理上重新把两个网络隔开,然后用一个路由它他们连起来,然后在设置静态路由。
或者 有一台机子设了两个ip然后进行软路由设置,(在或者用一个路由器把 两头都接到网络当中去然后配置路由,不懂会不会出问题没有尝试过)
然后还被人家说我不懂网络了,呵呵。实际上好多程序员是不懂网络,但我还是懂一些的。
我们可以看到基本上都是很简单的设置一个
192.168.0.1的当网关然后子网掩网是255.255.255.0 .呵呵理解当然的大家都这样设,也不需要去弄懂为什么了
当时在我读大学的时候,我就很好奇我这边的ip 地址是192.168.0.2 然后有一次我看到有一台互联网上的ip地址是192.172开头的(我原来认为192这个开头的全部是保留地址)然
后想法就不成立了。当时没有搞得很明白。
后面才知道这个叫保留地址。
并且人为的规定了。一些保留地址。
我们知道IPV4的 是用4个字节来表示就是有32位 而32可以表示的状态有 2 32次方 4294967296 4亿多个 (比中国人还少)
本来所有的IP地址应该都是平等的。
但是人们为了一些计算的方便
按二进制数来看
A类地址 第1个字节第一位数为 0
B类地址 第1个字节的前两位固定为 10
C类地址 第1个字节的前三位固定为 110
D类就应该是 第1个字节的前三位固定为 1110
E类很明显就应该是 11110
F类 好象没有人写出来 应该是 111110
这样的话用十进字来表示的话就是
1.0.0.0到126.255.255.255为A类
128.0.0.0到191.255.255.255为B类
192.0.0.0到223.255.255.255为C类
224.0.0.0到239.255.255.255为D类 用于特殊用途. 又称做广播地址
240.0.0.0到247.255.255.255为E类. 暂时保留
哪这样分有什么好处呢?
这边就要从网络的层次方面来考虑了,一个ip是属于哪个网络,哪台主机,
同时人们还规定了一下
A类地址 第一个字节属于网络 其它三个字节属于主机。
B类地址 前两字节是网络 后两个字节属于主机。
C类地址 前三个字节属于网络 后一个字节属于主机。
ok现在我们又要回到互联网一下。
如何保证我子网里面的ip地址不会跟互联网的地址冲突,否则我的路由就不太懂得什么去传送这个数据包了。
这样就有人们硬性规定了一些地址 是私有地址,也就是说互联网上是不会分配这些地址的。
10.0.0.0-10.255.255.255 A类 可以容纳 255的3次方 16581375的机子
172.16.0.0-172.31.255.255 B类 少了一些了 只有 (31-16)*255*255 = 975375个机子
192.168.0.0-192.168.255.255 C类 更少了 只有 65025个了。
这样总的来说就是可以有 16581375+975375+65025=17621775 这么个机子。 如果你的企业在大的话,超过这个数并且想上网的话就不行了。
这个算起来是不是有些错了?这么奇怪。
别人不是常说c类地址只有255台机子吗? 看一下前面C类地址的定义。“C类地址 前三个字节属于网络 后一个字节属于主机。”他是把后一个字节当作主机了。
现在就要涉及到子网掩网了。
c类地址的默认子网掩网是 255.255.255.0 转换成二进制就是 好多个11111111最后一个字节是0
在接下来涉及到硬件和通讯了。
人们为了分担cpu的工作。总不能一有数据我自己都有处理,这成什么话。这样在一个网络哪么多的数据包有的不属于我,我也要去处理不是很不好。 也就是当判断我你是同一个
网络的时候并且数据是发给我的我才会去处理。
同一个子网的判断就是 ip 地址 & 子网掩网 另一个ip地址 & 子网掩网 如果相等的话则 这两个ip地址就是同一个网络了。
哪上面哪个c类地址的保留地址 的子网掩网设成 255.255.0.0 整个网络就可以用 65025个机子了。
现实世界中谁用到了A类保留地址呢? 就是移动了。他的wap网关就是:10.0.0.172 一个A类地址。(我们可以猜想出他是基于ip协议的。具体的细节不清楚)
这样的话如果中国12 亿人同时要访问wap的话他还是受不了的
路由的简单知识。
我们知道家用的路由就是有两个地址,一个是对内一个是外。 当内部端口的数据经过路由的时候。 (电脑的机子有一个网关就是路由的内部地址)
路由就会判断这个地址是不是内部的网络,不是的话就像外部端口发送出去了。又或者假设有设静态路由的话,他会去检测静态路由并转发到哪个地址。
还是蛮不好理解的。
有时候自己不太爱讨论,没有像老赵的哪种性格别人不对也会写文章去反驳。
自己蛮经常发现别人缺乏一个基础知识推论出一个观点来跟你讨论的时候非常难受。