第2讲 | 网络分层的真实含义是什么?
刘超
该思维导图由 AI 生成,仅供参考
长时间从事计算机网络相关的工作,我发现,计算机网络有一个显著的特点,就是这是一个不仅需要背诵,而且特别需要将原理烂熟于胸的学科。很多问题看起来懂了,但是就怕往细里问,一问就发现你懂得没有那么透彻。
我们上一节列了之后要讲的网络协议。这些协议本来没什么稀奇,每一本教科书都会讲,并且都要求你背下来。因为考试会考,面试会问。可以这么说,毕业了去找工作还答不出这类题目的,那你的笔试基本上也就挂了。
当你听到什么二层设备、三层设备、四层 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/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了计算机网络分层的重要性和实际应用,以网络协议为例,指出了学习网络分层时常见的困惑和误解。通过提出问题、解释原理和举例说明的方式,为读者呈现了网络分层的真实含义和重要性,帮助读者更好地理解和应用这一概念。作者以生动的比喻和场景化的例子,让读者更直观地理解网络分层的原理和实际运作方式。文章强调了网络包的完整性原则,以及处理网络包的程序化思维方式,为读者提供了理解网络协议工作模式的小窍门。整体而言,本文通过深入浅出的方式,让读者快速了解网络分层的概念和技术特点,为网络协议的学习提供了有益的指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》,新⼈⾸单¥68
《趣谈网络协议》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(401)
- 最新
- 精选
- croco很像你去找你女朋友。 你=》穿内衣=》穿衣服=》坐车=》转车到地方=》脱衣服=脱内衣=见女朋友
编辑回复: ......
2019-06-1370441 - 蠢蠢欲动的腹肌很多朋友都有疑惑为什么有ip还需要mac地址,其实在老师第一篇文章中已经有了一定的解释,第一篇底下的留言也有不错的说明,个人理解是ip可以保证要发送的包在网络中传输,到达目标服务器所在的局域网的网关,但是到了网关后,ip就没有用了,因为局域网中的ip对应的机器是不确定的,可能今天对应A机器,明天对应B机器。所以在局域网中使用ip寻址是不严谨的,这时就需要mac地址来唯一对应一台机器,这样网络包就可以准确的传输到需要的主机上了。 另想请教老师,在网关之间传输的时候,下一个网关的ip是如何存储的,这是文章中的问题,但是好像没发现答案,谢谢
作者回复: 这在后面网关一节有回答
2018-05-2311139 - chinhu ko计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。
作者回复: 赞
2018-05-263114 - 黑桃感觉说ip地址会变,mac不变的,都没有好好看文章,包在到达目的地之前是不知道目标mac地址的,包到达目的地之后也是大吼一声谁是ip XXX,那么mac地址不变有毛用??目前的理解应该是,封装对下层的变化
作者回复: 对的,理解很正确
2018-09-20692 - 陈炽伟老师你好, 我觉得对于 网络为何要分层?这个问题的解释有点过于牵强,虽说复杂的程序都要分层这点没错,但我觉得这只是它的表现,网络每一层协议负责的工作都是不一样的,也就对应了有不同设备来处理。 比如应用层,一般是由计算机来处理,用于用户可使用的实际程序上;网络层,是网关之间的通讯协议,一般是路由器作处理转发。 倘若说整个网络只有一层,网络上所有节点都处于同一层级,必然会造成混乱,所以最主要原因还是要明确职责。
作者回复: 对的,这是架构和设计模式的问题
2018-06-02356 - Leoorz感觉两个问题老师还可以答的更深,不知道是不是篇幅限制: 1.网络为什么要分层; 2.有了ip地址,还要mac地址做什么。 希望老师能够就这两方面给各同学更多的解答
作者回复: 接下来,会从物理层,二层,三层,一层层讲上去的
2018-05-2131 - 陈毓飞1. IP是三层协议,必须封装在二层协议(比如以太网协议)中,然后二层协议再通过硬件把包发出去,所以需要MAC地址(二层地址);2. IP,Internet Protocol,网络互联协议,它设计出来是为了互联不同的网络的,他的作用是在不同网络之间做寻址。
作者回复: 是的
2018-09-1216 - Michael分层有以下优点: 1.各层独立 每一层不需要知道下一层是如何实现的,只需要知道层间的接口和所提供的服务。 2.灵活性好 当任意层发生变化时,只要接口不变,上下层均不受影响。 3.结构上分开 各层可采用最适合的技。 4.易于实现和维护 5.促进标准化 由于每一层及其提供的服务都有明确的定义,所以能够促进标准化。
作者回复: 赞,分层就像煎饼要分层一样,可以灵活组合。面层:有人要吃绿豆面的,有人要吃紫薯面的,加层:有人要加薄脆,有人要加油条,另加层:有人要加烤肠,有人要加里脊,蛋层:有人加一个蛋,有人加两个蛋,酱层:有人要辣酱,有人要甜面酱,菜层:有人要生菜,有人要鸡毛菜
2019-05-03215 - Jay这个上下层是不是指的内外层,最内层是http包,最外层是Mac地址?
作者回复: 是的
2018-05-2315 - kid有次去面试 被问到: 每层都要加一个‘头部’,可不可以把这个‘头部’放到后面?为什么? 本来是 MAC头 - IP头 - TCP头 - HTTP头 - HTTP正文 变成 HTTP正文 - HTTP头 - TCP头 - IP头 - MAC头 因为很都教程上都是把头信息放到‘数组’前面的。 所以我当时回答是可以的 现在想来 其实不是‘数组’而是一层一层的‘包裹’??
作者回复: 是的buffer
2019-03-21512
收起评论