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

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

计算机为何要联网

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

网络分层的好处

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

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

网络层次划分

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

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

 

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

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

物理层

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

数据链路层

物理层之上是数据链路层,计算机在数据链路层的标识咱们叫它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协议与对端通讯,知道如何作通讯的性能调优等等。

小智:嗯嗯,明白了,我以为我想作第二种人,因此我要好好学习各个层次的网络协议了。

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

 

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

相关文章
相关标签/搜索