白癜风是怎么得的呢 https://m.39.net/pf/a_6559327.html消除皮肤白癜风 http://www.xuexily.com/m/怎么治好白癜风 http://www.xxzywj.com/m/内、外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网。
在一定程度上外网等同于公网,内网等同于私网。
地址为如下3个区域就是处于私网:1:10.*.*.*2:.16.*.*至.31.*.*3:..*.*(*为0到之间的任意数字)以上3个区域外的就是处于公网之中了。
========================================================
公网地址公网地址是指在因特网上直接可达的地址,如果你有一个公网地址,那就意味着你不但能访问别人,还能被人访问。公网地址是架设各种服务器必不可少的条件。
私网地址私网地址产生的一个原因是因为公网地址非常缺乏,大家不得不使用同一个公网IP地址上网,这就是共享上网的由来。同样,私网地址仍然可以被再次共享。
私有地址(Privateaddress)属于非注册地址,专门为组织机构内部使用。
========================================================
公网ip
用邮寄系统作比喻。有公网ip,相当于说你有一个详细的地址,你可以写信寄给别人,别人也可以用这个地址和你进行各种通讯。
现在来看看没有公网ip是一种什么局面。这就像是住在一个大院里,所有进出的邮件都由传达室转交。如果是普通的邮件,可以放在传达室,传达室的大爷大妈看到你了就会转交给你,或者你自己去传达室看看,这不重要,反正虽然经过了一点波折,还是可以看到邮件的。现在假设以下如果来了个挂号,邮局的人员说:必须本人签收。传达室的大爷就说了:对不起,所有的邮件都要经过我的中转站~。于是邮局的人员只好把信带回去了……
实际情况和这个差不多,所谓没有公网ip,就是说你的机子并非直接连接上internet,而是所有通讯经过一台代理(一般是透明网关)进行中转,这时候问题就来了,就会有一些通讯无法在这种机制下顺利进行。比如两个网吧之间,网吧的机子是没有公网ip的典型例子,通常两个网吧之间就不能互相通过qq传送文件。又比如没有公网ip,上网玩对战游戏通常会有问题,你建立的游戏别人无法加入等等。
========================================================
私网ip
私网IP就是就是国际上分配ip的时候,留出一部分ip,不用于在internat上用可用于内部局域网等,虽然功能一样,但不能在internat上使用。属于非注册地址,专门为组织机构内部使用。
以下表列出留用的内部寻址地址
A类10.0.0.08
B类.16.0.0--.31.0.0
C类..0.0--...0
====================================================================================
思考:A和B的局域网IP都是..31.11,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给A还是给B呢
对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外网的呢?再者,我们大多人都是使用宽带上网,结果发现,A和B的局域网IP都是..31.11,当他们都访问百度浏览网页时,百度服务器回复数据时,如何区分是给A还是给B呢?
公有IP和私有IP的区别
首先,我们需要了解一下什么是公有制IP和私有IP?公有地址(Publicaddress):由InterNIC(InternetNetworkInformationCenter因特网信息中心)负责。这些IP地址分配给注册并向InterNIC提出申请的组织机构,公有IP全球唯一,通过它直接访问因特网(只能上网)。私有地址(Privateaddress):属于非注册地址,专门为组织机构内部使用,说白了,私有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相同(..31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是A,哪个是B呢?
端口映射
接下来,给大家介绍一下什么是端口映射?端口映射是NAT的一种,它将外网主机的IP地址的一个端口映射到内网中的一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。现在市场上的家庭路由器都具备NAT功能,也可以实现端口映射。下图为小米路由器的端口映射设置图:
数据是如何通过IP交换的
我们平时经过路由器,通过宽带,最终去到运营商那边,数据是从运营商出去,最终数据是回到运营商那边,运营商再把数据发送到用户的电脑。路由器,至少有两个端口:WAN口红LAN口。WAN:接外部IP地址用,通常指的是出口,转发来自内部LAN接口的IP数据包,这个可口的IP是唯一的。LAN:接内部IP地址用,LAN内部是交换机。这里,我们简化这个过程,我们把运营商当做一个NAT设备
①、为了方便大家理解,我们把IP的转化方向反过来分析(准确来说,公网转局域网)。A电脑的IP是局域网IP(..31.11),这个IP(..31.11)是从路由器的lan口分配的。当我们上百度的时候,经过路由器的wan口,进行相应的IP、端口转化:..31.11
0-10..0.24:,所以,从wan口出去的地址为:10..0.24:。
②、最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网IP(10..0.24:)转化为公网IP(.0.0.1:),通过这个公网IP去访问百度服务器。
③、同理,B的过程也是一样。通过这样的层层端口映射,最终保证地址(IP+端口)的唯一性。A和B访问百度服务器,尽管它们的局域网IP是一样的,但是最终它们访问百度的地址(IP+端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。如何让外网能够访问自己写的网络程序(服务器),首先,我们需要在运营商那边申请(租用)一个公有IP(长城宽带一年需要元左右),假如这个公有IP为:.0.0.。
总结
上面就是我们内网外网之间的通讯过程,关键在于与服务器建立起映射,这样就能和服务器之间建立通信,请求数据。
创作不易,如果这篇文章对你有用,请点个赞谢谢(ω)!