AND运算

数据网络设备内部是运用数字逻辑来解释地址的。在创建或转发 IPv4 数据包时,必须从目的地址中提取出目的网络地址。这一步通过 AND 运算来完成。

对 IPv4 主机地址同其子网掩码执行 AND 逻辑运算,可以确定该主机相关联的网络地址。地址和子网掩码之间的 AND 运算得到的结果就是网络地址。
AND 运算
AND 运算是数字逻辑中使用的三种基本二进制运算之一。另外两种是 OR 和 NOT。虽然这三种运算都用于数据网络中,不过用于确定网络地址的是 AND。因此,本章的讨论仅限于逻辑 AND。逻辑 AND 运算比较两个位,所得结果如下:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0
任意值同 1 进行 AND 运算,所得结果都是原来的位。即,0 AND 1 得 0 而 1 AND 1 得 1。相应地,任意值同 0 进行 AND 运算,结果都为 0。AND 运算的这些特性与子网掩码配合使用便可以“遮掩”IPv4 地址的主机位。地址的每个位同子网掩码的相应位进行 AND 运算。
由于子网掩码中代表主机位的所有位都是 0,因此,所得网络地址的主机部分也全部变为 0。我们曾学过,主机部分全部为 0 的 IPv4 地址代表网络地址。
同理,子网掩码中表示网络部分的所有位均为 1。这些 1 同地址的相应位逐个进行 AND 运算时,所得各位与原来的地址位相同。
使用逻辑 AND 的原因
数据网络中的设备在主机地址和子网掩码之间执行 AND 运算的原因各异。
路由器使用 AND 运算来确定传入数据包的合理路由。路由器检查目的地址,并尝试将此地址关联到下一跳。当数据包到达路由器时,路由器对传入数据包中的 IP 目的地址和可能路由的子网掩码执行 AND 运算。由此得到的网络地址将与所用子网掩码的路由表中的路由相比较。
发送主机必须确定应该将数据包直接发送到本地网络中的主机还是应将其转发到网关。要做出此决定,主机首先必须了解自己的网络地址。
主机通过对其地址和子网掩码执行 AND 运算提取出自己的网络地址。发送主机也会对该数据包的目的地址和主机的子网掩码执行逻辑 AND 运算。得到的结果便是目的地址的网络地址。如果此网络地址与本地主机的网络地址相符,就会将该数据包直接发送到目的主机。如果两个网络地址不符,就会将该数据包发送到网关。
逻辑 AND 的重要意义
如果路由器和终端设备无需干预即可完成这些运算过程,我们为什么还要了解 AND 运算的运算方法呢?这是因为我们对网络的工作原理了解越多,对网络运行情况的预测能力也就越强,设计和(或)管理网络的准备也就越充分。
在网络验证/故障排除过程中,通常需要确定主机所在的 IPv4 网络或确定两台主机是否位于同一个 IP 网络中。我们需要从网络设备的角度来做出此决定。由于配置不正确,某台主机可能会以为自己所在的网络与预定网络不同。这可能会导致工作不正常,但检查该主机使用的 AND 运算过程就可以诊断这个问题。
此外,路由器可能有许多条不同路由都可以将数据包转发到给定目的地址。选择使用哪条路由发送给定的数据包是一个非常复杂的运算过程。例如,构成这些路由的前缀并非直接与分配给主机的网络相关联。这表示路由表中的路由可能代表许多网络。如果路由数据包的过程存在问题,就需要确定路由器做出路由决定的方式。
尽管网络管理员可以使用子网计算器,但了解如何手动计算子网也非常实用。

本文出自 “07net01” 博客,请务必保留此出处http://07net01.blog.51cto.com/1192774/571335

更多相关文章
  • 这篇文章主要介绍了CSS3中Animation属性的使用详解,是CSS3入门学习中的基础知识,需要的朋友可以参考下 在开始介绍Animation之前我们有必要先来了解一个特殊的东西,那就是”Keyframes”,我们把他叫做“关键帧”,玩过flash的朋友可能对这个东西并不会陌生.下面我们就一起来看 ...
  • 最近刚好系统学习到linux文件权限这一块,在"umask值及其对应的文件权限"这一个问题上,找过视频看(老男孩老师的视频,强烈推荐),也看过鸟哥的书,当然也在网上找了找,发现计算方法都是多种多样的,但是个人觉得掌握一种就好了,看了各种方法,觉得其实大多数都是在找规律,不是找规律 ...
  • 上一篇我们对ASP.NET中常见的内置对象做了概述,现在我们开始了解怎么用,用哪里,何时用,首先我们从Request和Response说起. 大家在开发过程中,免不了会遇到这样一个问题,就是从客户端传值到服务端,或者从服务端传值到客户端,在这里我们用到的就是Request和Response. 一.R ...
  • leetcode原文引用:   Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id. ...
  • 课程介绍    本课程讲述使用WebSphere Studio Application Developer去开发与J2EE标准相兼容的应用程序,主要包括以JSP/Servlet/ JavaBean为核心的Web应用程序,讲解EJB的原理及开发要点,同时介绍如何使用EJB开发环境.JAVA编码工具.以 ...
  •   类别 课程 证书种类 适用对象 CIW Associate CIW基础课程(CIW Foundations) CIW Associate 所有的互联网从业人员 系统管理大师Master CIW Administ-rator(通过CIW Assistant和右边三个考试即可获得) 服务器管理专家( ...
一周排行
  • 1,由A-Z.a-z.组成3位的字符密码,设计一个算法,列出并打印所有可能的密码组合. 由于控制台容纳能力有限,故将其写到文本文件中. 没人会耐心等你把这61个字母输完(程序执行ms,输入程序一分钟,自己手动输 ...
  • 我的空间存放在阿里云,服务器默认Apache编码设置为utf-8,而新的网站珠宝招聘网http://hr.izuans.com 采用GB2312编码,其他程序文件都OK,就是生成静态新闻页和其他单页面的时候,每次浏览 ...
  • 原文:http://www.cnblogs.com/xiongpq/archive/2010/06/29/1767905.html 概述: Windows Presentation Foundation (WPF) ...
  • 1.连接文件区分为两种,一种类似windows下快捷方式,使用户能够快速连接到目标文件或目录. 另一种则通过文件系统中的inode连接来产生新文件名,而不是产生新文件. 两种方式分别称为符号/硬连接. 2. 每个文件 ...
  • <1>TextField 文本输入控件 [javascript] <html>  <head>      <meta http-equiv="Content-Typ ...
  • Thumb很适合用来做拖动效果的,不会让鼠标轻易跑掉. Combo中的选项是当字符串输入并激发事件后自动加入的,可使用IVsUIShell.SetMRUComboText(GuidList.guidOneCodeSe ...
  • ps:请勿用于非法用途,仅供技术研究之用. by:yunshu 这个东西的主要功能就是去网上一个URL读取配置文件,拿到需要弹出的窗口以及周期时间,然后开始弹……程序安装成服务,并设置为自动启动.启动之后写入一段代码 ...
  • 本文将介绍TouchJson. SBJson .JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库 TouchJson包下载: http:/ ...
  • 为什么,不同厂家发布的机器,为什么会如此相似呢? 说到魅族和荣耀,也是一对欢喜冤家,刚刚发布的荣耀7和魅族MX5这两款手机,从发布之后来看,相似点还是很多的,为什么,不同厂家发布的机器,为什么会如此相似呢? 首先要说 ...
  • 第 3 章 MySQL 存储引擎简介 前言 3.1 MySQL 存储引擎概述 MyISAM 存储引擎是 MySQL 默认的存储引擎,也是目前 MySQL 使用最为广泛的存储引擎之一.他的前身就是我们在 MySQL 发 ...