五层网络模型
我们日常使用的网络是分层的,简单来说分为以下五层:
- 物理层:我们使用的网线、2.4G/5G无线电波;
- 数据链路层:确保数据能在物理层上传输;
- 网络层:日常看到的 IP 就是网络层的互联网协议,我们通过 IP 协议可以跨越不同的国家,不同种类的物理层进行通信,我们需要保护自己的 IP 信息,以免被进行攻击;
- 传输层:将应用数据打包、分组的一层,在 IP 协议中主要有 TCP 和 UDP 两种包类型,在不同应用中有很大的区别,玩在线游戏时,大概率会使用 UDP 包来打包数据;
- 应用层:由应用软件来决定如何组成数据。
广域网/局域网
上面说了网络的模型,其中 IP 协议是我们日常使用中最重要的通讯协议,我们需要对它做一个大致的了解。
首先我们都听过 IP 地址 ,无论我们使用 WIFI 还是网线,使用手机还是电脑,都可以从里面找到 IP 地址,只要别人知道你的_ IP地址_。比如我们家 NAS(网络储存设备Network Attached Storage) 的地址就是 192.168.31.233,这是电脑和手机在家就能访问的,可以获取电影、书籍等资源。
但是你会发现 NAS 只有家里能访问,到公司就连接不上了。这是因为 NAS 位于我们的局域网(Local Area Network)中,只有家里能通过这个地址访问 NAS。家里所有设备中能从外部主动访问的只有鞋柜里的路由器,它连接了我们租赁的电信宽带,是家里唯一一只连接到广域网(Wide Area Network)的设备,家中所有需要对外访问的设备都需要通过他将局域网中的信息传给广域网。 如果需要再公司能访问到家里的 NAS 就需要我们首先通过 广域网 访问到路由器,再经由路由器进行 网络地址转换 (Network Address Translation) 和端口转发(Port forwarding)访问到 NAS 上。不过目前没有配置端口转发,因此无法在外部访问。
端口
端口(Port)也是 IP 协议中的东西,我们要访问一个应用,不仅需要知道 IP 还需要知道端口,就像设备上面的 usb、雷电、电源、hdmi 口一样,插对了才能正确使用起来。
每个网络应用都会占据至少一个端口来进行信息发送和接受,我们通常浏览网页时就是访问 http 应用的 80 端口,访问 NAS 时主要是访问了网络文件共享系统(Common Internet File System)的 445 端口。
网络地址转换及端口映射
在广域网和局域网不同的地址之间,我们需要通过路由器进行 网络地址转换。家庭路由器主要使用 网络地址端口转换 的技术,来解决我们家贫穷到只租得起一个 IP 地址的问题。
以家里 NAS 访问 Google 为例:
- NAS 的 Chrome 浏览器会填写源地址和一个随机的源端口,192.168.31.233:12345(前面 ip 地址,后面为端口),发送至 172.217.27.142:80 (目的 IP 地址和WEB 服务端口,目的 IP 是通过其他方式获得的)
- 但由于 NAS 不认识 172.217.27.142,因此会先发给路由器,让他来帮忙转发;
- 路由器发现这是一次局域网对广域网的访问,就会将重新填写源地址和随机端口,并将数据丢到广域网中;
- 路由器会会填写源地址和源端口为 123.123.123.123:23333 来代替 192.168.31.233:12345;
- 并记录下 123.123.123.123:23333 = 192.168.31.233:12345 的映射(这个映射是临时的,一小会儿不用就删了)
- Google 发现 NAS 在访问时,就会将网页返回回来,他会将目的地址和源地址互换
- 源地址和源端口 172.217.27.142:80
- 目的地址和目的端口123.123.123.123:23333
- 一路回到我们的路由器上,路由器发现是广域网对局域网的传输就会根据记录下来的映射修改目的地址
- 发现 123.123.123.123:23333 = 192.168.31.233:12345
- 将目的地址改为 192.168.31.233:12345
- 最后发送给 NAS,浏览器上就会呈现 google 页面了。
此时会发现路由器知道通过 123.123.123.123:23333 = 192.168.31.233:12345 的映射将网页发给 NAS,但是我们在公司主动访问NAS 的 网络文件共享系统时路由器就不知道怎么去找 192.168.31.233:445 了。
这时候我们就需要手动在路由器上设置端口转发,让 123.123.123.123:445 和 192.168.31.233:445 的映射永远存在。在公司访问 123.123.123.123:445 就能访问到 NAS 上的 网络文件共享系统。
固定IP地址/动态IP地址
IP 地址是否固定取决于很多非技术因素。
我们先来讲讲局域网。还是以 NAS 为例,我就设置了固定 IP,这是我们经常需要访问到的,不能任由他随意修改地址,一旦发生地址改变,我们就找不到他了。但对于我们的手机来说,就无所谓是否固定,因为他总是作为发起者来访问其他设备,而不太有设备会访问手机。
对于我们的广域网,我们购买的电信宽带来说,都是动态 IP 的,主要是因为电信的 IP 地址也不充足,下线后再上线就会分配其他 IP 给我们。
上面说了固定 IP 是为了方便访问,但由此也会带来一定的安全隐患,例如有人知道我们家的 IP 地址后可能会进行一系列攻击,并尝试访问我们局域网盗取数据。我们家目前测策略是每天晚上重新获取一个广域网的 IP 地址,保证一定安全性。
我们家的网络结构
家里的局域网很简单,主要有三种连接方式:有线连接、5G WIFI、2.4G WIFI。
连接方式大致如下,其中实线为有线连接,虚线为 5G WIFI,点线为 2.4G WIFI。 ** **