From 80b0e020425f9a9601640184f4e99be13bbc3ef4 Mon Sep 17 00:00:00 2001 From: BaiMeow Date: Tue, 1 Aug 2023 21:49:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=84=E7=BD=91=E9=80=9F=E9=80=9A=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=9C=9F=E5=AE=9E=E6=A1=88=E4=BE=8B=E5=88=86=E6=9E=90?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 9.计算机网络/9.1计网速通.md | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/9.计算机网络/9.1计网速通.md b/9.计算机网络/9.1计网速通.md index f537d6c..24c3abf 100644 --- a/9.计算机网络/9.1计网速通.md +++ b/9.计算机网络/9.1计网速通.md @@ -277,6 +277,67 @@ TLS 建立在 TCP 的基础上,他会通过加密来确保传输过程中数 | RDP | 3389 | 默认UDP | | Redis | 6379 | TCP | +## 公网与内网 --- 真实环境分析 + +基本的内容介绍的差不多了,下面分析一个简单的网络案例,顺带介绍公网和内网的概念。 + +相信在看这篇文章的大家都正在使用互联网,如果你正在使用windows设备,你可以先按 `win`+`R` ,输入 `cmd`,在弹出的窗口输入 `ipconfig` 你可以看到里面有一串类似于下文的内容: + +``` +无线局域网适配器 WLAN: + + 连接特定的 DNS 后缀 . . . . . . . : + 本地链接 IPv6 地址. . . . . . . . : fe80::4835:c258:e07d:acc3%24 + IPv4 地址 . . . . . . . . . . . . : 192.168.0.109 + 子网掩码 . . . . . . . . . . . . : 255.255.255.0 + 默认网关. . . . . . . . . . . . . : 192.168.0.1 +``` + +IPv4 地址一栏有一个形似 `192.168.XXX.XXX`的地址,这是一个典型的内网地址,类似的还有很多,比如说 + +- 192.168.0.0 - 192.168.255.255 +- 10.0.0.0 - 10.255.255.255 +- 172.16.0.0 - 172.31.255.255 + +看到以上任意一个都是非常合情合理的,虽然还有其他内网地址,但是那些都比较冷门,可能一辈子碰不到,不用记忆。 + +因此,除了上面列出的 IP 地址,请将他们一律视为公网地址,公网地址是独一无二的,绝对的,内网地址在不同的子网里可以重复使用,是相对的。 + +此外下面还有子网掩码和默认网关,掩码会在后续的内容中介绍,现在知道你只需要知道: + +- 上面显示的 `IPv4 地址` 是你这台设备的 IP 地址 +- 家庭和寝室网络子网掩码默认 `255.255.255.0` +- 默认网关是路由器在内网的 IP,你的设备需要路由器的帮助将数据包从内网转发到公网 + +此刻你可能会有一个疑问,作为一台联网的计算机设备,我可以把数据发送到公网的服务器上,因为我知道他的公网IP,而且这是独一无二的,只要我联网,互联网上的路由设备会尽力帮我把数据送到地方。 + +### 但是,返回的数据该怎么办? + +显然,对面不可能把数据包发给一个内网地址,他只有发给一个公网地址,互联网上的路由设备才知道他要去哪,才能帮他将数据送到地方。 + +问题的答案很简单,我们的路由器,他通过 PPPoE 拨号的方式向运营商拿到了一个公网IP。他在把数据包转发到互联网上前,做了一个网络地址转换的操作,把数据包的源地址替换成了他的公网IP,再找了一个随机端口号,在那里将修改后的数据发送到公网,**这个转换的操作会被路由器记录**。 + +这样,公网上的服务器在收到数据包后也能知道,这个包来自于哪个公网IP的哪个端口,回复的时候就知道发到什么地方了。 + +路由器拿到公网上的服务器回复的数据包后,可以根据做网络地址转换时的记录,逆向推导出他应该将包发送到内网的哪台机器的哪个端口,就完成了数据的收发。 + +绝大多数的家庭或者寝室网络都遵循着这个规则。 + +### 那为什么要这么做呢? + +对于一般家庭网络,有两个简单的理由 + +- 安全,只有你主动连接才能拿到回复,互联网上的设备无法主动访问你的设备 +- IPv4 不够用啦 + +### 其他特殊IP地址 + +- 127.0.0.1 本机,用于自己的设备给自己的设备另一个端口发送数据 +- 169.254.x.x 保留地址,向路由器获取内网地址前会临时使用这个地址,如果你发现你的电脑正在使用这个地址,路由器可能坏了 +- 198.18.x.x 保留地址,但是有些软件会使用这个地址来实现透明代理(tun) + +好,我们的计网速通章节,到此结束,这些计算机网络知识应该足够你做简单的 Web 开发了 + ## 参考资料 - HTTP 教程