操作系统实战 45 讲
彭东
网名 LMOS,Intel 傲腾项目关键开发者
65203 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 60 讲
尝尝鲜:从一个Hello到另一个Hello (2讲)
特别放送 (1讲)
操作系统实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

36 | 从URL到网卡:如何全局观察网络数据流动?

域名解析:DNS
网络请求前
用户输入
网络协议
网络为什么要分层
网络协议对数据的处理过程
网络协议处理
网络交互过程
目的地定位:IP层
可靠性传输:建立TCP连接
网络应用层
IEEE 802.3标准
OSI参考模型
网络分层
输入URL,从一个请求到响应都发生了什么事?
五节课带你了解计算机网络的关键内容
思考题
重点回顾
客户端服务端的持续数据交换(应用层)
电信号的出口:网卡(物理层)
点对点传输:MAC(链路层)
操作系统协议栈(传输层和网络层)
发起请求阶段(应用层)
前置知识:网络分层和网络协议
从一道经典面试题说起
网络篇的内容
从URL到网卡:如何全局观察网络数据流动

该思维导图由 AI 生成,仅供参考

你好,我是 LMOS。
从这节课起,我们就要开始学习网络篇的内容了。网络是一个极其宏大的知识结构,我会通过五节课带你了解计算机网络的关键内容。
具体我们是这样安排的。作为网络篇的开始,今天这节课我会从一个面试中高频出现的问题切入,带你梳理从输入 URL 到网卡的网络数据流动过程中都发生了什么事。如果你真正理解了这个过程,相信你对整个网络架构的认知也会有质的飞跃。
网络篇的第二节课,我会带你分析网络数据包在内核中如何流转;第三节课,我们一起探讨互联网架构演进过程,并动手做一次协议栈移植;最后两节课,我还是照例带你看看 Linux,让你理解套接字在 Linux 内核中怎样实现。

从一道经典面试题说起

下面我们一起来看看一个问题,估计你多多少少会觉得熟悉。
输入 URL,从一个请求到响应都发生了什么事?
没错,这是一道非常经典的面试题,你在网上随便一搜,也会找到各种各样的资料解答这道题。
不过啊,那些答案都有一些笼统,今天我会尽量详细地为你梳理一下这个过程。跟着我学完这节课,你就能明白,为什么面试官对这道题青睐有加了。
这里我先给你概括一下全过程,让你有个整体印象。
1. 常规的网络交互过程是从客户端发起网络请求,用户态的应用程序(浏览器)会生成 HTTP 请求报文、并通过 DNS 协议查找到对应的远端 IP 地址。
2. 在套接字生成之后进入内核态,浏览器会委托操作系统内核协议栈中的上半部分,也就是 TCP/UDP 协议发起连接请求。
3. 然后经由协议栈下半部分的 IP 协议进行封装,使数据包具有远程定位能力。
4. 经过 MAC 层处理,找到接收方的目标 MAC 地址。
5. 最终数据包在经过网卡转化成电信号经过交换机、路由器发送到服务端,服务端经过处理拿到数据,再通过各种网络协议把数据响应给客户端。
6. 客户端拿到数据进行渲染。
7. 客户端和服务端之间反复交换数据,客户端的页面数据就会发生变化。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入浅出地解释了网络数据流动的全过程,从用户输入URL到网络数据包在网卡的流转,详细介绍了网络分层和网络协议的重要性。文章从发起请求阶段开始,讲解了用户输入URL、浏览器缓存、域名解析和DNS解析的过程。随后,详细解释了TCP连接的建立、TCP包头字段、IP层处理,以及MAC地址、MAC头格式和数据包转化为电信号的过程。最后描述了客户端与服务器之间用网络协议连接通信的过程。整体而言,本文内容丰富,适合想要全面了解网络数据流动过程的读者阅读。文章重点强调了网络协议对数据的处理过程,以及处理过程中不同协议的数据结构和关键头部字段。读者可以通过本文快速了解网络数据流动的全过程,对网络协议的重要性有更深入的理解。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《操作系统实战 45 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • pedro
    内核接管应用层数据后依次将其打包为tcp包(传输层),帧(数据链路层),并数据其从内核拷贝到网卡,后续由网卡负责数据的发送;反过来内核收到网卡数据后层层解析,并将数据包交给用户态应用程序。

    作者回复: 哈哈 铁子 快

    2021-07-30
    2
    6
  • 艾恩凝
    天呐,这文章真的超赞,这是我见过讲的最通俗易懂的关于“ 输入 URL,从一个请求到响应都发生了什么事?”计算机网络是个人来说最欠缺的,因为不感兴趣,这篇直接点燃了内心兴趣之火,听说星星之火可以燎原,哈哈哈

    编辑回复: 兴趣是学习的助燃剂,哈哈哈~

    2022-05-15
    2
  • 青玉白露
    在内核中是分层级处理的,一层包一层。

    作者回复: 哈哈 也对

    2021-07-30
    2
  • springXu
    这道思考题是下节课的内容么?

    作者回复: 哈哈

    2021-07-30
    1
  • 梦醒十分
    精彩的文章。

    编辑回复: 很开心得到认可~欢迎多多分享你的学习体会

    2023-02-12归属地:上海
  • memora
    小白发问,第一张图ISO-OSI中最右边的箭头是不是先指向SO物理介质?

    作者回复: 是的,图中的箭头描述的是宏观层面指向的是整体。但微观层面确实是先传到物理层再依次向上传递的。

    2021-08-04
  • Geek_b3ad17
    讲的非常好
    2024-03-09归属地:江西
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部