计算机网络为什么要分层

计算机网络是个非常复杂的系统,相互通信的两个计算机必须高度协调工作,但是这种协调是很复杂的,分层可以将庞大复杂的问题,转化成若干个较小的局部问题,这些局部的较小的问题就比较易于研究和处理。

Posted by liz on July 8, 2022

计算机网络为什么要分层

为什么需要分层?

计算机网络是个非常复杂的系统,相互通信的两个计算机必须高度协调工作,但是这种协调是很复杂的;

分层可以将庞大复杂的问题,转化成若干个较小的局部问题,这些局部的较小的问题就比较易于研究和处理。

分层的优缺点?

优点

  • 各层之间是独立的,不用关心其他层次的内容;

  • 灵活性好,任何一层发生变化不影响上下层;

  • 架构上可分割开,各层可用最好的技术实现;

  • 易于实现和维护,仅需维护独立的子系统;

  • 能促进标准化的工作,每层的功能,提供的服务有了精确的说明。

缺点

  • 降低效率;

  • 有些功能会在不同的层次中反复出现,因而产生了额外的开销。

各层完成的主要功能

1、差错控制:使相应层次对等⽅的通信更加可靠;

2、流量控制:发送端的发送速率必须使接收端来得及接收,不要太快;

3、分段和重装 :发送端将要发送的数据块划分为更⼩的单位,在接收端将其还原;

4、复⽤和分⽤:发送端⼏个⾼层会话复⽤⼀条低层的连接,在接收端再进⾏分⽤;

5、连接建⽴和释放:交换数据前先建⽴⼀条逻辑连接,数据传送结束后释放连接。

计算机网络分层

tcp

OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂⼜不实⽤。

TCP/IP 是四层体系结构:应⽤层、运输层、⽹际层和⽹络接⼝层。但最下⾯的⽹络接⼝层并没有具体内容。也是用的比价度的

所谓的五层协议的网络体系结构其实是为了方便学习计算机网络原理而采用的,综合了OSI七层模型和TCP/IP的四层模型而得到的五层模型。

这里来看下5层协议的体系结构

应用层:通过应⽤进程间的交互来完成特定⽹络应⽤;例如 DNS、HTTP、SMTP。。。

运输层:负责向两台主机中进程之间的通信提供通⽤的数据传输服务,TCP 提供⾯向连接的、可靠的数据传输服务,传输单位为报⽂段;UDP 提供⽆连接的尽最努⼒的数据传输服 务,传输单位为⽤户数据报;

网络层:提供主机间的通信服务。路由器⽣成转发表,依据转发表转发分组⾄下⼀个路由器;

数据链路层:直连⽹络中相邻节点的链路上传输帧,物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时肯定会存在误差的。这样就引入了数据链路层在物理层之上,采用差错检测、差错控制和流量控制等方法,向网络层提供高质量的数据传输服务;

物理层:实现比特传输,物理层的线路有传输介质与通信设备组成。

应用层

应用层是体系结构中的最高层。应用层的任务是通过应用进程间交互来完成特定网络应用。应用层协议定义的是应用进程间通信交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应该需要有不同的应用层协议。

在互联网中应用层协议很多,如域名 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议。。。

应用层交互的单元数据是报文。

运输层

运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。

应用进程利用该服务传送应用层报文。一个主机可以同时运行多个进程,因此运输层有复用和分用的功能。

复用就是多个应用层进程可同时使用下面的运输层的服务;

分用就是把运输层收到的信息分别交付给上面应用层中的响应进程。

运输层主要有两层协议:

  • 传输控制协议 TCP 提供⾯向连接的、可靠的数据传输服务,传输单位为报⽂段;

  • 用户数据报协议 UDP 提供⽆连接的尽最努⼒的数据传输服务(不保证数据传输的可靠性),传输单位为⽤户数据报;

网络层

网络层负责为分组交换网上的不同主机提供通信服务。

网络层主要有下面两个作用:

1、网络层把运输层产生的报文段或用户数据报封装成分组或包进行传递。在 TCP/IP 体系中,由于网络层使用 IP 协议,因此分组也叫 IP 数据包,或简称数据报。

2、网络成的另一个任务就是选择合适的路由,使源主机传下来的分组,能够通过网络中的路由器找到分组。

互联网中是由大量的异构网络通过路由器相互连接起来的。互联网中使用的网络层协议是无连接的网络协议 IP 和许多中路由选择协议。因此互联网的网络层也叫网际层或 IP 层。

数据链路层

数据链路层简称链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要专门的链路层协议。

在相邻的两个节点之间传送数据时,数据链路层会将网络层交下来的 IP 数据报组装成帧,在两个相邻节点之间传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)

这样在接收数据的时候,接收端就能从控制信息中知道一个帧物理层的线路由传输介质与通信设备组成从哪个比特开始,哪个比特结束。这样数据链路层就能在收到每一帧之后,从中提取出数据部分,交给网络层。

控制信息还使接收端能检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续传送下去白白浪费网络资源。如需改正错误,就由运输层的TCP协议来完成。链路层不仅检错,还能纠错。

物理层

在物理层中所传输的单位是比特。

主要功能是解决计算机比特传输问题,即透明的传输比特流,关心的是点到点的问题:

透明传输:不管所传输的数据是什么样的比特组合,都能在链路上传输;

要尽可能地屏蔽掉不同传输媒体和通信手段的差异。

物理层不包含物理媒介,而是确定于传输媒介的接口特征:

  • 机械特征:接口所用接线器的一些物理属性如接口范围,接口尺寸,引线数目及排列;

  • 电气特征:接口电缆的各条线上出现电压的范围,阻抗匹配,传输速度,距离等;

  • 功能特征:某条线上出现的某一电平的电压的意义,接口部件信号线的用途;

  • 过程特征:对于不同功能的各种可能事件的出现顺序,定义各条物理线路的工作规程和时序关系。

传递信息所利用到的一些媒体,如双绞线,同轴电缆,光缆,无线信道等,是不在物理层协议之内的而是在物理层协议之下。

最后看一下数据在各层之间的传递过程

tcp

参考

【极客时间-趣谈网络协议】https://time.geekbang.org/column/intro/100007101
【子网掩码是什么?有什么作用?】https://zhuanlan.zhihu.com/p/371400090
【公有IP和私有IP介绍】https://blog.csdn.net/tanga842428/article/details/72851429
【子网掩码】https://baike.baidu.com/item/%E5%AD%90%E7%BD%91%E6%8E%A9%E7%A0%81/100207
【五层网络协议,各层功能,各层协议】https://blog.csdn.net/qq_22238021/article/details/80279001
【划分子网的意义】https://blog.csdn.net/tao546377318/article/details/50217729
【计算机网络第八版】https://www.bilibili.com/video/BV1WP4y1j7JU?p=1