飞道的博客

计算机网络到底讲了些什么

481人阅读  评论(0)

小智:大鹏哥,我最近看了下计算机网络,把书上的内容都过了一遍,可是感觉还是串不起来,不知道计算机网络到底讲了些什么内容,也不知道重点在哪里,你能不能给我梳理梳理呀!

计算机为什么要联网

大鹏:行,那咱们就从“计算机网络”这五个字说起,计算机网络,顾名思义,就是由计算机组成的网络,那计算机组成网络要干什么呢?我们知道,不联网的计算机只能单兵作战,只能玩单机游戏,只能简单的处理文档,而通过联网,计算机可以玩网游,可以看电影,可以聊QQ,总之,计算机联网之后功能大大扩展。那回到刚刚计算机要组成网络的问题,很显然,计算机组网是为了计算机能相互通信,是为了避免信息孤岛,能够将网络中的信息传播到各个地方。 计算机间的通信跟人与人之间沟通对话很类似,人与人沟通对话使用语言,语言有很多种,但是每种语言都有自己的语义语法,就是语言得讲究一定规则,这样掌握同种语言的人对话,大家才能理解彼此话语的含义,那么在计算机通信中,我们把这种通信的规则叫做网络协议,像人类语言有很多种一样,网络协议也有很多种,用来适应不同场景的通信。

网络分层的好处

小智:嗯,这个我知道,我在书里面是看到了各种各样的网络协议,书里面还提到了网络分层的事情呢,像什么ISO七层模型,还有个什么五层模型,不同层里面还有不同协议,可我就是没弄明白,网络为什么要分层呢?

大鹏:你这个问题问得很好,其实说到网络分层,我个人的理解,分层设计的好处是每个层次只负责自己的那部分事情,一层套一层,自己那层的任务完成了就交给下一层处理,各司其职,每层都遵守自己的规则,配合起来完成网络通信的工作,不至于大家都搅在一起,职责不明,看起来混乱。网络通信的这种分层模型从设计之初到现在,历经几十年也不曾变化,就和我们前面谈到冯诺依曼的计算机模型一样,可见其伟大高明之处。

网络层次划分

小智:嗯嗯,你这么说我就大概明白为什么要分这么多层了,可是书上为什么又是说七层模型又是说五层模型呢,搞得我有点晕呢。

大鹏:网络分层,ISO标准组织分层是分为七层,而实际我们都是按五层模型来说的,我工作这么多年,也没人跟我谈七层模型了,也就是标准是标准,我们理解还是按五层来理解,因为按五层来划分其实更合理,我们也不用去纠结这个,我们只要知道五层模型分别是物理层、数据链路层、网络层、传输层和应用层。层次之间的关系看看下面这个图。

 

小智:那我现在就很想知道每个分层里面包含哪些内容?每一层到底都要干些什么,你再给我讲讲呗。

大鹏:每一层里面包含的内容主要有不同的网络协议以及计算机的标识,计算机的标识就类似于人跟人对话,我们得知道是谁跟谁对话,比如张三跟李四对话,那张三李四就是这个标识。

物理层

我们先来看物理层,物理层其实我们关注得不多,物理层主要是要解决通信链路的问题,可以这么理解,我们人说话也是要借助媒介的,高中课程里面我们就知道,说话声音是通过空气传播的,那计算机网络协议也得承载在一个物理媒介中传播,比如我们能看到的网线、光纤以及计算机的网卡等等,物理媒介主要是决定了网络通信的速率,对于物理传输,工程实践中关注得比较多,我们只做了解即可。

数据链路层

物理层之上是数据链路层,计算机在数据链路层的标识我们叫它mac地址,这个mac地址在我们的电脑,网络和共享中心上就可以查看到,看看这个图:

 

mac地址其实是配在我们电脑的网卡上的,每块网卡都有一个mac地址,是网卡出厂时就配置好的。在数据链路层,跟mac地址相关的协议就是以太网协议,以太网协议简单来说就是记录两台计算机通信的源mac地址和目的mac地址。

网络层

数据链路层往上就是网络层了,网络层协议当然就要数大名鼎鼎的IP协议了,IP协议对应的计算机标识是IP地址,如果把mac地址和ip地址做一个对比的话,我们可以这么简单理解,有了mac地址,就相当于咱们有了身份证,可以在国内到处耍了,但是要出国耍,那咱们还得再搞个IP地址,就相当于我们出国得办护照。让我们来看下我们电脑的ip地址:

 

传输层

网络层之上是传输层,前面讲到数据链路层有mac地址,网络层有IP地址,其实有了这两种地址,网络中的两台计算机已经能找到对方了,那我们还要传输层做什么呢?

其实是这样的,打开我们的电脑,我们可以看到电脑系统上安装有各种各样的软件,比如QQ、王者荣耀、腾讯视频等等这些,两台电脑通信,最终还是两台电脑上的软件通信,要详细的区分两台电脑到底是哪些软件相互通信,就要用到传输层了,传输层有一个重要的概念叫做端口,简单理解,端口其实就是用来区分各个软件的,另外,传输层涉及到的两个大名鼎鼎的协议就是tcp协议和udp协议,这两个协议各有所长,但是都有端口的概念包含在其中。

应用层

最上一层就是应用层了,应用层面向的是最终的用户了,离我们最近,也最好理解,那么应用层要解决什么问题呢?

应用层要解决的其实就是我们在使用各种软件时需要遵守的规则,比如我们打开浏览器浏览新闻,比如我们发送邮件,比如我们传输文件,比如我们远程登录一台服务器,这些都与应用层协议有关,由于我们使用电脑的功能场景非常多,所以应用层协议的种类非常多,变化也非常快,有大家公知耳熟能详的http、ftp等等协议,也有大厂家比如鹅厂的QICQ等协议,这也再次印证了计算机网络分层的好处,像网络层传输层这些底层层次保持长久不变,而应用层随着网络应用的丰富,可以支持扩展,满足实际应用场景的需求。

关于两台电脑在五层通信的模型,我们看看下面这张图:

学习计算机网络的重点

小智: 大鹏哥,你这样一讲,我思路就清晰了很多,那你再跟我说说,我学计算机网络,到底该重点学些啥?

大鹏: 这个问题从我大学毕业到现在参加工作十年,其实我也一直在思考回想,一本计算机网络教材那么多内容,都是我要掌握的吗? 为什么教材要整那么多内容,还写的晦涩难懂呢? 其实过了这么久,我也终于想明白了,计算机网络作为一个计算机学科分支,从写教材的人来说,其实是站在一个学术角度,需要完整展现计算机网络知识体系的角度去写的,那么对于我们读者受众来说,哪些才是我们需要重点掌握的呢?

这个问题其实还是要看我们以后的职业规划,如果我们是奔着做计算机学术研究的,那我们的知识层面必须全面一些,对于物理层包括信息编码、传输介质这些知识也都必须得掌握;

如果我们是有志从事网络工程工作的,比如做网络设备,路由器交换机防火墙这些,那我们的网络知识就得全面一些,各个网络层次的协议也都得知道;

如果我们只是一个互联网IT行业的码农,其实我们重点要掌握的是ip/TCP协议,我们得知道如何写代码通过tcp或者udp协议与对端通信,知道如何做通信的性能调优等等。

小智:嗯嗯,明白了,我觉得我想做第二种人,所以我要好好学习各个层次的网络协议了。

大鹏:兴趣是最好的老师,只要你感兴趣,什么都好说。今天呢,其实也只是跟你一起理清了一下思路,后面我们要学习的内容还有很多很多,关于今天所讲的内容,我用下面这张脑图梳理一下,看这个脑图会清晰很多,下次我们再讲讲网络各个层次之间是如何配合工作的。

 

获取更多电子书资料电子书学习资料汇总,请关注我的公众号:【程序员小智和大鹏】,回复“电子书”获取。

 


转载:https://blog.csdn.net/RelaxTech/article/details/109148528
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场