大家好,我是讯享网,很高兴认识大家。
内网和外网是相对于防火墙而言的,在防火墙内称为内网,反之亦然。
某种程度上,外网相当于公网,内网相当于专网。
地址如下:
1: 10。*.*
2: 172.16。*.*至172.31。*.*
3: 192.168。* * (*是0到250。
========================================================
公共地址
公共地址是指在互联网上可以直接到达的地址。如果你有一个公共地址,就意味着你不仅可以访问别人,也可以被别人访问。公共网络地址是设置各种服务器的必要条件。
私网地址
私网地址出现的原因之一是公网地址非常稀缺,大家不得不用同一个公网IP地址上网,这就是共享上网的由来。同样,私有网络地址仍然可以再次共享。
私有地址是非注册地址,专门用于组织内部使用。
========================================================
公有ip
用邮件系统做比喻。拥有一个公共ip,就相当于说你有一个详细的地址,你可以写给别人,别人也可以用这个地址和你交流。
现在我们来看看没有公共ip是什么感觉。就像住在一个大大院里,所有进出的邮件都由传达室转发。如果是普通邮件,可以放在传达室。传达室的阿姨叔叔看到你就给你,或者你也可以去传达室看看。没关系。反正经过一番周折还是能看到邮件的。现在假设有挂号,邮局工作人员会说:我要签收。对不起,所有的邮件都必须经过我的中转站。所以邮局工作人员不得不把信收回…
实际情况和这个差不多。所谓没有公网ip,就是你的电脑没有直接联网,所有的通信都是通过一个代理(通常是透明网关)进行传输。这时候问题就出现了,在这种机制下有些沟通是无法顺利进行的。比如两个网吧之间,网吧的电脑就是一个没有公共ip的典型例子。通常两个网吧是无法通过qq互相传输文件的。比如没有公共ip,在线玩对战游戏一般会出现问题,你设置的游戏别人无法加入等等。
========================================================
专用网络ip
私有ip是指在ip进行国际分配时,留出一部分IP,不用于内部局域网等。虽然功能相同,但不能用于内部局域网。属于未注册地址,专供机构内部使用。
下表列出了保留的内部寻址地址。
a10.0.0.08类
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?
公开地址:Internic(互联网络信息中心)负责。这些IP地址被分配给注册并申请Inter NIC的组织,公网IP是全球唯一的,通过它可以直接访问互联网(只能在线)。
私有地址:非注册地址,专门供组织内部使用。说白了,私有IP不能直接上网。
但是我们一般都是通过运营商(电信、移动、联通宽带等)上网。),而且我们家所有的IP都是私有IP(局域网IP)。你可能会想,我们可以上网。怎么可能是私人IP?租用(申请)公共IP是要花钱的。运营商买了一些公共IP,然后通过这些公共IP分出去,再分发给一个又一个用户。这个过程有点类似。我们装了带宽,通过路由器把几个IP分开,让几个人都可以上网。当然,运营商通过公有IP分离的过程肯定比这复杂得多。所以我们平时上网用的IP是私有IP,运营商真正拥有的是公有IP(当然我们也可以租用公有IP)。所以A家和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独一无二。局域网:用于连接内部IP地址,交换机在局域网内部。
在这里,我们简化了这个过程,我们将运营商视为一个NAT设备。
①为了便于理解,我们反过来分析IP转换的方向(准确的说是公网到局域网)。计算机A的IP是lan 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。
总结
以上是我们内网和外网的通信流程。关键是与服务器建立映射,这样我们就可以与服务器建立通信并请求数据。
创造起来并不容易。如果这篇文章对你有用,请点赞,谢谢(ω)!
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/13565.html