官网:http://securitytech.cc/
第 1 周 ------ OSI 之旅开始了
OSI 模型、TCP/IP、子网划分与 DNS 基础
介绍
嗨,大家好!👋 我是 Aang(网络上叫 @iamaangx028)。 我是一名正在成长中的漏洞猎人。刚入行时,我跳过了许多基础知识,直接开始在真实目标上挖漏洞。虽然过程很刺激,但很快我发现自己有巨大的知识盲区,这成了瓶颈。
所以我决定慢下来 ------ 暂时减少实战狩猎的时间,专注于补齐我遗漏的基础。我希望从初学者的角度重新看问题,反思自己当初能做得更好的地方,打下更扎实的底层功夫。
我同时在实习期间进行这些学习。如果你也和我一样 ------ 有热情但仍在补漏洞(知识上的那种 🤭)------ 那就跟我一起学吧。我写这种博客的经验不多,但我们可以一步一步来,一起成长。
我在做什么?
每个工作日,我会学习一个新概念。 每个周末,我会像这样发布一篇博客,汇总本周 4-5 天的学习内容:
- 学到的知识总结
- 关键要点
- 工具、链接,甚至一些"卧槽原来是这样!"的瞬间
为什么你该关心?
如果你是网络安全初学者,或者卡在"教程地狱"出不来,或者只是好奇一个普通人如何成长为"某种人",那就继续看下去吧。 我会展示这段旅程未经修饰的真实面貌------包括失败、成功与反思。让我们开始吧!

让我们从第一周的博客开始。
第 1 天 ------ OSI 模型(最被热爱但极少被用到的模型)
口诀:P lease D o n ot T ell S ecret P asswords to Anyone 🤫 (请不要告诉任何人秘密密码)
OSI 模型是网络应用能顺利运行的核心原因。 正因为它的存在,你现在才能看到这篇博客。今天我学习了 OSI 模型,下面我会用通俗易懂的方式总结我的理解。让我们从上到下理解 OSI 的 7 层。
1. 应用层 (Application Layer)
负责展示内容。 所有网络应用(如 Chrome、Skype 等)都使用应用层协议,如 HTTP/S、SMTP、FTP、TELNET 等。 这些协议帮助用户可视化并传输信息。 例如,我在 Medium 写下这篇博客并发布,现在你能阅读它,就是因为应用层把下层传来的数据渲染为可见内容。
2. 表示层 (Presentation Layer)
负责把数据转为二进制(1 和 0)。 接着它会压缩数据以减少网络传输量,压缩方式可能是有损或无损。 此外,它还可以对数据进行加密,以确保传输安全。 对应的解密也在这一层完成。 SSL(安全套接字层)就是在这一层起作用的。
3. 会话层 (Session Layer)
负责建立与目标主机之间的会话,并管理整个通信过程。 同时处理认证和授权,确保安全访问。 会话层通常通过 API(应用程序接口)来实现这些功能,例如 NETBIOS。 当浏览器向服务器请求数据时,会话层确保所有文件都传入正确的会话。 实际上,浏览器会同时处理前三层(应用层、表示层、会话层)。
4. 传输层 (Transport Layer)
这一层负责分段、流量控制、错误控制,以及面向连接和无连接的传输。 数据在此被划分为"段"(Segment)。 每个段都包含源端口、目标端口和序列号,用于保证数据按顺序重组。 传输层使用自动重传请求(ARQ)机制补回丢失的段。 其中,TCP 是面向连接的,而 UDP 是无连接的传输方式。
5. 网络层 (Network Layer)
负责地址解析、路由选择和数据包路径规划。 网络层提供逻辑地址(如 IP 地址),而物理地址在下一层。 每台联网设备都有一个 IP,例如 192.168.1.1。 前三个字节(192.168.1)代表网络号,最后一个代表主机号。 网络层将源 IP 与目标 IP 加入来自传输层的数据段,形成"数据包"(Packet)。
6. 数据链路层 (Data Link Layer)
负责物理寻址。 它将源和目标的 MAC 地址附加到来自网络层的数据包上。 MAC 地址由厂商烧录在网卡(NIC)中。 NIC 负责让设备通过介质(空气、铜线、光纤等)相互连接。 数据链路层的单位称为"帧(Frame)"。
7. 物理层 (Physical Layer)
到目前为止,我们看到的都是 1 和 0。 在物理层中,这些二进制数据会被转换成电信号,通过电缆、光纤或空气传输到目标设备。 接收方再反向还原这些信号,你才能在电脑上看到这篇博客。

OSI 模型的简要图示(来源:下方 YouTube 视频)
💡 这只是我对 OSI 模型的原始理解(没用 AI 帮助 😅),当然远不止这些,但足够入门了。 想更深入了解可参考此 YouTube 视频。 如果你发现哪里不对,欢迎留言或提出见解!
第 2 天 ------ TCP/IP(在深入协议栈前必须知道的故事)
20 世纪 60 年代,计算机之间无法像现在这样通信。 为解决这个问题,工程师们设计了一种架构来让不同计算机互联。 1969 年,美国国防部推出了 ARPANET ,这是第一步。随后大公司纷纷开发各自的私有网络系统,比如 IBM 电脑只能与 IBM 电脑通信。 这显然不理想。 于是工程师们继续努力,最终诞生了两个最重要的模型:OSI 模型 和 TCP/IP 协议栈。
学术界和政府最初支持 OSI,但它更偏理论; 而 TCP/IP 则成为全球通用的实际标准。 自此,无论设备厂商如何,大家都遵守同一套规则,才能实现如今的互联互通。
TCP/IP 与 OSI 的层次类似,只是把应用层、表示层、会话层三层合并为一个"应用层"。 原理大致相同。

TCP/IP 与 OSI 模型的对比图(来源:下方 YouTube 视频)
第 3 天 ------ 子网划分:因为"对整个互联网大喊"太糟糕了 :)
这个主题我花了两天才完全理解。 虽然一开始很难,但掌握后真的觉得值得!
什么是子网划分 (Subnetting)?
简单来说,子网划分是把一个网络分成更小的网络。 我们知道 IPv4 地址(W.X.Y.Z)由 4 个字节组成,分为网络部分 与主机部分。 例如 192.168.0.1 的二进制形式为:
11000000.10101000.00000000.00000001
为什么要划分子网?
互联网编号管理机构(IANA)将 IPv4 分为 5 类(A--E):

来源:GeeksforGeeks
- A 类分配给大型组织(每个网络超 1600 万个地址)
- B 类给中型组织
- C 类给小型企业或家庭
A 类网络太大,难以管理。 没有子网划分时,大量广播会造成严重拥堵。 比如计算机要找 10.125.4.5,会广播问"谁是 10.125.4.5?",每台设备都得响应,网络很快崩溃。
想象你在一千人的房间里,想找你的女朋友 MJ💖,你要问每个人"你是 MJ 吗?"------那太累了! 子网划分就像帮你缩小范围的朋友:"兄弟,别慌,我帮你在特定区域找!"
如何划分子网?
要从当前网络创建子网,需要将主机位转换为网络位。 这意味着牺牲部分主机数量来换取更多的子网。 建议参考这个 YouTube 教程合集。
什么是 CIDR?
CIDR 即 无类域间路由(Classless Inter-Domain Routing) 。 你可能见过类似 192.168.1.2/24 的写法。
/24
表示子网掩码中有 24 个 1,剩下是 0。 IPv4 总共 32 位,因此:
/24 = 11111111.11111111.11111111.00000000 → 255.255.255.0 /26 = 255.255.255.192 /20 = 255.255.240.0
你可以使用 这个工具 来进行二进制和十进制互转。
第 4 天 ------ DNS 解密:计算机如何找到彼此
我们人类很难记数字,比如电话号码。 过去,如何记住每个网站的 32 位 IP 地址? 于是工程师发明了 DNS(域名系统) ------ 互联网的电话簿。
你当然可以直接输入 IP 访问网站,但记不住太多。 DNS 负责把域名转换成对应 IP 地址。流程如下:
- 用户在浏览器输入域名并回车
- 浏览器检查本地缓存
- 再查系统缓存
- 若无,则查询递归解析器(通常是你的 ISP DNS) 或使用公共 DNS,如 Google(8.8.8.8)、Cloudflare(1.1.1.1)
- 递归查询根服务器
- 根服务器返回顶级域(TLD)信息
- 再查询权威服务器,获取该域完整信息
- 最终返回 IP 地址,并缓存结果

DNS 的工作流程示意图
我在面试时被问过 DNS 查询流程,结果忘了"浏览器和操作系统缓存"那部分 🥲。 建议记住完整流程。想深入了解可看 Cloudflare 的解释。
💬 最后的闲聊
如果你读到这里,太棒了 👏 写这些每周学习博客对我来说是个挑战,但我会坚持下去。 我知道光看文章不一定能完全理解,所以我会在文中附上我觉得最值得看的学习资源,让你少走弯路。