楔子:html
以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢?浏览器
学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等概念,这些又是什么意思呢 ?缓存
一 IP地址服务器
概述网络
计算机要实现网络通讯,就必需要有一个用于快速定位的网络地址。IP地址就是计算机在网络中的惟一身份ID,与现实世界中快递的配送须要有具体的住宅地址是一个道理。dom
ip地址以圆点分隔号的四个十进制数字表示,每一个数字从0到255,如某一台主机的ip地址为:128.20.4.1工具
IP地址的组成学习
IP地址 = 网络地址 + 主机地址(又称:主机号和网络号组成)网站
想一想,为何会有行政区划的划定(国家、省市区、街道等),为了更加高效的进行管理、定位;spa
相同的,咱们一般将网络也能够分为不少的子网络,每一个子网络有本身的网络地址,每一个子网络由不少的计算机组成(固然也能够包含另一个子网络)。
咱们要找到指定的IP地址,只要先找到指定的网络地址,而后再该网络内找到对应的主机地址便可。
IP地址是一个 4 * 8bit(1字节)由 0/1 组成的数字串(IP4协议)
以文章开通 win7 截图中 的 IP地址 192.168.1.168, 子网掩码 255.255.255.0(下文有详解) 为例, 这个地址中包含了不少含义:
192.168.100.168(IP地址) = 192.168.1.0 (网络地址) + 0.0.0.168(主机地址)
网络地址、主机地址是怎么计算出来的呢?咱们须要先简单学习下子网掩码
二 子网掩码(subnet mask)
参照:《百度百科-子网掩码》
IP中的网络地址和主机地址各是多少位表示呢?若是不指定,就不知道哪些位是网络号、哪些是主机号,这就须要经过子网掩码来实现。
概述
子网掩码又叫网络掩码、地址掩码、子网络遮罩,是一个 4 * 8bit(1字节)由 0/1 组成的数字串。
它的做用是屏蔽(遮住)IP地址的一部分以划分红网络地址和主机地址两部分,并说明该IP地址是在局域网上,仍是在远程网上。
经过子网掩码,能够把网络划分红子网,即VLSM(可变长子网掩码),也能够把小的网络归并成大的网络即超网。
子网掩码不能单独存在,它必须结合IP地址一块儿使用。
子网掩码的规则
长度 为 4 * 8bit(1字节),由 连续的1 以及 连续的0 两部分组成,
例如:11111111.11111111.11111111.00000000,对应十进制:255.255.255.0
假设,局域网中 计算机A 的IP地址为 192.168.1.1,子网掩码为 255.255.255.0, 以下图所示:
网络地址: IP 地址中被 连续的1 遮住的部分,即 11000000.10101000.00000001.00000000, 对应的网络地址:192.168.1.0
主机地址: IP 地址中被 连续的0 遮住的部分,即 00000000.00000000.00000000.00000001, 对应的网络地址:0.0.0.1
排除 该网络 两个特殊地址:
广播地址:192.168.1.255 (主机号全为11111111)(广播机制及类型见:http://baike.baidu.com/view/473043.htm)
网络地址:192.168.1.0 (主机号全为00000000)
该子网最大的主机数:2的8次方 256 - 2
其余信息:
A类地址来讲,默认的子网掩码是255.0.0.0;对于B类地址来讲默认的子网掩码是255.255.0.0;对于C类地址来讲默认的子网掩码是255.255.255.0。
三 经过子网掩码计算网络地址
计算方法
计算过程是这样的:
1. 将IP地址和子网掩码都换算成二进制;
2. 将二者进行 "与运算",获得网络地址。
计算过程:上下对齐, 1位1位的算, 1与1=1 , 其他组合都为0
1 0 1 0
与运算 1 0 1 1
-------------------
结果 1 0 1 0
假设 IP地址为 192.168.1.168,子网掩码为 255.255.255.0, 则网络地址换算步骤以下:
1)将IP地址和子网掩码分别换算成二进制
192.168.1.168 换算成二进制为 11000000.10101000.00000001.10101000
255.255.255.0 换算成二进制为 11111111.11111111.11111111.00000000
2)将两者进行与运算
11000000.10101000.00000001.10101000
与运算 11111111·11111111·11111111·00000000
----------------------------------------------------------------------------
结果 11000000.10101000.00000001.00000000
3) 将运算结果换算成十进制: 192.168.1.0
当即实践
以用网线直接将两台计算机连起来为例:
下面是几种IP地址设置, 看看在不一样设置下网络是通仍是不通.
实验 编号 |
1号机器 | 2号机器 | 网络连通 | ||||
IP地址 | 子网掩码 | 网络地址 | IP地址 | 子网掩码 | 网络地址 | ||
1 | 192.168.0.1 | 255.255.255.0 | 192.168.0.0 | 192.168.0.200 | 255.255.255.0 | 192.168.0.0 | Y |
2 | 192.168.0.1 | 255.255.255.0 | 192.168.0.0 | 192.168.1.200 | 255.255.255.0 | 192.168.1.0 | N |
3 | 192.168.0.1 | 255.255.255.192 | 192.168.0.0 | 192.168.0.200 | 225.225.225.192 | 192.168.0.192 |
说明:第1种状况能通是由于这两台计算机处在同一网络192.168.0.0, 因此能通,而2,3种状况下两台计算机处在不一样的网络,因此不通.
网络地址的计算过程同上,再也不赘述。
结论:
用网线直接链接 或 经过 HUB(集线器)、普通交换机连接的计算机必须处于同一网络(网络地址) 而且主机地址必须不同 才能通讯。
注意:同一网络不是指物理链接,而是指网络地址.
举个例子,两台计算机连接到相同路由器(简单理解为同一个链路),若是他们设置的网络地址不一致,则他们也是不能通讯的。
扩展:IP网段表示法
举例说明:192.168.0.0/24
192.168.0.0: 网络地址
24: 表示子网掩码二进制表示法中,连续的 1 的 个数,这里为:11111111·11111111·11111111·00000000,即 255.255.255.0
四. 默认网关(地址)
参考:《百度百科-网关》
什么是网关?
(能够联想下海关?什么是海关?)
链接两个不一样的网络的设备均可以叫网关设备;网关的做用就是实现两个网络之间进行通信与控制。
网关设备能够是 交互机(三层及以上才能跨网络)、路由器、启用了路由协议的服务器、代理服务器、防火墙等
网关地址就是网关设备的IP地址。
假设咱们有两个网络:
网络A的IP地址范围为“192.168.1.1~192.168.1.254”,子网掩码为255.255.255.0
网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0
要实现这两个网络之间的通讯,则必须经过网关。
若是网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它本身的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络A向网络B转发数据包的过程。
只有设置好网关的IP地址,TCP/IP协议才能实现不一样网络之间的相互通讯。
默认网关
一台主机能够有多个网关。默认网关的意思是一台主机若是找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。如今主机使用的网关,通常指的是默认网关。
扩展:自动设置默认网关
自动设置就是利用DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的计算机分配IP地址、子网掩码和默认网关 。
一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中全部的计算机均得到了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变更的网络。
另一种自动得到网关的办法是经过安装代理服务器软件(如MS Proxy)的客户端程序来自动得到,其原理和方法和DHCP有类似之处。
扩展说明
问:在网上看到一些人提问:链接到相同(二层)交换机或集线器上的计算机,若是设置不一样的网络地址,为何不能通讯。
答:
在 TCP/IP 协议中,网络层(经过IP地址识别通讯方)封包完成交给下一层数据链路层(经过MAC地址识别通讯方)时,须要经过 ARP 广播 获取目标 IP 对应的 MAC 地址。
但由于 ARP 报文只能在相同网络地址内广播,若是目标计算机与源计算机处于不一样网络,则没法进行响应,所以源计算机没法完成链路层数据的封装。
ARP 协议相关信息可见 这里。
五. DNS服务器
参考:《DNS原理及其解析过程》
域名与DNS
咱们访问一个网站的时候,每每使用的是域名(相对IP来讲更加语义清晰、更加容易记忆,例如 www.baidu.com)。
域名是由一串用点分隔的名字组成的,一般包含组织名,并且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。
然而计算机之间的通讯网络通讯是经过IP进行的, 所以须要将域名解析为对应的IP,DNS就是进行域名解析的服务器。
DNS 维护着 域名(domain name)和IP地址 (IP address)的对照表表,以解析消息的域名。
DNS 查询的过程以下图所示
DNS 维护着 域名(domain name)和IP地址 (IP address)的对照表表,以解析消息的域名。
一、在浏览器中输入www.qq.com域名,操做系统会先检查本身本地的hosts文件是否有这个网址映射关系,若是有,就先调用这个IP地址映射,完成域名解析。
二、若是hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,若是有,直接返回,完成域名解析。
三、若是hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此咱们叫它本地DNS服务器,此服务器收到查询时,若是要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具备权威性。
四、若是要查询的域名,不禁本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具备权威性。
五、若是本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,若是未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来受权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,若是本身没法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动做,进行查询,直至找到www.qq.com主机。
六、若是用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器若是不能解析,或找根DNS或把转请求转至上上级,以此循环。不论是本地DNS服务器用是是转发,仍是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
五. 附录
未在文中说到的相关知识点:
《计算机网络七层结构模型: 开放式系统互联通讯参考模型(简称为OSI模型)》
《ARP协议处理详细过程-交换机工做原理-及广播风暴问题分析》
工具:
《eNSP(Enterprise Network Simulation Platform) 》
一款由华为提供的免费的、可扩展的、图形化操做的网络仿真工具平台,主要对企业网路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟,让广大用户有机会在没有真实设备的状况下可以模拟演练,学习网络技术。
PS:没想到对整个网络体系知识的学习、整理、概括、排版居然花去了 1 天多的时间。
转载请注明:http://www.cnblogs.com/iceJava/p/5372033.html