一. 基础概念
1.1 计算机网络
定义:计算机网络(Computer NetWork) 是指将一个分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享、信息传递的系统
- 自治:指即使计算机网络损坏,单独的计算机系统仍能够独立运行而不会随之损坏
- 通信设备:包括路由器、交换机、集线器等
- 软件:面向用户,如微信、QQ 、等等
1.2 计算机网络与互连网与、互联网的区别
1.2.1 计算机网络(Computer Network)
最简单的计算机网络是由若干的结点(node)与连接这些结点的链路(link)组成的
网线直连有着设备上的限制,此时会引入交换机(Switch)或者集线器(Hub)
- 由于集线器无法解决数据冲突的问题,现在民用领域已经很少使用
- 交换器常用于内部网络的构建
- 计算机网络在图像的表示上常用云朵来表示
1.2.2 互连网(internet)
- 路由器(router) 可以将两个或者更多的计算机网络连接在一起,构建起更加庞大的计算机网路,此时也能称之为互连网
- 单独的互连网可以使用任意的通信协议
此处指的路由器与家用路由器的定义有所不同:
- 家用路由器可以看做是路由器加交换机加其他功能的综合设备
- 用户可以通过 WiFi 或者网线与家用路由器连接(交换机),然后与其他的计算机网络连接(路由器),使用户能够访问到更大的互连网
1.2.3 互联网(Internet)
- 是由各大 ISP(Internet Service Provider,互联网服务提供商) 组建的,覆盖全世界的互连网
- 一定需要使用 TCP/IP 协议
1.3 计网的组成、功能
1.3.1 组成
1.3.1.1 以组成部分划分
- 硬件:
- 主机(end system,端系统):电脑、手机、物联网设备
- 通信设备:集线器、交换机、路由器等
- 通信链路:网线、光纤、同轴电缆
- 软件:
- 方便用户使用、实现资源共享,如 email、聊天软件、网盘软件
- 协议:
- 规定计算机网络的通信规则
- 由硬件及软件共同实现,如网络适配器+软件实现网络通信协议
1.3.1.2 以工作方式划分
- 边缘部分:
- 工作方式:直接为用户提供服务
- 主要由连接到互联网上的主机及软件组成
- 核心部分:
- 工作方式:为边缘部分提供服务(连通性、交换服务)
- 由大量网络和连接这些网络的路由器组成
1.3.1.3 以逻辑功能划分
- 资源子网:
- 计算机网络中运行程序、向用户提供可共享的硬件、软件和信息资源的部分
- 主要由连接到互联网上的主机组成
- 通信子网:
- 计算机网络中负责计算机间信息传输的部分,即把计算机和其他用户装置互联在一起的素有通信设备和介质的总称
- 主要由通信链路、通信设备和协议构成
- 主机内部实现信息传输的网络适配器、底层协议属于通信子网的范畴
1.3.2 功能
- 数据通信:实现计算机之间的数据传输,是最基本最重要的功能
- 资源共享:包括硬件、软件和数据资源
- 硬件:终端设备,如智能音箱和服务器
- 软件:如应用商店
- 资源数据:包括用户画像、账号信息等等
- 分布式处理:将负责的任务拆分出若干个较为简单的任务并分配给多个计算机处理
- 提高可靠性:使网络的各台计算机互为替代机,如资源的云端保存
- 负载均衡:网络中的各台计算机共同分担繁重的任务,如多台服务器共同处理玩家请求
- 其他:满足需求,如远程办公、娱乐等等
1.4 交换技术
在计算机网络设计之初,参照已有的设计进行构建和改进
1.4.1 电路交换(Circuit Switching)
用于早期电话网络,通过物理线路的接通,动态地分配传输线路资源
-
电路交换的过程:
- 建立连接(尝试占用通信资源)
- 通信(持续占用通信资源)
- 释放连接(归还通信资源)
-
电路交换的优缺点:
- 优点:
- 通信前从主叫端到被叫端建立一条专用的物理通路,在通信的全部时间内,两个用户始终占用端到端的线路资源,数据直送,传输效率高。
- 缺点:
- 建立和释放连接需要额外的时间开销
- 线路为使用双方独占,利用率低下
- 线路分配的灵活性低
- 交换节点不支持“差错控制”
- 优点:
-
电路交换更适合于低频次、大量地传输数据
-
计算机的数据传输往往是突发式传输,即高频次、少量传输
1.4.2 报文交换(Message Switching)
相比于电路交换,报文交换在信息体中添加了发送方与接收方等信息,报文交换机可以同时处理不同的请求
-
报文交换的过程:
-
- 用户准备报文:发送方生成完整的报文(包含完整的信息数据)。
- 报文传输:
- 发送方将整个报文发送到中间节点(通常是交换机或路由器)。
- 中间节点在完全接收并存储整个报文后,分析目标地址。
- 报文转发:
- 节点根据目标地址选择下一跳节点。
- 将报文完整地转发到下一节点。
- 逐跳传输:
- 每个中间节点重复“接收—存储—转发”的操作,直到报文到达目的地。
- 接收方处理:
- 接收方在完整接收到报文后开始处理和解析。
-
-
报文交换的优缺点
- 优点:
- 通信前无需建立连接
- 以“报文”为单位被交换节点间存储转发,通信线路之间可以灵活分配
- 在通行时间内,两个用户无需独占一条物理线路,线路的利用率大大上升
- 交换节点间支持差错控制
- 缺点:
- 报文不定长,不方便存储转发管理
- 长报文的存储转发时间开销大,缓存开销大
- 长报文容易出错,重传的代价大
- 优点:
1.4.3 分组交换(Packet Switching)
是报文交换的改进,将长度不定的报文切割为若干个长度一定的组,并在每个组的首部上添加上分组的控制信息
-
分组交换的流程:
- 数据分组:
- 发送方将数据分割为若干小块(分组或数据包),每个分组包含数据负载和控制信息(如源地址、目标地址、序列号等)。
- 分组发送:
- 分组按序或无序通过网络发送,采用“尽力而为”的模式(Best Effort)。
- 节点转发:
- 中间节点根据分组中的目标地址信息,动态选择下一跳路径,将分组转发。
- 不同分组可能经过不同的路径到达目的地。
- 分组重组:
- 接收方接收到分组后,根据序列号对分组进行排序和重组,恢复为原始数据。
- 数据分组:
-
相比于报文交换的改进:
- 分组定长,方便转发管理
- 分组的存储转发间时间开销小,缓存开销小
- 分组不容易出错,重传代价小
-
分组交换的优缺点:
- 优点:
- 通信前无需建立连接
- 以“分组”为单位被交换节点间存储转发,通信线路之间可以灵活分配
- 在通行时间内,两个用户无需独占一条物理线路,线路的利用率大大上升
- 交换节点间支持差错控制
- 缺点:
- 相比于报文交换,控制信息的占比增加
- 相比于电路交换,仍然存在存储转发延时
- 被分为多个分组,传输过程中可能出现失序、丢失等问题,增加处理的复杂度
- 优点:
1.4.4 虚电路交换技术(Virtual Circuit Switching)
结合了电路交换和分组交换优点核心思想是在数据传输前建立一个逻辑上的传输路径(虚电路),在通信期间为该路径分配资源,通信完成后释放资源
-
传输流程:
- 建立虚电路(路径建立阶段)
- 连接请求:发送方发起通信请求,向网络发送路径建立的控制信息(包括源地址、目标地址、服务质量要求等)
- 路径选择:网络中的交换节点根据路由算法选择最佳路径,并为该路径分配虚电路标识(如标签、标记或虚电路号)
- 确认建立:目标节点收到路径请求后,向源节点发送确认信息,表示路径已成功建立
- 数据传输阶段
- 数据被分割成分组(或帧),每个分组携带虚电路标识,而不需要携带完整的目标地址
- 网络中的交换节点根据虚电路标识快速查找路由表,将分组沿着预先建立的虚电路传输
- 数据按照建立的虚电路顺序传输,通常不会发生乱序现象
- 虚电路释放阶段
- 当通信完成后,发送方向网络发出虚电路释放请求
- 网络节点释放相关资源(如路由表中的条目、带宽等)
- 目标节点收到释放确认后,通信正式结束
- 建立虚电路(路径建立阶段)
-
虚电路交换的优缺点:
- 优点:
- 高效传输:路径建立后,分组只需要携带虚电路标识,减少了控制信息开销
- 顺序性保证:由于各个分组都在同一个路径上顺序传输,因而不会出现失序现象
- 资源预留:虚电路建立时可以预留贷款,保证服务质量
- 缺点:
- 建立延迟:有通信前需要建立虚电路,导致初始延迟增加
- 资源占用:虚电路占用后悔长期占用网络资源
- 敏感性高:如果某个结点或者链路故障,整个虚电路都会中断,需要重新建立连接
- 优点:
1.4.5 对比与总结
1.4.5.1 对比
类别 | 电路交换 | 报文交换 | 分组交换 | 虚电路交换 |
---|---|---|---|---|
基本原理 | 为通信双方建立一条专用的物理连接,整个通信期间独占资源。 | 将完整报文逐跳存储和转发,直到报文到达目的地。 | 将数据分割成分组,每个分组独立传输,动态路由选择。 | 建立逻辑路径(虚电路),数据分组按固定路径传输。 |
连接建立 | 必须预先建立连接,延迟较高。 | 无需建立连接,逐跳转发。 | 无需建立连接,分组动态选择路径。 | 需预先建立虚电路,延迟比电路交换低。 |
传输单位 | 整个数据流。 | 整个报文。 | 数据分组。 | 数据分组。 |
资源占用 | 独占整条路径资源,直到通信结束。 | 按需使用节点资源,资源利用率中等。 | 动态共享资源,利用率高。 | 部分资源预留,资源利用率介于电路和分组交换之间。 |
传输顺序 | 数据按顺序传输,无乱序问题。 | 数据按顺序传输,无乱序问题。 | 分组可能乱序,接收方需重新排序。 | 数据按顺序传输,无乱序问题。 |
服务质量 | 服务质量高,适合实时通信(如电话)。 | 服务质量不稳定,延迟较高,不适合实时通信。 | 服务质量较低,延迟和丢包可能较大。 | 服务质量较高,支持带宽预留和QoS管理。 |
故障恢复 | 故障时需重新建立连接,恢复时间长。 | 报文存储后可重新转发,可靠性较高。 | 分组动态路由,抗故障能力强。 | 故障需重新建立虚电路,恢复时间较短。 |
适用场景 | 电话通信、实时语音/视频等需要稳定连接的场景。 | 早期的电报通信、文件传输等非实时应用。 | 互联网、邮件、文件传输等数据通信场景。 | ATM网络、帧中继、视频会议等需要QoS的场景。 |
优势 | - 稳定可靠,支持实时通信。 - 无数据乱序问题。 | - 不需预先建立连接,简单灵活。 - 数据完整可靠。 | - 高资源利用率,动态调整路径。 - 抗故障能力强。 | - 顺序性好,无需重排序。 - 资源预留,支持QoS。 |
劣势 | - 资源利用率低,占用整个路径。 - 建立连接耗时。 | - 延迟较高,需存储完整报文后转发。 - 低效率。 | - 可能发生乱序和丢包,需重传和排序。 - 服务质量不稳定。 | - 需建立虚电路,初始延迟较大。 - 故障敏感性较高。 |
1.4.5.2 总结
- 电路交换:适合需要高稳定性、低延迟的实时通信,但资源利用率低。
- 报文交换:可靠性较高,但延迟和效率不适合现代网络。
- 分组交换:互联网通信的核心技术,动态灵活,适合大规模数据传输,但服务质量不稳定。
- 虚电路交换:在分组交换的基础上优化了服务质量,适合对QoS有要求的应用场景,如流媒体和视频会议。
1.4.6 性能对比
性能指标 | 电路交换 | 报文交换 | 分组交换 | 虚电路交换 |
---|---|---|---|---|
连接建立时间 | 长(需建立专用物理连接) | 无连接建立过程,直接发送 | 无连接建立过程,直接发送 | 中等(需建立逻辑路径,延迟比电路交换小) |
传输延迟 | 低(建立连接后数据直接传输) | 高(报文需完整存储后逐跳转发) | 低(分组动态转发,无需等待完整报文) | 低(数据分组沿预定路径传输) |
传输顺序 | 顺序传输,无乱序问题 | 顺序传输,无乱序问题 | 分组可能乱序,接收方需重新排序 | 顺序传输,无乱序问题 |
带宽利用率 | 低(通信期间独占资源) | 中等(逐跳使用资源,存在浪费) | 高(资源动态共享,多分组并行) | 中高(资源部分预留,动态调整) |
服务质量(QoS) | 高(稳定可靠,适合实时通信) | 较低(延迟大,适合非实时通信) | 不稳定(易受网络拥塞影响) | 高(支持QoS管理,资源预留) |
抗故障能力 | 低(链路故障需重新建立连接) | 高(存储报文后可重发) | 高(分组动态路由,故障后可调整路径) | 中等(虚电路故障需重新建立路径) |
控制信息开销 | 低(仅在建立连接时有开销) | 高(每个报文需完整地址和控制信息) | 高(每个分组需携带目标地址等信息) | 中等(仅携带虚电路标识,减少开销) |
网络资源利用率 | 低(专线独占,浪费资源) | 中等(资源利用率取决于流量大小) | 高(按需共享资源,动态调整) | 中高(资源预留与共享结合) |
复杂度 | 低(路径固定,简单实现) | 中等(需存储报文,逐跳转发) | 高(动态路由和重排序需要复杂机制) | 较高(结合分组和路径建立的复杂性) |
- 连接建立时间:
- 最快:报文交换、分组交换(无连接建立)。
- 较慢:虚电路交换(建立逻辑路径)。
- 最慢:电路交换(建立物理连接)。
- 传输延迟:
- 最低:电路交换、虚电路交换(路径固定)。
- 最高:报文交换(需完整接收后存储转发)。
- 带宽利用率:
- 最高:分组交换(动态共享资源)。
- 最低:电路交换(通信期间独占资源)。
- 服务质量(QoS):
- 最佳:电路交换、虚电路交换(支持资源预留和稳定性)。
- 较差:报文交换(延迟高)和分组交换(动态调整易受拥塞影响)。
- 抗故障能力:
- 最高:分组交换(动态路由调整)。
- 最低:电路交换(路径固定,故障需重新连接)。
- 控制信息开销:
- 最低:电路交换(连接建立后无需额外开销)。
- 最高:分组交换(每个分组需携带目标地址等)。
- 适用场景建议:
- 电路交换:适用于高实时性、低延迟要求的应用,如语音通话、视频会议。
- 报文交换:适用于需要完整可靠传输的非实时应用,如文件传输。
- 分组交换:适合大规模动态网络,如互联网、邮件、网页浏览。
- 虚电路交换:适用于对QoS有较高要求的场景,如ATM网络、视频流服务。