考研408《计算机网络》复习笔记,第五章《计算机网络分层结构》

一、概念

"分层"的设计思想就是将庞大复杂的一堆事情,分而治之,拆分成若干局部较小的事情,分到各个层级完成各自的功能

比如快递网络的例子

那么计算机也要实现很多复杂的功能:

  • 差错控制:确保数据在传输过程中不出错。
  • 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。
  • 分段和重装:发送端将要发送的数据块划分为更小的单位,并在接收端将其还原
  • 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
  • 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接
  • ......

就需要分层来完成

二、应该如何分层

一个合理的分层结构需要做到这几点:

1、功能分配合理,不管你3层4层100层,你要让合适的层次干合适的事(用快递网络的例子,你不能让快递员负责冷链装箱吧?也不能让快递驿站去运输长途快递吧?)

'

2、同一功能允许重复出现(比如顾客自己可以打包快递,当然快递驿站、快递员也可以再次加固打包快递)

三、计算机网路结构的3大模型

【网络的体系结构】是计算机网络的各层及其协议的集合,就仅仅是这个计算机网络及其构件所应完成的功能的精确定义 (不涉及实现)。
实现 是遵循这种体系结构的前提下,用何种硬件或软件完成这些功能的问题。(体系结构抽象的 ,而实现 则是具体的

用我们开发的经验举例:JAVA里有很多抽象接口,里面的抽象方法都是没有内容的,它只是规定了这个方法是做什么的;或者我们前端、后端框架都有规定好的一致的项目结构,但是里面的内容还得每一个程序员自己实现,而不是框架一开始就写好内容的,这些都只是一个抽象的规定协议

四、网络结构里的层级关系

1、水平方向各层关系

【协议、实体】

实体就是每一层的 "软件+硬件"。不同机器之间的同一层叫【对等层】,同一层里的实体叫【对等实体】

每一层对应着实现规定好的功能,那么协议就是规定好【对等实体之间】通信的结构

打比方,一个企业规定了全国的分公司,公司体系都是由"研发部"、"人事部"、"市场部"来组成,然后现在四川分公司要跟北京分公司对接项目,四川的"研发部" 和 北京"研发部"沟通,你不能让四川的"研发部"沟通的人讲四川方言吧?然后北京"研发部"的人讲北京方言,结果两部门谁也听不懂,项目怎么协商?你"研发部"就统一给我讲普通话的计算机术语!"市场部"就讲普通话的销售术语......

协议的作用

【具体例子细讲】

协议的三要素

2、垂直方向各层的关系

【接口、服务】

接口就是每一层向临近层交换信息的入口

服务是下层为紧邻的上层的功能调用,不能跨层服务

大致的传输流程:

发送方将信息发出,然后除了【物理层】,每一层都会在上一层数据的基础上,加上属于自己这一层协议控制信息( "首部"或"尾部"都可以 )

物理层就只用原封不动把信息按【比特流】的形式传输给下一个节点

下一个节点接收的时候,每一层就根据属于它这一层的控制信息,来做出相应的功能处理

在向下一个节点发送信息的时候,数据部分不动,就改一下各层的【新"首"或"尾"部控制信息】就可以

最后传到接收方主机也是一样

每一层只关心自己这一层的控制信息,读取完就拿走

直到传到用户那里,就只有原本的【数据】部分了

【完整图】

五、PDU、SDU、PCI

PDU、SDU、PCI是针对上面垂直方向数据传输的各层数据的一些的单位名称

王道考研的解释是:

看着比较费劲,结合图片解释:

  • PDU(Protocol Data Unit):协议数据单元 ,就是这整一层所有信息(也就是:SDU + PCI
  • SDU(Service Data Unit):服务数据单元 ,就是除了这一层的控制信息没有,包含上面层所有控制信息+原始数据
  • PCI(Protocol Control Information):协议控制信息 ,就是只指属于这一层的控制信息

网络分层结构的总结

六、OSI模型

个别名词前提:

1、OSI模型顺序记忆

记住模型顺序,从底到顶是:

物理层------>数据链路层------>网络层------>运输层------>会话层------>表示层------>应用层

2、网络设备的层次实现

计算机网络中的【网络设备实体】因为对应不同的职责,他们的结构不同,所需要实现的网络分层也不同

那么我们主要要了解这几个网络设备对应实现的是什么层次

3、物理层

记住【物理层】传输的单位是【比特】

物理层需要做的事就是根据【电伏】来将 数据 以 "比特流" 形式传输给下一个节点

比如高电伏特5V代表1,低电伏特1V代表0,然后根据一定的时间间隔输送每一位比特位

不过物理层传输的数据很容易受外界干扰,导致某些比特位出错

4、数据链路层

记住数据链路层传输的单位是【帧】

1个【帧】由多个【比特】组成

数据链路层就可以解决物理层上数据出错的这个问题,它可以进行差错控制,

他要做的任务就是:确保相邻节点的链路逻辑上无差错

具体功能是:1、差错控制 2、流量控制

补充简单了解一下 "帧" 的概念:

【帧】是数据链路层的数据单位,它包含多位比特位

它包括【帧头】【数据部分】【帧尾】

其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分 则包含网络层传下来的数据,比如IP数据包等等。

在发送方,【数据链路层】将【网络层】的传下来的数据封装成【帧】,然后发送到【物理层】

在接受方,【数据链路层】将数据部分从【帧】中取出,交给【网络层】

1)对于差错控制:

数据链路层会在原数据的基础上额外增加几个比特位,用于校验差错,也就是帧头帧尾的差错控制信息

比如原本网络层传下来8bit的数据,数据链路层会额外加2个bit用来给下一个节点校验用,因此就会传个10bit数据过去下个节点。

------然后下一个节点的数据链路层用校验编码技术来校验,当发现有错误时,可以采取【前向纠错 】(更正信息);也可以采取【自动重传请求】(也就是丢弃这个数据,要求重新发送)。

------如果校验过后没有错误,那么这2bit的差错控制信息就可以拆掉,然后把原本的8bit数据给到【网络层】

这里补充一些知识点,当时王道没说,但是我觉得可以学一下,还包含了计算机组成原理的知识点,就当串联复习:

【差错控制信息】又分为【检错编码 】或【纠错编码

  • 检错编码只能发现位错 ,然后用自动重传请求方式来纠正 位错及帧错。(常用的方法:奇偶校验码、循环冗余码)
  • 纠错编码不仅可以发现位错 ,还能指出出错的比特位从而进行前向纠错。(常见的方法:海明码)

奇偶校验法回顾:

同下面两种编码,就可以根据1bit的校验位来判断传过来的数据有没有错误

资料:

数据在传输中出错怎么办?奇偶校验!只占用一个比特!_哔哩哔哩_bilibili

计算机网络数据链路层_比特流传输-CSDN博客

三、数据链路层(三)差错控制_数据链路层差错控制-CSDN博客

2)流量控制

当两个节点的传输速率不一样时可能会丢帧,那么数据链路层就需要进行【流量计控】

比如一个能传10帧,一个能传5帧,那就让10帧的适应慢的那个,也5帧5帧的传

5、网络层

记住网络层传输的单位是【分组】

1个【分组】由多个【帧】组成

主要这么几个职责:

  • 1、路由选择
  • 2、分组转发
  • 3、拥塞控制
  • 4、网际互联
  • 5、其他:差错控制、流量控制、连接的建立与释放、可靠传输管理

1)路由选择:

网络层负责在源节点和目标节点之间选择最佳路径,并根据网络拓扑结构和路由算法将数据包从源节点传递到目标节点。这涉及路由表的建立和维护(常见的路由协议有RIP、OSPF和BGP)

2)分组转发:

网络层将数据封装成【分组】,就是采用分组存储转发形式发送数据(这就是路由器干的事)

3)拥塞控制:

网络层通过多种机制防止和缓解网络拥塞问题,确保数据能够高效传输。这可能涉及路由算法的优化和流量管理策略的实施。

4)网际互联:

各个网络的结构是不一样的,路由器就是用来连接各个不同结构的网络的,那么网络层就要实现这种异构网络互连

5)其他:差错控制、流量控制、连接的建立与释放、可靠传输管理

差错控制:网络层实现基本的差错检测和处理机制,如ICMP协议用于网络诊断(如ping和traceroute工具)。

流量控制:还是一样,控制两个节点的传输数据的速率协调

这里注意:

------【数据链路层】的差错控制是以【帧】为单位的,是一种局部的差错控制

------ 而【网络层】的数据单位是【分组】,分组是由多个【帧】组成

在数据链路层给网络层传输中可能出现 "失帧",比如一个分组应该由3个帧组合,结果丢了一个就撤了2帧信息,这就是错的。那么【网络层】就要针对【分组】全局的差错控制

连接建立和释放:这是我们前面章节提到的"虚电路"技术要用到的,OSI网络层可以建立虚拟电路的连接和释放

可靠传输管理:就是分组信息发出之后,要用网络层来接收确认对方是否有收到,没什么好说的

另外,我在网上看到还有这么个功能,王道那里没说,这里提一下:

协议实现:网络层的主要协议是IP(互联网协议),包括IPv4和IPv6。IP协议负责数据包的寻址、路由和传输,是互联网通信的基础。

网络层的主要协议和工具

  • IP(Internet Protocol):负责数据包的路由和传输,提供逻辑地址命名。
  • ICMP(Internet Control Message Protocol):用于网络诊断和差错报告,如ping和traceroute工具。
  • ARP(Address Resolution Protocol):将IP地址映射到物理地址(MAC地址)。
  • RARP(Reverse Address Resolution Protocol):将物理地址映射到IP地址。
  • NAT(Network Address Translation):在私有网络和公共网络之间转换IP地址,通常用于路由器。

6、传输层

记住传输层的数据单位是【报文段】

一个【报文段】由多个【分组】组成

传输层要多的事:实现【端到端】的通信,也就是操作系统里的【进程跟进程】的通信

具体2大任务:

  • 1、数据复用和分用(分段和重组)
  • 2、其他:差错控制、流量控制、建立连接和释放、可靠传输控制

1)数据复用和分用(分段和重组):

在发送方时,传输层将应用层的数据分段成较小的块,以适应网络传输的需要

在接收端,将数据链路层的分组信息重新组装成报文段形式的原始数据。

2)其他:差错控制、流量控制、建立连接和释放、可靠传输控制、服务质量

建立连接和释放:跟网络层一样,负责建立、维护和释放连接。它使用握手协议(如三次握手和四次挥手)来确保报文段有序、不重复地到达接收方。

流量控制:传输层通过流量控制机制(如滑动窗口协议)调节发送方的数据传输速率,防止接收方因处理能力不足而导致数据丢失。

差错控制:传输层又是对【报文段】的一种全局差错控制,对于报文段来说网络层又变成了局部的差错控制。

可靠传输管理:就是分组信息发出之后,要用网络层来接收确认对方是否有收到,没什么好说的

服务质量:传输层提供不同级别的服务质量(QoS),以满足不同应用对数据传输的需求。例如,实时视频传输可能需要低延迟和高带宽,而电子邮件传输则可能更注重可靠性。

另外,我在网上看到还有这么个功能,王道那里没说,这里提一下:

传输层的主要协议:

  • TCP(Transmission Control Protocol):提供面向连接、可靠的数据传输服务。TCP负责数据分段、重组、流量控制、差错检测和校正等功能。它适用于对可靠性要求高的应用,如文件传输、电子邮件和网页浏览。
  • UDP(User Datagram Protocol):提供无连接、不可靠的数据传输服务。UDP不进行数据分段和重组,也不提供流量控制和差错校正。它适用于对实时性要求高但容忍少量数据丢失的应用,如视频会议、实时游戏和流媒体传输。

7、会话层、表示层、应用层

记住应用层的传输数据单位是【报文】

1个【报文】由多个【报文段】组成

会话层管理进程间的会话断点检查,当通信失效(比如没网了)时设断点,等恢复正常了接着那里续传信息

表示层任务是,因为不同设备的编码可能不一样,比如有的是GBK、有的是UTF-8,那就要数据统一格式化

应用层是OSI模型的最高层,直接为用户和应用程序提供服务,它与应用程序的交互最多。

应用层在OSI模型中起到了桥梁作用,将用户和应用程序与网络通信的底层细节隔离开来。它为各种应用提供了通用的通信框架和协议。应用层协议是互联网和网络服务的重要组成部分,直接影响用户体验和应用程序的功能。

主要有这些任务:

  • 用户接口:应用层为应用程序提供与网络通信的接口,使得用户能够直接使用网络服务,如电子邮件、文件传输和网页浏览。
  • 网络服务:应用层提供各种网络服务,包括但不限于文件传输(FTP)、电子邮件(SMTP、IMAP、POP3)、远程登录(Telnet、SSH)、域名解析(DNS)、网页服务(HTTP、HTTPS)等。
  • 数据处理:取出除了各部控制信息以外、用户只关心的【核心数据】
  • 协议实现:应用层包含了一系列协议,用于支持不同类型的网络应用和服务。常见的应用层协议有:
    • HTTP(HyperText Transfer Protocol):用于网页浏览和数据传输。
    • FTP(File Transfer Protocol):用于文件传输。
    • SMTP(Simple Mail Transfer Protocol):用于电子邮件传输。
    • DNS(Domain Name System):用于域名解析,将域名转换为IP地址。
    • Telnet:用于远程登录。
    • SSH(Secure Shell):用于加密的远程登录和其他安全网络服务。
  • 数据完整性和安全性:应用层协议通常提供数据完整性和安全性保证,例如通过加密和认证机制保护数据不被篡改和窃取。
  • 通信协作:应用层支持不同应用程序和用户之间的协作通信,确保数据能够在分布式系统中正确传递和处理。

【总结】

OSI模型,在发送信息时,从上到下,数据传输的单位越分越小;在接收信息时,从下到上,数据传输单位越组越大。【报文------>报文段------>分组------>帧------>比特】

在发送信息时,从上到下,数据传输的过程叫【分段】

在接收信息时,从下到上,数据传输的过程叫【重组】

七、TCP/IP模型

1、TCP/IP 模型顺序记忆

2、【应用层】顶替【表示层+会话层】

因为1、并不是所有主机都需要实现"会话管理",通信中断了就叫他重新传数据就好了

2、并不是所有设备的编码都不一样,很多主机都是UFT-8编码了

所以TCP/IP去掉了OSI模型里的【表示层】和【会话层】,但是考虑到不得不应对个别"数据格式转换"和"会话管理",TCP/IP就把这两个功能加到了【应用层】

也就是【TCP/IP 应用层】=【OSI 表示层】+【OSI 会话层】

3、【网络接口层】顶替【数据链路层+物理层】

OSI不是规定了【数据链路层】要实现"差错控制"、"流量控制"的功能嘛;然后【物理层】要实现定义电路接口参数、信号含义、电气特征这些东西嘛

后面随着网络硬件设备厂商发明越来越多先进设备之后,OSI的【数据链路层】和【物理层】的要求越来越限制网络硬件设备厂商的发挥了,于是就要取消掉【数据链路层】和【物理层】

于是TCP/IP 用一个**【网络接口层】**顶替【数据链路层】和【物理层】,but这一层只为网络层传输"分组"数据,具体底层是怎么传输的不管,让设备厂商自己发挥

4、网络层

那么既然TCP/IP用【网络接口层】代替了【数据库链路层】+【物理层】,就少了一步差错控制、流量控制,数据到了【网络层】会是错的,那TCP/IP的【网络层】是不是要差错控制更仔细一点?

不!TCP/IP的【网络层】直接摆烂不管了,错的就错的,无所谓

5、传输层

ok,【网络接口层】摆烂,【网络层】也摆烂

那【传输层】没办法了,只能它干活了呗

所以**【传输层】** 接了:复用和分用、差错控制、流量控制、连接建立和释放、可靠传输管理

那么回顾之前我们前几章的知识点,当一个网络中,核心部分(路由器节点、链路...等等) 这些来控制数据的差错控制、流量控制这些事,就会让核心部分负载高,从而降低核心部分数据传输的能力,而且会增加造价成本

但是如果让边缘部分的网络设备 自己具有这些差错控制、流量控制功能,那就缓解了核心部分的运输负载,减少造价成本,提高网络通信的性能

所以OSI模型就是典型的让核心部分的路由器、链路具备这些琐碎的功能

TCP/IP就是让边部分的主机,用传输层来实现这些琐碎的功能

总结

简单看一下TCP/IP各层的任务功能:

然后重点是要区分【OSI】和【TCP/IP】的【传输层】和【网络层】

记住:

OSI 的【网络层】因为具有"差错控制"、"流量控制"、"连接建立和释放"、"可靠传输管理"这些功能 ,所以可以向上层提供【有连接的服务,可靠性、有序性保障的信息(用虚电路实现)】和【无连接的服务,无可靠性、有序性保障的信息(数据报形式数据)】

OSI的【传输层】只能向上层提供【有连接的服务,可靠性、有序性保障的信息】

反之,TCP/IP的【网络层】因为不具有"差错控制"、"流量控制"、"连接建立和释放"、"可靠传输管理"这些功能 ,所以【网络层】只可以向上层提供【无连接的服务,无可靠性、有序性保障的信息(数据报形式数据)】

TCP/IP的【传输层】可以通过【协议】的形式,来向上层提供【有连接的服务,可靠性、有序性保障的信息(用TCP协议实现)】和【无连接的服务,无可靠性、有序性保障的信息(UDP协议实现)】

相关推荐
IT 青年2 小时前
计算机网络 (55)流失存储音频/视频
计算机网络
Like_wen3 小时前
【Go面试】基础八股文篇 (持续整合)
java·后端·计算机网络·面试·golang·go·八股文
longze_76 小时前
正向代理与反向代理的主要区别
计算机网络·cdn·反向代理·正向代理
酱学编程9 小时前
【计算机网络】NAT应用
网络·计算机网络·智能路由器
苦 涩9 小时前
考研408笔记之数据结构(五)——图
数据结构·笔记·考研
羊小猪~~19 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
计软考研大C哥21 小时前
【25考研】也很难!清华大学计算机考研复试难度分析!
考研
IT 青年1 天前
计算机网络 (54)系统安全:防火墙与入侵检测
计算机网络
一个通信老学姐2 天前
专业138总分400+中国科学技术大学843信号与系统考研中科大电子信息通信生医先研,真题,大纲,参考书。
考研·信息与通信·信号处理