一文详细理解计算机网络体系结构(考试和面试必备)

简介: 这篇文章提供了C++基础知识的快速概述,包括C++的特点、面向对象设计、组成部分、标准、学习建议、应用领域、源文件、编译器、类与对象、编译执行步骤、分号与块、标识符、基本数据类型、typedef、枚举类型、变量定义与声明等。

一. 计算机网络概述

1.1 计算机网络的概念

最简洁的定义 \color{#0000FF}{最简洁的定义} 最简洁的定义:计算机网络就是一些互连的,自治的计算机系统的集合。

广义观点的定义 \color{#0000FF}{广义观点的定义} 广义观点的定义:计算机网络是能实现远程信息处理的系统能进一步达到资源共享的系统

资源共享观点的定义 \color{#0000FF}{资源共享观点的定义} 资源共享观点的定义:计算机网络是以能够相互共享资源的方式互连起来的,自治的计算机系统的集合。

用户透明性观点的定义 \color{#0000FF}{用户透明性观点的定义} 用户透明性观点的定义:计算机网络是一个能为用户自动管理资源的网络操作系统,他能够调用用户所需要的资源,整个网络像一个大的计算机系统一样对用户透明。

计算机网络第八版(谢希仁)书中定义 \color{#0000FF}{计算机网络第八版(谢希仁)书中定义} 计算机网络第八版(谢希仁)书中定义:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。

什么是自治计算机?
答:自治计算机就是能够进行自我管理,配置和维护的计算机。
注意:计算机可以被理解为由自治的计算机互联起来的集合体。

1.2 计算机网络的组成

1.2.1 物理组成

从物理组成上看,计算机网络包括硬件、软件、协议三大部分。

  • 硬件:由主机、通讯处理器(或称为前端处理器)、通信线路(包括有线线路和无线线路等)和交换设备(交换机等连接设备)组成。
  • 软件:主要包括实现资源共享的软件和方便用户使用的各种工具软件(如:QQ)
  • 协议:就是一种规则,如汽车在道路上行驶必须遵守交通规则一样,数据在线路上传输也必须遵守一定的规则。
1.2.2 工作方式组成

从工作方式上来看,计算机网络可以分为边缘部分核心部分

  • 边缘部分:由所有连接在互联网上、供用户直接使用的主机组成,用来进行通讯和资源共享。
  • 核心部分:由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
1.2.3 功能组成

从功能组成上看,计算机网络由通信子网资源子网两部分组成。

  • 通信子网:由各种传输介质、通信设备和相应的网络协议组成,为网络提供数据传输、交换和控制能力,实现联网计算机之间的通信。

    注意:

    1. 通信子网包括物理层、数据链路层和网络层。
    2. 计算机网络的拓扑结构主要取决于它的通信子网
  • 资源子网:由主机、终端以及各种软件资源、信息资源组成,负责全网的数据处理业务,面向网络用户提供各种网络资源与服务。

1.3 计算机网络的功能

数据通信:计算机网络最基本和最重要的功能,包括连接控制、传输控制、差错控制、流量控制、路由选择、多路复用等子功能。

资源共享:包括数据资源、软件资源以及硬件资源。

分布式处理:计算机网络中的某个计算机系统负荷过重时,可以将其处理的任务传送给网络中的其他计算机系统进行处理,利用空闲计算机资源提高整个系统的利用率。

负载均衡:将工作中的任务均衡的分配给计算机网络中的各台计算机。

提高可靠性:计算机网络中的各台计算机可以通过网络互为替代机。

1.4 计算机网络的分类

1.4.1 按分布范围分类

按分布范围分类:广域网、城域网、局域网、个人局域网
1. 广域网(WAN):任务是提供长距离通信,运送主机所发送的数据,其覆盖范围通常为几十千米到几千千米的区域,有时也称为远程网。广域网是因特网的核心部分。广域网的拓扑结构通常采用网状型。

2. 城域网(MAN):覆盖范围可以跨越几个街区甚至整个城市,覆盖范围约为 5~50km。城域网大多采用以太网技术,有时也归入局域网。

3. 局域网(LAN):覆盖范围较小。在计算机配置的数量上没有太多的限制,少的可以只有两台,多的可达几百台。传统上,局域网使用广播技术,而广域网使用交换技术

4. 个人局域网(PAN):将个人的电子设备用无线技术连接起来的网络。

1.4.2 按拓扑结构分类

按拓扑结构分类:星型网络、总线型网络、环形网络、网状型网络

1. 星形网络:每个终端或计算机都以单独的线路与中央设备相连。中央设备早期是计算机,现在一般是交换机或路由器。缺点是成本高,中心节点对故障敏感。

2. 总线型网络:用单根传输线把计算机连接起来。优点是建网容易,增减节点方便,节省线路。缺点是重负载时效率不高,总线任意一处对故障敏感。

3. 环形网络:所有计算机设备连接成一个环。最典型的例子是令牌环局域网,环可以是单环也可以是双环,环中信号时单向传输的。

4. 网状型网络:一般情况下,每个节点至少有两条路径与其他节点相连,多用在广域网中。

1.4.3 按传输技术分类

按传输技术分类:广播式网络、点对点网络

1. 广播式网络:所有联网计算机都共享一个公共通信信道。局域网基本都采用广播式通讯技术,广域网中的无线,卫星通讯网络也采用广播式通信技术。

2. 点对点网络:每条物理线路连接一对计算机。

注意:是否采用分组存储转发路由选择机制是点对点网络与广播式网络的重要区别,广域网基本都属于点对点网络。

1.4.4 按使用者分类

按使用者分类:公用网、专用网

1.4.5 按数据交换技术分类

按数据交换技术分类:电路交换网络、报文交换网络、分组交换网络

1. 电路交换网络:在源节点和目的节点之间建立一条专用的通路用于传送数据,包括建立连接,传输数据和断开连接三个阶段。最典型的电路交换网是:传统电话网络

2. 报文交换网络:也称为存储-转发网络。用户数据加上原地址、目的地址、校验码等信息,然后封装成报文。

3. 分组交换网络:也称为包交换网络,原理是将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址,源地址等辅助信息组成分组(包),以存储-转发方式传输。

1.4.6 按传输介质分类

传输介质可以分为有线和无线两大类,故网络可以分为有线网络无线网络

有线网络 分为双绞线网络、同轴电缆网络等;
无线网络 又分为蓝牙、微波、无线电等类型。

1.5 计算机网络的标准化工作及相关组织

1.5.1 计算机网络的标准化工作

因特网的所有标准都以 RFC(Request For Comments)的形式在英特网上发布,但并非每个RFC都是英特网标准,计算机网络标准化需要经历以下4个步骤:
①互联网草案
②建议标准(RFC文档)
③草案标准
④互联网标准

1.5.2 相关组织

在国际上,负责制定、实施相关网络标准的标准化组织主要由以下几个:

国际标准化组织(ISO):制定的主要标准或规范有OSI参考模型、HDLC等;

国际电信联盟(ITU):前身是国际电话电报咨询委员会.

国际电气电子工程师协会(IEEE):世界上最大的专业技术团体,由计算机和工程学专业人士组成。IEEE在通信领域最著名的研究成果是802标准。

二. 计算机网络体系结构与参考模型

2.1 计算机网络分层结构

1. 计算机网络为什么要采用分层结构?

答:为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络体系结构以分层的方式进行建模。
(就比如公司规模很小时不需要分层,老总和员工可以处于同一个平面,可以直接向老总汇报。但如果公司规模较大时,就需要分层分模块才能更好的 发展)

2. 分层的基本原则?

  • 每层都实现一种相对独立的功能,降低大系统的复杂度;
  • 各层之间界面自然清晰,已与理解,相互交流尽可能少;
  • 各层功能的精确定义独立于具体的实现方法,可以采用最合适的技术来实现;
  • 保持下层对上层的独立性,上层单向使用下层提供的服务;
  • 整个分层结构应能促进标准化工作。

2.2 网络协议、接口、服务的概念

2.2.1 协议

协议是一种规则,并且是控制两个对等实体进行通信的规则,也就是水平的。协议由以下三个部分组成:
语义:对构成协议元素的含义的解释,即 讲什么 \color{red}{讲什么} 讲什么,规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答。
语法:数据与控制信息的结构或格式,即 怎么讲 \color{red}{怎么讲} 怎么讲,规定了传输数据的格式。
同步:规定的事件的执行顺序,规定了执行各种操作的条件、时序关系等,即事件实现顺序的详细说明。

一个完整的协议通常应具有线路管理(建立、释放连接)、差错控制、数据转换等功能。

2.2.2 接口

接口是同一节点内相邻两层间交换信息的连接点,是一个系统内部的规定。

接口又称为服务访问点,从物理层开始,每一层都向上层提供服务访问点,即没有接口就不能提供服务

5个不得不知的专业术语:
服务数据单元(SDU):第n层的服务数据单元,记作:n-SDU

协议控制信息(PCI):第n层的协议控制信息,记作:n-PCI

接口控制信息(ICI):第n层的接口控制信息,记作:n-ICI

协议数据单元(PDU):第n层的服务数据单元(SDU)+第n层的协议控制信息(PCI)=第n层的协议数据单元,即:n-SDU + n-PCI = n-PDU ,表示的是同等层对等实体间传送的数据单元。

接口数据单元(SDU):第n层的服务数据单元(SDU)+第n层的接口控制信息(ICI)=第n层的接口数据单元,即:n-SDU + n-ICI = n-IDU ,表示的是在相邻层接口间传送的数据单元。

2.2.3 服务

服务指下层为相邻上层提供的功能调用,协议是水平的而服务是垂直的,即下层通过接口向上层提供服务。服务分为以下三类:

1. 面向连接的服务与无连接的服务

  • 面向连接的服务:如TCP。

    优点:可靠信息流、信息回复确认;
    缺点:占用通信信道。

  • 面向无连接的服务:如IP和UDP。

    优点:不占用通信信道;
    缺点:信息流可能丢失,信息无回复确认。

2. 有应答服务与无应答服务(了解即可)

  • 有应答服务:接收方在收到数据后向发送方给出相应的应答;
  • 无应答服务:接收方收到数据后不自动给出回答。

3. 可靠服务与不可靠服务

  • 可靠服务:网络具有检错、纠错、应答机制,能保证数据正确、可靠地传送到目的地。
  • 不可靠服务:网络不能保证数据正确、可靠地传送到目的地,网络只能尽量正确、可靠,是一种尽力而为的服务

2.3 ISO/OSI参考模型和TCP/IP参考模型

OSI参考模型具有7层结构,而TCP/IP模型仅有4层结构(TCP/IP一定是4层模型),一般教材综合了OSI和TCP/IP的优点,才有了5层模型。具体如下图:
在这里插入图片描述

图2:
在这里插入图片描述

2.3.1 5层参考模型各层的总结

下面是5层参考模型各层的总结。重点:每层结构完成的任务、功能、协议必须要掌握。

1. 应用层(用户对用户):允许访问OSI环境的手段(应用协议数据单元 APDU)

  • 任务:提供系统与用户的接口;
  • 功能:①文件传输;②访问和管理;③电子邮件服务。
  • 协议:FTP、DNS、Telnet、SMTP、POP3、HTTP、WWW、NFS等。

2. 传输层(应用对应用,进程对进程)

  • 任务:负责主机中两个进程之间的通信;
  • 功能:①为端到端的连接提供可靠的传输服务; ②为端到端的连接提供流量控制、差错控制、服务质量等管理服务。即提供端到端的可靠报文传递和错误恢复( 段Segment)
  • 协议:TCP、UDP、ARQ、SPX等。
  • 传输单位:报文段(TCP)或用户数据报(UDP)

3. 网络层(主机对主机):又叫网际层,IP层

  • 任务:①将传输层传下来的报文段封装成分组;②选择适当的路由,使传输层传下来的分组能够交付到目的主机;关键问题是对分组进行路由选择,并实现流量控制,拥塞控制,差错控制和网际互联等功能
  • 功能:①为传输层提供服务;②组包和拆包;③路由选择;④拥塞控制。
  • 协议:ICMP、IGMP、ARP、RARP、OSPF、IP、IPX、RIP、IGRP(路由器)等。
  • 传输单位:数据报
  • 所实现的硬件:路由器

4. 数据链路层(链路层)

  • 任务:将网络层传下来的IP数据报组装成帧;
  • 功能:①链路连接的建立、拆除、分离;②帧定界和帧同步;③差错检测。
  • 协议:PPP、STP、FR、VLAN、HDLC、SDLC、MAC(网桥,交换机)等。
  • 传输单位:帧
  • 所实现的硬件:交换机、网桥
  • 主要信道:点对点信道、广播信道
  • 三个基本问题

    封装成帧:把网络层的 IP 数据报封装成帧,SOH - 数据部分 - EOT
    透明传输:不管数据部分什么
    字符,都能传输出去;可以通过字节填充方法解决(冲突字符前加转义字符)
    差错检测:降低误码率(BER,Bit Error Rate),广泛使用循环冗余检测(CRC,Cyclic Redundancy Check)

5. 物理层

  • 任务:透明的传输比特流;

  • 功能:通过媒介传输比特,确定机械及电气规范(比特 Bit),即为数据端设备提供传输数据通路。

  • 协议:RJ45、CLOCK、IEEE802.3(中继器,集线器)。

  • 传输单位:比特

  • 所实现的硬件:集线器、中继器

  • 通道

    单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播
    双向交替通行(半双工通信):通信双方都可发消息,但不能同时发送或接收
    双向同时通信(全双工通信):通信双方可以同时发送和接收信息

  • 通道复用技术:

    频分复用(FDM,Frequency Division Multiplexing):不同用户在不同频带,所用用户在同样时间占用不同带宽资源
    时分复用(TDM,Time Division Multiplexing):不同用户在同一时间段的不同时间片,所有用户在不同时间占用同样的频带宽度
    波分复用(WDM,Wavelength Division Multiplexing):光的频分复用
    码分复用(CDM,Code Division Multiplexing):不同用户使用不同的码,可以在同样时间使用同样频带通信

补充知识点:

会话层::主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送。

  • 作用:建立、管理和终止会话(会话协议数据单元 SPDU)
  • 协议:NFS、SQL、NETBIOS、RPC等。

表示层:数据格式转换,负责处理在两个内部数据表示结构不同的通信系统间交换信息的表示格式,为数据加密和解密以及提高传输效率提供必须的数据压缩及解压等功能。

  • 作用:对数据进行翻译、加密和压缩(表示协议数据单元 PPDU)
  • 协议:JPEG、MPEG、ASII
2.3.2 OSI参考模型和TCP/IP参考模型对比

OSI参考模型:

①三个主要概念:服务、接口、协议;
②协议有很好的隐藏性;
③产生在协议发明之前;
④共有7层;
⑤网络层有连接和无连接;
传输层仅有面向连接

TCP/IP参考模型:

①没有明确区分服务、接口、协议;
②产生在协议发明之后;
③共有4层(不是5层);
⑤网络层仅有无连接;
传输层有面向连接和无连接

注意:
英特网采用的核心技术是:TCP/IP

2.4 计算机网络性能指标

2.4.1. 时延

数据从网络或链路的一端传送到另一端所需要的时间,也称为延迟迟延。网络时延由以下几部分组成:

1. 发送时延(或者称为传输时延):主机或路由器发送数据帧所需要的时间。计算公式为:

发送时延 = 数据帧长度(bit) / 发送速率(bit/s)

2. 传播时延:电磁波在信道中传播一定距离所需要的时间。计算公式为:

传播时延 = 信道长度(m) / 电磁波在信道上的传播速度(m/s)

3. 处理时延:主机或者路由器在接收到分组时进行处理所需要的时间。

4. 排队时延:分组在进入路由器要先在输入队列中排队等待。这样,数据在网络中经历的总时延就是:

总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

一般做题时,排队时延和处理时延都忽略不计(除非题目说明要加)。

2.4.2 时延带宽积

带宽:信号的最高频率与最低频率之差,单位为赫兹(Hz)。
时延带宽积:又称为以比特为单位的链路长度。

2.4.3 往返时间

往返时间:从发送方发送时间开始,到发送方收到凯子接收方的确认消息,总共经历的时间。

2.4.4 利用率

包括信道利用率网络利用率两种。

1. 信道利用率:某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率为0。

2. 网络利用率:全网络的信道利用率的加权平均值。

注意:不是信道利用率与网络利用率越高越好,因为利用率越高,会导致数据在路由器中转发时延过长

三. 重要问题

1. 端到端通信和点到点通信有什么区别?

点到点通信:直接相连的节点之间的通信;端到端通信:建立在点到点通信的基础上,是由一段段点到点的通信信道组成的,是比点到点通信更高一级的通信方式,以完成程序(进程)之间的通信。

从本质上来说:由物理层,数据链路层和网络层组成的通信子网为网络环境中的主机提供点到点的服务。而传输层为网络中的主机提供端到端的通信

2. 如何理解传输速率、带宽和传播速率?

1. 传输速率指主机在数字信道上发送数据的速率,也称为数据率比特率,单位是比特/秒。更常用的速率单位是:千比特/秒(kb/s)、兆比特/秒(Mb/s)、吉比特/秒(Gb/s)、太比特/秒(Tb/s)。
带宽:在计算机网络中指数字信道所能传送的最高数据传输速率,常用来表示网络的通信线路传送数据的能力,其单位与传输速率的单位相同。
传播速率:电磁波在信道中传播的速率,单位是米/秒(m/s),更常用的单位是千米/秒(km/s)。电磁波在光纤中的传播速率约为:2 * 1 0 8 10^8 108

相关文章
|
8天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
4天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2464 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
4天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1505 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19274 29
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18822 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17515 13
Apache Paimon V0.9最新进展
|
6天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
368 11
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18698 16
|
3天前
|
算法 Java
JAVA并发编程系列(8)CountDownLatch核心原理
面试中的编程题目“模拟拼团”,我们通过使用CountDownLatch来实现多线程条件下的拼团逻辑。此外,深入解析了CountDownLatch的核心原理及其内部实现机制,特别是`await()`方法的具体工作流程。通过详细分析源码与内部结构,帮助读者更好地理解并发编程的关键概念。
|
2天前
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
195 82