公网IP和私有IP
- IP地址是为了区分网络中不同主机所分配的一个地址,通过IP地址可以访问到每一台主机。
- IP地址分为公有地址和私有地址,公有地址由Internet NIC负责(比如中国互联网信息中心http://ip.cnnic.cn/),公有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协议就会自动给设备分配一个http://192.168.xxx.xxx的私有IP地址。通过这个私有IP地址,路由器可以在网络层中分辨出谁是谁。注:这里的网络层说的是OSI七层结构中的网络层。
- NAT协议,也就是网络地址转换协议。通过这个协议,我们可以让处于内网中的多个设备的内网IP对应到一个公有地址IP上去,从而实现对internet的访问。可以说NAT协议是对目前ipv4地址日渐枯竭起到一个缓解作用。
接下来就是主题了:
- ipv4地址是很有限的,如今家家户户都拥有多台可联网设备,给每台设备都分配一个固定的公有IP地址是很不现实的。因此我们可以采用这样的办法:首先建立一个内网,这个内网可大可小,小的可以是一台我们家里常用的无线路由器所形成的局域网,大了可以是某个片区内的“局域网”(比如多个住宅小区形成的一个内网)。对于这样的内网,我们并不需要分配给其稀缺的公有地址IP,只需要用私有地址IP就行了(比如上面提到的http://10.0.xxx.xxx),而一些网关设备,或者说运营商的设备由于数量并不是太多,因此可以分配一个公网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口干什么用的?这就是交换机接口,和家庭网络接口相连,负责家庭网络内部通信。
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
公网IP和私有IP的更多相关文章
- 公有IP和私有IP的区别
什么是IP? 在网络中,每台计算机都有一个唯一的地址,方便别人找到它,这个地址称为IP地址 IP地址是一个网络编码,用来确定网络中的一个节点,是由32位的二进制组成 IP地址的组成? IP地址由网络部 ...
- 公网IP和私有IP的区别和用途
在Internet网络上有上千百万台主机,为了能够将这些主机区分开来,于是就给每台主机都分别配了一个专门的地址,称为IP地址. 通过IP地址就可以访问到每一台主机.IP地址由4部分数字组成,ghost ...
- 公有IP与私有IP
在 IPv4 里面就只有两种 IP 的类别,分别是: Public IP : 公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet : Private ...
- 【网络基础】【TCP/IP】私有IP地址段
私有IP地址段 Class A:10.0.0.0 - 10.255.255.255 Class B:172.16.0.0 - 172.31.255.255 Class C:192.168.0. ...
- 正式表达式判断私有 IP 地址
正式表达式判断私有 IP 地址 ^1(((0|27)(.(([1-9]?|1[0-9])[0-9]|2([0-4][0-9]|5[0-5])))|(72.(1[6-9]|2[0-9]|3[01]) ...
- 私有IP地址共有三个范围段
在现在的网络中,IP地址分为公网IP和私有IP地址.公网IP是在Internet使用的IP地址,而私有IP地址是在局域网中使用的IP地址. 由于我们目前使用的IP V4协议的限制,现在IP地址的数量是 ...
- 解析私有IP地址和公网IP地址
局域网私有IP地址上外网的原理 IP地址分为两部分,网络号和主机号,这种分法应用在私有和公有IP地址上.一个局域网中,为了该局域网的安全,我们应用了私有IP地址,为了和Internet中的其他主机进行 ...
- 公网,专用,共享独立IP介绍
什么是IP地址? IP地址也被称为InternetProtocol地址,IP地址被用于在互联网上确定不同的计算机和设备.你可以认为它像一个邮寄信封一个家庭返回地址,只在数字和时间使用.IP地址被用于在 ...
- oracle 11g rac R2 for linux change(public,vip)IP ,hostname (oracle 11g rac R2 修改公有,虚拟,私有IP,网卡)
结构如下: 说明: 节点IP,主机名的修改步骤来自ORACLE support文档: 如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1) 实验环境情况如下: 实验 节点名称 数 ...
随机推荐
- angular 按需加载
angular.module('app',[]) .controller('ctrl',function ($http,$scope){ //ctrl控制器,名称作用的范围 html中ng-cont ...
- easyui 分页实现
1.用datagrid 做分页显示, 依据API样例,最终解决.废话不说,datagrid分页 有一个附加的分页控件 通过在datagrid中设置pagination:true 就会显示分页 当请求是 ...
- Tomcat: IllegalStateException: No output folder --reference
Today, I started to create a couple of JSP pages for the server-side part of my MSc thesis project i ...
- STL之Pairs
什么是Pair 关于类Pair的介绍,下面是引自<C++ Standard Library>的一段话: The class pair is provided to treat two va ...
- Android Back Home键监听
Android Back Home键监听 Back键的监听 对于Back键的监听比较容易,可以在多个系统回调处拦截,比如在activity的下列方法中都可以收到Back键按下的事件: @Overrid ...
- js函数中变量的作用域
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 顺序表JAVA代码
publicclassSeqList{ final int defaultSize =10; //默认的顺序表的最大长度 int maxSize; ...
- Oracle Linux 挂载存储
#启动多路径multipathd服务 service multipathd restart #设置开机自动启动multipathd服务 chkconfig multipathd on #查看信息mul ...
- Verilog中锁存器与多路选择器
Verilog中锁存器与多路选择器 Verilog是一种硬件描述语言,它代表的是硬件. Verilog代表的就是逻辑门和连接线. 对于一个always@(*)控制的块而言,只要块中的表达式包含的任意的 ...
- python的数与字符串
双引号 c1="sldkjf"print c1c2="It's a dog"print c2 单引号c1='sldkjf'print c1c2='It" ...