12.IP的秘密

2018-04-21  本文已影响0人  杨大菲

大家都知道一个秘密就是ip的查询通过两种方式查的竟然不一样!!!

第一种方法就是百度输入ip,第一个就是他会帮你展示出你机器的ip地址,第二种方法就是通过控制台属于ipconfig

不一样的原因就在于,在茫茫互联网世界中,我们总会和我们的左邻右舍相互抱团形成一个局域网,我们在局域网中有一个ip,对外(既对大千世界)我们还有另一个ip,这样可以有效的减少ip的灭绝枯竭速度

世界上的ip分为私有ip和公有ip,私有ip就是只能在私有网络中使用,不能作为大千世界的入口,公有ip就是可以在大千世界中使用的入口

私有ip分为ABC三类

A:10.0010.255.255.255

B:172.16.0.0~172.31.255.255

C:192.168.0.0~192.168.255.255

如果设备是介入家庭网络或者局域网络,那么通过ipconfig查到的ip一定在上述三类中

当私有网络中的设备想要访问大千世界的时候,需要用到NAT网络地址转换技术,其实现技术有三种

1)静态转换

内网地址和外网地址是一一对应的挂你,如果内网中有10台设备需要访问外部网络,就需要有10个对应的外网ip来做映射,而且这10个内网ip和外网ip间的对应关系是固定的,如果需要让内部网络的一台主机做外网的服务器,就需要用到静态转换

2)动态装换

内网ip与外网ip的相对应关系是不固定的,一般的ISP会使用这种方式给介入用户提供访问外网的能力

3)端口多路复用

让一个外网ip被多个内网ip同时共享,他与前两种的实现的主要区别是将端口作为一个映射的维度,家用路由器,一般都是通过端口多路复用来实现的NAT,内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

举个栗子

1.在www.baidu.com的搜索框中输入ip关键词,向百度的服务器ip发送了get请求,请求的源头地址是192开头我设备的内网ip,包括我内网的端口

2.上述请求包到达路由器后NAT服务发现源地址是内网地址,于是将请求包中的源地址修改为123.开头的外部地址,源端口修改为4444,并记录下这个映射关系

3.当这个请求经过路由到达百度的服务器的时候,想目标地址123,开头的ip和端口为4444的地址发送响应数据包

4.回路中数据再次经过路由器,路由器收到响应数据包后,NAT服务通过查询之前记录的映射关系,将123改成192的内网地址,将4444改成我内网的端口号,这个时候我家中的电脑就能收到了这个而响应包

NAT技术将内网主机屏蔽在一个或几个外网ip地址后,降低了内网主机直接暴露外网的安全风险,另外端口复用技术大大降低了IP地址的需求量,减缓了IP地址的枯竭

那么什么是端口呢?

端口分为物理端口和虚拟端口

1)物理端口:usb口,网口等

2)虚拟端口:标识不同的网络数据的手法,计算机中很多服务都在各自的进程中,不可能为每一个服务都开一个物理端口,一般情况下,所有服务发出的数据都是从一个物理端口发出去的,当然外部回应的数据也是都是从这一个网孔挤进来的

那么如果数据都一起手法,服务要要怎么知道哪个回来的数据才是自己需要的呢,于是用虚拟端口来区分数据,一个服务想要和外部进行信息交互,需要先绑定一个虚拟端口号,这个服务在发送数据的时候带上自己的端口号,同时还要指定目标服务的端口号,目标服务所在的设备收到数据包后,会按照数据包中标明的端口号,将数据放到对应服务端口的缓冲区中,等待被对应的程序取走

当然如果所有这个端口的数据都放到这个端口的缓冲区会造成数据堆积,所以会再设计出一个监听线程,他和其余线程共同存在一个进程中,这个线程负责监听一个端口号下是否有数据进来,如果有,则分配给进程中的一个线程去处理,然后保证这个端口号缓冲区不会数据溢出

开个QQ,开了一个进程;开了迅雷,开了一个进程。

在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。

所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ的运行,那么这“多个工作”分别有一个线程。

所以一个进程管着多个线程。

通俗的讲:“进程是爹妈,管着众多的线程儿子”...

上一篇下一篇

猜你喜欢

热点阅读