zoukankan      html  css  js  c++  java
  • 公网IP和私有IP

    • IP地址是为了区分网络中不同主机所分配的一个地址,通过IP地址可以访问到每一台主机。
    • IP地址分为公有地址和私有地址,公有地址由Internet NIC负责(比如中国互联网信息中心),公有IP地址分配给注册并向NIC提出申请的组织机构使用,公有地址IP可以直接访问internet,大家可以打开电脑或者手机的浏览器,登录百度,搜索“IP地址查询”,就可以看到目前电脑正在使用的公有IP地址。私有地址主要有A、B、C三类,属于局域网范畴内,也就是所谓的内网IP。内网IP只能在局域网内被访问,出了局域网是无法访问internet的,安卓4.0以上版本的用户在连上WIFI或者蜂窝数据的情况下,可以打开设定-关于设备-状态中,会看到IP地址为192.168.x.xxx或者10.0.xxx.xxx,这些IP地址都属于私有IP地址。
    • DHCP协议,即动态主机配置协议,会通过协议算法分配给一台主机一个IP地址,简单说就是动态分配,比如我们的设备连入无线路由器,那么无线路由器通过DHCP协议就会自动给设备分配一个的私有IP地址。通过这个私有IP地址,路由器可以在网络层中分辨出谁是谁。注:这里的网络层说的是OSI七层结构中的网络层。
    • NAT协议,也就是网络地址转换协议。通过这个协议,我们可以让处于内网中的多个设备的内网IP对应到一个公有地址IP上去,从而实现对internet的访问。可以说NAT协议是对目前ipv4地址日渐枯竭起到一个缓解作用。

    接下来就是主题了:

    • ipv4地址是很有限的,如今家家户户都拥有多台可联网设备,给每台设备都分配一个固定的公有IP地址是很不现实的。因此我们可以采用这样的办法:首先建立一个内网,这个内网可大可小,小的可以是一台我们家里常用的无线路由器所形成的局域网,大了可以是某个片区内的“局域网”(比如多个住宅小区形成的一个内网)。对于这样的内网,我们并不需要分配给其稀缺的公有地址IP,只需要用私有地址IP就行了(比如上面提到的),而一些网关设备,或者说运营商的设备由于数量并不是太多,因此可以分配一个公网IP地址,然后我们电脑所使用的内网IP地址通过NAT协议套用上一个公网地址IP,这样就可以实现一个稀缺的公网IP地址+多个内网IP地址来访问Internet了。其中DHCP协议则负责内网和公有IP地址的分配。
    • 先声明:上这张图只是为了举例方便,帮助理解,现实中未必是这样的。图中的局域网可以理解为我们的无线路由器,用的是一个内网IP地址(由ADSL局端设备分配的一个内网IP),可以通过NAT转换成另外一个内网IP,也就是ADSL局端设备的内网IP地址(由宽带接入服务器给的内网IP地址),然后ADSL局端设备的内网地址又可以通过NAT转换成公有IP地址(即宽带接入服务器的IP地址),而宽带接入服务器则通过这个公有IP地址去连接internet。这样的话我们就可以不断复用内网IP地址来共享同一个公有IP地址,大大缓解了IP地址的稀缺性。

     那么从物理链路拓扑上讲,交换机和路由器又有什么区别的?

     
    交换机工作于数据链路层,用来隔离冲突域,连接的所有设备同属于一个广播域(子网),负责子网内部通信。

    路由器工作于网络层,用来隔离广播域(子网),连接的设备分属不同子网,工作范围是多个子网之间,负责网络与网络之间通信。
    ------------------------------------------------------
    举个例子:
    家用宽带路由器,其实是交换机和路由器的结合体,有两个网络层接口,一个连接运营商网络,物理上也就是wan口,IP地址由运营商分配。另一个连接家庭网络,没有物理接口,IP地址由自己通过路由器管理界面配置,一般默认是192.168.1.1
    那另外几个Lan口干什么用的?这就是交换机接口,和家庭网络接口相连,负责家庭网络内部通信。
     
     
    私有网段,有A,B,C三个地址段:
     
    10.0.0.0--10.255.255.255
    172.16.0.0--172.31.255.255
    192.168.0.0--192.168.255.255


    references:
    https://www.zhihu.com/question/20465477/answer/31728857

    https://www.zhihu.com/question/27186558/answer/35583897

  • 相关阅读:
    thinkphp目录解析
    开发规范
    form
    命名空间
    类与对象
    OS知识点汇总
    C++每日一记!
    语言哲学和语言逻辑
    形式语言与自动机
    C#脚本
  • 原文地址:https://www.cnblogs.com/foohack/p/5353831.html
Copyright © 2011-2022 走看看