写在前面
我打算用这个系列文章,把计算机网络从底层到应用层彻底讲清楚,不搞虚的,直接上干货。这是Day1,我们从最基础的网络概述和体系结构开始,帮你打好地基。

在这里插入图片描述

文章目录


一、计算机网络概述

1.1 什么是计算机网络?

计算机网络,说白了就是把一堆计算机用通信线路连起来,让它们能互相通信和共享资源

听起来很简单对吧?但这里面涉及的东西可不少。你要考虑怎么连(传输介质)、怎么传(协议)、怎么管(体系结构)、传多快(性能指标)等等一系列问题。

踩坑提醒:很多人把"互联网"和"计算机网络"混为一谈。互联网(Internet)是计算机网络的一种,是目前全球最大的互联网,但计算机网络还包括局域网、校园网、企业网等各种类型。


一个快递包裹的故事

为了让你对网络传输有个直观的认识,我先讲个故事。

假设你要给远方的朋友寄一份生日礼物——一盒手工饼干。这个过程是这样的:

  1. 你把饼干装进盒子(这就是数据
  2. 填写快递单:写上收件人地址、姓名、电话(这就是IP地址,让快递公司知道送到哪)
  3. 快递员上门取件,把包裹送到快递分拣中心(这就是路由器,负责把包裹转发到正确的方向)
  4. 分拣中心根据地址决定走哪条路:空运?陆运?(这就是路由选择
  5. 包裹经过多个分拣中心,最终到达收件人所在城市的站点
  6. 快递员把包裹送到朋友家门口,朋友签收(这就是数据到达接收方

在这个故事里:

  • 寄件人 = 发送方(你的电脑)
  • 收件人 = 接收方(朋友的电脑)
  • 快递公司 = 网络服务提供商(ISP,如电信、联通)
  • 分拣中心 = 路由器(决定包裹走哪条路)
  • 快递单上的地址 = IP地址(逻辑地址,用于寻址)
  • 包裹本身 = 数据包(实际要传输的内容)
  • 运输路线 = 通信链路(光纤、网线等)

关键理解:计算机网络本质上做的就是"快递包裹"的事情——把数据从A点可靠地送到B点。后面我们讲分层模型的时候,我会继续用这个快递的类比,帮你把每一层都对应上。


1.2 网络边缘与网络核心

计算机网络的结构可以分为两大部分:

网络边缘:就是我们直接接触的部分,包括主机(端系统)、应用程序等。你在电脑上打开浏览器、发微信,都是在网络边缘操作。

网络核心:是连接边缘的路由器、交换机、通信链路等基础设施。数据从A到B,中间要经过网络核心的转发和路由。

打个比方:网络边缘就像是你家和公司,网络核心就是中间的公路系统和交通枢纽。


外卖平台类比

再换个更贴近生活的例子——外卖平台

  • 网络边缘

    • 用户(你):打开美团/饿了么下单,这就是端系统
    • 商家(餐厅):接收订单、制作餐品,这也是端系统
    • 你和商家都是网络的"边缘",是服务的提供者和消费者
  • 网络核心

    • 骑手:负责把餐品从商家送到你手中,相当于路由器/交换机,负责数据的转发和传输
    • 平台调度系统:决定哪个骑手接单、走哪条路线最快,相当于路由算法
    • 道路网络:骑手实际行驶的路线,相当于通信链路

关键理解:边缘产生和消费数据,核心负责传输和转发数据。就像外卖系统中,用户和商家是边缘(产生订单和制作餐品),骑手和调度系统是核心(负责配送)。如果核心出了问题(比如所有骑手都罢工了),边缘再活跃也没用。


1.3 C/S架构 vs P2P架构

网络应用有两种主流架构:

对比项 C/S架构(客户端/服务器) P2P架构(对等网络)
核心思想 服务器提供服务,客户端请求 每个节点既是客户端也是服务器
典型应用 Web浏览、电子邮件、在线游戏 BitTorrent、区块链、即时通讯
可扩展性 服务器可能成为瓶颈 节点越多,性能越好
维护成本 服务器需要专人维护 无需中心服务器
缺点 服务器宕机则服务不可用 安全性难控制,管理复杂

我见过太多人面试的时候,被问到"P2P和C/S的区别"只能说出"一个有服务器一个没有"。这种回答太浅了,面试官想听的是你对两种架构优缺点的深入理解。


二、协议——网络通信的"法律"

2.1 什么是协议?

网络协议就是计算机之间通信时必须遵守的规则和约定。就像两个人聊天,得说同一种语言,否则鸡同鸭讲。

2.2 协议三要素

一个完整的网络协议必须包含三个要素:

要素 含义 举例
语法 数据的格式和结构 HTTP请求报文的格式(请求行+首部+空行+实体)
语义 每个部分的含义和要执行的操作 HTTP中GET表示获取资源,POST表示提交数据
时序 事件的顺序和速率 TCP三次握手的顺序:SYN → SYN+ACK → ACK

踩坑提醒:考试和面试中经常把"语法"和"语义"搞混。简单记:语法管"长什么样",语义管"什么意思",时序管"先来后到"。


打电话的类比

咱们用打电话来类比协议三要素,特别直观:

1. 语法 = 说话的语言格式

  • 你和朋友约定用中文通话,这就是语法
  • 如果你说法语、他说日语,双方根本听不懂,通信失败
  • 在网络中,语法规定数据"长什么样":比如IP地址是32位二进制,MAC地址是48位,HTTP报文要有请求行、首部、空行、实体

2. 语义 = 每句话的意思

  • 你说"明天一起吃饭",对方理解你要约他吃饭,这就是语义
  • 如果你说"明天一起吃饭",对方理解成"明天不要见面",那语义就错了
  • 在网络中,语义规定每个字段"什么意思":比如TCP报文中的ACK标志位为1,表示"这是一个确认报文"

3. 时序 = 谁先说话谁后说话

  • 打电话时,通常是"喂?“→"喂,你好"→"我是XXX"→"哦,你好你好”,这个顺序不能乱
  • 如果你一接通就开始说正事,对方可能还没准备好,信息就漏掉了
  • 在网络中,时序规定事件的顺序:比如TCP三次握手必须是 SYN → SYN+ACK → ACK,不能乱序

生活化总结:语法是"用什么语言说",语义是"说了什么意思",时序是"什么时候说"。三者缺一不可,少了任何一个,通信就会出问题。



三、网络分类

3.1 按覆盖范围分类

类型 全称 覆盖范围 典型例子
PAN Personal Area Network 个人范围(约10m) 蓝牙耳机、智能手表
LAN Local Area Network 局部范围(约1km) 家庭Wi-Fi、公司内网、校园网
MAN Metropolitan Area Network 城市范围(约10km) 城市有线电视网
WAN Wide Area Network 跨城市/跨国 互联网、跨国企业专线

3.2 按拓扑结构分类

网络拓扑结构决定了设备之间怎么连接:

  • 星型拓扑:所有设备连到一个中心节点(如交换机)。优点是易于管理,缺点是中心节点挂了全完蛋。
  • 总线型拓扑:所有设备共享一条总线。早期以太网用的就是这种,现在基本淘汰了。
  • 环型拓扑:设备首尾相连形成环路。令牌环网用的就是这种。
  • 网状拓扑:设备之间有多条链路,可靠性最高,但成本也最高。互联网核心就采用这种结构。
  • 树型拓扑:层次化的结构,适合组织机构的网络部署。

四、网络性能指标——面试必考

性能指标是计算机网络中最常考的知识点之一,务必理解每个指标的含义和计算方法。

4.1 带宽(Bandwidth)

带宽表示网络的最大数据传输速率,单位是 bit/s(bps)。

注意:带宽在计算机网络中的含义和信号处理中不同。在计算机网络中,带宽指的是"管道能通过的最大数据量",而不是频率范围。

4.2 时延(Delay)

时延是数据从源到目的所花费的时间,由四个部分组成:

时延类型 含义 计算公式
发送时延 发送数据所需的时间 数据长度 / 发送速率
传播时延 信号在链路上传播的时间 链路长度 / 电磁波传播速率
处理时延 路由器处理分组的时间 取决于设备性能
排队时延 分组在路由器队列中等待的时间 取决于网络拥塞程度

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

4.3 时延带宽积

时延带宽积 = 传播时延 × 带宽

这个指标表示链路上能容纳的最大比特数,可以理解为链路的"容量"。就像一条高速公路,长度乘以车道数就是这条路上最多能同时容纳多少辆车。

4.4 吞吐量(Throughput)

吞吐量表示单位时间内实际通过网络的数据量。注意和带宽区分:带宽是理论最大值,吞吐量是实际值。

4.5 往返时间 RTT(Round-Trip Time)

RTT是从发送方发出数据到收到确认所经历的时间。在TCP中,RTT是计算超时重传时间的重要依据。

4.6 丢包率

丢包率 = 丢失的分组数 / 总发送的分组数

丢包率是衡量网络质量的重要指标。丢包率过高会导致TCP频繁重传,严重影响传输效率。

4.7 信道利用率

信道利用率表示信道被使用的比例

  • 信道利用率 = 有数据传输的时间 / 总时间
  • 利用率越高,排队时延越大(D = D₀ / (1 - U))
  • 一般信道利用率不应超过50%

踩坑提醒:很多人做计算题的时候,分不清"发送时延"和"传播时延"。记住:发送时延跟数据长度和带宽有关,传播时延跟距离和传播速度有关。这是两码事!


性能指标计算例题

光说不练假把式,来一道完整的计算题,手把手教你做。

题目

数据长度为 1000字节,链路带宽为 1Mbps,链路长度为 1000km,信号传播速率为 2×10⁸ m/s。求:发送时延、传播时延、总时延。

解题步骤

第一步:统一单位

先把所有数据转换成基本单位:

  • 数据长度 = 1000字节 = 1000 × 8 = 8000 bit
  • 带宽 = 1 Mbps = 1 × 10⁶ bit/s
  • 链路长度 = 1000 km = 1000 × 10³ m = 10⁶ m
  • 传播速率 = 2 × 10⁸ m/s

第二步:计算发送时延

发送时延 = 数据长度 / 发送速率 = 数据长度 / 带宽

发送时延 = 8000 bit / (1 × 10⁶ bit/s) = 0.008 s = 8 ms

理解:发送时延就是"把数据推上链路所需要的时间"。就像你往水管里倒水,倒完一桶水需要的时间。带宽越大(水管越粗),发送时延越小。

第三步:计算传播时延

传播时延 = 链路长度 / 传播速率

传播时延 = 10⁶ m / (2 × 10⁸ m/s) = 0.005 s = 5 ms

理解:传播时延就是"信号在链路上跑的时间"。就像水在水管里流动的速度。距离越远,传播时延越大;传播速率越快(比如光纤比铜线快),传播时延越小。

第四步:计算总时延

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

题目没有给出处理时延和排队时延,通常在这类基础计算题中,这两项忽略不计或假设为0。

总时延 = 8 ms + 5 ms = 13 ms

答案汇总

  • 发送时延 = 8 ms
  • 传播时延 = 5 ms
  • 总时延 = 13 ms

踩坑提醒

  1. 单位换算最容易出错!字节(Byte)和比特(bit)差8倍,1字节 = 8比特。题目给的是"字节",公式用的是"比特",千万别忘乘8。
  2. 带宽和速率要区分:带宽是链路的属性(1Mbps),发送速率就是带宽。
  3. 传播速率不是带宽:传播速率是信号在介质中的物理传播速度(接近光速),和带宽完全是两码事。

五、数据交换方式

5.1 三种交换方式对比

对比项 电路交换 报文交换 分组交换
原理 通信前建立专用通路 整个报文一起转发 报文拆成小分组独立转发
建立连接 需要 不需要 不需要(虚电路除外)
传输延迟 建立连接有延迟 较大(报文大) 较小(分组小)
线路利用率 低(独占) 较高 最高
可靠性 中等 需要额外机制保证
典型应用 传统电话网 电报系统 互联网

5.2 路由 vs 转发

这两个概念很多人搞混:

  • 转发(Forwarding):路由器根据转发表将分组从输入端口送到合适的输出端口。这是局部行为,只关心"这个包该从哪个口出去"。
  • 路由(Routing):通过路由算法确定分组从源到目的的完整路径。这是全局行为,关心"从A到B走哪条路最好"。

打个比方:转发就像是十字路口的交警指挥你往哪个方向走,路由就像是导航软件帮你规划从北京到上海的路线。


六、网络体系结构与分层模型

6.1 为什么要分层?

说实话,分层是计算机网络最核心的设计思想。把复杂的网络通信问题拆分成多个层次,每层只负责自己的功能,层与层之间通过接口交互。

这样做的好处:

  • 各层独立:改某一层的实现不影响其他层
  • 简化设计:把大问题拆成小问题
  • 标准化:每层可以独立制定标准

餐厅厨房的分工类比

为什么需要分层?我用一个餐厅厨房的例子来解释,你就明白了。

假设一家餐厅做一道"番茄炒蛋",厨房的分工是这样的:

  1. 采购部:负责买菜(番茄、鸡蛋、葱)
  2. 洗菜部:负责清洗食材
  3. 切配部:负责切番茄、打鸡蛋、切葱花
  4. 炒菜部:负责掌勺炒制
  5. 传菜部:负责把菜端到客人桌上

如果厨房不分层会怎样?

想象一下,如果让一个人从头到尾做所有事情:

  • 他得先去菜市场买菜
  • 回来洗菜、切菜
  • 然后炒菜
  • 最后端给客人

如果客人点了10道菜,他一个人忙得过来吗?如果他在炒菜的时候,新来的客人要点菜,他根本顾不上。而且如果他生病了,整个餐厅就停摆了。

分层之后的好处

  • 专业化:炒菜师傅只管炒菜,切配师傅只管切菜,各司其职
  • 可替换性:炒菜师傅请假了,换另一个炒菜师傅就行,不影响洗菜和切配
  • 并行工作:洗菜的同时可以切配上一批菜,炒菜的同时可以传菜
  • 标准化接口:切配部把切好的菜放在固定位置,炒菜部从这个位置取,这就是"接口"

对应到计算机网络

  • 应用层 = 客人点菜(用户需求)
  • 传输层 = 传菜部(端到端的可靠送达)
  • 网络层 = 调度系统(决定走哪条路)
  • 数据链路层 = 厨师(相邻节点间的处理)
  • 物理层 = 厨房设备(锅碗瓢盆、水电燃气)

关键理解:分层的目的就是把一个复杂的大问题,拆成多个简单的小问题。每一层只关心自己的职责,通过标准接口和上下层交互。这样设计出来的系统更容易理解、实现和维护。


6.2 OSI七层模型

OSI(Open Systems Interconnection)参考模型是理论上的标准,由国际标准化组织(ISO)提出:

层号 层名 功能 数据单元 典型设备/协议
7 应用层 为用户应用提供服务 报文 HTTP、FTP、DNS、SMTP
6 表示层 数据格式转换、加密解密 报文 SSL/TLS、JPEG、ASCII
5 会话层 建立、管理和终止会话 报文 NetBIOS、RPC
4 传输层 端到端的可靠传输 报文段(TCP)/用户数据报(UDP) TCP、UDP
3 网络层 路由选择和分组转发 数据报/分组 IP、ICMP、ARP、路由器
2 数据链路层 帧的传输和差错控制 以太网、PPP、交换机
1 物理层 比特流的传输 比特 中继器、集线器、双绞线

记忆口诀:从下往上记——“物数网传会表应”(物联网传会表应),谐音记忆效果很好。


快递包裹视角看分层

还记得开头的快递包裹故事吗?现在我们把快递流程和网络分层对应起来:

OSI层 快递类比 作用
应用层 你写的一封信(信的内容) 用户真正要传输的数据
表示层 把信翻译成对方能懂的语言 数据格式转换、加密
会话层 确认对方在家,可以收信 建立、管理、终止会话
传输层 快递公司的"保价服务" 确保包裹完整送达,不丢件
网络层 快递单上的收件地址 决定包裹从哪来到哪去
数据链路层 快递员把包裹装车、卸车 相邻站点间的运输
物理层 卡车、飞机、道路 实际的运输工具和路线

快递的完整流程对应网络传输

  1. 应用层:你写了一封信(数据)
  2. 表示层:把信装进信封,写上格式(封装格式)
  3. 会话层:打电话确认朋友在家(建立连接)
  4. 传输层:选择保价服务,确保不丢件(可靠传输)
  5. 网络层:填写快递单,写上收件地址(IP地址)
  6. 数据链路层:快递员把包裹从站点A运到站点B(MAC地址寻址)
  7. 物理层:包裹坐上卡车/飞机,走高速公路(比特流传输)

关键理解:每一层都只做自己的事情,然后交给下一层。就像快递中,你只管写信(应用层),快递公司负责送到(下面各层)。你不需要关心包裹是坐飞机还是卡车,那是"物理层"的事情。


6.3 TCP/IP四层模型

TCP/IP模型是实际使用的模型,更实用:

层号 层名 对应OSI层 功能
4 应用层 OSI的5、6、7层 处理应用逻辑
3 传输层 OSI第4层 端到端传输
2 网际层 OSI第3层 路由和寻址
1 网络接口层 OSI第1、2层 物理传输和帧封装

6.4 五层混合模型

为了教学方便,通常采用五层混合模型,结合了OSI和TCP/IP的优点:

+-------------------+
|     应用层         |  ← HTTP、DNS、FTP...
+-------------------+
|     传输层         |  ← TCP、UDP
+-------------------+
|     网络层         |  ← IP、ICMP
+-------------------+
|     数据链路层     |  ← 以太网、PPP
+-------------------+
|     物理层         |  ← 双绞线、光纤
+-------------------+

6.5 三种模型对比

对比项 OSI七层模型 TCP/IP四层模型 五层混合模型
层数 7层 4层 5层
性质 理论标准 实际工业标准 教学模型
网络层 面向连接和无连接 仅无连接(IP) 仅无连接
传输层 面向连接和无连接 面向连接(TCP)和无连接(UDP) 面向连接和无连接
表示层/会话层 无(合并到应用层) 无(合并到应用层)
优缺点 理论完整但过于复杂 简洁实用 适合教学

七、数据封装与解封装

7.1 封装过程

数据从应用层往下传,每一层都会加上自己的头部信息(有些层还会加尾部),这个过程叫封装

应用层:  生成用户数据
    ↓ 加上应用层首部
传输层:  报文段(加上TCP/UDP首部,包含端口号等)
    ↓ 加上IP首部
网络层:  数据报/分组(加上IP首部,包含IP地址等)
    ↓ 加上帧首部和尾部
数据链路层:帧(加上MAC地址等,尾部包含FCS校验)
    ↓ 转换为比特流
物理层:  比特流(通过物理介质传输)

7.2 解封装过程

接收端收到数据后,从物理层往上,每一层去掉对应的头部,最终还原出用户数据。

关键理解:每一层只处理自己层的头部信息,不关心上层的具体内容。就像快递员只看收件地址,不关心包裹里装的是什么。


俄罗斯套娃类比

数据封装的过程,就像俄罗斯套娃

最里面的娃娃:应用层数据(你的心意——一封信)
    ↓ 套上一层
第二层娃娃:传输层首部(保价标签——确保不丢件)
    ↓ 再套上一层
第三层娃娃:网络层首部(快递单——写明收件地址)
    ↓ 再套上一层
第四层娃娃:数据链路层首部和尾部(快递袋——保护包裹,贴条码)
    ↓ 最后一层
最外面的娃娃:物理层比特流(卡车——实际运输)

发送方:一层一层地"套娃",每套一层就加上一个头部(有些层还要加尾部)。

接收方:一层一层地"拆娃",每拆一层就检查对应的头部信息,然后把"娃"交给上一层。

生活化理解:你寄快递的时候,先把东西装进盒子(应用层数据),然后贴上保价标签(传输层),再填快递单(网络层),最后装进快递袋(数据链路层)。快递员(物理层)把快递袋运走。收件人收到后,先拆快递袋,再看快递单,再看保价标签,最后打开盒子——这就是解封装。


7.3 封装过程图示

发送端封装:
┌─────────────────────────────────────────┐
│ 应用层数据                                │
├─────────────────────────────────────────┤
│ TCP首部 │         应用层数据              │
├─────────────────────────────────────────┤
│ IP首部  │ TCP首部 │    应用层数据         │
├─────────────────────────────────────────┤
│ 帧首部 │ IP首部  │ TCP首部 │ 应用数据 │ FCS│
└─────────────────────────────────────────┘

八、新手常见误区

学计算机网络,新手最容易在以下几个概念上栽跟头。我专门整理出来,帮你提前避坑。

误区1:OSI七层模型 vs TCP/IP四层模型——傻傻分不清

错误理解

  • “OSI七层是实际用的,TCP/IP四层是理论的”(反了!
  • “TCP/IP比OSI多三层”(完全搞反!

正确理解

  • OSI七层理论标准,由ISO提出,主要用于教学和统一术语
  • TCP/IP四层实际工业标准,互联网就是基于TCP/IP构建的
  • TCP/IP把OSI的应用层、表示层、会话层合并成了应用层,把物理层和数据链路层合并成了网络接口层

记忆技巧

  • OSI = 理论完整但复杂(“理想主义者”)
  • TCP/IP = 简洁实用(“实干家”)
  • 五层模型 = 教学用的折中方案(“和事佬”)

踩坑提醒:面试时如果被问到"实际用的是哪个模型",一定要答TCP/IP四层模型。OSI只是参考框架,真正跑在互联网上的是TCP/IP。


误区2:带宽 vs 速率——不是一个东西

错误理解

  • “我家带宽100Mbps,下载速度就是100MB/s”(单位错了,数值也错了!
  • “带宽越大,传播时延越小”(两码事!

正确理解

  • 带宽 = 链路的最大理论传输能力,单位是 bit/s(bps)
  • 速率 = 实际传输速度,受带宽、网络拥塞、协议开销等影响
  • 下载速度的单位通常是 MB/s,而带宽单位是 Mbps,两者差8倍

举个例子

  • 你家带宽是 100 Mbps(100兆比特每秒)
  • 理论下载速度 = 100 / 8 = 12.5 MB/s(兆字节每秒)
  • 实际下载速度可能只有 10 MB/s,因为还有协议开销、网络拥塞等

踩坑提醒:带宽影响的是发送时延,不是传播时延。传播时延只和距离、传播速率有关。就像水管越粗(带宽大),倒满一桶水越快(发送时延小),但水流速度(传播速率)不变。


误区3:路由 vs 转发——一个是全局规划,一个是局部执行

错误理解

  • “路由和转发是一个意思”(不是!
  • “路由器只做路由,不做转发”(反了,路由器主要做转发!

正确理解

  • 路由(Routing) = 全局规划,决定"从A到B走哪条路最好",生成路由表
  • 转发(Forwarding) = 局部执行,根据路由表"这个包从哪个端口出去"

快递类比

  • 路由 = 导航软件规划从北京到上海的最优路线(走京沪高速还是走沿海高速)
  • 转发 = 到了济南分拣中心,快递员看快递单上的地址,决定把包裹放到去上海的货车上

踩坑提醒:路由是"控制平面"(Control Plane),转发是"数据平面"(Data Plane)。路由器既要运行路由协议(如OSPF、BGP)来生成路由表,又要根据路由表做实际的包转发。


误区4:电路交换 vs 分组交换——一个独占,一个共享

错误理解

  • “电路交换比分组交换快,所以更好”(不一定!
  • “分组交换会丢包,所以不可靠”(现代网络有机制保证可靠性

正确理解

  • 电路交换 = 独占线路,像传统电话。通话前要建立连接,通话期间这条线只给你用
  • 分组交换 = 共享线路,像互联网。数据拆成小包,每个包独立走,线路大家共用

生活类比

  • 电路交换 = 你包下整个会议室开会,别人不能用。会议期间你随时说话,但即使你不说话,会议室也空着
  • 分组交换 = 大家共用一个会议室,谁有话说就说,没话说就给别人用。效率高,但可能需要排队

踩坑提醒:互联网选择分组交换,不是因为电路交换不好,而是因为分组交换更适合数据的突发性。你刷网页时,大部分时间不传输数据,偶尔一下加载很多数据。分组交换让多个用户共享链路,利用率更高。


九、问题与解答

Q1:为什么OSI模型没有在实际中广泛使用?

A:OSI模型过于理想化,层次划分过细(特别是表示层和会话层功能在实际中往往被合并到应用层)。而且OSI模型出现的时候,TCP/IP协议栈已经在实际应用中占据了主导地位。TCP/IP模型更简洁实用,所以成为了事实上的标准。OSI模型的价值主要在于提供了统一的参考框架和术语体系。

Q2:时延带宽积有什么实际意义?

A:时延带宽积表示链路上"正在传输中的比特数"。如果发送方连续发送数据,第一个比特到达目的地之前,链路上已经塞满了比特。这个值决定了发送方在收到确认之前可以发送多少数据而不会造成拥塞。在TCP的滑动窗口和流量控制中,时延带宽积是一个关键参数。

Q3:分组交换为什么比电路交换更适合互联网?

A:主要有三个原因。第一,分组交换不需要建立连接,延迟更小。第二,分组交换的线路利用率高,多个用户可以共享链路。第三,分组交换更加灵活,如果某条链路故障,分组可以选择其他路径。而电路交换一旦建立连接就独占线路,利用率低且不够灵活。


十、面试高频考点汇总

面试题1:OSI七层模型和TCP/IP四层模型有什么区别?

参考答案

  1. 层数不同:OSI是7层,TCP/IP是4层。OSI把网络接口层拆成了物理层和数据链路层,把应用层拆成了应用层、表示层和会话层。
  2. 出现背景不同:OSI是理论参考模型,由ISO制定;TCP/IP是实际工业标准,随互联网发展自然形成。
  3. 网络层支持不同:OSI网络层同时支持面向连接和无连接通信;TCP/IP网际层只支持无连接(IP协议)。
  4. 实用性:TCP/IP模型更实用,OSI模型更适合作为教学和理论分析框架。

面试题2:请描述数据封装的完整过程

参考答案

数据封装是从上到下的过程。应用层生成用户数据;传输层在数据前加上TCP/UDP首部(包含源端口号和目的端口号),形成报文段或用户数据报;网络层加上IP首部(包含源IP和目的IP),形成数据报;数据链路层加上帧首部(包含源MAC和目的MAC)和帧尾部(FCS校验),形成帧;物理层将帧转换为比特流在物理介质上传输。每一层封装后形成的数据单元称为该层的协议数据单元(PDU)

面试题3:带宽和吞吐量有什么区别?

参考答案

带宽是链路的最大理论传输能力,是链路本身的属性,就像高速公路的设计车道数。吞吐量是实际传输的数据量,受带宽、网络拥塞、协议开销等因素影响,就像高速公路上实际通过的车辆数。吞吐量永远不会超过带宽,但在网络拥塞时可能远小于带宽。

面试题4:电路交换、报文交换和分组交换各有什么优缺点?

参考答案

电路交换:优点是实时性强、延迟稳定、数据按序到达;缺点是线路利用率低、建立连接有开销、不适合突发数据。

报文交换:优点是线路利用率较高、不需要建立连接;缺点是延迟大(整个报文存储转发)、需要大容量存储。

分组交换:优点是线路利用率最高、延迟小(分组小)、灵活(可走不同路径);缺点是有额外的首部开销、分组可能乱序到达、需要重新排序。

面试题5:路由和转发有什么区别?

参考答案

路由是全局的、控制平面的行为,通过路由算法确定分组从源到目的的完整路径,构建路由表。转发是局部的、数据平面的行为,路由器根据转发表将到达的分组从合适的端口送出。简单来说,路由决定"走哪条路",转发决定"从哪个口出去"。


十一、模拟测试题

选择题/填空题

1. 在OSI参考模型中,负责为网络层提供可靠数据传输的层是( )

A. 物理层 B. 数据链路层 C. 传输层 D. 会话层

2. 下列不属于网络性能指标的是( )

A. 带宽 B. 时延 C. 协议 D. 丢包率

3. TCP/IP模型中,与OSI模型的网络层对应的是( )

A. 网络接口层 B. 网际层 C. 传输层 D. 应用层

4. 数据从应用层到物理层传输的过程中,数据单元依次是:报文→______→分组→帧→比特流。

5. 某链路的传播时延为10ms,带宽为1Mbps,则该链路的时延带宽积为______bit。

参考答案

1. B(数据链路层通过帧的差错检测和重传机制为网络层提供可靠传输)

2. C(协议是通信规则,不是性能指标)

3. B(TCP/IP的网际层对应OSI的网络层)

4. 报文段/用户数据报(传输层的数据单元)

5. 10000(时延带宽积 = 10ms × 1Mbps = 0.01s × 1000000bps = 10000bit)


十二、互动话题

今天的内容是计算机网络的基础框架,你觉得最难理解的是哪个概念?是OSI七层模型、各种性能指标的计算,还是数据封装的过程?

欢迎在评论区留言讨论,我会逐一回复。下一期我们进入物理层和数据链路层,会讲传输介质、编码调制、以太网协议这些更硬核的内容,记得关注不迷路!


参考资料

  1. Computer Networking: A Top-Down Approach (8th Edition) - Kurose & Ross
  2. RFC 1122 - Requirements for Internet Hosts
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐