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

推荐订阅源

The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
L
LangChain Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
I
Intezer
Know Your Adversary
Know Your Adversary
H
Heimdal Security Blog
博客园 - 叶小钗
B
Blog RSS Feed
F
Fortinet All Blogs
Hacker News: Ask HN
Hacker News: Ask HN
A
Arctic Wolf
小众软件
小众软件
Help Net Security
Help Net Security
MongoDB | Blog
MongoDB | Blog
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
Forbes - Security
Forbes - Security
Latest news
Latest news
AI
AI
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
CXSECURITY Database RSS Feed - CXSecurity.com
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
人人都是产品经理
人人都是产品经理
Cyberwarzone
Cyberwarzone
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
C
Cyber Attacks, Cyber Crime and Cyber Security
O
OpenAI News
博客园 - 【当耐特】
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
U
Unit 42
D
Darknet – Hacking Tools, Hacker News & Cyber Security
G
GRAHAM CLULEY
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
T
Threatpost
T
The Blog of Author Tim Ferriss
罗磊的独立博客

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
小白也能看懂的网络基础 03 | OSI 模型是如何工作的 - 少数派
2021-01-20 · via 少数派

引言

欢迎来到网络世界,《小白也能看懂的网络基础》系列文章会从零开始帮助你构建网络的基础知识。如果你完全没有接触过网络相关的内容,那我们是一样的,在学习过程中我们肯定遇到了相同的问题!写下这些文章一方面要记录自己的学习历程,另一方面也希望帮到同样想要学习网络基础的小伙伴。

文章的部分内容与素材是我从【Youtube平台】的【Network Direction】发布的系列视频学习和搜集过来的,翻译不易,部分内容可能无法做到尽善尽美,甚至可能会有部分瑕疵,我会尽力让文章内容通俗易懂,覆盖全面。若各位小伙伴发现任何问题,希望能够留言或私信告诉我,在下不胜感激!当然,我也会在第一时间进行更正。

在往后的每一篇文章中,我都会把看到文章的小伙伴当成是完全没有网络经验的小白,我的目标是和零基础小白一起建立坚实的网络基础,网络大神请略过此系列文章。

让我们开始网络之旅吧!

1.历史上的对话

历史上的对话

如果你早期在一个公司的网络部门工作过,你可能会听到这样的电话对话:       

 网管:「你好,这里是IT部门,你有没有尝试重启呢……」;      

 员工:「没有,我这边是服务器的问题,我甚至无法固定它」;       

 网管:「好的,听起来这应该是第3层的问题,我不负责这块,拜……」。

这就是很有历史的技术支持电话的对话内容,这个IT部门的网管提到了第几层的问题,其实他说的就是OSI模型的某一层,但这是什么意思呢?为什么有OSI模型这个东西,它的存在有什么意义?接下来,我们将围绕这个问题展开讨论。

网络世界

2.OSI模型如何诞生

通过前面的内容,我们了解到了,网络上的所有设备都具有网络硬件和软件这些特征,它们需要一种通用的规则,才能实现彼此之间友好的交流。

达成协议

是谁在默默无闻的支持它们彼此之间沟通的呢?相信你已经知道了,是「协议」。它们都遵循一套相同的「协议规则」,如此一来,它们之间的沟通畅通无阻。需要注意的是,「协议」并不只有一个,在不同的位置,我们会应用到不同的「协议」,所产生的效果也不尽相同,而且一些「协议」需要协同配合才能完成工作。

ISO国际标准化组织

随着时代的发展,「协议」越来越多,我们想要了解其中某一项协议的具体内容变得越来越复杂。为了解决这个问题,一个叫做「ISO」的「国际标准化组织」将这些条例进行了整理规划,方便不同的人群了解不同的协议,这就是「OSI模型」。(例如:国与国之间可以将协议划分为贸易协议、医疗协议、军事协议、建设协议等等,从事相关工作的人只需要去了解与自己相关的协议内容即可)

在网络当中也是同理,「网络协议」的分层也是为了完成这个目的,那就是将这个庞大的网络进行不同层级的划分,以便于不同的角色按照统一的「协议」生产出能够协同办公的软件或硬件。

可能直接说这些概念大家任然无法按理解,在这里,我们拿生活中的真实案例来进行讲解:假如我们写了一封信,这封信从写完到对方看到,经历哪些步骤呢?

2.1 寄信的模型

  1. 写信
  2. 装进信封
  3. 填写地址
  4. 贴邮票
  5. 将邮件投入信箱
  6. 邮局工作人员取到信件,将其按地区划分,使用卡车运送到该地区邮局
  7. 当地邮差取到信件,并最终投递到对方手中
寄信的步骤

如此一来,我们就建立了一个「寄信的模型」,该模型描述了每个环节如何搭配工作,并最终实现信件的投递。在这个过程中,某些细节会随着实际情况而发生变化,例如:

2.2 模型中存在的变化

  1. 邮寄信件 / 包裹
  2. 使用信封 / 包装盒
  3. 邮寄本地 / 国际
  4. 张贴邮票 / 其他付款方式
  5. 邮局 / 邮政信箱 / 自行车信使
  6. 卡车 / 飞机 / 火车 / 轮船或其交通工具
  7. 房屋 / 公司 / 邮政信箱
模型存在的变化

虽然我们大可不必了解这其中的每一个细节,但这可以帮助我们更快的理解「OSI模型」的核心概念,而「OSI模型」客户已帮助我们更加深入的了解网络。

因此,通过该模型我们可以了解到那些我们不曾了解的整个过程,同时,它可以帮助我们了解到每一个过程当中的细节!而且,如果信件丢失,我们可以追溯到某个具体的环节,并只解决该环节的问题即可。

网络的模型也是同样的道理,它可以帮助我们了解整个网络的运行的流程,方便我们找到问题所在的位置,便于问题的排查;同时,也方便了那些没有接触过网络小白的学习。

3.OSI模型层级划分

OSI 模型就是网络模型,我们将它划分为七层,分别是:

  • 应用层【第七层】(Application)
  • 表示层【第六层】(Presentation)
  • 会话层【第五层】(Session)
  • 传输层【第四层】(Transport)
  • 网络层【第三层】(Network)
  • 链路层【第二层】(Data Link)
  • 物理层【第一层】(Physical)
OSI七层模型

大家可能注意到,这七层模型中并没有以太网层、也没有电缆或光纤层,其原因是,「OSI模型」与特定的技术无关,就好比上面的寄信模型,它只告诉我们寄信要走哪些流程,而具体使用哪个厂家的信纸、信封,以及使用什么交通工具运输与模型没有直接关系。

那可能大家又要问了,那模型到底是用来做什么的?我们可以这样解释,类似以太网、电缆或光纤可以具体到「OSI模型」的某一层,比如以太网属于数据链路层的内容,以太网如何来连接及构建的解决方案都在这一层的规则中详细写出了;

而电缆或光纤都属于物理层的内容,若这类网线想要与不同厂家生产的接口无缝对接,那线缆生产商与接口生产商都需要按物理层规定的协议来生产产品。

4.OSI模型:数据传输

以太网与线缆都是根据「OSI模型」制定的规则来工作的,这样说大家应该明白了。在这里呢,我们通过一个案例来看一下,「OSI模型」各层是如何协同工作的。

数据在OSI传递的过程

在这个案例中,我们有两台用于测试的主机,分别是「主机A」和「主机B」,我们用「主机A」准备一个信息,将其传递到「主机B」,在这个传递过程中,OSI的每一层都参与了怎样的工作?

4.1 应用层

数据的出现是始于应用层的,(例如使用「主机A」通过FTP向「主机B」传输一个文件信息)应用程序都属于应用层的内容(例如:QQ、微信、Web浏览器等都属于应用层);应用程序准备好信息后,就可以向表示层传递了。

数据内容

4.2 表示层

表示层收到应用层传来的文件信息后,会把数据转换为能与接收者「主机B」的系统格式兼容并适合传输的格式(表示层可能对数据进行加密、压缩、编码等操作,无论如何,这都是为了迎合「主机B」),操作完毕,数据会传递到会话层。

数据内容

4.3 会话层

会话层接收到表示层传来的数据信息后,负责在数据传输中设置和维护两台计算机之间的通信连接,以保证这段连接不会因中断而造成不必要的麻烦。建立好会话连接后,数据继续向下传递。

数据内容

4.4 传输层

虽然看起来上三层已经把大量信息处理完毕了,但这里可能遇到一些问题,例如应用层传递的文件是一个非常大的文件,在传输过程中一旦会话层的连接中断了,这意味着我们需要重新传递这个文件,这就变得非常麻烦。

如果我们可以把这个大文件拆分成小块传输,这个问题就迎刃而解了。这就是传输层的功劳,它可以对数据传输进行流量控制,也就是大文件分成多块进行传输。就好比我们搬家,一辆车装不下,那就多装几辆车,然后让这些车同时出发,同时呢,为了避免道路阻塞,它还可以选择多条路来进行传输,这就是传输层的流量控制、避免拥塞和多路复用的体现。

同时,传输层还会给这些数据追加一个「源目端口」,一方面告知对方信息打哪来,一方面要让信息知道它们要到哪去(例如:我使用 Google 浏览器访问百度网站,这里就会添加了 Google 的端口和百度服务器的端口)。

[源目端口] | 数据内容

4.5 网络层

数据传输的问题解决了,不知道大家还记不记得上一章」本地与异地信息打印的案例「,如果我们要传递的信息是被异地主机接收,就需要靠ip地址来确定异地的网段。所以网络层会给数据追加一个「源ip地址」,再添加一个「目的ip地址」,这就解决了数据从哪里来,要到哪里去的问题了~

[源目ip地址] | [源目端口] | 数据内容

4.6 数据链路层

网络层解决了异地网段的问题,但数据走到这里还无法确定要传递到该网段下的那一台机器,因此,数据链路层会把「主机A」和「主机B」的「MAC地址」再进行追加,这就是「源MAC地址」与「目的MAC地址」,拥有了这个唯一的烙印,「主机B」就是化成灰也逃不出「主机A」的五指山了。

同时,数据链路层在数据的尾部追加了一个「FSC帧校验」,因为我们的数据再传输层有可能已经被切片,因此,为了检测数据的完整性,就有了这个「FSC帧校验」。

[源目Mac地址] | [源目ip地址] | [源目端口] | 数据内容 | [FSC帧校验]

4.7 物理层

数据通过OSI的六层磨炼,还差最后一层才能将信息传递出去,只要能满足这最后一层对数据格式的需求,物理层就会给我们准备一条路,并把数据发送出去。那物理层识别什么格式的数据呢?01代码,无论是电信号还是光信号,都只能传递这种类型的数据,因此,物理层会将数据转换成 01代码并实现数据传递。

100111010111010110110100001101101011

数据从主机A传递到主机B

5.OSI模型:数据接收

通过上一小节,我们已经了解,数据自应用层诞生,进行了层层封装,并最终通过物理层的线路将数据发送到了另一台设备上,那接收到数据的这台设备,也就是「主机B」该如何处理这些数据呢?

5.1 物理层

收到「主机A」发来的01代码,并对代码进行解析,将其转换成数据链路层需要的数据格式。【此时,数据已经转换为数据链路层可识别的数据格式】

100111010111010110110100001101101011

5.2 数据链路层

数据链路层收到由物理层解析后的数据,并先进行「FSC帧校验」,检测数据的完整性,然后确定「目标MAC地址」是否正确,最后剥离「源目MAC地址」及「FSC帧校验」内容,随后将处理后的数据帧交给网络层。【此时,已经通过MAC地址找到目标设备】

[源目Mac地址] | [源目ip地址] | [源目端口] | 数据内容 | [FSC帧校验]

5.3 网络层

网络层收到链路层发来的编译后的数据包,确认目标ip地址准确无误后,剥离「源目ip地址」,并将处理后的数据包交给传输层。【此时,已确定目标设备的ip地址】

[源目ip地址] | [源目端口] | 数据内容 

5.4 传输层

传输层收到数据包后继续解封,查看「目标端口」是否畅通,确认无误后,剥离「源目端口信息」,并将处理后的数据交给会话层。【此时,已确定数据要传输到目标电脑上的什么应用】

[源目端口] | 数据内容

5.5 会话层

会话层拿到数据后,需要根据端口与相对应的应用建立会话连接,并维持这个连接关系,继续将数据交给「表示层」。

数据内容

5.6 表示层

「表示层」收到数据后,需要对数据做进一步的解码处理,以确保应用能够识别这段数据内容,解码成功后,将数据交给应用层。

数据内容

5.7 应用层

主机B」最终收到了「主机A」发过来的消息。

数据内容

数据解封装

6.合作关系

通过对上述模型的分析,我们会了解到,OSI七层架构里面的每一层都有自己的工作,同时每一层都要与其上层保持密切的联系,以确保不会出现问题。层级之间分工明确,不会出现工作冲突的问题。因此,那些需要使用不同协议来完成的不同任务会变得更容易执行。

问题:

  1. 高带宽应用导致网络速度「变慢」,问题出在哪一层?我们应该如何解决?
  2. 请阐述以下内容分别来自OSI模型的哪一层
    1. FTP(文件传输协议)
    2. Session Control Protocol(会话控制协议)
    3. Service Requests(请求服务)
    4. JPEG(图像格式)
    5. GIF(图像格式)
    6. MPEG(图像格式)
    7. SMTP(电子邮件传输的协议)
    8. TIFF(图像格式)
    9. Telnet(隶属于TCP/IP协议族)
    10. Flow Control(流量控制)
  3. 把描述连到正确的OSI模型分层
    1. 应用层                    提供无错误数据
    2. 传输层                    用于在介质上发送/接收数据的硬件
    3. 网络层                    终端用户服务,例如Web浏览和文件传输
    4. 物理层                    决定如何沿路径转发流量

二、HTTP请求范例

在本小节,我们再拿一个向Web服务器发送请求的客户端案例来演示一下,相信可以加深你对OSI模型的进一步认知。

1.写在前面

我们平时是如何来访问网页的?回答是使用「Web浏览器」( Google 、火狐、搜狗),在浏览器上输入一个网站的地址,然后回车,这就发送了一个「HTTP请求」,这里请注意,这个请求是发给谁的?答案是「Web服务器」,大家可以理解为是一个放在异地的电脑主机,而这个主机里存放了很多网页文件。

我们输入不同的域名地址,访问到的是不同的主机,比如,我输入https://sspai.com,这就是访问到了少数派家的主机,这个主机收到了我们的请求,发现我们想看少数派首页,因此,它就把首页给我们呈现出来了。

https://sspai.com其实并不是地址的最终形态,它是经过处理的,便于我们记忆的网站地址,其真实的地址应该是一个ip地址,例如 10.20.30.10,而域名只是解析到ip地址上的一个名字,因此,当我们访问 http://10.20.30.10/index.html 的时候, 是同样可以实现访问到少数派的首页的。

HTTP请求

2.HTTP工作流程

2.1 上层协议

HTTP就是一个简单的浏览器请求,然后得到服务器的网页响应吗?当然不是,如果我们把HTTP请求放到OSI模型中,它甚至不能简单放入一层,尽管人们常说它应该是来自应用层的请求,但事实上它跨越了OSI模型的多层,这几层分别是「应用层」、「表示层」、「会话层」,我们也称这三层是一个「上层协议」。

上层协议

当我们点击http://10.20.30.10/index.html 的时候,它会创建要发送的请求,并确保正在发送的任何特殊字符均已正确编码,这里,HTTP并没有真正意义上的管理上层会话。

2.1【传输层】追加源目端口

在传输层,我们使用了称为「TCP」的协议来帮我们进行管理。在上一节我们已经有所了解,传输层会对要传输的数据进行大小判断,若数据很大则需要进行切片或分段,而做这些事儿的角色就是TCP,TCP要做的第一件事儿就是将数据分成几个数据段,接下来他要做什么?当然是给这些数据段添加「源目端口」。

追加源目端口

HTTP通常在服务器端使用80端口,这是我们使用客户端浏 览器要访问的目标端口,因此,在这些数据段前面,「TCP」会追加上「Dst Port:80」,同时,为了让服务器知道我们是用什么浏览器来请求的,会同时追加一个源端口,也就是「Src Port:32768」,这个32768可能是其他的值,根据我们使用的浏览器的不同而不同。

这个源端口和目标端口就是一段「请求标头」,它们紧紧的依附在请求数据上 。TCP会将此信息存储在内内存中,这也是为什么它可以跟踪并知道哪个应用程序正在等待响应。

2.2【网络层】追加源目IP

信息到达网络层,我们需要使用IP地址协助寻址,在URL地址当中,我们可以获知该请求要发送到哪里,10.20.30.10 就是我们请求的目的地,此时的信息会追加「Dst IP:10.20.30.10」,同时,为了让服务器知道请求者的IP地址,会同时追加一个源IP地址,也就是「Src IP:172.16.0.1」,这个源IP地址并不固定,根据使用者的网络环境不同而不同。 

追加源目IP

2.3 【数据链路层】追加源目MAC地址

通过观察上图我们不难发现,客户端电脑和服务器并没有直接连接,它们位于不同的网络上,所以数据包时不能直接发送到服务器上的,若想要实现传输,则必须在数据链路层中将数据先发送给路由器,然后再让路由器帮我们转发数据。

追加源目MAC地址

因为我们有以太网协议,想要将数据从一个网段传递到另一个网段,就必须通过路由器,因此,我们需要在数据包上需要再追加客户端电脑网卡的MAC地址,也就是「Src MAC:AA:BB:CC:11:22:33」以及帮我们转发数据的路由器的MAC地址,也就是「Dst MAC:2A:34:D2:11:23:A1」,需要注意的是,交换机并不需要MAC地址。当然,我们还在数据包末尾追加一段用于纠错的信息,这就是「CRC(Error Checking)」。

2.4 【物理层】数据发送至路由器

通过物理层将数据发送至路由器

最后,我们的客户端主机在追加好这些「标头信息」后,终于将数据发送到了路由器上,当路由器,此时,我们需要借助「网络层」「数据链路层」「物理层」共同协作,将数据包中的「源目MAC地址进行置换」,也就是将「源MAC地址」由原来「客户端主机的MAC地址」替换为该「路由器自己的MAC地址」,然后将「目的MAC地址」替换为「服务器的MAC地址」,这样一来,路由器就可以实现数据转发了。

路由器实现数据转发

2.5 服务器端数据处理

服务器通过链路层收到由路由器转发过来的数据信息,并检查是否有错误,若没有错误则会将「源目MAC地址」及「CRC错误校验」信息剥离,并将信息交给网络层。

剥离源目MAC地址

网络层收到后,确定源目ip地址是否正确,确保信息准确无误后,再将信息转发给传输层。

剥离源目IP地址

传输层,则确定源目端口信息是否准确,然后将数据交给上三层,让应用根据请求地址寻找指定页面,并用脚本获取URL对应参数进行后续处理。

传输层剥离源目端口

原作者:

作者的其他文章:

  1. 小白也能看懂的网络基础 01 | 什么是网络?
  2. 小白也能看懂的网络基础 02 | 连接设备
  3. 小白也能看懂的网络基础 03 | OSI 模型是如何工作的?
  4. 小白也能看懂的网络基础 04 | IP 地址是如何工作的?
  5. 小白也能看懂的网络基础05 | IP地址深度学习