0.说明
在学习下面的内容之前,应该对TCP/IP有一个最基本的认识,这个我们在前面也已经多次提到过,其实在不涉及网络数据的结构分析上,我们只需要在心里对TCP/IP有如下一个概念即可:
TCP/IP层次 | 重点 |
应用层 | 各种应用,如Web应用、QQ等 |
传输层 |
两种连接协议:TCP、UDP 传输层端口号 |
网络层 | IP地址(用于寻找不同的网络) |
数据链路层 | MAC地址(用于局域网中寻找不同的主机) |
物理层 | 二进制数据串 |
这个表格的内容很重要,可以说,对于TCP/IP协议栈,是非常基础的,因此务必要记住。
1.回顾与引言:为什么需要IP地址
我们在前面说过,路由器它是一个三层的网络设备(交换机是二层网络设备,转发器是物理层网络设备),通过路由器,我们可以把不同的网络(局域网)连接起来,而这些不同的局域网,可能有以太网、令牌环网等,如下:
(需要注意的是,实际上令牌环网的结构肯定不是像右边这样的,这里只是为了方便画图)
就像上面图所示,正是借助于路由器,我们才能够将两个不同的局域网络连接起来,而所谓的不同的局域网络,指的是,这两个局域网络上的主机配置的IP地址的网络号是不一样的,关于这个概念,我们下面会慢慢提到,现在先有个认识就可以了。
但是,到了21世纪的今天,令牌环网早已经被淘汰,如今我们可以看到的绝大多数局域网的类型都是以太网,所以,在没有特别说明的情况下,以后我们提到“局域网”这个名词时,指的都是“以太网”,所以,上面的图可以更改为如下:
但是现在的一个疑问就是,既然都是以太网,那又为什么说这两个局域网是不同的局域网的呢?这到底哪里不同呢?这其实在上面已经有简单的提过,也就是这两个局域网络上的主机配置的IP地址的网络号是不一样的(现在不理解这句话也没有关系,因为还没有真正开始讲IP地址)。可以这么理解:有两个人,他们都是人,但是他们的身份标识不一样,所以我们说这是两个不同的人,但本质上他们都是人;同样的道理,所谓两个不同局域网,他们本质上都是局域网,只是这两个局域网的身份标识不一样而已。
对于人,我们可以用姓名、身份证号等来作为身份标识,那么对于局域网,又该以什么来作为身份标识呢?
OK!也许你已经猜到了,就是IP地址!IP地址的其中一个重要功能就是可以区分不同的局域网,当然,它还有另外一个功能,那就是可以区分同一个局域网中的不同主机(亲,一个局域网可以有很多主机的啊,当然要加以区分了)。
2.IP地址
(1)IP地址与点分十进制记法
计算机所能识别的都是二进制数,所以实际上的IP地址都是32位的二进制数,只不过是为了我们人看起来比较容易区分,我们就把它写成十进制的形式,这种方法我们称之为点分十进制,如下:
应该非常好理解了,其实这一点懂不懂,就是考察你二进制到底有没有学好。OK,如果觉得可以理解的话,请尝试做下面的几个转换:
二进制IP地址 | 点分十进制记法 |
11000000|10100011|00000001|00000001 | |
10.10.120.16 | |
01111111|00000000|00000000|00000001 |
用点分十进制的方法来表示IP地址是非常重要的一个知识点,务必掌握好,尤其是其中的转换关系,其实只要把二进制和十进制的转换关系弄清楚了,相信也不难。
(2)IP地址网络号与主机号
我们前面已经提到,IP地址可以用来标识不同的局域网,其实这是利用了IP地址中网络号的功能,而要标识局域网中的不同主机,我们需要使用IP地址的主机号来进行标识,那么也就是说,一个IP地址由两部分组成:网络号和主机号。我们下面就举例来说明。
一个IP地址,比如192.168.1.1/24,实际上它包含了两个方面的含义,一个是它代表了这个IP地址处在哪个局域网中,而另一个是它代表了这个局域网中的哪个主机。在这里,分析如下:
可以看到上面的IP地址后面还有一个/24,这是什么意思呢?这是表示192.168.1.1这个IP地址的前24位表示的是网络号,在这里就是192.168.1,192.168.1(11000000|10101000|0000001)这24位就代表了一个局域网络,而最后的8位(00000001)就代表一台主机,通过这两种方式的结合,我们就可以用一个IP地址来唯一标识一个局域网络中的一台主机,所以在不考虑其它通信技术的前提下(如NAT技术等,后面会有课程介绍),互联网上所有主机的IP地址一定是唯一的。 继续来作一下拓展,对于192.168.1.1/24这个IP地址,还可以写成这样的形式:192.168.1.1 255.255.255.0。这样一表示的话,我们可以把255.255.255.0称为掩码,它就是用来限定一个IP地址的网络号到底是前面哪几位。这样来说,255.255.255.0其实也是用点分十进制的方法来表示的,如果把它表示把二进制的话,那就是11111111.11111111.11111111.000000000,如果位是1,就表示所对应的IP地址的那些位就表示网络号,比如这里,255.255.255.0的前24位都是1,所以192.168.1.1这个IP地址的前24位就是用来表示网络号,而剩下的8位就用来表示主机号。 所以往后当我们看到两个IP地址时,如果没有给出掩码,我们是没有办法判断它们是否同属于一个局域网的,比如192.168.1.1和192.0.1.1,就这样给出两个IP地址,没有什么作用,因为根本就没有给出掩码! 关于网络号和主机号,是非常重要的概念,下面再来总结一下:
|
(3)网络地址和广播地址
- 网络地址
前面我们用192.168.1.1/24这个IP地址来给出网络号和主机号的概念,再次强调,它代表了两种不同的含义(这里要提问,其实答案上面已经有)。其实对于网络号192.168.1,这样看起来似乎不太好看,所以习惯性的,我们会把网络号后面的位数全部补0,然后再用来表示一个网络,比如192.168.1,二进制就是11000000|10100011|00000001,为了跟32位的IP地址表示方法相一致,我们会习惯性地把后面的八位补0,也就是变成11000000|10100011|00000001|00000000,用点分十进制表示就是192.168.1.0,但正常情况下,我们还需要再加上一个掩码,即192.168.1.0/24,OK,我们现在就是用这样的方式来表示一个网络,是的,再强调一遍,192.168.1.0/24就表示一个网络,我们就把这个地址称为网络地址。
提示: 网络地址=网络号+后面补0+掩码 |
如果这时我再给出一个网络地址192.168.2.0/24,我们要判断192.168.1.0/24和192.168.2.0/24是不是同一个网络,只需要比较它们的前24位即可,显然它们代表了两个不同的网络。很明显,用网络地址的方式就可以非常清晰地描述一个网络。
提示1: 网络地址是一种特殊的IP地址,它表示的不是一个主机,而是一个网络,所以在局域网中,网络地址是不允许分配给一台主机的。我们可以做一个简单的实验。
核心提示2: 这里需要强调的是,其实我们在给一个主机或一台设备配置IP地址的时候,其实确切地说,是给这台主机或这台设备的网络接口,也就是网卡接口(专业名词:网络适配器)配置一个IP地址,因此,在以后我们提到要给一台设备配置一个IP地址时,指的是给这台设备的接口配置一个IP地址,这点尤其注意。 另外,我们常用专业名词“网络节点”来描述一台网络设备,其实这个节点指的仅仅是这台设备的一个接口而已。(你可以看到,我们给路由器的不同接口配置了不同的IP地址) |
- 广播地址
a.广播
以太网的发展有其丰富的历史背景,“广播”一词从以太网诞生之初就注定要跟随以太网一生,即便是到了以太网飞速发展的今天(速度已经上千兆、上万兆),但广播依然存在于以太网中。很显然,广播普遍存在于我们目前的局域网中(因为现在的局域网几乎都是以太网),那么,所谓的广播是什么呢?
小学初中高中的时候,学校发放通知会通过广播(其实就是一个大喇叭,然后再有一个大大的扬声器)的形式发放,这样的话,全校的师生都可以听到广播的消息(其实这也是数据通信方式的一种方式,只不过传递信息是以声波的形式进行的)。
那么以太网有没有类似这样的情况呢?就是在一台主机上发送数据,局域网中的所有主机都可以收到这个数据。如下:
其实只要发送一个广播包,局域网中的所有主机都可以收到这个数据。那么广播包又是怎么定义的呢?
提示:广播包 所谓的广播包,其实就是目的IP地址为广播地址的数据包(很好理解嘛,广播包,就是目的地址为广播地址的数据包)。 关于数据包中目的地址的知识,可以复习以往讲过的数据封装和解封装的知识。 |
b.广播地址
好了,现在来说一下什么是广播地址。前面我们提到192.168.1.0/24这个网络地址,广播地址,只要把网络号后面的0全部都变为1即可,也就是192.168.1.255/24,这个地址就是192.168.1.0/24这个网络中的广播地址。很显然,一个局域网中有且仅有一个广播地址。在192.168.1.0/24这个局域网中,只要我们把数据发送给192.168.1.255/24这个IP地址,那么本局域中的所有主机都会收到这个数据。
实验:
要求大家也要亲自演示一遍。 |
(4)分类的IP地址
IP地址习惯上可以分为下面几类:
我们只需要记住A类、B类、C类即可,即这些IP地址的掩码分别为255.0.0.0、255.255.0.0和255.255.255.0。
(5)VLSM(变长子网划分)
所谓VLSM,就是子网划分,没必要弄得太高深,那么什么子网划分?
任务1:假定给你一个网段192.168.1.0/24(注意,我们使用了网段这个词,这也是没有问题的),要你架设一个局域网,问你可以在你的局域网放置多少台主机?OK,非常好办,方案如下:
192.168.1.0/24这个局域网,除了192.168.1.0/24(网络地址)和192.168.1.255(广播地址)这两个地址不可以用外,其余都可以用,那么也就可以把2^8-2=254个IP地址分配给主机,也就是说,这个局域网中可以有254台主机。IP地址范围如下:
|
任务2:假定给你一个网段192.168.1.0/24,要你架设两个局域网,问你可以在你的局域网放置多少台主机?
提示:网络位向主机位借位 这下有点meng了吧!怎么架设呢?哈哈,其实这时候我们只需要增加一位网络号即可,即原来是24位,现在变成25位,那么就相当于现在我把一个大的网段192.168.1.0/24分成了两个较小的网段192.168.1.0/25和192.168.1.128/25这两个较小的网段。每一个网段就可以构建一个局域网,而每一个局域网同时拥有自己的网络地址和广播地址。 |
因此,对于任务2,我们把192.168.1.0/24分成192.168.1.0/24和192.168.1.128/25这两个网段,IP地址的分配方案如下:
网段 | 网络地址 | 广播地址 | IP总数 | 可用IP地址范围 | 可用IP地址数 |
192.168.1.0/25 | 192.168.1.0 | 192.168.1.127 | 2^7=128 |
192.168.1.1 ~ 192.168.1.126 |
2^7-2=126 |
192.168.1.128/25 | 192.168.1.128 | 192.168.1.255 | 2^7=128 |
192.168.1.129 ~ 192.168.254 |
2^7-2=126 |
上面这些内容非常重要,务必要掌握!其实如果看一些书籍的话,可能还会有更种各样的公式和各种各样的所谓技巧,其实说实在的,你只要把这些原理理解了,实在是没有必要是刻意记住这些公式和技巧,随着技术的慢慢积累,你会发现你自然而然地就在用这些技巧,但是你从来没有去刻意记过。(PS:希望大家可以慢慢达到这种水平)
其实我本人觉得,是否对计算机网络中的局域网(或者就说网络)有一个较为深刻的理解,就看你会不会划分子网,如果会了,那么我相信你对局域网的理解会有一个很大的提升,不需要怀疑太多,接触的知识越多,你会发现如果你不懂子网划分,你会发现什么也做不了。
|
(5)CIDR
VLSM是网络号向主机号借位,而CIDR是主机号向网络号借位,前者可以形成各多的子网(局域网),但同时,每个子网中的主机数据必然会减少;而后者则恰恰相反,即通过减少子网的数目来让一个局域网拥有更多的主机。
关于CIDR,不作要求,有兴趣可以自己查阅书籍或向我了解。
IP地址的内容到这里就算结束了,当然实际上IP地址的知识还有很多很多,但其实作为入门,可以理解这些内容就非常不错了。(PS:博主本人之前加了很多H3C的网络工程师群,通过交流发现,很多正在工作中的所谓工程师,连最基本的子网划分都不会!当需要划分子网时,他们竟然要使用软件!!!不可思议吧?)
3.基本路由概念
在同一个局域网进行数据通信,交换机只会把数据解封装到第二层,即数据链路层,然后查看其中的目的MAC地址,并从相应的接口发送出去。
而在两个不同的局域网中,如果局域网1中的主机A要想把数据发送到局域网2中的主机B,那么这个数据必须要通过路由器(当然三层或多层交换机也可以,但是先不要考虑这种情况),因为我们说,路由器是用来连接不同的局域网的(一个接口连接一个局域网,不同的接口连接不同的局域网)。那么路由器怎么就知道要把数据从哪里发送出去呢?也许我们都会想当然地以为,路由器它这么聪明,它自己会选择呀!亲,路由器的确是很聪明,但是,如果我们不告诉它数据应该往哪里发送,它是不知道下一步要做什么的。
路由器把一个网络中的数据交给另一个网络,这一个过程,我们就称之为路由,注意这里的“路由”是动词,而不是平常所说的那种所谓的家用小型路由器。
关于路由的概念,会在课堂上通过实验来进行说明。
|
4.下一步要做什么
通过对IP地址的学习,下一步我们就需要了解数据在不同的网络中到底是如何转发的,也就是说路由器到底是怎么帮我们选路的(即路由),这也就是我们要讨论的内容。
后面的课程,我们将会以各种各样的实验来较为深入地学习下面的这些技术:
- 静态路由技术
- 动态路由技术
- RIP协议、RIPv2协议、OSPF路由协议
敬请关注!