热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

学RedHat网络操作必读:IP地址基础知识

文章标题:学RedHat网络操作必读:IP地址基础知识。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  IP基础--1.IP地址
  二进位和逻辑运算
  在我们认识IP地址之前我想我们很有必要认识两个概念二进位和逻辑运算。虽然我也知道这两个东东都不好理解但如果不知道它们的工作原理那麽以後我们在讨论IP地址和子网的时候您就要靠死记了。不过一旦你知道了其原理那麽您在任何的IP网路中都不至於迷失所谓“万变不离其宗”是也。
  二进位 (Binary)
  为什麽我们要学二进位哎呀还不是该死的蠢电脑嘛它只懂得0和1那麽我们要和电脑沟通的时候也只好装蠢一些才行。当电脑要处理IP运算的时候最终是以二进位的形式进行的。
  我们人类最习惯的运算规则是十进位也就是从0到9为一圈回到零的时候就进一位数而我们前面讨论的bit和byte则是八进位即0到7为一圈回到零就进一位数另外还有十六进位由0到15为一圈回到零进一位但使用数字15很容易和十进位混乱所以在十六进位里面从10到15之间分别用英文字母A到F代替了所以我们通常看到的十六进位是从0到F的排列。
  好了认识了上面这几种运算规则相信理解二进位也不难道理是一样的从0到1为一圈回到0进一。那麽我们看看十七个连续递增的十进位二进位和十六进位数字之间的比较将会是这样的
  十进位 二进位 十六进位
  0 0 0
  1 1 1
  2 10 2
  3 11 3
  4 100 4
  5 101 5
  6 110 6
  7 111 7
  8 1000 8
  9 1001 9
  10 1010 A
  11 1011 B
  12 1100 C
  13 1101 D
  14 1110 E
  15 1111 F
  16 10000 10
  如果您想进行二进位和十进位的换算在列表中找到相应的数字是最简单的方法但正如您刚才所见光十六个数字已经有这麽长的列表了如果要找成千上百个数字可不是件容易的事情。不过我们在IP地址上面看到的十进位数字最大不会超过255这个数值。我们可以先将2的0到7次方列出来
  27 26 25 24 23 22 21 20
  128 64 32 16 8 4 2 1
  当我们要将十进位换成二进位的时候我们只要找到找到该数字对应的栏位(方法是找到两个数值相若的栏位而取其右)在相对的栏位填上1然後用余数继续寻找下一栏位再填1直到再没余数为止最後把其它栏位都填上0就可以了。
  例如我们要换算220这个十进位数字到二进位
  我们找到128这栏位是最合适的(因为128的左边是256而220 界乎它们之间取其右则为 128 )。那麽我们在128这栏位上面填上1
  继续余数92我们找到64这栏位是最合适的那麽在64这个栏位也填上1
  继续余数28我们找到16这栏位是最合适的那麽在16这个栏位也填上1
  继续余数12我们找到8这栏位是最合适的那麽在8这个栏位也填上1
  继续余数4我们找到4这栏位刚好对应这是最好找到情形了。那麽在4这个栏位也填上1
  因为再没有余数了其它都填上0就对了。
  其结果如下 128 64 32 16 8 4 2 1
  1 1 0 1 1 1 0 0
  如果我们要将二进位换算成十进位利用上面的栏目来做就更加简单了只要将二进位数字从右往左的顺序依次填入栏位那麽将凡是被1所对应的数字相加得出来的和就是十进位数字了。
  当然啦这是手工的方法啦如果您有二进位的计数器或是使用Windows的小算盘来进行换算更是易如反掌啦。如果您还不知道怎麽用Windows的小算盘点话可以依以下步骤进行
  “开始/程式集/附属应用程式/小算盘”
  然後拉下“检视”选单确定“工程型”已被选择
  然後点选“十进位”输入数值
  再点选“二进位”就可以获得换算数值了
  逻辑运算
  逻辑运算是Microcomputer Architature的必修单元这里我们只需了解几个最基本的运算就可以了一个是AND一个是OR还有一个是NOT。
  在二进位的AND的运算中只有参与运算的双方都相同才会得出相同的结果(为0或1)否则为0也就是只有双为1的时候其结果才会是1否则为0。其情形是
  0 AND 0 = 0
  1 AND 1 = 1
  0 AND 1 = 0
  这里您不难看出凡是有1参与的AND运算其结果都会是对方(不管是0或1)而凡是有0参与的AND运算其结果都会是0。
  在二进位的OR运算中只有双方为0的时候才为0否则都会是1。其情形是
  0 OR 0 = 0
  1 OR 1 = 1
  0 OR 1 = 1
  记忆方法凡是有0参与的OR运算其结果都是对方而只要有1参与的OR运算其结果都会是1。
  NOT的运算最简单只有一方参与凡是经过NOT运算其结果都会相反
  NOT 0 = 1
  NOT 1 = 0
  至於其它一些NAND或NOR的运算只不过将NOT和AND及NOT和OR合在一起运算而已。
  认识IP地址
  好了经过刚才一轮“洗脑”之後我们终於要谈到IP地址了。如果您的机器现在是连上网路的且使用的是IP协定(我想您应该这样吧否则怎麽看我的文章呢)。
  我假设您使用的是Windows系统那麽现在就请您按“开始”然後“执行”再请您用键盘输入“winipcfg”然後“确定”。这时候您应该看到一个视窗跑出来并在“IP位址”栏目上面显示着您机器当前使用的IP号码。或许会是139.175.152.254这样的一组号码不过您知道这组号码的代表着什麽意思吗如果按正常设定来说我可以说这是B class的IP号码而且是属於seed.net的拨接网路的。
  我怎麽会知道哈哈等您看完了後面的文章您还可以告诉我更多呢
  IP Class和识别码
  正如您所见到的IP地址是四组用“.”分开的十进位数字我们称每组数字为一个“octet”这样的格式被称作“Dotted quad”。其实每一组都是一个8-bit的二进位数字(使用十进完全是为了迁就人类的习惯)合共起来就是一个32-bit的IP地址了亦即是IP v4 (Version 4) 版本的地址现在IP v6 (使用128-bit的IP地址)也正如火如的开发中。
  如果您记得我们前面在“网路概论”里面讨论IPX地址的时候所提到的Internal和External地址的话您应该知道Internal地址是用来识别主机的而External地址则是用来识别网路的。IP地址其实也有这样的功能只不过将网路的识别码和主机的识别码放在单一的IP地址上面了。
  不过在区分Net ID和Host ID之前先让我们认识一下IP地址的分类(Class):
  如果我们将IP地址全部用二进位来表示的话每个octet都是8-bit如果不够8-bit的话则往左边填上0直到补满为止。这时候你再看看最左边的数字是以什麽为开头的
  如果是以“0”开头的这IP是一个A Class的IP
  如果是以“10”开头的这是一个B Class的IP
  如果是以“110”为开头的则属於C Class的IP
  相信您知道为什麽我们在一开头就学二进位换算了吧如果您不懂得如何换算您也可以死记由1到126开头的IP是A Class由128到191开头的IP是B Class 然後由192到223开头的则为C Class。显然易见用二进位来识别IP Class比较容易您不觉得吗
  好了当我们识得区别IP的Class之後我们就可以知道IP的Net ID 和 Host ID了
  A Class的IP使用最前面一组数字来做Net ID其余三组做Host ID
  B Class的IP使用前面两组数字来做Net ID另两组做Host ID
  C Class的IP使用前面三组数字来做Net ID剩下的一组做Host ID
  从下图中您可以轻易的区分上面三个不同的 IP Class
  为什麽我们需要为IP划分等级呢这是为了当初的 IP 管理需要。
  如果您要组建一个单一的IP网路那麽您得分配相同的Net ID给所有主机而各主机的Host ID却必须是唯一的也就是说没有任何两个Host ID会是一样的。您的网路还要连上internet或其它网路的话那麽您使用的Net ID也必须是唯一的否则就会造成突了。好比您家的电话号码如果是1234567(Host ID)的话那麽在相同区号(Net ID)里其他人将不会再使用这个号码然而你不保在其它区号里面也有1234567这个号码哦但如果台北使用了区号02的话台南就不能使用02了。无论如何整个区号加电话号码必须是唯一的。同样的道理整个IP地址(Net ID + Host ID)在internet上也必须是唯一的。有一个很特别的Net ID 127 (即二进位的01111111)是保留给本机回路测试使用的它不可以被运用於实际的网路中去。
  另外有一个规则我们还必须遵守的在指定Host ID的时候换成二进位的话不可以是全部为0也不可以是全部为1。当Host ID全部为0的时候指的是网路本身识别码而全部为1的时候则为全域广播地址即发送广播封包使用的地址。
  很明显A Class网路可分配的Host ID 要比C Class的要多好多倍。让我们算算可以划分的Net ID数目和各等级里面的Host ID数目就知道了
  因为A Class第一个bit必须为0所以我们在头一个otect的8个bit就只有7个bit是可变化的。那麽27 = 128再减去0和127这个Net ID不能使用那麽我们实际上最多只能划分126个A Class的网路。而每个A Class的网路之下可以分配2的24(能够使用的 Host ID之bit 数目)次方亦即16,777,216个Host ID再因为二进位数字不可以全部为0或1所以实际能用的主机位址只有16,777,214个。
  因为C Class以110开头减去 3 个 bit 所以可划分的C Class网路则为2的21(24-3)次方也就是2,097,152个Net ID然後每个Class C之下则可以划分28 = 256 - 2 = 254个Host ID。
  好了这下您自己试试看计算出B Class可以划分多少个Net ID和每个Net ID之下的可用Host ID数目。(Tips别忘了ID不能全部为0或1)。然後再来对照下面的列表
  等级 开首 网路数目 主机数目 使用围 申请领域
  A 0 126 16,777,214 1.x.x.x 到 126.x.x.x 国家级
  B 10 16,384 16,382 128.x.x.x 到 191.x.x.x 跨国组织
  C 110 2,097,152 256 192.x.x.x 到 223.x.x.x 企业组织
  D 1110 - - 224.- 到 239.- 特殊用途
  E 1111 - - 240.- 到 255.- 保留围
  认识Net Mask
  下面我们要认识的是 Net Mask (网路遮罩或称网路掩码)。
  到了这里我必须要向大家交代清楚一件事情在我们进行IP地址划分的时候IP和Net Mask都必须一对使用的两者缺一不可不过当我们使用分等
推荐阅读
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 在Android平台上,视频监控系统的优化与应用具有重要意义。尽管已有相关示例(如http:www.open-open.comlibviewopen1346400423609.html)展示了基本的监控功能实现,但若要提升系统的稳定性和性能,仍需进行深入研究和优化。本文探讨了如何通过改进算法、优化网络传输和增强用户界面来提高Android视频监控系统的整体效能,以满足更复杂的应用需求。 ... [详细]
  • 资源管理器的基础架构包括三个核心组件:1)资源池,用于将CPU和内存等资源分配给不同的容器;2)负载组,负责承载任务并将其分配到相应的资源池;3)分类函数,用于将不同的会话映射到合适的负载组。该系统提供了两种主要的资源管理策略。 ... [详细]
  • WebStorm 是一款强大的集成开发环境,支持多种现代 Web 开发技术,包括 Node.js、CoffeeScript、TypeScript、Dart、Jade、Sass、LESS 和 Stylus。它为开发者提供了丰富的功能和工具,帮助高效构建和调试复杂的 Node.js 应用程序。 ... [详细]
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
  • AngularJS 进阶指南:第三部分深入解析
    在本文中,我们将深入探讨 AngularJS 的指令模型,特别是 `ng-model` 指令。`ng-model` 指令用于将 HTML 元素与应用程序数据进行双向绑定,支持多种数据类型验证,如数字、电子邮件地址和必填项检查。此外,我们还将介绍如何利用该指令优化表单验证和数据处理流程,提升开发效率和用户体验。 ... [详细]
  • 如何在低配置电脑上下载并运行《绝地求生》游戏? ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 遇到电脑启动时显示0x000000ED蓝屏错误代码应如何处理?
    遇到电脑启动时显示0x000000ED蓝屏错误代码应如何处理? ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
author-avatar
捕鱼达人2502873933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有