趣谈网络协议
刘超
网易研究院云计算技术部首席架构师
立即订阅
39583 人已学习
课程目录
已完结 51 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 想成为技术牛人?先搞定网络协议!
免费
第一模块 通信协议综述 (4讲)
第1讲 | 为什么要学习网络协议?
第2讲 | 网络分层的真实含义是什么?
第3讲 | ifconfig:最熟悉又陌生的命令行
第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?
第二模块 底层网络知识详解:从二层到三层 (5讲)
第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
第7讲 | ICMP与ping:投石问路的侦察兵
第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行
第9讲 | 路由协议:西出网关无故人,敢问路在何方
第二模块 底层网络知识详解:最重要的传输层 (4讲)
第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”
第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松
第12讲 | TCP协议(下):西行必定多妖孽,恒心智慧消磨难
第13讲 | 套接字Socket:Talk is cheap, show me the code
第二模块 底层网络知识详解:最常用的应用层 (4讲)
第14讲 | HTTP协议:看个新闻原来这么麻烦
第15讲 | HTTPS协议:点外卖的过程原来这么复杂
第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
第17讲 | P2P协议:我下小电影,99%急死你
第二模块 底层网络知识详解:陌生的数据中心 (6讲)
第18讲 | DNS协议:网络世界的地址簿
第19讲 | HTTPDNS:网络世界的地址簿也会指错路
第20讲 | CDN:你去小卖部取过快递么?
第21讲 | 数据中心:我是开发商,自己拿地盖别墅
第22讲 | VPN:朝中有人好做官
第23讲 | 移动网络:去巴塞罗那,手机也上不了脸书
第三模块 热门技术中的应用:云计算中的网络 (5讲)
第24讲 | 云中网络:自己拿地成本高,购买公寓更灵活
第25讲 | 软件定义网络:共享基础设施的小区物业管理办法
第26讲 | 云中的网络安全:虽然不是土豪,也需要基本安全和保障
第27讲 | 云中的网络QoS:邻居疯狂下电影,我该怎么办?
第28讲 | 云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私
第三模块 热门技术中的应用:容器技术中的网络 (3讲)
第29讲 | 容器网络:来去自由的日子,不买公寓去合租
第30讲 | 容器网络之Flannel:每人一亩三分地
第31讲 | 容器网络之Calico:为高效说出善意的谎言
第三模块 热门技术中的应用:微服务相关协议 (5讲)
第32讲 | RPC协议综述:远在天边,近在眼前
第33讲 | 基于XML的SOAP协议:不要说NBA,请说美国职业篮球联赛
第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
第35讲 | 二进制类RPC协议:还是叫NBA吧,总说全称多费劲
第36讲 | 跨语言类RPC协议:交流之前,双方先来个专业术语表
第四模块 网络协议知识串讲 (4讲)
第37讲 | 知识串讲:用双十一的故事串起碎片的网络协议(上)
第38讲 | 知识串讲:用双十一的故事串起碎片的网络协议(中)
第39讲 | 知识串讲:用双十一的故事串起碎片的网络协议(下)
第40讲 | 搭建一个网络实验环境:授人以鱼不如授人以渔
答疑与加餐 (9讲)
协议专栏特别福利 | 答疑解惑第一期
协议专栏特别福利 | 答疑解惑第二期
协议专栏特别福利 | 答疑解惑第三期
协议专栏特别福利 | 答疑解惑第四期
协议专栏特别福利 | 答疑解惑第五期
加餐1 | 测一测:这些网络协议你都掌握了吗?
加餐2 | 创作故事:我是如何创作“趣谈网络协议”专栏的?
加餐3 | “趣谈网络协议”专栏食用指南
第2季回归 | 这次我们来“趣谈Linux操作系统”
结束语 (1讲)
结束语 | 放弃完美主义,执行力就是限时限量认真完成
趣谈网络协议
登录|注册

第2讲 | 网络分层的真实含义是什么?

刘超 2018-05-21
长时间从事计算机网络相关的工作,我发现,计算机网络有一个显著的特点,就是这是一个不仅需要背诵,而且特别需要将原理烂熟于胸的学科。很多问题看起来懂了,但是就怕往细里问,一问就发现你懂得没有那么透彻。
我们上一节列了之后要讲的网络协议。这些协议本来没什么稀奇,每一本教科书都会讲,并且都要求你背下来。因为考试会考,面试会问。可以这么说,毕业了去找工作还答不出这类题目的,那你的笔试基本上也就挂了。
当你听到什么二层设备、三层设备、四层 LB 和七层 LB 中层的时候,是否有点一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么“工作”?

这四个问题你真的懂了吗?

因为教科书或者老师往往会打一个十分不恰当的比喻:为什么网络要分层呀?因为不同的层次之间有不同的沟通方式,这个叫作协议。例如,一家公司也是分“层次”的,分总经理、经理、组长、员工。总经理之间有他们的沟通方式,经理和经理之间也有沟通方式,同理组长和员工。有没有听过类似的比喻?
那么第一个问题来了。请问经理在握手的时候,员工在干什么?很多人听过 TCP 建立连接的三次握手协议,也会把它当知识点背诵。同理问你,TCP 在进行三次握手的时候,IP 层和 MAC 层对应都有什么操作呢?
除了上面这个不恰当的比喻,教科书还会列出每个层次所包含的协议,然后开始逐层地去讲这些协议。但是这些协议之间的关系呢?却很少有教科书会讲。
学习第三层的时候会提到,IP 协议里面包含目标地址源地址。第三层里往往还会学习路由协议。路由就像中转站,我们从原始地址 A 到目标地址 D,中间经过两个中转站 A->B->C->D,是通过路由转发的。
那么第二个问题来了。A 知道自己的下一个中转站是 B,那从 A 发出来的包,应该把 B 的 IP 地址放在哪里呢?B 知道自己的下一个中转站是 C,从 B 发出来的包,应该把 C 的 IP 地址放在哪里呢?如果放在 IP 协议中的目标地址,那包到了中转站,怎么知道最终的目的地址是 D 呢?
教科书不会通过场景化的例子,将网络包的生命周期讲出来,所以你就会很困惑,不知道这些协议实际的应用场景是什么。
再问你一个问题。你一定经常听说二层设备、三层设备。二层设备处理的通常是 MAC 层的东西。那我发送一个 HTTP 的包,是在第七层工作的,那是不是不需要经过二层设备?或者即便经过了,二层设备也不处理呢?或者换一种问法,二层设备处理的包里,有没有 HTTP 层的内容呢?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈网络协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(275)

  • 云学
    通信协议就像没有天桥的双子楼,要从A座的24层到达B座24层就得先下楼梯再上楼梯,其他协议也是如此,比如4G
    2018-05-21
    3
    700
  • 小雨
    很像发快递的过程(http,应用层),你向顺丰下单(第一次请求),顺丰接单(应答),你向手机小伙联系(回应应答),你将消息放进盒子里(开始封装请求,会话层),快递员封装一层盒子贴上快递单带回网店(传输层),到快递点检查是否区域快件(网络层),将快件交给运输车(链路层),各个快递转运中心(物理层),快件到达收件市转运中心(物理层),转运输车(链路层),到达区域分发(网络层),网点派送(传输层),快递员方面签收(会话层),拆开检查(表示层),收到快递(应用层)。
    2018-05-22
    1
    403
  • 丹丹
    为啥有了ip还需要mac地址,因为没有mac地址网络包发不出去?这个解释还是很模糊看不懂啊
    2018-05-21
    10
    246
  • ramblelily
    mac地址局域网寻址,ip地网络寻址,感觉这个作用对理解也很重要
    2018-05-21
    97
  • 蠢蠢欲动的腹肌
    很多朋友都有疑惑为什么有ip还需要mac地址,其实在老师第一篇文章中已经有了一定的解释,第一篇底下的留言也有不错的说明,个人理解是ip可以保证要发送的包在网络中传输,到达目标服务器所在的局域网的网关,但是到了网关后,ip就没有用了,因为局域网中的ip对应的机器是不确定的,可能今天对应A机器,明天对应B机器。所以在局域网中使用ip寻址是不严谨的,这时就需要mac地址来唯一对应一台机器,这样网络包就可以准确的传输到需要的主机上了。

    另想请教老师,在网关之间传输的时候,下一个网关的ip是如何存储的,这是文章中的问题,但是好像没发现答案,谢谢

    作者回复: 这在后面网关一节有回答

    2018-05-23
    2
    93
  • chinhu ko
    计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。

    作者回复: 赞

    2018-05-26
    1
    54
  • return
    我觉得就像古代战报传送一样。将军发命令,秘书写。在找人包装盖章,再找人发送,每过一个关卡都要盖公函。到了皇城 一层一层往上。先看是发给那个部门的,去掉一层直接把内容发到上一级。最终到了皇上手里,他无需知道是经过了哪些驿站关卡。只需要知道是哪个将军发的,发的什么。用中文写的还是英文写的就OK了
    2018-05-21
    42
  • 哈哈
    为什么网络要分层?,你竟然说,是个复杂的程序就要分层,,,,,,,那么苹果为什么掉到地上,你的解释就是,是个苹果都掉地上咯,,
    2018-07-21
    3
    39
  • 黑桃
    感觉说ip地址会变,mac不变的,都没有好好看文章,包在到达目的地之前是不知道目标mac地址的,包到达目的地之后也是大吼一声谁是ip XXX,那么mac地址不变有毛用??目前的理解应该是,封装对下层的变化

    作者回复: 对的,理解很正确

    2018-09-20
    2
    38
  • 陈炽伟
    老师你好,
            我觉得对于 网络为何要分层?这个问题的解释有点过于牵强,虽说复杂的程序都要分层这点没错,但我觉得这只是它的表现,网络每一层协议负责的工作都是不一样的,也就对应了有不同设备来处理。
            比如应用层,一般是由计算机来处理,用于用户可使用的实际程序上;网络层,是网关之间的通讯协议,一般是路由器作处理转发。
            倘若说整个网络只有一层,网络上所有节点都处于同一层级,必然会造成混乱,所以最主要原因还是要明确职责。

    作者回复: 对的,这是架构和设计模式的问题

    2018-06-02
    29
  • HardToGiveaName
    感觉两个问题老师还可以答的更深,不知道是不是篇幅限制:
    1.网络为什么要分层;
    2.有了ip地址,还要mac地址做什么。
    希望老师能够就这两方面给各同学更多的解答

    作者回复: 接下来,会从物理层,二层,三层,一层层讲上去的

    2018-05-21
    25
  • 不爱学习的好孩子
    对于我这样的热门者,觉得这篇不冗余,而且写的很好,原因是这是一篇bigpicture,对后续的学习很有指导意义。
    2018-05-21
    24
  • 约书亚
    这应该算是解答了上一节课的思考题了,就这么简单。翻回头看上节课留言,很多人一两句话解答了,0赞,很多绕了一大圈也没回答到点上的,高票。极客时间应产品经理应该考虑重新定义点赞功能了,对于不不了解这部分知识的人容易被高票误导。甚至在隔壁看到过高票写的内容和老师讲的正相反的情况,结果一堆赞,说明根本也没人细看

    说到process http的例子,确实思考过为什么不能由操作系统或者驱动来实现“部分”(不可能是全部)http协议,让web server开发更简单些
    2018-05-21
    24
  • 桐仲康
    就想我们之前写信一样,ip地址是收信人的地址,mac地址对写信人不可见,就是各个邮政局的地址,信件在各个邮政局间传递,mac地址不断变化,最后到达收信人手中。
    2018-05-23
    19
  • loveluckystar
    我觉得传输包的过程就是一次快递打包的过程。店家发货,把商品交给快递,快递层层包装,运输给用户。用户拿到以后,并不知道是什么,只知道是给自己的,然后层层拆包装拿到商品
    2018-05-21
    18
  • 李颖倩🐰
    我感觉有点像出门要穿衣服,一件一件穿完了,就可以出去玩了,玩回来,再一件一件的脱~
    2018-11-26
    2
    16
  • 登高
    实心俄罗斯套娃
    2018-05-21
    16
  • croco
    很像你去找你女朋友。 你=》穿内衣=》穿衣服=》坐车=》转车到地方=》脱衣服=脱内衣=见女朋友

    编辑回复: ......

    2019-06-13
    7
    15
  • MichaelJY
    刚看完,感觉被面试到又gg了……

    我感觉网络层之间的关系可以类比信封发送和接收的过程。邮递员,邮局相当于网络各层。整体下来都是装包和拆包。

    查看ip,我一般用ipconfig/ifconfig……,感觉又有坑点,希望通过整个网络协议的学习,达到知而不惑
    2018-05-21
    14
  • 啦啦啦
    为啥我一般都不喜欢比喻,喜欢直接理解原理,通过说明理解原理,是我与众不同吗?还是有不少和我一样的
    2018-09-27
    2
    13
收起评论
99+
返回
顶部