(企业实战课程)
网页地址:mbd.pub/o/wlzl/work
回顾之前
上一篇了解了IP协议的各个字段的作用,以及提到了特别重要IP地址,在网络世界中作为通信识别的唯一寻址信息,让两台终端通信知道如何去跟回,其实网络世界更像我们现实世界的缩影,很多能在现实中找到相似的影子,特别在于寄信件的时候,里面最重要的就是地址信息,这个能是去往目的地的关键信息,现实中通过各个省份、城市、区县、区域来定位到具体位置,并且,这个地址是唯一的,不能出现重复,否则信件就不知道如何发送了,而在TCP/IP通信的网络世界中,为了保证正常通信,也是一样,需要有一个唯一并且能够寻址功能定位到目的地在哪的地址信息,这就是IP地址,所以每个设备都需要正确的IP地址,否则无法实现正常的通信,那它在网络世界中如何表示的呢?怎么去保证唯一性呢?
了解IP地址
1、IP地址的格式
在IP协议的报文中,可以得知IP地址是有32个比特,IP地址在计算机中是以二进制的方式处理的,如果全部以二进制的形式来表示,使用跟表达都非常的困难,所以为了人类方便记忆,采用了点分十进制的方式,将32位的IP地址以8位为一组,分成四个部分,每组以【.】进行隔开,再将每组转换成十进制。
以博主电脑网卡获取的地址举例,计算机系统处理以二进制进行,可以看到非常的长,都是0跟1的组合,在使用中很容易出错也非常难记,换成十进制后,相对来说就轻松很多了。并且可以发现二进制里面0跟1的组合不一样,得到的数值也不一样,总共IP地址有多少个呢?
最大允许差不多43亿的终端连接到网络里面来,看起来已经非常多了!但是,如今的Internet网中,IP地址是枯竭的状态,这也是为什么推出了IPV6的原因,可能IP地址的设计者也没想到,今后的internet网会这么庞大。
IP地址其实是由2个部分组成的,一个是网络号(网段地址)和主机号(主机地址),这个两个组成很关键,网络号是设备所在区域的一种标识区分,网络号相同的设备处于同一个网段内,网络号不同的设备处于不同网段,两个之间通信需要依赖三层设备。主机号是在同一个网段中标识不同终端设备,同一个网段内的终端是不允许出现重复的主机号的,这段很重要,先读几次,有个印象,这对我们排错跟学习都非常有帮助。
举个生活中的例子,一个小区内,有多栋楼,每栋楼都有501、601这样,避免住户搞混冲突,开发商会在前面加一个数字或者字母来进行区分每栋楼,比如2501、3601,这样在找位置的时候就很容易找到了。随着时间久了,可能跟同一栋楼的上下左右邻里相处的不错,经常会相互串门聊聊天,聚聚餐之类的,同一楼层每家独立的门牌号不会重复,很容易就找到了。不同楼就相当于网络号,有不同的标识,而同一栋楼的有很多住户,每个住户的门牌号都是不一样的,不会有重复,这样就方便定位了。
同样的,在网络中也是一样,可能我们访问的目的就在一个区域,也可能在另外的区域,那运行了TCP/IP协议的设备不管是PC、手机、路由器还是交换机,都得有一个判断规则,来对比要去的目的跟自己是不是一个网络区域,那就是通过上面的网络号来进行区分。
以我们最容易接触到的家用网举例,每个人家里都有无线路由器,可能有的下面接了电脑、手机、电视、PAD、有的甚至有个人服务器/NAS等。像上面的图,路由器左边是家庭局域网网,比如有三个终端,地址分别是192.168.255.1、192.168.255.2、192.168.255.240,不管是相互传文件以及访问个人的服务器,直接输入对方的地址就可以了,并且还有这样的情况,就算宽带接入出现故障,互联网访问不到了,但这些局域网之间的互访是不影响的。
另外可以发现图里面有相同的特征,都是192.168.255开头,变化的是最后一位,现在还没学介绍到地址分类,假设192.168.255相同的前缀为网络号,同一个网段,而最后一位1、2、240为主机号,数字都不是重复的。
比如这里192.168.255.1访问192.168.255.240,这里192.168.255.1设备系统通过自己网卡的参数读取到对应的IP信息与目的的IP比较,发现网络号相同,则在同一个网段内,直接发送给对方,并且二层封装目的主机的MAC地址。
PS:(在同一个局域网内就是上一篇学习的二层,通过MAC封装,交换机通过MAC学习到目标MAC的接口发送出去,当然这里会留下个疑问,终端之间怎么在会实现知道对方的MAC地址是多少呢,这里还没讲解ARP协议,暂时当成它已经事先知道了。另外家用路由器有多个LAN口,其实这LAN就相当于交换机的工作模式一样,可以学习MAC的功能,自然就能知道某个设备在哪个口)
如图 192.168.255.1去访问互联网上的百度 181.55.6.6, 假设对比前三段,终端判断目的与自己的网络号不一致,那么它该怎么处理呢?
如果终端判断目的与自己的网络号不一致就会丢给网关处理,比如图上面丢给192.168.255.254(家用路由器的网关),家用路由器通过查询路由表中的网络号,查询交给Internet的网关,最终Internet中的路由器也通过查询网络号来层层传递,最终抵达目的地。
通过这个分析网络号和主机号怎么区分,可以得到这些有用的知识点总结。
明白了网络号与主机号的概念,那在IP地址中,哪几位是网络号?哪几位是主机号呢?下面就来了解下地址分类以及子网掩码的概念。
2、IP地址分类
在internet诞生初期,IP地址是非常充裕的,计算机科学家们进行了分类地址,把IP地址分为了5大类,分别是A类、B类、C类、D类、E类。
早期沿用的是地址分类的方法,A、B、C作为全局可用唯一地址进行分配,每个列别定义了网络号以及主机号的范围大小,由于这种方式早就不在使用,只有考试以及很多书籍还在介绍,所以这里就简单介绍下。
(1)A类地址
A类IP地址以首位为“0”开头,前面8位是网络号,网络号范围是0~127(0和127属于保留地址)。
算下来就2^(8-1)-2=126,其中8位中最开始0是固定的,所以只有7个可以变化,0与127是保留需要-2,最终有126个网段。
后24位是主机号网络号和主机号怎么区分,表示可容纳的终端数量,2^24次方=16777216个地址。
(2)B类地址
B类IP地址前两位以“10”固定开头,1~16位为网络号,网络号的范围128.0~191.255,其中169.254为保留地址,算下来2^(16-2)-1,有16383个可用网段。
后16位主机号,表示可容纳的终端数量,2^16次方=65536个地址。
(3)C类地址
C类IP地址前三位“110”固定,从1~24位为它的网络号,范围是192.0.0~223.255.255.255,其中192.0.0属于保留地址,所以有2^(24-3)-1=2097151
后8位是主机号,标识可容纳的终端数量,2^8=256个地址。
(4)D与E类地址
D类IP比较特殊,它属于组播地址,不区分网络号与主机号,用于各种协议中以及某些特殊场景,后续会慢慢熟悉,范围是224.0.0.0~239.255.255.255。而E类属于科研方面等方面,不用于互联网使用。
(5)了解网段地址、网段广播地址、以及单播地址
当主机号全为0时,表示某个网段,叫做网段地址,比如192.168.255.0,表示192.168.255.1到192.168.255.254所有地址,这也是以后在项目中经常遇到的表示方法,用于表示某个网段。
当主机号全为1时,它表示的网段广播地址,发往这个地址的数据包,该网段内所有主机都能收到,比如:网段192.168.255.0,广播地址是192.168.255.255。
所以,在每个网段中,主机号全0的网段地址以及主机号全1的广播地址是不能被使用,每个网段实际可用的地址是对应的地址数-2。
那什么是单播地址呢?每个网段内除去网段地址以及网段广播地址以外,剩下的就是单播地址,单播地址也就我们终端PC、手机以及网络设备路由器、交换机设备上使用的地址了,通信双方就一个发送方与接收方,而广播则是一个发送方,其余同网段的主机都为接收方,但是不会发往其他网段,中间三层设备会隔离广播,不会进行转发。
(6)二进制与十进制转换
上面介绍了一大堆地址范围,可能很多朋友有点犯迷糊,怎么就计算出这么多的网段跟主机了,首先,要明白二进制与十进制的换算。
二进制到十进制的换算,可以参考上面表格,也可以借助计算器,采用程序员的模式,输入对应的数值即可,其中BIN表示二进制,DEC表示十进制,HEX表示十六进制。
按照上面的表格,把每一段“置1”的数值相加就得了每一段的十进制,最终就是192.168.255.4,这个是C类地址,因为网络号前三位固定为110,同样的A与B类的地址,都有前面固定的值,范围都不一样,只要知道了固定值的位置,然后就可以计算出每个类的范围。
(7)IP地址分类的好处
这样的地址分类好处就是简单、选路查询方便,减轻中间设备的压力,但是也带来了很多的问题,也是导致这种分类在如今的环境下无法使用的原因。
问题一:灵活性
一个企业可能根据需求以及区域不同会划分成办公区、生产区、会议区等,而IP分类是没有这种区域层次的划分功能的,缺少灵活性。
问题二:与现实网络不匹配
从上面的分类的网段以及每个可以容纳的终端数来看,A、B、C中间差距太明显,比如一个C类的网段可以容纳254个主机,一个小型办公环境可能够用了,稍微有点规模的就显得不够,而一个B类地址对应一个企业来说又达不到这样大的规模,很多地址就浪费了,注意,公网地址是要花钱购买的,并不是免费使用的。
问题三:安全性问题
比如A公司与B公司是是同行竞争关系,同时向运营商购买了自己需要数量的IP地址,有一天,A公司的技术发现它竟然能看到B公司的数据包?原因就是运营商给它们分配的都是C类同一个网段,比如给A公司分配的是202.100.1.1到202.100.1.50,B公司分配的是202.100.1.101到202.100.1.180,通过地址分类,202.100.1.0属于C类,而且是同一个网段,那么数据通信A与B之间其实是可以直接通信的,有可能B的数据发送了广播报文的,导致A收到了,同样A发送的某些数据包,B也收到了,对于这样的场景,可能客户为了安全性就会选择去其他运营商购买,并且要求独立的网段,这问题对于运营商来说就头疼了,一个C内网段最少也有254个地址,一个公司有又不需要购买这么多,一部分给A,一个部分给B呢,又说不安全,空着吧,又浪费了。
问题四:地址浪费
其实从上面的三个问题中都可以看出来,地址的分类根本无法根据不同的场景需求来定制需要的,不是一个网段多了,就是少了,怎么都会造成地址浪
费空闲的,并且在划分的时候,很多A类地址就被美国的公司或者运营商占据了,像我们中国作为全球第一的人口庞大的国家,都没有一个”完整”的A类地址。而一个A类想想上千万个地址,一个公司怎么可能用得了这么多,剩下的就白白的浪费了。
重点回顾
参考文献
[1]图解网络-小林coding-第三版
[2]计算机网络–自顶向下(第七版)
“承上启下”
竟然分类地址存在这么多的问题,势必需要一种更好的分类划分的方法来避免地址的浪费,以及可以灵活的进行划分,这样才能满足internet快速壮大的规模跟发展的需求,这种方法就是下一篇要讲的子网掩码、VLSM、CIRD、私网地址。