第一篇
内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。
在一定程度上外网等同于公网,内网等同于私网。
地址为如下3个区域就是处于私网:
1:10.*.*.*
2:172.16.*.*至172.31.*.*
3:192.168.*.* (*为0到255之间的任意数字)
以上3个区域外的就是处于公网之中了。
=======================================
公网地址
公网地址是指在因特网上直接可达的地址,如果你有一个公网地址,那就意味着你不但能访问别人,还能被人访问。公网地址是架设各种服务器必不可少的条件。
私网地址
私网地址产生的一个原因是因为公网地址非常缺乏,大家不得不使用同一个公网IP地址上网,这就是共享上网的由来。同样,私网地址仍然可以被再次共享。
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
=======================================
公网ip
用邮寄系统作比喻。有公网ip,相当于说你有一个详细的地址,你可以写信寄给别人,别人也可以用这个地址和你进行各种通讯。
现在来看看没有公网ip是一种什么局面。这就像是住在一个大院里,所有进出的邮件都由传达室转交。如果是普通的邮件,可以放在传达室,传达室的大爷大妈看到你了就会转交给你,或者你自己去传达室看看,这不重要,反正虽然经过了一点波折,还是可以看到邮件的。现在假设以下如果来了个挂号,邮局的人员说:必须本人签收。传达室的大爷就说了:对不起,所有的邮件都要经过我的中转站~。于是邮局的人员只好把信带回去了……
实际情况和这个差不多,所谓没有公网ip,就是说你的机子并非直接连接上internet,而是所有通讯经过一台代理(一般是透明网关)进行中转,这时候问题就来了,就会有一些通讯无法在这种机制下顺利进行。比如两个网吧之间,网吧的机子是没有公网ip的典型例子,通常两个网吧之间就不能互相通过qq传送文件。又比如没有公网ip,上网玩对战游戏通常会有问题,你建立的游戏别人无法加入等等。
=======================================
私网ip
私网IP就是就是国际上分配ip的时候,留出一部分ip,不用于在internat上用可用于内部局域网等,虽然功能一样,但不能在internat上使用。属于非注册地址,专门为组织机构内部使用。
以下表列出留用的内部寻址地址
A类 10.0.0.0 8
B类 172.16.0.0--172.31.0.0
C类 192.168.0.0--192.168.255.0
=======================================
思考:A 和 B 的局域网 IP 都是192.168.31.11,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给 A 还是给 B 呢
对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外网的呢?
再者,我们大多人都是使用宽带上网,结果发现,A 和 B 的局域网 IP 都是192.168.31.11,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给 A 还是给 B 呢?

公有 IP 和私有 IP 的区别
首先,我们需要了解一下什么是公有制 IP 和私有 IP ?
公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(只能上网)。
私有地址(Private address):属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。
而我们平时通过运营商(电信、移动、联通宽带等)上网,家里面通过路由器分出来的 IP 都是私有 IP(局域网 IP),大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?租用(申请)公有 IP 是需要钱的。 运营商买了一些公有 IP,然后通过这些公有 IP 分出来,再分给一个又一个的用户使用。这个过程有点类似于,我们去安装了宽度,通过路由器分出几个 IP,让好几个人都能上网,当然运营商通过公有 IP 分出来的过程肯定比这个复杂多了。所以,我们平时上网用的 IP 是私有 IP,真正拥有公有 IP 的是运营商(当然,我们可以租用一个公有 IP )。所以,A 家庭的局域网 IP 和 B 家庭的局域网 IP 相同很正常,但是,最终 A 和 B 能上网(数据走出去)还是通过运营商的公有 IP,毕竟,公有 IP 的资源有限,这一片区域的用户使用得很有可能(实际上就是这样的)是同一个公有 IP,这样的话,又回到前面的问题,假如 A 和 B 的局域网 IP 相同(192.168.31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?

端口映射
接下来,给大家介绍一下什么是端口映射?
端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中的一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。
现在市场上的家庭路由器都具备 NAT 功能,也可以实现端口映射。下图为小米路由器的端口映射设置图:
数据是如何通过IP交换的
我们平时经过路由器,通过宽带,最终去到运营商那边,数据是从运营商出去,最终数据是回到运营商那边,运营商再把数据发送到用户的电脑。
路由器,至少有两个端口:WAN 口红 LAN 口。
WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包,这个可口的 IP 是唯一的。LAN:接内部 IP 地址用,LAN 内部是交换机。
这里,我们简化这个过程,我们把运营商当做一个 NAT 设备

①、为了方便大家理解,我们把 IP 的转化方向反过来分析(准确来说,公网转局域网)。A 电脑的 IP 是局域网 IP(192.168.31.11),这个 IP(192.168.31.11)是从路由器的 lan口分配的。
当我们上百度的时候,经过路由器的 wan口,进行相应的IP、端口转化:192.168.31.11:80 -> 10.221.0.24:8080,所以,从 wan口出去的地址为:10.221.0.24:8080。

②、最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP(10.221.0.24:8080)转化为公网 IP(128.0.0.1:8888),通过这个公网 IP 去访问百度服务器。
③、同理,B 的过程也是一样。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。如何让外网能够访问自己写的网络程序(服务器),首先,我们需要在运营商那边申请(租用)一个公有 IP (长城宽带一年需要 2000 元左右),假如这个公有 IP 为:128.0.0.123。
总结
上面就是我们内网外网之间的通讯过程,关键在于与服务器建立起映射,这样就能和服务器之间建立通信,请求数据。
第二篇
先从运营商视角看各种网络的划分:
接入网(Access Network)
顾名思义,接入网的唯一目的是将用户连接到运营商的网络中来。手段千奇百怪,比如古老的电话拨号、ISDN拨号、ADSL宽带,以及现代家庭用户普遍使用的光纤GPON宽带接入,还有移动通信的LTE-4G、NG-5G,以及卫星通信接入网络,甚至马斯克的星链接入网络。
尽管手段丰富多彩,但是目的却是唯一的:将用户连接到网络上来,赚钱。至于如何认证用户、如何给用户分配IP上网参数、如何计费,如何handoff,如何漫游,这些都是非常技术的细节,有兴趣的读者可以找文献深入阅读。
运营商将用户接入接入网之后,然后呢?肯定要把用户与互联网(Internet)连接起来,互联网在哪里呢?
互联网在美国?不完全是,互联网在英国,也不完全是。互联网是由全球所有运营商互联构成的网络。所以,中国三大运营商早已与其它运营商互联了起来,它们三者之间也有多个接口连接了起来。所以运营商是通向互联网的大门,用户只要付了上网费,芝麻就会开门,用户就可以上互联网了。
核心网(Core Network)
运营商与互联网的接口所在的中心机房网络(多个出海口),构成核心网(Core Network)。但是接入网要与核心网连接起来,才能将用户的IP数据包裹托运到互联网上去(上行),并将用户的IP数据包裹从互联网传输到用户的手中(下行)。
直接物理接入(接入网-核心网)并不是不行,但是接入网数量庞大,即使每个接入网使用2根(冗余)上行光纤,上行的光纤总量惊人,需要大量的光纤。且接入网与核心网物理距离遥远,那么每根光纤长度巨长,成本巨大。另外,一根光纤需要一个端接端口,核心网压根没有那么多的端口来连接光纤。
传输网络(Transport Network)
解决以上扩展性的难题其实很简单,就是采用汇聚技术,将N多个接入网的上行光纤(毛细血管)汇聚成一根更高速率的光纤,然后用极少数量的高带宽光纤长途连接到核心网。这样会大大减少光纤的使用量与成本。实现这个汇聚技术的网络,就是汇聚网络(Aggregatge Network),但是在国内叫传输网络(Transport Network)更普遍。
然后再从用户视角看网络的划分。
用户并不care运营商什么网,在用户眼里,只要IP包离开了手机、IP包从路由器的WAN口离开,那么就进入了互联网,对吗?
可以的,无可厚非。如果用户知道运营商分配的IP地址是10.x.x.x是私有的(Private),并不能直接进入互联网,而是要在接入网完成NAT地址转换,才能上行到传输网,并到达核心网,如果流量需要出海,需要跨过海底光纤,到达大洋彼岸的目的地,然后用户请求的数据再返回。
但是,如果用户理解了本文开头的文字,就会知道先进入的不是互联网,而是接入网。
私网(Private Network)
以用户家的光纤路由器为边界(edge),路由器的Internet端口、或者WAN端口连接的世界为互联网(运营商接入网)。路由器的LAN端口连接的、无线连接的手机、电脑组成的网络统称私有网络。
私有网络与互联网(运营商接入网)的边界,即无线路由器,需要将私有网络里的IP地址,如192.168.x,x地址转换成运营商分配的IP地址是10.x.x.x,然后流量在接入网与核心网的边界路由器,再做一次NAT地址转换,将10.x.x.x转换成互联网全球通IP地址,如20.x,x,x。
局域网LAN(Local Area Network)
路由器将连接私网设备的端口称为LAN口,LAN(Local Area Network)局域网。用户可以将私网==局域网。
用户经常将互联网称为外网或者公网,其实都没有什么问题。但是这个星球上唯一能用的公网就是互联网,所以公网==互联网。
内网(Intranet)
能否将私网==内网(Intranet)呢?
当然可以,内网、外网就是一个参考系选择的结果。老王认为自家的网络是内网,老李家的网络是外网。同样,老李认为自家的网络是内网,老王家的网络是外网。
外网(Extranet)
其实外网(Extranet)和大多数的用户的直觉有一点点差别,主要是应用场景的差别。
举个例子,Apple公司认为工作在私有网络环境下的网络设备、以及终端设备是内网,那么合作对象如富士康,需要访问Apple公司的服务器数据资源,而这些数据资源又不能被互联网访问,如何解决这个难题?
很简单,只要Apple公司将服务器资源放在外网(Extranet),富士康公司使用拨号VPN软件可以远程访问,互联网上的用户无法访问这些服务器资源。
当然,Apple公司也可以从内网(Intranet)访问外网(Extranet)的服务器资源,但是外网(Extranet)的服务器却主动无法访问内网任何设备。
所以,这里所谓的互联网、外网、内网,对应着网络安全的等级,按照网络安全等级从高到低排序,分别为:内网(Intranet) > 外网(Extranet) > 互联网(Internet)。
安全等级高的网络区域所在用户,可以主动访问安全等级低的资源,反过来却不行。以上文为例,内网用户可以访问所有区域,但是互联网用户只能访问互联网区域,内网和外网都无法访问。
另外,什么是广域网WAN,什么是SD-WAN,什么又是专网,什么又是MPLS?这些专业术语都离不开运营商,作为科普文章就不展开了.

文章评论