第2课:最后一公里的快递员 (对应原书第3章核心)
第1课:建立世界观 (对应原书第1、2章核心)
在上路之前,我们必须先理解两个最最基本的概念:规则和地址。没有这两样东西,整个互联网就会瞬间瘫痪。
核心概念一:协议 (The Rules)
想象一下,你要给一个在国外的笔友写信。你们之间需要遵守一套无形的规则,对吗?
-
你们要使用同一种语言(比如英语)。
-
信封的格式是固定的:收件人地址在中间,你的地址在左上角。
-
邮局也有一套规则:根据地址把信送到正确的国家和城市。
在计算机网络中,这种“大家都要遵守的规则”就叫做 协议 (Protocol)。
TCP/IP 不是一个单一的协议,而是一整套协议的集合,就像一部完整的《邮政法规》,里面规定了从写信、打包、运输到投递的所有规则。
核心概念二:IP地址 (The Address)
你的笔友必须有一个全球唯一的家庭住址,否则信就无法送到。在网络世界里,每一台连接到互联网的设备(你的电脑、手机、服务器等)都必须有一个唯一的地址,这个地址就是 IP地址 (IP Address)。
它就像一个门牌号,格式通常是这样的:X.X.X.X(例如 8.8.8.8)。
老师提示:目前我们主要接触的是第4版IP地址,即 IPv4。它由32个二进制位组成,为了方便记忆,我们把它分成4段,用十进制表示。你暂时只需要知道它是一个独一无二的“网络门牌号”即可。
动手实践:找到你自己的“门牌号”
现在,理论讲完了,我们立刻动手实践。请打开你的Linux终端(Terminal),我们来做两件小事:
第一步:找到你家的“内部”门牌号 (私有IP地址)
你在家里连接WiFi,你的电脑会被路由器分配一个“内部”的IP地址。这个地址只在你的家里有效,就像你在小区里的“5号楼101室”,这个门牌号在别的小区可能也存在,但在你自己的小区里是唯一的。
在终端里输入下面的命令,然后按回车:
Bash
ip addr show
你会看到一堆信息。别怕,我们只找关键部分。找到 inet 关键字,它后面跟着的那串 X.X.X.X 格式的数字,就是你电脑的私有IP地址。它通常长得像 192.168.x.x 或者 10.x.x.x。
例如,你可能会看到类似 inet 192.168.1.10/24 的东西,那么 192.168.1.10 就是你当前的私有IP。
第二步:确认你能和“外界”对话 (ping)
ping 是一个神奇的命令,它就像网络世界的“喂,听得到吗?”。我们用它来测试和另一个IP地址之间的连通性。
我们来 ping 一个非常有名的地址:8.8.8.8。这是谷歌提供的一个公共DNS服务器地址,你可以把它想象成一个全世界都知道的、永远开着灯的公共建筑。
在终端里输入:
Bash
ping 8.8.8.8
如果你看到类似下面的信息,说明你的电脑成功地向 8.8.8.8 发送了消息,并且对方也回复了你。
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=15.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=16.1 ms
...
这证明了你的电脑已经成功连接到了广阔的互联网上!按 Ctrl + C 可以停止它。
本课总结与作业
总结:
-
协议 就是网络世界里设备之间沟通的“语言”和“规则”。
-
IP地址 就是设备在网络上的“门牌号”,必须是唯一的。
-
我们通过
ip addr show命令找到了自己电脑在局域网(你家)的私有IP地址。 -
我们通过
ping命令,成功地与一个公共的IP地址8.8.8.8进行了“对话”,确认了自己与互联网的连接。
课后作业:
-
重新运行
ip addr show命令,告诉我你的私有IP地址是多少? -
思考一个问题:既然你的电脑有一个私有IP(比如
192.168.1.10),那为什么你ping8.8.8.8时,对方能把回信准确地送还给你,而不是送到同样使用192.168.1.10这个私有IP的邻居家?(这个问题我们会在后续课程中揭晓答案,但自己先思考一下,有助于加深理解)。
今天我们初步建立了对网络世界的认知,并且学会了两个最基本的命令。下次课,我们将亲手“抓住”你 ping 出去的数据包,看看它在网络中旅行时,到底穿了什么样的“衣服”,这会涉及到书中的第3章和第4章。
有问题随时可以提问!
你来当老师,通过一步一步引导我这个小白,从实践里面学习,让我掌握理解这本书,我目前是完全的it小白,你可以用比喻,但是不能少专业知识,我们先来学第三章,内容要极其核心
显示思路
同学你好!很高兴看到你回来继续学习。
在上节课,我们留下了一个思考题:为什么即使你和邻居家的私有IP地址一样(比如都是 192.168.1.10),发往 8.8.8.8 的回信也能准确无误地找到你的电脑,而不是你邻居的?
这个问题的答案很复杂,涉及到路由器的一个叫“网络地址转换(NAT)”的技术。但其中最关键的一步,即包裹从你的路由器(可以想象成小区的门卫室)如何准确送到你家门口,而不是邻居家门口,就必须依靠我们今天要学的内容——链路层 (The Link Layer)。
第2课:最后一公里的快递员 (对应原书第3章核心)
想象一下,一个从国外寄给你的包裹(IP数据包),它的旅程是这样的:
-
IP地址 负责把包裹从国外送到你所在城市,再送到你所在的小区门卫室(你的路由器)。这是网络层的工作,负责全局、跨网络的路由。
-
现在包裹到了门卫室,门卫需要把它送到你的家门口。他看的不再是那个写着“中国北京市XX小区”的国际地址,而是看包裹上贴的一张小便条,上面写着“送给5号楼101室的张三”。这个在小区内部进行“最后一公里”投递的过程,就是链路层的工作。
链路层只关心一件事:如何在同一个物理连接的网络内部(比如同一个WiFi下,或同一个交换机连接的所有设备),将数据从一个节点精确地传送到另一个节点。
核心概念一:MAC地址 (物理身份证)
我们知道IP地址像一个可以更换的“家庭住址”。而链路层使用的地址则完全不同,它叫 MAC地址 (Media Access Control Address)。
你可以把MAC地址想象成出厂时就刻在你设备网卡上的、全球唯一的“身份证号”。它不能被轻易更改,伴随设备终生。
-
格式:它通常长这样
XX:XX:XX:XX:XX:XX,由6组两位十六进制数组成,例如3c:22:fb:a1:b2:c3。 -
作用:在同一个局域网内,设备之间就是靠互相识别对方的“身份证号”(MAC地址)来通信的。
老师敲黑板:请牢记这个核心区别!
IP地址:逻辑地址,像家庭住址,可以变,负责跨网络寻址。
MAC地址:物理地址,像身份证号,基本不变,负责局域网内寻址。
核心概念二:以太网帧 (快递员的专用包裹)
链路层为了完成它的“最后一公里”投递,会把网络层交过来的包裹(IP数据包)再包装一下。这个新的包装叫做 帧 (Frame),最常见的一种就是 以太网帧 (Ethernet Frame)。
继续用我们的比喻: 门卫(路由器)收到你的国际包裹(IP数据包)后,并不会直接把它扔给你。他会把它放进一个印有小区LOGO的专用快递袋里,这个快递袋就是“以太网帧”。
这个快递袋外面贴着一张新的快递单,上面写着:
-
收件地址:5号楼101室的“身份证号” (目标MAC地址)
-
发件地址:门卫室的“身份证号” (源MAC地址)
-
里面的物品:你的那个国际包裹 (IP数据包)
这个“套娃”式的包装过程,专业术语叫做 封装 (Encapsulation)。
动手实践:亲眼看看这个“快递袋”
理论总是枯燥的,我们现在就用一个强大的工具 Wireshark 来亲手“拆开”这个数据包,看看里面到底是什么样的。
第一步:安装并运行Wireshark Wireshark 是一个网络抓包工具,是网络工程师的“听诊器”。 如果你的Linux系统没有安装,请在终端执行:
Bash
sudo apt update
sudo apt install wireshark
安装过程中可能会询问是否允许非超级用户捕获数据包,选择“是”会更方便。安装后,你可能需要将你的用户添加到 wireshark 组:sudo usermod -aG wireshark $USER,然后重启电脑或注销重登录。
第二步:开始抓包
-
从你的应用菜单启动 Wireshark。
-
你会看到一个接口列表,找到你正在用来上网的那个(比如
wlan0代表无线网卡,eth0代表有线网卡),双击它。 -
Wireshark 窗口会立刻开始滚动显示大量的网络数据。
第三步:制造我们想看的数据
-
保持 Wireshark 运行。
-
打开一个新的终端,输入我们熟悉的命令,但这次只发3个包,以免信息太多:
Bashping -c 3 8.8.8.8 -
命令执行完毕后,回到 Wireshark,点击红色的方块按钮停止抓包。
第四步:分析! 现在,我们在 Wireshark 上方的筛选框里输入 icmp 然后回车,这样就只显示我们刚刚的 ping 包了。
-
用鼠标点击其中任意一个 “Echo (ping) request” 的包。
-
看下方中间的面板(Packet Details),这里就是数据包的“解剖台”。你会看到几行可以展开的内容,这正是网络分层的体现!
-
请展开
Ethernet II这一行。这就是我们今天讲的链路层“快递袋”!看,里面清晰地标明了Dst:(目标MAC地址) 和Src:(源MAC地址)。 -
再展开它下面的
Internet Protocol Version 4这一行。这就是被包在里面的IP包裹!看,里面的Source和Destination是我们熟悉的IP地址 (你的私有IP和8.8.8.8)。
看到了吗?一个数据包在网络中旅行时,IP地址(最终目的地)基本不变,但MAC地址(下一站地址)在每一段路程中都可能会改变。你电脑发出的第一个“快递袋”,目标MAC地址就是你家路由器的MAC地址!
本课总结与作业
总结:
-
链路层 负责在同一个局域网内的“最后一公里”投递。
-
它不使用IP地址,而是使用刻在硬件上的、唯一的 MAC地址。
-
链路层会将IP数据包封装在 以太网帧 里进行传输,帧头部包含了源和目标的MAC地址。
-
我们用 Wireshark 亲眼证实了这种 封装 关系。
课后作业: 这是一个非常非常重要的问题,也是我们下一课的主角: 在你的Wireshark截图中,你的电脑在发送 ping 包之前,它是如何知道你的路由器(网关)的MAC地址的?它总不能是天生就知道吧?它只知道网关的IP地址(比如192.168.1.1),它是怎么用这个IP地址问到对应的MAC地址的呢?
更多推荐




所有评论(0)