IP地址解析

  前言:在使用mongodb时涉及到远程通信问题时,百度搜索本机ip得到218.6.xx.26,发现并根本连接不上。后来发现这个ip应该属于电信等运营商给我们这个网络分配的外网ip,一般情况下当然是连接不上的.....,而作为一个项目组进行开发,一般使用的是本地的局域网ip进行通信。由于之前并没有仔细了解ip相关信息,为了方便可能后续会使用到tcp/ip通信,因此对ip进行了详细的认识。

一、  IP地址

  Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在Internet上,每一个节点都依靠唯一的IP地址互相区分和相互联系。传统的IP地址是一个32位二进制数的地址,也叫IPV4, 由4个8位字段组成。IPv6采用128位地址长度,8个十六进制。每个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的所有主机,同时位数决定了可以分配的网络数目(2^网络号位数-2),主机ID 标识该物理网络上的每一个主机,同时决定了网络中最大的主机数(2^主机号位数-2)

  然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者选择了一种灵活的方案:将IP地址空间划分成5种不同的类别,每一类具有不同的网络号位数和主机号位数,分别表示不同的网络数和该网络下能容纳的主机位数。

  A类地址【大规模网络】:一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的,范围是从0.0.0.1 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方的主机数目),以子网掩码来进行区别:255.0.0.0;

  B类地址【中等规模网络】:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳65534个主机 ,以子网掩码来进行区别:255.255.0.0;

  C类地址【小规模局域网】:一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”,范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。以子网掩码来进行区别: 255.255.255.0;

  D类地址【多播】:范围从224-239,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机;

  E类地址【保留】:范围从240-254,以“11110”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。 

      

  除去特殊作用的D、E两类,剩下的A、B、C三类地址是我们常见的IP地址段,在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部使用。这三个地址段分别位于A、B、C三类地址内:

  A类地址:10.0.0.0--10.255.255.255

  B类地址:172.16.0.0--172.31.255.255

  C类地址:192.168.0.0--192.168.255.255

  常见的局域网由于容量小,一般选择C类的192.168.0.0作为地址段使用。需要补充说明的是,由于NAT和子网掩码的存在,实际在使用中,一个C类大小的局域网也可以选择A类的10.0.0.0网段作为自己的IP地址段。大多数局域网之所以仍然选择192.168.0.0/24或者192.168.1.0/24作为自己的IP地址段,更多的是因为约定成俗或者说网管个人习惯的关系。

 

、局域网和广义网

  局域网:也就是指内网、私网,英文叫LAN,是在一个局部的地理范围内,将各种计算机设备、外部设备、数据库互相关联起来组成的计算机通信网。比如校园网,也比如公司中的内部网,甚至通过一个路由器连接形成的网络也叫局域网。

  广域网:也叫外网、公网,简称WAN,是一种跨越大的、地域性的计算机网络集合、通常跨越省、市、国家。需要说明的是,局域网,广域网,城域网其实都是范围上的概念。而Internet就是特指那个将全球联系在一起提供公共服务的超大广域网。

  其区别在于广域网IP地址一般要到ISP处注册、交费之后才能申请到,广域网IP地址不能重复;局域网上的每一台电脑(或其他网络设备)都有一个或多个局域网IP地址,局域网IP地址是局域网内部分配的,不同局域网的IP地址可以重复,不会相互影响因此,使用同一台路由器的不同电脑,具有不同路由内的私域地址,一般都是以192.168开头,类似于192.168.0.100,这是局域网段,但却都具有相同的公网ip地址(在百度搜索ip地址时可以发现都一样) ,这个地址由运营商提供。那么如何通过私有ip去访问百度、淘宝等外部公网呢,这里就涉及到了地址转换技术NAT(Network Address Translation,网络地址转换)它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。

、子网掩码

  子网掩码是一个32位的二进制数。也是一种有效的分割网络的方法,根据子网掩码可以知道网络又多少位,主机有多少位。使用自定义子网掩码之后,就不存在ABC网络的概念了,这类网络叫无线网络,需要靠IP地址的第一个字节数据范围来区分网络号的叫有类网络。比如一个A类地址能容纳的主机数有2^24-2个主机,一般一个组织是不可能用到这么多地址的,势必会造成浪费。但是我们可以通过子网掩码来将一个A类地址划分成多个子网,根据IP和子网掩码可以判断同一个网络地址下的主机是否在同一个网段。将十进制的IP地址和子网掩码转换为二进制形式,进行与计算,如果得到结果相同,则在同一个网段。当A机发送数据给B机时,会先将B机的IP与子网掩码进行&运算查看是否在同一个网段,如果不在同一网段内则会把数据发送给网关,在同一个网段的可以直接在数据链路层通信。

      

  知道子网数和ip地址可以计算其子网掩码,知道每个子网下的主机数目和ip地址也可以计算器子网掩码。详细计算方法可以参考该文档:https://zhidao.baidu.com/question/1292917.html

  正常情况下,网络ip地址(也适用于位数)=网络地址+主机地址,同时一旦将网络划分为子网,那么ip地址(也适用于位数)=网络地址+子网地址+主机地址。

 

posted @ 2017-07-24 09:34  熊畅_Giser  阅读(11013)  评论(0编辑  收藏  举报