惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
I
InfoQ
月光博客
月光博客
量子位
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
D
DataBreaches.Net
宝玉的分享
宝玉的分享
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测
能在家学会的网络技术(三):探索“路由”
韩大 · 2024-05-15 · via 机核

本篇我们将会学习以下概念:

IP 地址、子网掩码、网关

以前,“路由器”是和“交换机”“集线器”“网桥”等等名词,共同存在于"网络技术"这个不为人知的世界中的。当初为了搞明白这些词是啥意思,可是非常不容易的。然而,现在“路由器”已经成为京东、淘宝上的一个常见搜索的产品名字了。可是,你知道为啥那个屁股上插了几根线的玩意儿,叫“路由器”而不是其他什么名字吗?跟着下面的步骤操作一下,你就知道啥叫做“路由”了。

根据前面的文章可以知道,在互联网上每个电脑(或者设备),都需要有一个 IP 地址(实际上你可以拥有多个 IP 地址,只要对应的网卡能用的上);有了这个 IP 地址,才能通过互联网互相通信。所以,我们可以用以下命令显示当前的 windows 电脑的 IP 地址信息——使用 cmd.exe 打开命令行窗口,输入指令:

ipconfig

然后你可能会得到一堆字符输出,其中会有一些类似如下图的显示:

这里面显示了本电脑的 IP 地址为 192.168.1.27,这里显示的 IPv4 和 IPv6 是 IP 地址的两个不同的版本,暂时我们可以只看 IPv4。除了 IP 地址以外,还有两个奇怪的参数:子网掩码、默认网关。——我们马上可以做一个实验,来动手研究他们的含义。

我们现在输入命令行:

ping 192.168.1.1

上面的 192.168.1.1 你可以根据你电脑的实际情况,改成上面你所看到“默认网关”的具体 IP 地址。

我们可以看到有一些输出,表示 IP 为 192.168.1.1(或者是你的默认网关的 IP)的电脑,给本电脑的 ping 返回了数据。(这些数据每个占 32 字节,一共发了 4 个数据包)这表示本电脑 192.168.1.27 到 192.168.1.1 是能连通的。这个工具之前我们测试 www.lua.org 网站服务器的时候,也以类似的方法用过。这个默认网关一般来说,就是你家里面的路由器的 IP 地址,那个小小的盒子,也可以算是一台联网的电脑,具有自己的 IP 地址。

以前老式的 ADSL 拨号上网情况下,我们并没有一个自带 IP 的路由器,而是通过一个 Modem 调制解调器连接互联网,那个情况下,默认网关 IP 指向的则是存放于电信运营商提供的一个设备。

然后我们来修改一下自己的 IP 地址,为了避免不同 windows 版本的 GUI 界面的差异。我使用命令行进行修改,请以管理员身份重新打开 cmd.exe 窗口:

然后输入以下命令。注意输入之后可能会让你的电脑断网,所以最好保留一下上面你看到的 IP 地址的内容,完成实验后重新设置回来。

内容因剧透、敏感不适等原因被隐藏

点击查看

netsh interface ip set address "以太网" source=static addr=192.168.2.27 mask=255.255.255.0 gateway=192.168.1.1

这个命令,其中 "以太网" 这个字符,是对应之前 IP 地址输出窗口中的“适配器”部分的(也就是你的网卡在 windows 上配置的名字,现在电脑往往会有两个以上的网卡,包括 WiFi 网卡和有线网卡,还有的会有蓝牙网卡),如果你的适配器叫其他名字,请修改成对应的名字。

addr=192.168.2.27 中,是把原来的 192.168.1.27 的第三段数字改成不是 1 的。并且注意 mask 一定要是 255.255.255.0 这个数值。这个命令的含义,就是把“以太网”这个网卡(或者叫“网络适配器”)的 IP 地址 配置成 192.168.2.27,并且 子网掩码 参数改成 255.255.255.0

当你执行完上面这个命令,你应该会发现:电脑断网了!。断网了咱也先不要着急,我们还得继续实验,在命令行窗口中继续输入以下命令:

ping 192.168.1.1

你会看到以下返回,表示刚才还能连通的网关服务器,现在已经连不通了!

等下我们再解释,为啥改了一下 IP 地址就连不通原来还能连上的电脑。现在我们先尝试恢复网络,可以在同一个命令窗口运行命令:

netsh interface ip set address "以太网" source=dhcp

上面这个命令的作用,就是把 IP 地址从"手工设置",改成"自动获取"。如果你的电脑运行这行代码后还是不能上网,可以参考上面改 IP 的命令,把 IP 地址的第三段改为原来的值,并且修改 mask 参数为原来子网掩码的值,以及修改 gateway 参数为原来的“默认网关”的值。

下面我们来解释一下,为什么改了 IP 地址的其中一段,就会导致原来能联通的网络,变得连不通呢?首先,我们需要了解一下 IP 地址的组成:IPv4 地址一般看起来是由四个数字,通过三个小数点连接起来的。实际上,IPv4 的地址只是一个 32 位二进制长度(bit)的整数,其十进制的取值范围是 0~4294967295。互联网上的所有设备(手机、电脑、游戏机等等)都是用的一个数字编号,来代表自己的地址。我们写成 xxx.xxx.xxx.xxx 的形式,基本是为了避免太长的一个数字给记错了而已。

我们知道在现实世界中,如果我们要向一个地址写一封信,或者发一个快递,一般都是需要写省、市、区、街道、门牌。具体发送快递的时候,物流公司把需要把目标地址,分成不同的一段段空间,先找空间,再找逐步细化空间,最后发到具体的地址上。但如果好像互联网上的设备,如果只有一个数字作为具体地址,就算这个地址不会重复,那又如何才能一步步的找到最后的目标呢?

答案就藏在 IP 地址的另外两个参数里:子网掩码 (netmask)、默认网关 (gateway)。

当我们要发送一个数据包到另外一个 IP 地址的机器上(譬如上面实验中的 ping 命令),我们是知道自己的 IP 地址,以及目标的 IP 地址的。操作系统会根据子网掩码,来判断是否目标 IP 地址的机器,是否是和当前电脑在同一个“子网”中。

  • 如果是在同一个子网中,就会让底层网卡尝试直接连同目标机器,在常见的“以太网”(所谓局域网)中,这个尝试可能是一种数据广播,也可能是通过专用网络设备“交换机”来转发数据。

  • 如果操作系统认为目标地址不是和自己在一个子网中,就会把数据发给配置中的“默认网关”的机器,请它帮忙转发这个数据。

在上面的实验中,我有意让目标 IP 和本机的 IP 地址处于不同的“子网”中,而且默认网关也不起做(因为不在同一个子网中),所以 ping 的结果就是超时,表示无法连同。

那么,操作系统是如何判断,一个目标地址是否和本机处于同一个“子网”中的呢?这个时候就需要“子网掩码”的功能了。在我们的实验中,子网掩码是 255.255.255.0,如果把这个地址,以 IP 地址的方式改成二进制,就会是 11111111 11111111 11111111 00000000 这样一个数字,然后我们用这个子网掩码的二进制数对 IP 地址的二进制数,进行“与”运算,就能得到“子网网段”的地址值。这里的“与”运算,其实就是对应位掩码是 1 的,就保留下来;是 0 的,就变成 0。

子网掩码并不一定需要是 255 和 0 作为组成部分的,它可以是任何数字。只要拿这个数字和 IP地址按二进制位进行“与”运算,就能得到子网的网络地址。根据上面的实验,我们可以知道发起数据的电脑和接收数据的电脑的 IP 地址,经过计算各自的子网地址是:

  • 发起方 IP 192.168.2.27,经过 255.255.255.0 计算后,结果是 192.168.2.0

  • 接收方 IP 192.168.1.1,经过 255.255.255.0 计算后,结果是 192.168.1.0

上面这两个子网地址并不一致,所以操作系统判断:本机和目标机器不处于同一个子网内,需要通过网关转发数据。而网关刚好也配置的是 192.168.1.1 这个不在同一个子网内的机器,所以数据只能是没有回应。一旦我们把本机的地址,改成了让操作系统认为,是和目标机器同一个机器的子网内,我们就又能 ping 通了。

我们既然知道了,在同一个子网内,数据是根据子网掩码来判断和传输的,那么不在同一个子网内的数据,又是如何传递的呢?其实过程是一样的,只是不在一个子网内的数据,会先发给同一个子网内的“默认网关”,这个网关设备负责转发到另外一个子网去(也就是上级网络)。“网关”提供的这种服务,称为“路由”服务。这个过程有点像我们送快递:

  • 先判断收件人和发件人是不是在同一条街道的(通过判断子网地址),如果是的话,快递小哥就直接给你送过去。

  • 如果不是一条街道的,快递小哥会把包裹带到自己的快递站(默认网关),然后由那里的工作人员,根据地址上写的“区”地址,来决定要发给哪个快递站(某个子网的网关)。

  • 如果一个快递站(网关)发现收到了一个从其他街道发来的包裹,而且地址是本街道的(子网地址一致),就会想办法派人送上门。

为了直观的展现这个过程,我们还是可以用命令行工具进行测试:

tracert -dR -4 www.baidu.com

tracert 这个软件,就是记录和显示数据包如何到达目的 IP 的一个工具。从输出我们看到,目标 www.baidu.com 的 IP 是 183.2.172.185,经过了 15 次转发,最终到达了这个 IP 地址。而第一次转发,经过的正是默认网关 192.168.1.1,而第二次转发的网关地址 100.69.0.1,这个 IP 地址通常是路由器的 WAN 的网关,也就是“更上一级”子网网关的地址。后面经过的每一条记录,都可以理解为经过一个“快递站”(网关)的地址。

上图是我的路由器管理界面,上面记录 WAN 的地址,可以看到都是以 100.69. 开头,很可能其子网掩码是 255.255.0.0,从而和 100.69.0.1 处于同一个子网(计算得到子网地址都是 100.69.0.0)

每个网关之间的数据转发规则,往往不是好像我们家里的路由器那么简单:不是一个子网的,全部发给上级网关——而是有一个“路由表”来决定数据包的转发规则的——这方面有很多细节,是一个专门的课题。但我们现在,只需要知道,全世界的所有设备,就是通过这样一次次的转发,最终连接到一起的。

本篇文字的末尾,我们接触到了新的概念: WAN,下一篇,我们会从路由器的配置着手,开始了解更多互联网的知识。