系统服务篇

本文介绍了IP地址的分类及私有IP的应用,详细解析了子网掩码的作用及子网划分的方法,帮助读者理解如何有效管理和规划网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux中,DNS主机IP设定在/etc/resolv.conf

TCP/IP的网络层相关数据包与数据

  • IP数据包的封装

  •  网络号码(Net_ID)和主机号码(Host_ID)

同一个物理网段内,主机的IP具有相同的Net_ID,并且具有独特的Host_ID

192.168.0.0~192.168.0.255 这个 Class C 的说明:
11000000.10101000.00000000.00000000
11000000.10101000.00000000.11111111
|----------Net_ID----------|-host--|
  •  IP在同一个网络的意义

  1. 首先,Host_ID不能全为0或者全为1:全为零表示整个网段的地址(Network IP),全为1则表示为广播的地址(Broadcast IP);
  2. 在局域网内通过IP广播(CSMA/CD)传播数据,也可以通过网卡对网卡的方式,不经过路由器传递数据;
  3. 如果在同一个物理网段内,主机使用不同的IP网段地址,广播就行不通了, 需要路由器转发;
  4. Host_ID占用位越多,表示可设定主机的IP越多
  • IP的分级

以二进制说明 Network 第一个数字的定义:
Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ==> NetI_D 的开头是 0
          |--net--|---------host------------|
Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ==> NetI_D 的开头是 10
          |------net-------|------host------|
Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ==> NetI_D 的开头是 110
          |-----------net-----------|-host--|
Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ==> NetI_D 的开头是 1110
Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ==> NetI_D 的开头是 1111

五种分级在十进制的表示:
Class A :   0.xx.xx.xx ~ 127.xx.xx.xx
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx
  • IP的种类

  1. 公共IP:公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet ;
  2. 私有IP:私有 IP 或保留 IP,不能直接连上 Internet 的 IP(不然会造成混乱的) , 主要用于局域网络内的主机联机规划。

私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,那就是:

  • Class A:10.0.0.0    - 10.255.255.255
  • Class B:172.16.0.0  - 172.31.255.255
  • Class C:192.168.0.0 - 192.168.255.255
  • 私有IP的限制:
  1. 私有 IP 的路由信息不能对外散播 (只能存在内部网络);
  2. 使用私有 IP 作为来源或目的地址的封包,不能透过 Internet 来转送 (不然网络会混乱);
  3. 关于私有 IP 的参考纪录(如 DNS),只能限于内部网络使用 (一样的原理啦)
  • 私有IP的好处:

不会被Internet上的crack攻击

  • 如何联网:

如果希望私有IP联网,需要设定一个简单的防火墙加上 NAT (Network Address Transfer) 服务

  • IP的取得方式

  1. 直接手动配置(static):向网关询问可用的IP参数,然后直接编辑配置文件(或使用某些软件)来设定网络(本科宿舍);
  2. 通过拨号取得:向ISP申请注册,取得账号密码后,直接拨接到ISP,你的ISP会通过他们自己的受害者,让你的操作系统取得正确的网络参数;
  3. 自动取得网络参数 (DHCP): 在局域网络内会有一部主机负责管理所有计算机的网络参数,你的网络启动时就会主动向该服务器要求 IP 参数, 若取得网络相关参数后,你的主机就能够自行设定好所有服务器给你的网络参数了。
  • 子网&子网掩码

我们前面谈到 IP 是有等级的,而设定在一般计算机系统上面的则是 Class A, B, C。现在我们来想一想,如果我们设定一个区网, 使用的是 Class A ,那么我们很容易就会想到,哪有这么多计算机可以设定在同一个 Class A 的区段内 (256x256x256-2=16777214) ? 而且,假设真有这么多计算机好了,回想一下 CSMA/CD 吧,你的网络恐怕会一直非常停顿,因为妳得要接到一千多万台计算机对你的广播... 光是想到一千多万台的广播,你的网络还能使用吗?真没效率!

此外,分为 Class 的 IP 等级,是为了管理方面的考虑,事实上,我们不可能将一个 Class A 仅划定为一个区网。举例来说, 我们昆山取得的 Public IP 是 120.xxx 开头的,但是其实我们只有 120.114.xxx.xxx 而已,并没有取得整个 Class A 喔! 因为我们学校也用不了这么多嘛!这个时候,我们就得要理解一下啰,就是,怎么将 Class A 的网段变小?换句话说, 我们如何将网域切的更细呢?这样不就可以分出更多段的区网给大家设定了?

前面我们提到 IP 这个 32 位的数值中分为网域号码与主机号码,其中 Class C 的网域号码占了 24 位,而其实我们还可以将这样的网域切的更细,就是让第一个 Host_ID 被拿来作为 Net_ID ,所以,整个 Net_ID 就有 25 bits ,至于 Host_ID 则减少为 7 bits 。在这样的情况下,原来的一个 Class C 的网域就可以被切分为两个子域,而每个子域就有『 256/2 - 2 = 126 』个可用的 IP 了!这样一来,就能够将原本的一个网域切为两个较细小的网域,方便分门别类的设计喔。

实现子网的划分,就使用了子网掩码

标准的Class A,B,C的子网掩码:

Class A, B, C 三个等级的 Netmask 表示方式:
Class A : 11111111.00000000.00000000.00000000 ==> 255.  0.  0.  0
Class B : 11111111.11111111.00000000.00000000 ==> 255.255.  0.  0
Class C : 11111111.11111111.11111111.00000000 ==> 255.255.255.  0

192.168.0.0 ~ 192.168.0.255 这个 Class C 的网域中,他的 Netmask 就是 255.255.255.0 !再来,我们刚刚提到了当 Host_ID 全部为 0 以及全部为 1 的时后该 IP 是不可以使用的,因为 Host_ID 全部为 0 的时后,表示 IP 是该网段的 Network ,至于全部为 1 的时后就表示该网段最后一个 IP ,也称为 Broadcast ,所以说,在 192.168.0.0 ~ 192.168.0.255 这个 IP 网段里面的相关网络参数就有:

Netmask:   255.255.255.0   <==网域定义中,最重要的参数
Network:   192.168.0.0     <==第一个 IP
Broadcast: 192.168.0.255   <==最后一个 IP
可用以设定成为主机的 IP 数:
192.168.0.1 ~ 192.168.0.254
  • 子网切分

但如果像引文里说的,需要将网段变小,netmask,network IP, broadcast IP都会有所调整,例子如下:

以 192.168.0.0 ~192.168.0.255 这个情况为例,他要如何再细分为两个子域呢?我们已经知道 Host_ID 可以拿来当作 Net_ID,那么 Net_ID 使用了 25 bits 时,就会如下所示:

原本的 C Class 的 Net_ID 与 Host_ID 的分别
11000000.10101000.00000000.00000000      Network:   192.168.0.0
11000000.10101000.00000000.11111111      Broadcast: 192.168.0.255
|----------Net_ID---------|-host--|

切成两个子网之后的 Net_ID 与 Host_ID 为何?
11000000.10101000.00000000.0 0000000  多了一个 Net_ID 了, 为 0 (第一个子网)
11000000.10101000.00000000.1 0000000  多了一个 Net_ID 了, 为 1 (第二个子网)
|----------Net_ID-----------|-host--|

第一个子网
Network:   11000000.10101000.00000000.0 0000000   192.168.0.0
Broadcast: 11000000.10101000.00000000.0 1111111   192.168.0.127
           |----------Net_ID-----------|-host-|
Netmask:   11111111.11111111.11111111.1 0000000   255.255.255.128

第二个子网
Network:   11000000.10101000.00000000.1 0000000   192.168.0.128
Broadcast: 11000000.10101000.00000000.1 1111111   192.168.0.255
           |----------Net_ID-----------|-host-|
Netmask:   11111111.11111111.11111111.1 0000000   255.255.255.128

例题:

例题:

试着计算出 172.16.0.0,但 Net_ID 占用 23 个位时,这个网域的 Netmask, Network, Broadcast 等参数

答:

由于 172.16.xxx.xxx 是在 Class B 的等级当中,亦即 Net_ID 是 16 位才对。不过题目给的 Net_ID 占用了 23 个位喔! 等于是向 Host_ID 借了 (23-16) 7 个位用在 Net_ID 当中。所以整个 IP 的地址会变成这样:

预设:       172  .  16    .0000000 0.00000000
          |----Net_ID--------------|--Host---|
Network:     172  .  16    .0000000 0.00000000   172.16.0.0
Broadcast:   172  .  16    .0000000 1.11111111   172.16.1.255
Netmask:  11111111.11111111.1111111 0.00000000   255.255.254.0

如果我们以 192.168.0.0 ~ 192.168.0.255 这个网段来说,要是给予 Net_ID 是 26 位时,总共分为几段呢? 因为 26-24=2 ,所以总共用掉两个位,因此有 2 的 2 次方,得到 4 个网段。再将 256 个 IP 平均分配到 4 个网段去, 那我们就可以知道这四个网段分别是:

  • 192.168.0.0~192.168.0.63
  • 192.168.0.64~192.168.0.127
  • 192.168.0.128~192.168.0.191
  • 192.168.0.192~192.168.0.255

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值