面试官:请讲一下计算机网络的原理,以及你对它的理解。
我:
作为一枚野生程序猿,通过网络进行数据交换已成家常便饭,最常接触的就是 HTTP、HTTPS、SOCKET,但是,平常只是使用而已,没有深入研究过,一到面试就卡壳。那么今天就来扒一扒 计算机网络原理 到底是什么。
1. 计算机网络指的是什么?
首先说明一下,这里的**「计算机」并不是通常意义上的 个人计算机(PC)、笔记本电脑 或者 服务器计算机,而应该包括所有带有计算能力的只能计算设备,比如:智能手机、智能家电等等。因此,我们应将「计算机」理解为「计算机设备」**。
先来扒一扒计算机历史,计算机诞生之初,每台计算机都只在「自己范围内处理信息」,如果需要在不同计算机之间交换、分享信息,就只能通过存储介质等进行。随着计算机技术的发展,越来越需要在计算机之间进行快速、大量的信息交换,于是人们便将 计算机技术 与 通信技术 进行完美结合,诞生了计算机网络。
从技术范畴来看:
计算机网络是「计算机技术」与「通信技术」相互融合的产物。
计算机网络并没有一个统一的精确定义,通常指的是:
计算机网络是利用 通信设备 与 通信链路 或者 通信网络,互连 位置不同、功能自治 的计算机系统,并遵循一定的规则实现计算机系统之间的信息交换。
更为简短、概括性的定义为:
计算机网络是 互连 的、自治 的计算机的集合。
互连:指利用通信链路连接相互独立的计算机系统。通信链路可以是双绞线、光纤、微波、通信卫星等。
自治:指互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。
2. 经常听说「协议」这个词,在计算机网络中它指的是什么呢?
前面简单介绍了「计算机」和「通信设备」,如同道路交通系统一样,道路修建好了,路网也建立了,硬件基础建立完毕。但是,如果没有交通规则进行制约,道路系统将会变成一团乱麻,同理,网络系统中,也需要遵循一些规则和约定,来保证网络稳定、有序、高效的运行,这些规则或约定,就是网络协议。
协议约定了实体之间交换的信息类型、信息各部分的含义、信息交换顺序以及收到特定信息或出现异常时应采取的行为。
协议三要素:
- 语法(syntax):定义实体之间交换信息的格式与结构,或者定义实体(比如硬件设备)之间传输信号的电平等。
- 语义(semantics):定义实体之间交换的信息中心需要发送(或包含)哪些控制信息,这些信息的具体含义,以及针对不同含义的控制信息,接收信息端应如何响应。另外,有的协议还需要进行差错检测,这类协议通常会在协议信息中附加差错编码等控制信息。语义还需要定义彼此采用何种差错编码,以及采取何种差错处理机制等。
- 时序(timing):也称为同步,定义实体之间交换信息的顺序以及如何匹配或适应彼此的速度。
3. 计算机网络的功能
- 硬件资源共享:例如打印机、存储资源等
- 软件资源共享:例如 SaaS 服务等
- 信息资源共享:例如新闻阅读、信息检索等
4. 计算机网络的分类
4.1 按覆盖范围
| 名称 | 场景 | 范围 |
|---|---|---|
| 个域网(PAN) | 穿戴设备、便携式移动设备等 | 1~10m |
| 局域网(LAN) | 办公室、办公楼、厂区、校园等 | 10m~1km |
| 城域网(MAN) | 覆盖一个城市范围 | 5~50km |
| 广域网(WAN) | 跨越更大的地理空间 | 几十~几千 km |
4.2 按拓扑结构分类
| 名称 | 描述 | 总结 |
|---|---|---|
| 星型拓扑结构(图 a) | 包含一个中央节点,网络中的主机通过点对点通信链路与中央节点连接 | 优点:易于监控与管理,故障诊断与隔离容易; 缺点:中央节点是网络的瓶颈,一旦故障,全网瘫痪,网络规模受限于中央节点的端口数量; |
| 总线型拓扑结构(图 b) | 采用一条广播信道作为公共传输介质,称为总线,所有节点均与总线连接,节点间的通信均通过共享的总线进行 | 优点:结构简单,所需电缆数量少,易于扩展; 缺点:通信范围受限,故障诊断与隔离较困难,容易产生冲突; |
| 环形拓扑结构(图 c) | 利用通信链路将所有节点连接成一个闭合的环 | 优点:所需电缆长度短,可以使用光纤,易于避免冲突; 缺点:某节点故障容易引起全网瘫痪,新节点的加入或撤出过程比较麻烦,存在等待时间问题; |
| 网状拓扑结构(图 d) | 网络中的节点通过多条链路与不同的节点直接连接 | 优点:可靠性高,一条过多条链路故障时,网络仍然可联通; 缺点:网络结构复杂,造价成本高,选路协议复杂; |
| 树形拓扑结构(图 e) | 可以看做是总线型拓扑或星型拓扑网络的扩展 | 优点:易于扩展,故障隔离容易; 缺点:对根节点的可靠性要求高,一旦根节点故障,则可能导致网络大范围无法通信; |
| 混合型拓扑结构(图 f) | 由两种以上简单拓扑结构网混合连接而成的网络 | 优点:易于扩展,可以构建不同规模网络,并可根据需要优选网络结构; 缺点:网络结构复杂,管理与维护复杂; |
5. 计算机网络结构(简单了解一下就好)
-
网络边缘
-
接入网络
- 电话拨号接入
- 非对称数字用户线路 ADSL
- 混合光纤同轴电缆 HFC 接入网络
- 局域网
- 移动接入网络
-
网络核心
6. 数据交换技术
- 电路交换
- 报文交换
- 分组交换
分组交换是目前计算机网络广泛采用的技术。分组交换需要将待传输数据(即报文)分割成较小的数据块,每个数据块附加上地址、序号等控制信息构成数据分组(packet),每个分组独立传输到目的地,目的地将受到的分组重新组装,还原为报文。分组传输过程通常也采用存储---转发交换方式。
分组交换优点:
- 交换设备存储容量要求低
- 交换速度快
- 可靠传输效率高
- 更加公平
7. 计算机网络性能
- 速率与带宽:指网络单位时间内传送的数据量,用以描述网络传输数据的快慢,也称为数据传输速率或数据速率;
- 时延:指数据从网络中的一个节点(主机或交换设备等)到达另一节点所需要的时间;包括 节点处理时延(nodal processing delay)、排队时延(queueing delay)、传输时延(transmission delay) 和 传播时延(propagation delay);
- 时延带宽积:指一段物理链路的传播时延与链路带宽的乘积;
- 丢包率:当网络拥塞特别严重时,新到达的分组甚至已无缓存空间暂存该分组,此时交换节点会丢弃分组,就会发生「丢包」现象;
- 吞吐量:表示在单位时间内源主机通过网络向目的主机实际送达的数据量;
8. 计算机网络体系结构
8.1 OSI 参考模型
从上层往下层依次介绍:
应用层:给用户提供网络服务,包括文件传送、电子邮件、P2P 应用等。应用层为用户提供了一个使用网络应用的「接口」;
表示层:
- 主要用于处理应用实体间交换数据的语法,目的是解决格式和数据表示的差别,从而为应用提供一个一致的数据格式,使字符、格式等有差异的设备之间相互通信;
- 实现文本压缩/解压缩、数据加密/解密、字符串彪马的转换等功能;
会话层:
- 在建立会话时核实双方身份是否有权参加会话;
- 确定双方支付通信费用;
- 双方在各种选择功能方面(如全双工还是半双工通信)取得一致;
- 在会话建立以后,需要对进程间的对话进行管理与控制;
传输层:主要功能包括复用/分解(区分发送和接收主机上的进程),端到端的可靠数据传输、连接控制、流量控制和拥塞控制机制等
网络层:
- 数据转发与路由;
- 对进入交换网络的通信量加以控制,以避免通信量过大造成交换网络性能下降;
- 寻址功能,确保分组可以被正确传输到目的主机;
数据链路层:
- 实现在相邻节点之间数据可靠而有效的传输;
- 寻址,确保每一帧都能准确地传送到正确的接收方,接收方也有关知道发送方的地址;
物理层:主要功能是在传输介质上实现无结构比特流传输;
参考模型高低层划分:
- 网络底层:主要完成数据交换和数据传输。包含物理层、数据链路层、网络层;
- 衔接层:传输层;
- 网络高层:主要是完成信息处理服务的功能。包含会话层、表示层、应用层;
PS:实际应用的网络中几乎没有严格按照 OSI 参考模型构件的。OSI 参考模型的意义在于它是一种计算机网络的理论体系结构,是目前学习、讨论计算机网络的一种工具,能够从理论上很好地解释网络概念、层次与通信过程,是学习计算机网络必须学习和掌握的内容。
8.2 TCP/IP 参考模型
应用层:TCP/IP 参考模型将 OSI 参考模型中会话层和表示层的功能合并到了应用层来实现;
传输层:主要包括面向连接、提供可靠数据流传输的传输控制协议 TCP 和无连接不提供可靠数据传输的用户数据报协议 UDP;
网络互连层:是整个参考模型的核心,主要解决把数据分组发往目的网络或主机的问题;(IP 是无连接不可靠网络协议)
网络接口层:实际上,TCP/IP 参考模型没有真正描述这一层的实现,只是要求能够提供给其上层---网络互连层一个访问接口,以便在其上传递 IP 分组;
8.3 五层参考模型
对比 TCP/IP 参考模型与 OSI 参考模型,TCP/IP 参考模型缺少 OSI 参考模型中功能比较少的会话层与表示层,而 TCP/IP 参考模型的网络接口层则相当于合并了 OSI 参考模型的数据链路层与物理层。结合这两个参考模型,可以提出综合理论需求与实际网络的五层参考模型,包括 物理层、数据链路层、网络层、传输层 与 应用层,各层功能基本与 OSI 参考模型对应。