本文主要是介绍【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
工作中常听别人说的本地网络是什么意思?同一网段又是什么意思?它俩有关系吗?
在工作中内经常会遇到相关的网络问题,涉及网络通信中一些常见的词汇,如IP地址、子网掩码、网关和DNS等。具体一点:经常会遇到A服务器与B服务器无法连接,而网络管理人员只会跟你说看一下网关配置、是否存在网闸、防火墙等等。
基于此,个人对于此类知识进行简单拓展,不深入,目的是工作中能进行基本使用和与网络管理人员顺利沟通。(顺便吐槽下:个人认为,工作中面向不同专业的人,说大白话是沟通顺畅的基础,比如在公司报销时,你问财务需要什么,财务跟你说增值税专用发票、增值税普通发票、记账联、抵扣联、发票联、税务发票和财政票据等词汇却不举例说明那类费用需要什么票,还反问你这么简单都不懂你烦不烦)。
IP
什么是ip
IP地址是由数字和点组成的字符串,用于标识网络中的唯一设备。每个连接到互联网的设备都必须有一个IP地址,否则无法上网。其基本格式通常为四个数字组,如“192.168.1.1”。
ip格式和组成
ip格式
ip地址长度为32bit,即4个字节(byte)。我们都知道1byte=8bit,可以表示2的8次方,即0~255。
所以ip表示形式有两种:
点分十进制:192.168.1.1(常用,方便人理解)
二进制表示:11000000101010000000000100000001(即每个数转换成一个8位的2进制数。颜色仅仅为了区分显示每个数,没有其他含义)
ip组成
IP地址由网络号和主机号组成,网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机。远程网络中的主机要相互通信必须通过网关(Gateway)来传递转发数据。下面详细说明:
IP地址由网络号和主机号组成。
即ip的32bit即4个字节,是由网络号和主机号共同组成的。那么哪部分属于网络号,哪部分属于主机号呢?ip地址有如下规定:
IP地址可以分为A类、B类、C类、D类和E类:
每段IP地址的首尾两个地址是做为网段地址和网段广播地址使用的,不能做为主机地址使用(所以下述主机数都-2,如192.168.1.0和192.168.1.255都不能作为主机地址使用);
0.0.0.0是一个特殊用途的IP地址,通常在网络上下文中指代“所有地址”或“任何地址”、以0开头的其他IP地址(如0.0.0.1)也被保留用于特殊用途,并且不应分配给网络上的设备。例如,0.0.0.0/8块被保留用于设备在尚不知道自己的IP地址时进行自我识别,0.0.0.0/32块用于表示默认路由。(A类网络-1);
127.0.0.0网段,留做本机网卡测试。(A类网络-1)
A类网络(大型网络): 网络号是8位,第1位是0,主机位是24位。A类是大型网络,网络地址数量较少,有126(2^7-2)个网络,主机数2^24-2。
B类网络(中型网络): 网络号是16位,前两位是10,其他位随意变化,主机位是16位,主机数2^16-2。B类网络地址适用于中等规模的网络,有16384个网络。
C类网络(小型网络): 网络号是24位,前三位是110,其他位随意变化 ,主机位是8位,C类网络地址数量较多,有2097152个网络。适用于小规模的局域网络主机数2^8-2=254。
D类网络(组播): 前四位是1110,其他位随意变化。
**E类网络(用于研究):**前五位是11110,其他位随意变化。保留用于研究和将来使用。
网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信。
C类网络(小型网络)为例:
ip地址192.168.1.1和192.168.1.2就是本地网络。
ip地址192.168.1.1和192.168.2.2就是远程网络。
思考一个问题:本地网络中的主机可以直接相互通信,这句话是对的吗?
答案:不一定!
再思考一个问题:同一网段的主机可以直接相互通信,这句话是对的吗?
要了解这个问题,我们还需要了解子网掩码
子网掩码
什么是子网掩码
子网掩码用来指明一个ip地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。
子网掩码的作用
子网掩码一定是配合IP地址来使用的。子网掩码工作过程是:将32位的子网掩码与IP地址进行二进制形式的按位逻辑与运算得到的便是网络地址,将子网掩码二进制按位取反,然后IP地址进行二进制的逻辑“与”(AND)运算,得到的就是主机地址。
这里我是这么理解的,子网掩码+ip确定了当前机器所在的网段。
例如:一台机器ip是192.168.1.1,子网掩码是255.255.255.0
IP地址192.168.1.1转换为二进制是11000000.10101000.00000001.00000001,
子网掩码255.255.255.0转换为二进制是11111111.11111111.11111111.00000000。
进行逐位按位与运算:将IP地址与子网掩码进行逐位按位与(AND)运算。这个运算会比较两个数字的每一位,只有当两位都是1时,结果才是1,否则结果是0。IP地址192.168.1.1和子网掩码255.255.255.0进行按位与运算的结果是11000000.10101000.00000001.00000000。点分十进制:
192.168.1.1和255.255.255.0进行运算,根据上述红字部分,可知255与任何数计算都是这个数本身,0与任何书计算后都是0. 结果为:192.168.1.0
综上,该机器在子网中的的网络地址是192.168.1.0,主机地址是1
完成这个问题后再继续。
ip是192.168.3.2,子网掩码是255.255.0.0,网络地址是多少?主机地址又是多少?
答:网络地址:192.168.0.0 主机地址:3.2
网段
通常指的是一个计算机网络中使用同一物理层设备能够直接通信的部分。判断两个IP地址是否在同一网段的方法通常是比较它们的网络地址是否相同。
再来看之前的问题:
本地网络中的主机可以直接相互通信,这句话是对的吗?答案肯定是不对。
192.168.1.1和192.168.1.2如果子网掩码不一样,那么肯定是无法通信的。
同一网段的主机可以直接相互通信,这句话是对的吗?答案是对。
网关
远程网络中的主机要相互通信必须通过网关来传递转发数据,意味着在两个分隔的网络之间进行数据传输时,需要依赖网关这个中介点来完成。
首先,网关(Gateway)是一个网络通信的节点,它作为不同网络或子网之间的桥梁,负责将一个网络中的数据包转发到另一个网络。在没有路由器的情况下,即使两个网络连接在同一台交换机或集线器上,如果它们的子网掩码设置导致它们被识别为不同的网络,那么这两个网络中的主机就无法直接进行TCP/IP通信。这时,就需要通过各自网络的网关来实现数据的传递和转发。
其次,当一个网络中的主机需要发送数据到另一个网络中的主机时,它会将数据包发送到自己的网关。然后,这个网关会处理这些数据包,并将它们转发到目标网络的网关。最终,目标网络的网关会将数据包传递给目标主机。这个过程就是所谓的路由,而执行这个功能的设备通常被称为路由器或者层3交换机。
网闸
网闸是一种信息安全设备,用于在两个独立主机系统之间实现物理隔离和数据摆渡。
网闸的主要功能是保护内部网络不受外部网络的直接攻击和入侵。它通过断开网络模型各层来实现物理隔离,确保内外网络之间没有物理连接、逻辑连接以及基于传输协议的信息交换。网闸允许数据以文件形式在两个网络之间进行无协议的摆渡,这样外部攻击者就无法通过网络连接直接对内网造成威胁。
网闸的技术原理主要基于网络模型各层的断开,这意味着它能够在网络的各个层次上阻断潜在的攻击路径。这种技术不仅能够防止外部攻击,还能有效避免内部信息泄露,因为它控制着数据的流向和访问权限。
与防火墙相比,网闸提供了更高级别的安全隔离。防火墙主要是基于特定规则来允许或拒绝网络流量,而网闸则通过完全隔离的方式来阻止未经授权的访问和数据泄露。因此,网闸在电子政务、电子商务等对安全性要求极高的领域得到了广泛应用。
尽管网闸在安全性方面表现出色,但它也有一些缺点,比如结构复杂,可能会增加系统的维护难度和成本。此外,由于网闸的隔离特性,它可能会限制网络间的通信效率和灵活性。
总的来说,网闸是一种重要的网络安全设备,它在保护内部网络免受外部威胁的同时,也支持必要的数据交换。在选择使用网闸时,需要根据具体的安全需求和网络环境来权衡其优势和潜在的局限性。
隔离网闸如何确保数据在内外网之间安全传输:
1. 物理隔离:网闸在任意时刻都只与内部或外部网络中的一个连接,确保内外网之间不存在实时的网络连接。这种物理断开状态防止了任何基于网络协议的攻击和数据泄露。
2. 非TCP/IP的数据摆渡:网闸不依赖TCP/IP或其他网络通信协议来传输数据。相反,它使用非网络方式(如通过文件)来在内外网之间摆渡数据,这样即使外部网络遭受攻击,也不会影响内部网络的安全。(可以理解数据被暂时存入到网闸中了)
3. 专用硬件设备:网闸通常使用专用的硬件设备(如固态介质、电子开关等)来控制数据的流向,这些设备具有高度的安全性和可靠性,能够有效防止数据泄露和攻击。
4. 访问控制:网闸实现了细粒度的访问控制,包括用户认证、数据加密、内容过滤等,以确保只有授权的数据才能在内外网之间传输。
5. 审计与监控:网闸还提供了详细的日志记录和监控功能,能够帮助管理员追踪和监控所有通过网闸的数据流,以便及时发现和处理潜在的安全威胁。
这篇关于【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!