面视必备,史上最通俗计算机网络分层详解

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

1、引言

整个暑假去面试,面试了很多家公司(无论是小厂还是大厂)问到的深度不同,网络原理是面试最容易问到的问题,虽然我们在项目中很少去实践它,但是了解其原理,会让我们背后网络通信是如果工作的,既能在面试官面前体现出你的基础是否扎实,也能对以后深入网络这部分学习有更多的了解。

很多同学面试在准备这部分的时候,都会去背,这部分确实很难掌握,我个人总结的最好的学习网络原理的方法就是不用刻意的去记忆而是完全的结合实际去讲整个原理融会贯通。虽然一开始学习起来很吃力,但是稍微用点心,多看几遍,多问自己为什么,把自己当做是开发网络原理的开发者,面试前的准备只要理清逻辑就足够了,而不是去背这部分内容。

而且这部分相同的知识点面试官有多种提问方式,但是其中很多都是换汤不换药。我记得最多的问的是输入URL,到页面呈现出来,其中经历了什么?这道面试题的背后,涉及到了很多网络原理的知识,我们这篇文章不会全部分享到,而是先把由来和网络层次划分弄清楚,就完成了这篇文章的目的。

2、为什么要进行网络层次划分?

说到网络层次划分并不陌生,我刚刚接触到网络层次的时候一脸懵逼,这么多层,一层不就行了嘛?层与层之间好多协议,还有各种数据包,第一次我放弃了。

当我从新拾起网络层次的时候,我下定决心从根上理解它。首先弄明白它的原理,那必定要知道它的由来,也就是为什么要进行网络层次划分?这个问题问的好。

假如“小鹿”是网络的开发人员,起初认为计算机与计算机之间的通信只需要一根线就可以完成通信,对没错,但是世界那么大,那么多计算机,距离又远,不但浪费线,还没出现各种线被你偷偷剪断的情况,毋庸置疑,那计算机之间通信就不行了。(后边出来了无线网,虽然其中网关、路由之间也需要连线,但不是让每台计算机两两连接,而是一个区域为单位计算机相互连接通信)

不行,老板说,“小鹿”你给我想法子改,改不出来今晚不能睡觉,“小鹿”仔细想了想,这还是个技术活,需要进行全面的改进,也发现所谓的计算机之间的连线只能传送0、1信号,另一台计算并不知道那么多0、1代表什么,而且“小鹿”又发现不同厂商的生产的计算机既然有连线实现通信也是很麻烦的,干脆定义一套规则吧,无论“某硕”计算机还是“某想”计算机,都必须遵守这套规则,其实所说的这套规则就是我们经常说的“网络协议”。

不是说网络层次的由来吗,怎么讲到网络协议了。咱们继续,通过上面的问题,那个计算机之间通过连线传送0、1信号的问题虽然规定了通信规则,但是除了像0、1这种无意义的信号之外,网络中还存在着其他各种各样的问题,两个计算机之间怎么进行识别?以及怎么才能知道对方的地址?以及不同计算机应用程序怎么知道是给自己传递的数据,还有不同的通信数据格式怎么来规定等等一系列的问题都出来了。

“小鹿”发现,如果各种问题都写成一套协议来规定双方通信的规则,但是呢?万一其中哪些规则通信中出现问题,影响到了其他规则,最常见的就是数据包,一个数据包中如果包含各种各样的协议,不就乱套了。

“小鹿”为了能够把它设计的更好,决定采用分层划分的结构,既能规定不同层的完成的功能,又能实现层与层之间的改动而不相互影响,这就是我们经常听到网络划分层次的好处。

3、网络分层是如何进行分层的?

既然我们决定要分层,那么分为几层才好呢?

起初网络分层是标准的七层,也就是我们所说的 OSI 七层模型。

▲ OSI参考模型或七层模型

我们所知道的还有 TCP/IP 四层模型和 TCP/IP 五层模型。这又是怎么出来的,其实所谓的 TCP/IP 四层模型和 TCP/IP 五层模型是以 OSI 七层优化而来,把某些层进行合并了,其实本质上还是相同的,但是我个人最喜欢用五层来解释。

OSI模型中各层单位-报文、报文段、数据报(Datagram)、数据包(Packet)和分组、帧的概念区别 OSI模型中各层单位-报文、报文段、数据报、数据包和分组、帧的概念区别 报文(message):报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文在传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头。 报文段(Segment):通常是指起始点和目的地都是传输层的信息单元。 数据报(Datagram):向无连接的数据传输,其工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数 阅读详情

相关推荐

保姆级教程:在Ubuntu 22.04上用Conda搞定nuPlan数据集环境(Python 3.9 + PyTorch)

本文提供了一份详细的Ubuntu 22.04环境下使用Conda配置nuPlan自动驾驶数据集的保姆级教程,涵盖Python 3.9安装、Conda环境管理、PyTorch配置及数据集可化验证等关键步骤,帮助开发者高效搭建开发环境。

weixin_29061997的博客 224

OSI七层模型,报文数据包帧详解,tcp三次握手与四次挥手说明,WireShark抓包分析

tcp三次握手与四次挥手

weixin_47680367的博客 6139

Vivado安装教程:多版本共存的配置技巧

详解Vivado安装教程中的多版本共存配置技巧,帮助用户在同一系统中管理不同版本的Vivado开发环境,提升开发效率与兼容性,适用于需要切换版本的FPGA开发者。

weixin_35257663的博客 1680

【通信协议】帧、数据报、数据包的区别和联系

在学习计算机网络时,我们经常会遇到帧、数据包、数据报等名词?有人会问,他们不是都一样的吗,不是都是在网络传输的数据概念吗?其实它们三个还真不一样。那我们赶紧看一下他们之间的区别和联系。       我们首从概念上来区分他们:       数据帧(Frame):就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如...

我的笔记本 7733

osi模型中各层数据单元的名称

OSI模型每层的数据单元名称第一层:物理层;二进制比特流传输;bit(比特流);第二层:数据链路层;介质访问控制;frame(帧);第三层:网络层;确定地址和路由选择;packet(包),又叫做分组第四层:传输层;端到端连接;也叫作数据包。但是谈论TCP等具体协议时有特殊叫法,TCP数据单元叫数据段,segment(段),而UDP协议的数据单元称为数据报(datagram)第五层:会话层;互联主机通信;第六层:表示层;数据表示;第七层:应用层;为应用程序提供网络服务数据发送时,数据从应用层到物理层;接收时

Wisky_sour的博客 1万+

TCP/IP OSI七层模型

本章将会讲解ICP/IP协议中的七层模型,网络重要知识点哦七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。应用层:网络服务与用户的接口表示层:数据的表示、安全、压缩会话层:会话的建立、管理、断开传输层:通过协议端口号定义对方上层服务,流量控制、差错校验。

yj11290301的博客 2万+

在计算机中是什么意思_必备史上通俗计算机网络分层详解

1、引言整个暑假去试,试了很多家公司(无论是小厂还是大厂)问到的深度不同,网络原理是容易问到的问题,虽然我们在项目中很少去实践它,但是了解其原理,会让我们背后网络通信是如果工作的,既能在试官前体现出你的基础是否扎实,也能对以后深入网络这部分学习有更多的了解。很多同学试在准备这部分的时候,都会去背,这部分确实很难掌握,我个人总结的好的学习网络原理的方法就是不用刻意的去记忆而是完全的...

weixin_29702195的博客 820

史上通俗计算机网络分层详解,系列篇

前言 本人水平有限,此文针对于自认为技术实力对标阿里P7,百度T5或者以下的读者,如果是大佬不小心点进来了,可以自行点x略过。文内并不会出现每一家公司的试过程细节,主要目的在于帮助大家怎么在像我一样菜的情况下在这寒冬拿下offer或者说有复习准备方向。 在开始复习知识点前,要确认以下 2 点: 定位 “定位” 是指你要确定自己所处的阶段和想要达到的水平。主要包括: 目前是什么水平 有什么项目积累 工作项目里有什么难点 想找什么级别的工作 薪资 比如我,给自己的定位就是:现在是中级.

m0_56259669的博客 234

史上通俗计算机网络分层详解,附架构师必备技术详解

前言 这是群里一个朋友的故事,姓名匿了,代称老张。 老张是大专毕业的,计算机专业,刚出来的时候,没有拿的出手的学历,也没什么特别突出的能力,工资也特别低,只能说能够在这个二线边缘城市养活自己吧,基本上没有什么余钱。 在小厂干了一年后,老张跳了两次槽,都是不怎么知名的厂,但是工资有了10K,这对他来说已经是相当可观的一笔工资了。 在这个厂,老张兢兢业业,干了三年,期间也有了女朋友,一年前结了婚,前不久怀上了孩子。家里的开支眼见着上涨了,老张决定和老板商量一下涨工资的事情。 在那个小厂,老张可以说是一个骨干,这

m0_57983503的博客 146

史上通俗计算机网络分层详解,我收藏为敬

开头 学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习XX该看什么书,如何快速学习XXX,学习XXX有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,3年不学新东西就可能落伍了。 动手能力,都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。 耐心和毅力,做程序员兴趣固然重要,写自己喜欢的代码那是相当愉快的事情,但是程序开发中无论如何还有大量乏味无趣的事情,要能坚持,咬

m0_56228922的博客 124

flutter技术栈!史上通俗计算机网络分层详解,架构师必备技能

目录 想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样。 PagerAdapter 介绍 ViwePager 缓存策略 ViewPager 布局处理 ViewPager 事件处理 相关内容 试题主要问的有以下这些: 一 (因为过程比较顺利,题目没有好好记下来,大概就是下这些吧) 1.项目相关 2.hashmap 3.线程a 等b,b等c的实现 4.类的equals重写 5.线程安全是什么 如何保证多线程安全 6.public private

chayel123的博客 631
上一篇: IM里“附近的人”功能实现原理是什么?如何高效率地实现它?
下一篇: 你知道,HTTPS用的是对称加密还是非对称加密?
Jack Jiang ????
博客等级 码龄7年 65粉丝 21原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值