Loading... ## 计算机网络的概念 计算机网络(Computer networking)是一个将众多**分散的、自治的**计算机系统,通过**通信设备与线路连接**起来,由功能完善的**软件实现资源共享和信息传递**的系统。 ### 计算机网络 计算机网络:由若干结点(node)和连接这些结点的链路(link)组成。 - 结点可以是计算机、集线器、交换机、路由器等; - 链路可以是有线链路、无线链路。 集线器(Hub): - 可以把多个结点连接起来,组成一个计算机网络。 - 目前普通民用领域已经很少使用集线器了。 - 集线器工作在物理层。 交换机(Switch): - 可以把多个结点连接起来,组成一个计算机网络。 - 家庭、公司、学校通常用交换机组建内部网络。 - 交换机工作在数据链路层。 ### 互连网 (internet) 路由器(router): - 可以把两个或多个计算机网络互相连接起来,形成规模更大的计算机网络,也可称为 “互连网” - 路由器工作在网络层。 > 家用路由器 = 路由器 + 交换机 + 其他功能 ### 互联网 (Internet) ISP: Internet Service Provider,即互联网服务提供商,如中国电信/移动/联通。 互联网(或因特网,Internet ):由各大ISP和国际机构组建的,覆盖全球范围的互连网(internet) 互联网必须使用 **TCP/IP 协议**通信,互连网可使用任意协议通信。 ### 小结 ![image-20241101014105290.png][1] ## 计算机网络的组成和功能 ### 组成 从组成部分看: ![image-20241101014410052.png][2] 从工作方式看: ![image-20241101014635753.png][3] 从逻辑功能看: ![image-20241101014803315.png][4] 和上一种方式很类似。 ### 功能 ![image-20241101014923021.png][5] ## 三种交换技术 ### 电路交换 **电路交换**(Circuit Switching):通过物理线路的连接,**动态地分配传输线路资源** **电路交换的过程**: 1. 建立连接(尝试占用通信资源) 2. 通信(一直占用通信资源) 3. 释放连接(归还通信资源) **优点**:通信前从主叫端到被叫端建立一条**专用的物理通路**,在通信的全部时间内,两个用户**始终占用端到端的线路资源**。数据直送,**传输速率高**。 电路交换更适用于:低频次、大量地传输数据。 **缺点**: - 建立/释放连接,**需要额外的时间开销**。 计算机之间数据往往是 “突发式” 传输,即往往会高频次、少量地传输数据。 - 线路被通信双方独占,**利用率低**。 - 线路分配的**灵活性差**。 - 交换节点**不支持 “差错控制”**(无法发现传输过程中的发生的数据错误) ### 报文交换 **存储转发**的思想:把传送的数据单元先存储进中间节点,再根据目的地址转发至下一节点。 ![image-20241101122351369.png][6] **优点**: - 通信前**无需建立连接**。 - 数据以 “报文” 为单位被交换节点间存储转发,**通信线路可以灵活分配**。 - 在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,**线路利用率高**。 - 交换节点**支持 “差错控制”**(通过校验技术)。 **缺点**: - 报文不定长,不方便存储转发管理。 - 长报文的存储转发时间开销大、缓存开销大。 - 长报文容易出错,重传代价高。 ### 分组交换 ![image-20241101122744791.png][7] **优点**: - 通信前**无需建立连接**。 - 数据以 “分组” 为单位被交换节点间存储转发,**通信线路可以灵活分配**。 - 在通信时间内,两个用户无需独占一整条物理线路。相比于电路交换,**线路利用率高**。 - 交换节点**支持 “差错控制”**(通过校验技术)。 相对于报文交换,分组交换改进了如下问题: - 分组定长,方便存储转发管理; - 分组的存储转发时间开销小、缓存开销小; - 分组不易出错,重传代价低。 **缺点**: - 相比于报文交换,控制信息占比增加。 - 相比于电路交换,依然存在存储转发时延。 - 报文被拆分为多个分组,传输过程中可能出现失序、丢失等问题,增加处理的复杂度。 #### 虚电路交换技术 本质还是分组交换,但交换过程类似电路交换: 1. 建立连接(虚拟电路) 2. 通信(分组按序、按已建立好的既定线路发送,通信双方不独占线路) 3. 释放连接 > 第四章学习 ### 三种交换技术的比较 ![image-20241101123853275.png][8] ### 小结 | | 电路交换 | 报文交换 | 分组交换 | | ------------------------ | ---------------------------- | -------- | --------------------- | | 完成传输所需时间 | 最少 (排除建立/释放连接耗时) | 最多 | 较少 | | 存储转发时延 | 无 | 较高 | 较低 | | 通信前是否需要建立连接? | 是 | 否 | 否 | | 缓存开销 | 无 | 高 | 低 | | 是否支持差错控制? | 不支持 | 支持 | 支持 | | 报文数据有序到达? | 是 | 是 | 否 | | 是否需要额外的控制信息 | 否 | 是 | 是 (控制信息占比最大) | | 线路分配灵活性 | 不灵活 | 灵活 | 非常灵活 | | 线路利用率 | 低 | 高 | 非常高 | ## 计算机网络的分类 ### 按分布范围分类 **广域网** (WAN, Wide Area Network) : - 范围:几十 ~ 几千公里 。 - 跨省 / 跨国 / 跨洲 。 **城域网** (MAN, Metropolitan Area Network) : - 范围:几千米 ~ 几十千米 。 - 一个或几个相邻城市 。 - 通信技术:常采用“以太网技术”,因此常并入局域网范畴探讨。 局域网 (LAN, Local Area Network) : - 范围:几十米 ~ 几千米 。 - 学校 / 企业 / 工作单位 / 家庭 。 - 通信技术:以太网技术 。 如今的局域网几乎都是采用 “以太网技术” 实现,因此 “以太网” 几乎成了 “局域网” 的代名词。 个域网 (PAN, Personal Area Network) : - 范围:几十米以内 。 - 家庭 / 个人 。 - 通常是通过无线技术将个人设备连接起来的网络,因此也常称为无线个域网(WPAN)。 ### 按传输技术分类 **广播式网络**:当一台计算机发送数据分组时,广播范围内所有计算机都会收到该分组,并通过检查分组的目的地址决定是否接收该分组。 > Eg:所有无线网络都是 “广播式” 。 **点对点网络**:数据只会从发送方 “点对点” 发到接收方,精准送达。 > Eg:路由器转发的数据分组。 ### 按拓扑结构分类 **总线形结构**:数据 “广播式” 传输;存在 “总线争用” 问题。 > 典型代表:集线器连接的设备 ![image-20241101202336686.png][9] **环形结构**:数据 “广播式” 传输;通过 “令牌” 解决总线争用问题,令牌顺环形依次传递,拿到令牌者可使用总线。 > 典型代表:令牌环网(流行于2000年以前的局域网技术) ![image-20241101202516778.png][10] 星形结构:由中央设备实现数据的 “点对点” 传输;不存在 “总线争用” 问题。 > 典型代表:以太网交换机连接的设备 ![image-20241101205627073.png][11] 网状结构:数据通过各中间节点逐一存储转发;属于 “点到点” 传输。 > 典型代表:由众多路由器构建的广域网 ![image-20241101205635655.png][12] ### 按使用者分类 **公用网**:向公众开放的网络。如:办宽带、交手机话费即可使用的互联网。 **专用网**:仅供某个组织内部使用的网络。如:政府、军队、电力、银行的内部网络。 ### 按传输介质分类 **有线网络**。如:网线、光纤 **无线网络**。如:5G 、WiFi、卫星 ### 小结 ![image-20241101210102904.png][13] ## 计算机网络的性能指标 ### 速率 **信道**(Channel):表示**向某一方向传送信息的通道**(信道 $\neq$ 通信线路)一条**通信线路**在逻辑上往往对应**一条发送信道和一条接收信道**。 **速率**(Speed):指连接到网络上的节点在信道上传输数据的速率。也称数据率或比特率、**数据传输速率**。 > 真题常用数据传输速率,单位 bps ### 带宽 **带宽**(bandwidth):某信道所能传送的最高数据率。 节点间通信实际能达到的最高速率,由带宽、节点性能共同限制。信道带宽越大,传输数据的能力越强。 ### 吞吐量 **吞吐量**(Throughput):指单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量受带宽限制、受复杂的网络负载情况影响。 > 考试不常见 ### 时延 **时延**(Delay):指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。有时也称为延迟或迟延。 ![image-20241101213845082.png][14] ### 时延带宽积 时延带宽积的含义:一条链路中,已从发送端发出但尚未到达接收端的最大比特数。时延带宽积 = 传播时延 $\times$ 带宽 。 > 时延带宽积用于设计最短帧长 ### 往返时延 **往返时延 RTT**( Round-Trip Time ):表示从发送方发送完数据,到发送方收到来自接收方的确认总共经历的时间。 ![image-20241101214219871.png][15] > 为简化问题,此图并未分析发送方和接收方之间的其他节点。 - 往返时延 $RTT = t_2 + t_3 + t_4 + t_5$ 。 - $t_1$ : 发送方发送数据的发送时延(不计入 RTT )。 - $t_2$ : “数据” 的单向传播时延; - $t_3$ : 接收方收到数据后的处理时延; - $t_4$ : “确认” 的发送时延; - $t_5$ : “确认” 的传播时延(通常 $t_5$ 与 $t_2$ 相等)。 ### 信道利用率 **信道利用率**:某个信道有百分之多少的时间是有数据通过的。其计算公式为 $$ 信道利用率 = \frac{有数据通过的时间}{有数据通过的时间+没有数据通过的时间} $$ - 信道利用率不能太低,浪费资源; - 信道利用率也不能太高,容易导致网络拥塞。 ### 小结 ![image-20241101214606011.png][16] ![image-20241101214610435.png][17] ## 计算机网络的分层结构 计算机网络是一个非常复杂的系统,要完成诸多功能,如: - 差错控制:确保数据在传输过程中不出错。 - 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。 - 分段和重装:发送端将要发送的数据块划分为更小的单位,并在接收端将其还原。 - 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。 - 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。 ### 设计思想 **分层的设计思想**:将庞大而复杂的问题,转化为若干较小的局部问题。 ![image-20241101215519919.png][18] - 将复杂的计算机网络在逻辑上划分为多个层次,并将各种 “功能” 安排在合适的层次中。 - 不同类型的节点,实现的功能层次可能不一样。 - **分层结构的设计并不唯一**,可以根据实际需求增加或减少层次。 - 同一个功能可以在多个层次中重复出现。 ### 网络体系结构 网络的体系结构 (Network Architecture) 是计算机网络的各层及其协议的集合,就是这个计算机网络及其构件所应完成的功能的精确定义(不涉及实现)。 实现 (implementation) 是遵循这种体系结构的前提下,用何种硬件或软件完成这些功能的问题。 > 体系结构是抽象的,而实现则是具体的 **三种常见的计算机网络体系网络**: ![image-20241103215434896.png][19] ### 各层之间的关系 - **实体**:在计算机网络的分层结构中,第 n 层中的活动元素(软件+硬件)通常称为第 n 层实体。不同机器上的同一层称为**对等层**,同一层的实体称为**对等实体**。 - **协议**:即 网络协议(Network Protocol),是控制对等实体之间进行通信的规则的集合,**是水平的**。 ![image-20241103215825376.png][20] - **接口**:即同一节点内相邻两层的实体交换信息的逻辑接口,又称为服务访问点(Service Access Point, SAP)。 - **服务**:服务是指**下层为紧邻的上层**提供的功能调用,它是**垂直的**。 ![image-20241103215941390.png][21] ### 数据传输过程 计算机网络功能复杂 $\to$ 采用分层结构,将诸多功能合理地划分在不同层次 $\to$ 对等层之间制定协议,以实现功能。 对等的两个实体之间的通讯需要遵守某些协议,从而实现某些功能。比如 YSCS 协议(压缩传输协议): - 发送方将数据压缩后,需要增加 “**首部**” ,说明采用了哪种压缩算法; - 接收方根据 “首部” 信息选择解压缩算法将数据解压; - 其他规定等。 > 首部的大小、具体格式要在协议中明确规定。 #### 水平视角 ![image-20241104015438191.png][22] #### 垂直视角 ![image-20241104015232317.png][23] ### PDU, SDU, PCI 的概念 - **协议数据单元**(PDU):对等层次之间传送的数据单位。第 n 层的 PDU 记为 n-PDU 。 - **服务数据单元**(SDU):为完成上一层实体所要求的功能而传送的数据。第 n 层的 SDU 记为 n-SDU 。 - **协议控制信息**(PCI):控制协议操作的信息。第 n 层的 PCI 记为 n-PCI 。 三者的关系为 n-SDU + n-PCI = n-PDU = (n - 1)-SDU 。 ### 协议的三要素 协议由语法、语义和同步三部分组成(协议的三要素): 1. **语法**,数据与控制信息的格式。 例如,协议控制信息(首部)部分占几个字节、每个字节是什么含义;协议的数据部分最多有多少字节。 2. **语义**,即需要发出何种控制信息、完成何种动作及做出何种应答。 例如,协议中需要明确规定:发送方发完数据后,接收方是否需要 “应答” ,以及 “应答” 的种类有哪些(如:传输成功、传输失败)。 3. **同步**(或**时序**),执行各种操作的条件、时序关系等,即**事件实现顺序的详细说明**。 例如,发送方发完数据后,接收方需要立即应答。如果发送方在 10 秒内未收到 “传输成功” 应答,则发送方会再次发送数据。 ### 小结 ![image-20241104015742196.png][24] ## OSI 模型 需要记住各层的名称和顺序: ![image-20241104020558444.png][25] 常见网络设备的功能层次: ![image-20241104021226655.png][26] ### 物理层 物理层任务:实现相邻节点之间比特 (0 或 1) 的传输 。 1. 需定义电路接口参数 (如:形状、尺寸、引脚数等) 2. 需定义传输信号的含义、电气特征 (如:5V表示 1 , 1V表示 0;每比特电信号持续时间 0.1ms ) ![image-20241104021755207.png][27] ### 数据链路层 链路层任务:确保相邻节点之间的链路逻辑上无差错。包含以下功能: 1. 差错控制:检错+纠错; 或检错+丢弃+重传。 2. 流量控制:协调两个结点的速率。 ![image-20241104022005338.png][28] ### 网络层 网络层任务:把 “分组” 从源结点转发到目的结点。包含以下功能: 1. **路由选择**:构造并维护路由表,决定分组到达目的节点的最佳路径。 2. **分组转发**:将 “分组” 从合适的端口转发出去。 3. **拥塞控制**:发现网络拥塞,并采取措施缓解拥塞。 4. **网际互联**:实现异构网络互联。 5. **其他功能**:差错控制、流量控制、连接建立与释放、可靠传输管理。 > 网络层以**分组为单位**。 - **差错控制和流量控制**:数据链路层只能保证每个帧是正确的,即局部正确,需要网络层来进行差错控制来保证每个分组都是正确的。 - **连接的建立与释放**:确保分组有序,不重复的到达。 - **可靠传输管理**:接收方需要返回分组确认信息。 ![image-20241104022659941.png][29] ### 传输层 传输层任务:实现**端到端通信**,即实现**进程到进程的通信**,其中 "端" 指的是端口 。包含以下功能: 1. **复用和分用**:发送端几个高层实体复用一条底层的连接,在接收端再进行分用。 2. **其他功能**:差错控制、流量控制、连接建立与释放、可靠传输管理。 > 以**报文段为单位**。 ![image-20241104023200623.png][30] ### 5 ~ 7 层 **会话层**任务:管理进程间会话。主要功能:会话管理。采用检查点机制,当通信失效时从检查点继续恢复通信。 **表示层**任务:解决不同主机上信息表示不一致的问题。主要功能:数据格式转换。如编码转换,压缩/解压,加密/解密。 **应用层**任务:实现特定的网络应用。功能繁多,根据应用需求设计。 ### 小结 各层数据传输单位: ![image-20241104023913382.png][31] ![image-20241104024617729.png][32] > 物理传输媒体属于第零层。 ## TCP/IP 模型 需要记住各层的名称和顺序: ![image-20241104024802433.png][33] 下面主要探讨与 OSI 模型的区别。 ### 应用层 并不是所有的网络应用都需要数据格式转换,会话管理功能,因此 TCP/IP 模型删除了表示层和会话层。如果需要这两个功能,可以在应用层的特定协议中实现。 ### 网络接口层 TCP/IP 模型认为网络硬件种类繁多,不应该有过多的限制,因此将物理层和数据链路层合并为网络接口层。 网络接口层任务:实现相邻节点间的数据传输 (为网络层传输 "分组" ) 。**但具体怎么传输不做规定**。 > 这使得 TCP/IP 网络体系结构具有更强的灵活性和适应性。 ### 网络层 **功能**:路由选择,分组转发,拥塞控制,网际互连。 TCP/IP 网络层只保证 "尽最大能力交付" ,数据传输时不可靠的。差错控制和流量控制交给传输层来解决。 ### 传输层 **功能**:复用和分用,差错控制,流量控制,连接建立与释放,可靠传输管理。 在 TCP/IP 模型中,由传输层负责保证数据传输的正确性和可靠性。将网络核心部分的压力分担给边缘部分 (主机) 。 ### 小结 ![image-20241104025520617.png][34] ![image-20241104030643133.png][35] ![image-20241104030237996.png][36] [1]: https://blog.domineto.top/usr/uploads/2024/11/1326821914.png [2]: https://blog.domineto.top/usr/uploads/2024/11/1493216313.png [3]: https://blog.domineto.top/usr/uploads/2024/11/3601387890.png [4]: https://blog.domineto.top/usr/uploads/2024/11/550941265.png [5]: https://blog.domineto.top/usr/uploads/2024/11/2500525523.png [6]: https://blog.domineto.top/usr/uploads/2024/11/482349938.png [7]: https://blog.domineto.top/usr/uploads/2024/11/4018267292.png [8]: https://blog.domineto.top/usr/uploads/2024/11/2474273081.png [9]: https://blog.domineto.top/usr/uploads/2024/11/3243256394.png [10]: https://blog.domineto.top/usr/uploads/2024/11/2435722778.png [11]: https://blog.domineto.top/usr/uploads/2024/11/923824408.png [12]: https://blog.domineto.top/usr/uploads/2024/11/1132638404.png [13]: https://blog.domineto.top/usr/uploads/2024/11/2377253598.png [14]: https://blog.domineto.top/usr/uploads/2024/11/2245529086.png [15]: https://blog.domineto.top/usr/uploads/2024/11/3229473901.png [16]: https://blog.domineto.top/usr/uploads/2024/11/2602009774.png [17]: https://blog.domineto.top/usr/uploads/2024/11/2694329961.png [18]: https://blog.domineto.top/usr/uploads/2024/11/2382409384.png [19]: https://blog.domineto.top/usr/uploads/2024/11/2895539132.png [20]: https://blog.domineto.top/usr/uploads/2024/11/3742554801.png [21]: https://blog.domineto.top/usr/uploads/2024/11/1495624536.png [22]: https://blog.domineto.top/usr/uploads/2024/11/4244246605.png [23]: https://blog.domineto.top/usr/uploads/2024/11/2499781328.png [24]: https://blog.domineto.top/usr/uploads/2024/11/978196966.png [25]: https://blog.domineto.top/usr/uploads/2024/11/1647658413.png [26]: https://blog.domineto.top/usr/uploads/2024/11/3118302290.png [27]: https://blog.domineto.top/usr/uploads/2024/11/3556214504.png [28]: https://blog.domineto.top/usr/uploads/2024/11/1181611304.png [29]: https://blog.domineto.top/usr/uploads/2024/11/2292774600.png [30]: https://blog.domineto.top/usr/uploads/2024/11/276369478.png [31]: https://blog.domineto.top/usr/uploads/2024/11/2022118414.png [32]: https://blog.domineto.top/usr/uploads/2024/11/2069171674.png [33]: https://blog.domineto.top/usr/uploads/2024/11/1864593986.png [34]: https://blog.domineto.top/usr/uploads/2024/11/2740299790.png [35]: https://blog.domineto.top/usr/uploads/2024/11/604380400.png [36]: https://blog.domineto.top/usr/uploads/2024/11/3359670360.png 最后修改:2024 年 11 月 04 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏