计算机网络概述

网络进化史

注意区分 互联网 (Internet) 和 互连网,后者是局部的 一个网络。

只有使用了 TCP/IP 协议族的 互连网 才叫 互联网

类似 中国电信 中国移动 都有自己的 主干 ISP 网(速度极快)

如果两个用户之间需要通信,可以在地区 ISP 间搭建一个 IXP 可以实现快速交换数据

互联网的组成

边缘部分

注意:用户间通信实际是对应设备上的 进程之间互相通信(entail 计组、OS)

所以 os 里有一种架构就是 c/s 架构操作系统,

核心部分

⭐三种交换方式

电路交换

电路交换的优点

  • 线路专用,通信时延小,不会争用物理信道

  • 通信时按顺序传数据,不会失序

  • 交换设备控制简单

电路交换的缺点

  • 建立连接时间长

  • 线路利用率低

  • 线路出故障需要重新拨号建立连接

  • 不同规格、速率的终端难以通信

  • 中间结点不具备存储检验数据能力,难以发现和纠正错误

报文交换

中间的 B 表示的是 交换节点

采用存储转发机制

B 收到 A 的 报文,然后转发给 C

报文交换的优点

  • 无需建立连接,用户可以随时发送报文

  • 交换设备可以选择合适的空闲线路发送

  • 报文只有在传送时才会占用通信资源,线路利用率高

  • 一个报文可以同时发送给多个目的地址

报文交换的缺点

  • 转发时延高,交换结点要把报文整体接受了才能查找转发表转发

  • 报文的大小没有限制,要求交换结点有足够的缓存空间

  • 报文太长的话发生错误的概率增加,重传代价也更大

分组交换(数据报)

分组传输可以并行进行,所以可以通过流水线方式减少报文的传输时间。

分组交换的优点

  • 不需要建立连接,随时可以发送分组

  • 分组长度固定,缓冲区大小也固定,更好管理

  • 分组只有在传送时才会占用通信资源,线路利用率高

  • 分组是逐个传输的,可以让后一个分组的存储操作和前一个分组的转发操作并行,通过流水线方式减少报文的传输时间

  • 分组较短,出错概率小,即使出错重传代价也小

分组交换的缺点

  • 虽然分组比报更小,但仍存在存储转发时延

  • 每个分组除了数据都需要增加额外的控制信息,让控制变得更复杂

  • 分组交换可能出现失序、重复、丢失的情况;采用虚电路可以解决

分组交换(虚电路)

不同于 数据报 方式,数据报中同一个报文的不同分组可以走不同的路径

同样的情况在 虚电路 中 只能走一开始就建立的 链接路径。

特点

  1. 适于时间、频繁的数据交换

  2. 虚电路的路由选择体现在建连接阶段,连接建后就确定了传输路径

  3. 提供可靠的通信服务,保证分组有序到达,还可以对两个数据端点的流量进控制

  4. 网络中某结点链路出现故障后,虚电路遭到破坏

三种方式比较

当需连续传输大量数据,并且传输时间远大于连接建立时间时,采用 电路交换 更为合适。

但从提升网络整体信道利用率角度看,报文交换 和 分组交换 优于 电路交换。

其中,分组交换时延更小、更灵活,适合突发式数据通信

上图中 A、B、C、D 分别是 终端设备,纵坐标是时间

计算机网络分类

⭐性能指标

这一小节应该放到 第二章物理层讲 的

一般不计算

用来展示计算机网络是否阻塞

注意 传播时延 实际上是 不可避免的,任何数据(一组)在这一根信道中传输数据时,不可避免的 都要 经历这一段 过程。不可能说两个设备直接对接传输,必须要有传输介质。

往返 RTT 不包含 发送时延,本质就是 两次 传输时延

例题

该例说明,在不同情况下,对应的主导时延时不同的。

解题方法

重点

分层结构

🔥高优先级

OSI 模型是选择题的高频考点,需要理解每一层的功能。此外,还需要了解 TCP/IP 协议栈和 OSI 协议栈的不同 以及 协议数据单元的概念。

真题练习

ISO/OSI 模型

OSI 参考模型 有 7 层,自下而上依次为【物理层、数据链路层、网络层、传输层、会话层、表示层、应用层】(记忆:物链网输会示用)。低三层统称为 通信子网,它是为了联网而附加的通信设备,完成数据的传输功能;高三层统称为 资源子网,它相当于计算机系统,完成数据的处理等功能。传输层 承上启下。

OSI 参考模型的层次结构如下图所示:

相对应的 模型中只给出对应的层次及其构件完成对应功能的精确定义。需要重点知道的是,这些功能的实现细节不是该体系结构本身所描述的内容。

物理层

物理层的传输单位是 比特,功能是在物理媒体上为数据端设备透明地传输原始比特流,不用参与数据封装工作。为了实现该功能,物理层需要定义 硬件设备标准,如电缆类型、接口类型、电压标准等。

数据链路层

数据链路层的传输单位是 ,两台主机之间的数据传输总是在一段一段的链路上传送的,这就需要使用专门的链路层协议。

数据链路层将网络层交来的 IP 分组封装成帧,并且可靠地传输到相邻结点的网络层。主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为尽可能可靠的 数据链路。数据链路层的功能可以概括为:物理寻址组帧差错控制、点对点流量控制、数据重发和传输管理等。

网络层

网络层(Netweork Layer)的传输单位是 数据报,它关心的是通信子网的运行控制,主要任务是把网络层的 协议数据单元(分组)从源端传到目的端,为分组交换网上的不同主机提供通信服务。关键问题是对分组进行 路由选择,并实现整个网络的流量控制。

传输层

传输层(Transport Layer)的传输单位是报文段或用户数据报,传输层负责主机中两个进程之间的通信,功能是为 端到端 连接提供可靠的传输服务,为 端到端 连接提供流量控制(端到端)、差错控制、服务质量、数据传输管理等服务。

数据链路层提供的是 点到点 的通信,传输层提供的是 端到端 的通信,两者不同。点到点 可以理解为主机到主机之间的通信;端到端的通信是指运行在 不同主机内的两个进程之间的通信,只有传输层及以上各层的通信才能称为端到端。

注意,在 ISO/OSI 模型中网络层支持无连接和面向连接的通信,但在传播层仅支持面向连接的通信;

重点

会话层

会话层(Session Layer)允许不同主机上的各个进程之间进行会话。 会话 这种服务主要为用户进程建立连接,并在连接上有序地传输数据,这就是 会话。

会话层负责管理主机间的会话进程,包括建立、管理及终止进程间的 检查点 机制来维持可靠会话,使通信会话在通信失效时从检查点继续恢复通信,即断点下载的原理。

[会话管理] [同步]

表示层

表示层 主要处理在两个通信系统中交换信息的表示方式。不同机器采用的 编码 和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据和信息之间能互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的 编码 形式。此外,数据压缩、加密和解密 也是表示层的功能。

应用层

应用层是 OSI 参考模型的最高层,是用户与网络的接口。应用层为特定类型的网络应用提供访问 OSI 参考模型环境的手段。因为用户的实际应用多种多样,这就要求 应用层 采用不同的应用 协议 来解决不同类型的应用要求,因此 应用层 是最复杂的一层,使用的 协议 也最多

⭐TCP/IP 模型

TCP/IP 模型 从低到高依次为【网络接口层(对应 OSI 参考模型 中的物理层和数据链路层)、网际层传输层 和 应用层(对应 OSI 参考模型 中的会话层、表示层和应用层)】。TCP/IP 由于得到广泛应用而成为事实上的国际标准。TCP/IP 模型 的层次结构如下图所示:

TCP/IP 模型 与 OSI 模型 的不同点在于 网络接口层 和 应用层,可以理解为 TCP/IP 模型 中这两层涵盖了 OSI 协议 中多层的功能(简化):

学习计算机网络时,我们往往采取折中的办法,即综合 OSI 参考模型 和 TCP/IP 模型 的优点,采用一种如下图所示的只有 5 层协议 的体系结构,即我们所熟知的【物理层、数据链路层、网络层、传输层和应用层】。

注意

这些层次并不是主机自带的,而是通过操作系统和网络协议栈的实现来提供的。操作系统如Windows、Linux等都内置了支持这些网络层次的协议栈,以便能与其他系统进行网络通信

协议数据单元

在网络中,协议数据单元PDU,Protocol Data Unit)是指在某一层协议中传输的数据单元。每一层在接收来自上一层的数据时,都会在其头部添加控制信息(称为首部 Header),然后将其当作一个新的 PDU 交给下一层处理。这就是所谓的 封装 过程。

虽然用户进程要经过以上复杂过程才能把数据送到对应的进程,但是对用户而言,底层过程都是被封装好的,主机1 进程认为他是直接把数据交给了 主机2 的进程。

同理,任意同样两层 也好像 把数据直接水平传送给对方!

OSI 层级PDU 名称
7 应用层Data(数据)
6 表示层Data(数据)
5 会话层Data(数据)
4 传输层UDP Datagram(UDP 数据报)
TCP Segment(TCP 数据段、TCP 分段)
3 网络层IP Packet(IP 分组,IP 数据包,IP 报文)
2 数据链路层帧(Frame)
1 物理层比特(Bit)

注意

对于上表,首要的是掌握英文的名词表述,相比中文,这些表述更加统一和精准,中文翻译良莠不齐,常常有多种表述方式,但是表述的都是一个概念,能见词闻义即可。

网络设备总结

⭐中优先级

需要掌握不同层次网络设备的功能,哪些能够隔离冲突域,哪些能够隔离广播域,在解答题中常间接考察该知识。

冲突域

冲突域 是指在以太网中,当两个设备同时发送数据时,可能发生冲突的一组网络设备所组成的区域。在这个区域内,如果两个或多个设备同时发送帧,由于 共享介质 ,就会产生数据冲突,导致通信失败,需要重新发送。

📌 冲突发生的根本原因:

以太网(尤其是早期使用 共享总线 或 集线器 的方式)采用了 CSMA/CD 协议(载波监听多路访问/冲突检测) 协议:

  1. 每个设备发送前先监听是否有信号;
  2. 如果发现没人发,就开始发;
  3. 如果两个设备几乎同时监听到空闲并发送,就会发生 冲突 。

冲突域的边界由 二层设备(如集线器和交换机) 决定:

  • 集线器(Hub):所有端口共享同一个冲突域。连接在集线器上的设备同时发送数据会发生碰撞,因此无法隔离冲突域。
  • 交换机(Switch):每个端口形成独立冲突域,设备之间的发送不会互相干扰,从而有效隔离冲突。

广播域

广播域 指通过广播方式发送的数据包能够到达的所有主机组成的网络范围。通常,我们讨论的是 IP 层的广播域(ARP 广播也属于此类)。

在同一个 IP 广播域内,设备可以相互接收广播消息。举例来说:如果电脑 A 发送一个广播报文(例如 192.168.1.255),同一广播域内的电脑 B 和电脑 C 都能够接收到该消息。

广播域的边界由 三层设备(如路由器) 决定:

  • 交换机(Switch):仅在二层转发帧,不会阻止广播,广播帧会发送到除来源端口以外的所有端口。
  • 路由器(Router):在三层划分网络,会阻止广播,因此每个路由器接口形成一个独立的广播域。

设备功能

下表给出了不同设备的层次以及是否能够隔离冲突域和广播域:

设备功能描述设备位于哪一层隔离 冲突域 ?隔离 广播域 ?
中继器放大或再生数字信号物理层
集线器多个设备的连接,广播所有传入的数据物理层
网桥连接并分隔局域网的段落,减少冲突数据链路层
交换机连接多个设备,仅向目标设备转发数据数据链路层
路由器连接不同的网络并路由数据网络层

各层协议总结

💡低优先级

这节还是作为计算机网络各层协议的一个概览,具体协议细节还是到相应章节去看。在本节中关注以下几点:

  1. 应用层协议的端口和下层传输层协议是什么。

  1. 每一层具体有哪些协议。

网络协议要素

网络协议规定了通信双方交互的规则,主要包括以下三要素:

  • 语法 :定义信息的格式和结构(如报文结构、编码方式等)

  • 语义 :规定控制信息的含义和需要完成的操作

  • 时序 :定义事件的发生顺序和通信双方的协同工作方式(如请求与响应的先后顺序)

Danger

整个计算机网络,讲的无非就是各个层次间统一规定的协议,

应用层协议

应用层协议直接面向用户,为应用程序之间的通信提供服务:

协议端口号依赖协议简要说明
HTTP/HTTPS80 / 443TCP超文本传输协议,用于网页浏览。HTTPS 是加密版本,基于 TLS/SSL。
FTP20 / 21TCP文件传输协议,用于文件上传与下载。20 为数据通道,21 为控制通道。
SMTP25TCP简单邮件传输协议,用于邮件的发送。
POP3110 / 995TCP邮局协议,用于从邮件服务器接收邮件。995 是加密版本(POP3S)。
DNS53UDP(部分 TCP域名系统,将域名解析为 IP 地址。较大响应或区域传输时使用 TCP
DHCP67(服务器)/ 68(客户端)UDP动态主机配置协议,用于自动分配 IP 地址及其他网络参数。

传输层协议

传输层为应用进程间提供可靠或不可靠的数据传输服务:

  • TCP (Transmission Control Protocol) :面向连接,提供可靠的字节流服务,适用于要求高可靠性的应用(如 HTTPFTP)。

  • UDP (User Datagram Protocol) :无连接,不保证可靠性,但开销小、速度快,适用于实时性要求高的场景(如 DNS、视频流)。

网络层协议

网络层负责实现数据包从源主机到目标主机的传输:

  • IP (Internet Protocol) :不可靠的无连接协议,提供数据报服务,是整个互联网的核心协议。

  • ICMP (Internet Control Message Protocol) :用于发送错误报告与网络诊断信息(如 ping 命令使用的就是 ICMP 回显请求)。

  • RIP / OSPF / BGP :路由选择协议,主要用于自治系统内部(RIP、OSPF)或之间(BGP)的路由计算

  • NAT (Network Address ):网络地址转换,在私网和公网之间转换 IP 地址

数据链路层协议

数据链路层负责将网络层传来的数据组装成帧,在链路上传输并进行差错控制:

  • ARP (Address Resolution Protocol) :地址解析协议,用于将 IP 地址解析为对应的 MAC 地址。

  • PPP (Point-to-Point Protocol) :点对点协议,用于点对点链路的数据传输,常用于拨号上网。

  • HDLC (High-Level Data Link Control) :高级数据链路控制协议,用于同步链路的帧传输,支持面向比特流的通信。

总结

注意

OSI参考模型倾向于在网络内部提供面向连接、可靠的数据传输服务

TCP/IP体系结构则采用无连接的IP网络,将可靠性控制放在端系统(TCP)实现

OSI 的设计理念:尽量提供面向连接服务

OSI模型设计于20世纪70~80年代,当时电信系统(电话网)的影响很大。

OSI认为:

网络应该尽量像电话系统一样工作。

因此OSI设计时倾向于电话通信的特点:

建立连接

传输数据

释放连接

这样做的好处:

  • 数据按序到达
  • 容易保证可靠性
  • 网络可以提前分配资源
  • 容易提供QoS(服务质量保证)

所以OSI很多层都考虑了连接管理机制。

TCP/IP 的设计理念:网络层尽量简单

TCP/IP诞生于ARPANET项目。

当时有个重要目标:

即使部分网络被破坏,通信仍能继续。

因此设计者提出:

网络层只负责尽力而为(Best Effort)

其可靠性由端系统(进程内部)解决