Skip to content

计算机网络基础

约 10666 字大约 36 分钟

计算机网络

2025-03-18

1. 网络概述

1.1. 计算机通讯网的组成

计算机网络由通信子网和资源子网组成。

通信子网负责数据的无差错和有序传递,其处理功能包括差错控制、流量控制、路由选择、网络互连等。

资源子网是计算机通信的本地系统环境,包括主机、终端和应用程序等, 资源子网的主要功能是用户资源配置、数据的处理和管理、软件和硬件共享以及负载 均衡等。

总的来说,计算机通信网就是一个由通信子网承载的、传输和共享资源子网的各类信息的系统。

1.1.1. 网络中的物理组成

服务器、客户机、网络适配器、网络电缆、网络操作系统、协议、客户软件和协议软件。

1.1.2. 计算机网络的分类

按照覆盖范围划分

  • 局域网(LAN)
  • 城域网(MAN)
  • 广域网(WAN)

按照通讯介质划分

  • 有线网
  • 无线网

按照传输技术划分

  • 广播式网络
  • 点到点式网络

按照使用对象划分

  • 公有网
  • 私有网

1.2. 计算机网络拓扑结构

拓扑结构是指网络中各个站点之间的相互连接的方式。

常见的拓扑结构

  1. 星型结构
  2. 总线型结构
  3. 环形网络
  4. 树形结构
  5. 网络型结构

在实际应用中,局域网常用的拓扑结构有总线型、树型、星型,城域网和广域网的结构复杂,主要采用网状和混合结构

1.3. 传输介质

传输介质是构成信道的主要部分,它是数据信号在异地之间传输的真实媒介。传输介质的五个特性:物理、传输、连通、干扰、地理范围。

1.3.1. 有线传输介质

  1. 双绞线(Twisted Pair)
    • 由两根或多根绝缘铜线绞合而成,减少电磁干扰。
    • 分为非屏蔽双绞线(UTP)和屏蔽双绞线(STP)。
    • 常用于以太网和电话线路。
  2. 同轴电缆(Coaxial Cable)
    • 由一个中央铜导线和外部的绝缘层及金属屏蔽层组成。
    • 抗干扰能力强,传输距离较远。
    • 常用于有线电视和早期的以太网。
  3. 光纤(Optical Fiber)
    • 由玻璃或塑料制成的纤维,用于传输光信号。
    • 抗干扰能力强,传输速度快,距离远。
    • 常用于高速网络和长距离通信。

1.3.2. 无线传输介质

  1. 无线电波
    • 无线电波是一种在自由空间(包括空气和真空)传播的射频频段的电磁波,广泛应用于广播、电视、无线通信等领域。
    • 无线电波的传输距离远、穿透能力强,但可能受到干扰和安全性问题的影响。
  2. 微波
    • 微波是指频率为300MHz-300GHz的电磁波,波长在1米到1毫米之间,包括分米波、厘米波、毫米波等。
    • 微波通信常用于几公里范围内的点对点通信,速率一般为几百Kbps,适合在不适合铺设有线传输介质的情况下使用。
  3. 红外线
    • 红外线是太阳光谱中红光外侧的不可见光线,波长范围为0.75~1000μm。
    • 红外线通信具有保密性强、抗干扰性强等优点,但通信距离有限,且受天气影响较大。
  4. 蓝牙
    • 蓝牙是一种短距离无线通信技术,常用于连接手机、耳机、音箱等设备。
    • 蓝牙技术具有低功耗、低成本的特点,支持多种数据传输和音频传输方式。
  5. Wi-Fi
    • Wi-Fi是一种无线局域网技术,提供短距离范围内的高速互联网接入。
    • Wi-Fi通过无线电波在2.4 GHz或5 GHz频段进行通信,具有高速传输、广域覆盖和易于安装的优点。
  6. 卫星通信
    • 卫星通信利用人造卫星作为中继站来转发无线电波,实现全球范围内的通信。
    • 卫星通信具有覆盖范围广、通信距离远的优点,但可能存在较高的延迟和受气候影响的问题。

1.4. 计算机网络的主要性能指标

影响网络性能的因素有很多,如传输的距离、使用的线路、传输技术、带宽等。

  1. 带宽(Bandwidth)

    • 指网络中某一部分能够处理的最大数据传输速率,通常以比特每秒(bps)为单位。
    • 带宽越高,数据传输能力越强。
  2. 吞吐量(Throughput)

    • 实际的数据传输速率,包括所有传输的数据,如协议开销。
    • 吞吐量通常低于带宽,因为它受到网络延迟、拥塞和协议开销的影响。
  3. 延迟(Latency)

    • 数据包从源到目的地的传输时间,通常以毫秒(ms)为单位。
    • 延迟越低,数据传输越快。
  4. 时延带宽积(Latency-Bandwidth Product)

    • 延迟和带宽的乘积,表示网络中可以存储多少数据。
    • 这个指标对于设计网络缓存和缓冲区大小很重要。
  5. 丢包率(Packet Loss Rate)

    • 在数据传输过程中丢失的数据包所占的比例。
    • 高丢包率可能导致数据重传,影响网络性能。
  6. 错误率(Error Rate)

    • 数据在传输过程中出错的比例。
    • 错误率通常很低,因为现代网络协议通常包括错误检测和纠正机制。
  7. 可靠性(Reliability)

    • 网络传输数据的准确性和一致性。
    • 高可靠性意味着数据传输错误少,网络稳定。
  8. 可扩展性(Scalability)

    • 网络在增加用户、设备或服务时,仍能保持性能的能力。
    • 可扩展性高的网络可以适应不断增长的需求。
  9. 安全性(Security)

    • 保护网络免受未授权访问和攻击的能力。
    • 安全性包括加密、认证、防火墙和入侵检测等。
  10. 可用性(Availability)

    • 网络服务在需要时可用的程度。
    • 高可用性意味着网络服务中断少,服务稳定。
  11. 公平性(Fairness)

    • 网络资源在用户或应用之间的公平分配。
    • 公平性确保没有单一用户或应用占用过多资源,影响其他用户。
  12. 效率(Efficiency)

    • 网络资源的使用效率,包括数据传输和处理的效率。
    • 高效率意味着资源得到充分利用,浪费少。

    时延带宽积和往返时延

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

2. 数据通信

数据通信是指在计算机之间、计算机与终端以及终端与终端之间表示字符、数字、语音、图像的二进制代码0、1比特序列的过程。

2.1. 数据通信的基本概念

2.1.1. 通信系统的组成

数据通信系统主要由以下几个部分组成:

  1. 信源:产生数据的源头,比如计算机、传感器等。
  2. 发送设备:将数据转换成适合传输的格式,比如调制器。
  3. 传输介质:数据传输的物理路径,如电缆、光纤、无线电波等。
  4. 接收设备:在接收端接收数据,并将其转换回原始格式,比如解调器。
  5. 信宿:数据的目的地,比如另一台计算机或用户界面。
  6. 协议:规定数据传输的规则和标准,确保数据正确、高效地传输。
  7. 接口:连接不同设备和网络的硬件和软件,确保它们能够协同工作。
  8. 信号处理:包括数据压缩、加密等,以提高传输效率和安全性。

这些组件共同工作,确保数据能够从源头安全、准确地传输到目的地。

2.1.2. 通信信道的分类

通信信道可以根据不同的属性和用途进行分类,以下是一些常见的分类方式:

  1. 物理信道 vs. 逻辑信道

    • 物理信道:指的是实际存在的通信媒介,如双绞线、光纤、无线电波等,它们是数据传输的实际路径。
    • 逻辑信道:是在物理信道基础上通过软件定义的通信路径,它不依赖于物理介质的具体特性,而是通过协议和逻辑控制来实现。逻辑信道可以看作是物理信道的抽象,用于在多个通信实体之间分配和复用物理信道。
  2. 有线信道 vs. 无线信道

    • 有线信道:使用物理介质(如电缆、光纤)来传输信号,通常提供更稳定的连接和更高的数据传输速率,但部署和移动性受到限制。
    • 无线信道:不依赖物理介质,通过空气或其他介质传播电磁波来传输信号,具有更好的移动性和灵活性,但容易受到干扰和信号衰减的影响。
  3. 模拟信道 vs. 数字信道

    • 模拟信道:传输连续变化的信号,如声音波形或模拟电视信号,模拟信道对噪声更敏感,且不易于加密和压缩。
    • 数字信道:传输离散的数字信号,如二进制数据,数字信道具有更好的抗干扰能力,易于加密、压缩和错误检测。
  4. 专用信道 vs. 公共交换信道

    • 专用信道:为特定用户或系统预留的通信路径,不与其他用户共享,通常用于需要高安全性或高可靠性的应用。
    • 公共交换信道:由多个用户共享的通信路径,通过交换设备(如电话交换机)动态分配给不同的通信实体,提高了信道的利用率,但可能受到其他用户的干扰。

这些分类反映了通信信道的不同特性和应用场景,选择合适的信道类型对于满足特定的通信需求至关重要。

2.2. 数据通信的方式

2.2.1. 串行传输和并行传输

串行传输和并行传输是两种基本的数据传输方式,它们在数据的发送和接收方式上有所不同:

  1. 串行传输

    • 定义:串行传输是一种数据传输方式,其中数据以位为单位,按时间序列逐个传输。在任何给定时刻,只有一位数据在传输线上。
    • 速度:串行传输的速度通常较慢,因为数据是逐位传输的。
    • 线路:只需要一对线路(发送和接收),这使得它在物理连接上更为简单和经济。
    • 应用:常用于计算机与外部设备(如鼠标、键盘、打印机)之间的通信,以及长距离通信(如网络通信、电话线传输)。
    • 优点:线路简单,成本较低,适用于长距离传输。
    • 缺点:传输速度较慢,不适合大量数据的快速传输。
  2. 并行传输

    • 定义:并行传输是一种数据传输方式,其中多个位同时通过多个通道传输。例如,一个8位并行传输系统会同时发送8位数据。
    • 速度:并行传输的速度通常较快,因为多个位同时传输。
    • 线路:需要多条线路,每个位一条线路,这使得并行传输在物理连接上更为复杂和昂贵。
    • 应用:常用于计算机内部组件之间的通信,如CPU与RAM之间的数据传输。
    • 优点:传输速度快,适合大量数据的快速处理。
    • 缺点:线路复杂,成本较高,不适合长距离传输,因为信号间的干扰和同步问题会增加。

在实际应用中,串行和并行传输可以根据具体的应用需求和环境条件来选择。例如,对于需要长距离传输和较低成本的场景,串行传输可能更合适;而对于需要快速处理大量数据的内部通信,如计算机主板上的总线,可能更倾向于使用并行传输。随着技术的发展,高速串行接口(如USB、SATA、PCIe)已经能够在保持简单线路的同时提供高速的数据传输,这在很大程度上减少了并行传输的应用。

2.2.2. 数据的同步技术

数据同步技术是确保不同系统、设备或应用程序中的数据保持一致性和完整性的关键手段。它涉及实时或定期地更新、复制和传输数据。数据同步的原理通常基于建立数据连接通道,将源系统的数据复制到目标系统。主要技术包括:

  1. 同步同步(Synchronous Synchronization)

    • 定义:同步同步指的是数据在发送方和接收方之间同时进行传输和处理的过程。在同步同步中,发送方在发送数据后会等待接收方确认数据已成功接收和处理,然后才继续发送下一批数据。
    • 特点
      • 实时性:同步同步通常提供较高的实时性,因为数据传输和处理是连续的。
      • 性能开销:由于需要等待确认,可能会增加系统的延迟。
      • 资源占用:在数据传输过程中,发送方和接收方的资源都被占用,直到数据被成功处理。
    • 适用场景:适用于对实时性要求较高的场景,如在线事务处理系统。
  2. 异步同步(Asynchronous Synchronization)

    • 定义:异步同步指的是数据在发送方和接收方之间不同时进行传输和处理的过程。发送方发送数据后不需要等待接收方的确认,可以继续处理其他任务或发送下一批数据。
    • 特点
      • 非阻塞:发送方不需要等待接收方的确认,因此不会阻塞发送方的处理流程。
      • 灵活性:接收方可以在任何时间处理接收到的数据,提供了更大的灵活性。
      • 容错性:如果接收方处理失败,发送方可以在未来的某个时间点重新发送数据。
    • 适用场景:适用于对实时性要求不高,但需要提高系统吞吐量和资源利用率的场景,如电子邮件、消息队列等。

同步技术在数字通信系统中扮演着至关重要的角色,它涉及到多种同步功能,以确保数据在不同地域的收发双方之间能够正确地通信和交换。同步技术的核心目标是实现数据的一致性和互联性,这对于通信质量至关重要。如果通信系统无法实现同步,可能会导致系统瘫痪,影响通信效果。在不同的通信设备和系统中,如手机、雷达、无线局域网(WLAN)、高清电视(HDTV)等,同步都是一个关键问题。同步技术主要包括载波同步、位同步、帧同步和网同步等几大类

  1. 位同步(Bit Synchronization)

    • 定义:位同步,也称为码元同步,是指在数字通信中,确保接收端的时钟与接收到的码元定时脉冲频率相同、相位与最佳取样时刻一致的过程。位同步的目的是使接收端能够在每个码元的特定时刻进行正确的采样和判决,从而恢复出发送端的数据。
    • 应用:位同步在数字通信中至关重要,它影响着数据的接收质量和通信的可靠性。位同步通常涉及到时钟信号的提取,这可以通过在接收信号中插入导频信号或使用特殊的编码方式(如曼彻斯特编码)来实现。
    • 实现方法:位同步可以通过外同步法(发送端发送同步时钟信号)和自同步法(从信号自身提取同步信号)来实现。常用的位同步技术包括插入导频法、非线性变换滤波法、锁相环法和Gardner定时恢复算法等。
  2. 群同步(Frame Synchronization)

    • 定义:群同步,也称为帧同步,是指在数字通信系统中,识别每个数字信息群(帧)的起止时刻的过程。帧同步的目的是将不同的帧分开,并确保接收端能够正确地识别帧的开始和结束,从而正确地处理和解码帧中的数据。
    • 应用:帧同步在需要处理多个数据帧的通信系统中尤为重要,如时分多路信号、网络数据传输等。它确保了数据的有序传输和正确分组。
    • 实现方法:帧同步通常通过在数据帧中插入特定的同步码序列(如巴克码)来实现。这些同步码可以是集中插入的,也可以是分散插入的。接收端通过检测这些同步码来确定帧的边界。

位同步和群同步共同确保了数字通信系统的有效运行,位同步关注于单个码元的准确接收,而群同步则关注于整个数据帧的结构和边界识别。两者在实现数据的准确传输和高效处理方面都发挥着关键作用。

2.2.3. 数据传输类型

基带传输和频带传输是数据通信中的两种基本传输类型:

  1. 基带传输(Baseband Transmission)

    • 定义:基带传输是指直接传输原始数据信号,不进行任何频率上的转换。在基带传输中,信号的频谱从零频开始,因此也称为零频传输。
    • 特点
      • 简单:不需要调制解调器,可以直接在传输介质上发送和接收数字信号。
      • 带宽限制:由于信号未经过调制,因此传输距离有限,通常适用于短距离通信,如局域网(LAN)和计算机内部的总线通信。
      • 抗干扰性:在短距离内,信号质量较高,抗干扰能力强。
    • 应用:常用于以太网、USB、HDMI等短距离高速数据传输。
  2. 频带传输(Bandpass Transmission)

    • 定义:频带传输是指将原始数据信号调制到一个较高的频率范围进行传输。这种传输方式涉及到调制和解调过程,将基带信号转换为适合在信道上传输的频带信号。
    • 特点
      • 长距离传输:通过调制,信号可以在较长的距离上传输,适用于无线通信和远程有线通信。
      • 带宽扩展:调制过程扩展了信号的带宽,使得信号可以在更宽的频带内传输,提高了信道的利用率。
      • 抗干扰性降低:由于信号在较高的频率上传输,可能会受到更多的干扰,需要采取额外的措施来保证信号质量。
    • 应用:常用于无线通信(如Wi-Fi、蓝牙、移动电话)、卫星通信、有线电视等。

基带传输和频带传输各有优势,适用于不同的应用场景。基带传输适用于短距离、高带宽的通信,而频带传输则适用于长距离、需要调制的通信环境。

2.3. 数据编码和调制

2.3.1. 数据的编码技术

数据编码是将数据转换为适合在通信信道上传输的形式。

  1. 数字数据的编码
    • 非归零码(NRZ):用两种不同的电平分别表示二进制数字 “0” 和 “1”。优点是简单直观,缺点是存在直流分量,不利于信号的传输和同步。
    • 曼彻斯特编码:在每个码元的中间时刻都有一个跳变,从高电平到低电平的跳变表示 “0”,从低电平到高电平的跳变表示 “1”。优点是不存在直流分量,且具有自同步能力,缺点是编码效率较低。
    • 差分曼彻斯特编码:每个码元的中间时刻都有跳变,但是跳变的方向取决于上一个码元的后半部分电平。如果上一个码元的后半部分为高电平,则当前码元中间时刻从高电平跳变为低电平表示 “0”;如果上一个码元的后半部分为低电平,则当前码元中间时刻从低电平跳变为高电平表示 “1”。同样具有自同步能力和无直流分量的优点,编码效率也相对较低。
  2. 模拟数据的编码
    • 脉冲编码调制(PCM):将模拟信号抽样、量化和编码,转换为数字信号。抽样是对模拟信号进行周期性的采样,量化是将采样值离散化为有限个幅度值,编码是将量化后的幅度值用二进制数字表示。PCM 是一种广泛应用的模拟信号数字化方法。

2.3.2. 数据的解码技术

数据调制是将数字信号转换为适合在模拟信道上传输的模拟信号。

  1. 振幅调制(AM):用数字信号控制载波的振幅,使载波的振幅随着数字信号的变化而变化。AM 调制简单,但抗干扰能力较差。
  2. 频率调制(FM):用数字信号控制载波的频率,使载波的频率随着数字信号的变化而变化。FM 调制抗干扰能力较强,但占用带宽较大。
  3. 相位调制(PM):用数字信号控制载波的相位,使载波的相位随着数字信号的变化而变化。PM 调制也具有较好的抗干扰能力。

2.3.3 数据编码和解码作用

  1. 提高数据传输的可靠性
    • 通过编码可以增加数据的冗余度,以便在接收端进行错误检测和纠正,提高数据传输的可靠性。
    • 调制可以使信号适应不同的信道特性,减少信号的衰减和干扰,提高传输的可靠性。
  2. 提高数据传输的效率
    • 合理选择编码方式可以减少数据的冗余度,提高编码效率,从而在相同的带宽下传输更多的数据。
    • 调制可以根据信道的带宽和噪声特性选择合适的调制方式,提高信号的传输效率。
  3. 实现信号的多路复用
    • 编码和调制可以将多个信号合并在一个信道上传输,实现信号的多路复用,提高信道的利用率。

总之,数据的编码和调制是数据通信中不可或缺的环节,它们的合理选择和应用可以提高数据传输的可靠性、效率和信道利用率。

2.4. 信道复用技术

信道复用技术能让多个用户在同一信道通信,提高信道利用率。常见的有:

一、频分复用(FDM) 将信道带宽划分为多个子频段,不同用户信号在不同子频段传输,如无线电广播、电视广播及 DSL 宽带接入等。

二、时分复用(TDM) 把时间划分为固定时间片,不同用户信号在不同时间片依次传输,应用于数字通信系统和计算机网络设备。

三、波分复用(WDM) 在光通信中,将不同波长光信号复用到一根光纤,广泛用于光通信网络,从粗波分复用发展到密集波分复用可提高信道容量和传输速率。

四、码分复用(CDM) 基于扩频技术,每个用户用不同扩频码对信号扩频调制,在同一信道同时传输,接收端用相同扩频码解扩恢复特定用户信号,如 CDMA 移动通信系统及卫星通信、无线局域网等。

2.5. 数据交换技术

2.5.1. 电路交换

  1. 原理
    • 在通信双方之间建立一条专用的物理连接通路,该连接在通信过程中一直保持,直到通信结束后才释放。
    • 类似于传统的电话通信系统,在通话期间,双方独占通信线路资源。
  2. 特点
    • 通信实时性强,一旦连接建立,数据传输延迟小。
    • 线路利用率低,因为连接在通信期间一直被占用,即使没有数据传输时也不能被其他用户使用。

2.5.2. 报文交换

  1. 原理
    • 将用户的报文作为一个整体进行存储转发,报文在网络中的节点上根据目的地址进行路由选择。
    • 每个节点接收完整的报文后,先存储起来,然后根据路由信息将报文转发到下一个节点,直到报文到达目的地。
  2. 特点
    • 线路利用率高,多个报文可以共享通信线路。
    • 报文传输延迟较大,因为报文需要在节点上存储和排队等待转发。

2.5.3. 分组交换

  1. 原理
    • 将报文分割成较小的数据块,称为分组。每个分组包含首部和数据部分,首部包含目的地址等控制信息。
    • 分组在网络中独立传输,根据目的地址进行路由选择,在接收端再将分组重新组装成报文。
  2. 特点
    • 线路利用率高,分组可以动态地共享通信线路资源。
    • 传输延迟较小,因为分组长度较小,可以快速传输和转发。
    • 可靠性高,分组可以独立地进行路由选择和重传,提高了数据传输的可靠性。

2.5.4. 虚电路分组交换

  1. 原理

    • 通信前在源主机和目的主机间建立逻辑连接(虚电路),由多个网络节点的逻辑通道组成。
    • 建立虚电路时,源主机发请求报文,中间节点分配资源并建立转发表项。
    • 数据传输时,源主机发送含虚电路标识符的数据分组,中间节点依据标识符和转发表项转发至目的主机。
    • 通信结束,源或目的主机发拆除连接请求报文,中间节点释放资源并删除转发表项。
  2. 特点

    • 可靠性高:数据分组按固定路径传输,减少丢失和乱序。
    • 顺序交付:按发送顺序到达目的主机,无需重新排序。
    • 资源分配:建立时分配资源,保证通信质量。
    • 适合长数据传输:减少建立连接开销,提高效率。

2.6. 差错控制

差错控制是指在数据通信过程中,为了确保数据的准确性和完整性,采取的一系列检测和纠正错误的技术手段。

2.6.1. 差错产生的原因

在数据通信中,差错主要由以下原因产生:

  1. 噪声干扰:通信信道中存在各种噪声,如电磁干扰、热噪声等,这些噪声会使传输的数据信号发生畸变,导致接收端接收到错误的数据。
  2. 信号衰减:随着数据信号在信道中传输距离的增加,信号强度会逐渐减弱,可能导致接收端无法正确识别信号,从而产生错误。
  3. 设备故障:通信设备的硬件故障或软件错误也可能导致数据传输错误。

2.6.2. 误码率

误码率(Bit Error Rate,BER)是衡量数据在传输过程中出现错误的概率指标。

误码率的计算公式

误码率 = 传输中的误码 / 所传输的总码数 ×100%。

例如,在一段时间内传输了 100000 位数据,其中检测到有 100 位出现错误,那么误码率 = 100 / 100000×100% = 0.1%。

2.6.3. 循环校验码

循环校验码(Cyclic Redundancy Check,CRC)是一种常用的检错码,能有效检测数据在传输过程中是否出现错误。它通过在数据后添加冗余校验位,使得整个数据序列满足特定的数学关系。接收方根据相同规则计算校验码,若与接收到的校验码不一致,则说明数据传输出现错误。

二、计算方法

3. 网络体系结构与协议

3.1. 通讯协议

为了完成计算机之间有序的信息交换,提出了通信协议的概念,其定义是相互通信的双方(或多方)对如何进行信息交换所必须遵守的一整套规则。

协议涉及到三个要素,分别为:

  • 语法:语法是用户数据与控制信息的结构与格式,以及数据出现顺序的意义
  • 语义:用于解释比特流的每一部分的意义
  • 时序:事件实现顺序的详细说明

3.2. OSI七层模型

简介

OSI(Open System Interconnection)共分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,其具体的功能如下。

3.2.1. 物理层

  • 提供建立、维护和释放物理链路所需的机械、电气功能和规程等特性
  • 通过传输介质进行数据流(比特流)的物理传输、故障监测和物理层管理
  • 从数据链路层接收帧,将比特流转换成底层物理介质上的信号

3.2.2. 数据链路层

  • 在物理链路的两端之间传输数据
  • 在网络层实体间提供数据传输功能和控制
  • 提供数据的流量控制
  • 检测和纠正物理链路产生的差错
  • 格式化的消息称为帧

3.2.3. 网络层

  • 负责端到端的数据的路由或交换,为透明地传输数据建立连接
  • 寻址并解决与数据在异构网络间传输相关的所有问题
  • 使用上面的传输层和下面的数据链路层的功能
  • 格式化的消息称为分组

3.2.4. 传输层

  • 提供无差错的数据传输
  • 接收来自会话层的数据,如果需要,将数据分割成更小的分组,向网络层传送分组并确保分组完整和正确到达它们的目的
  • 在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制

3.2.5. 会话层

  • 提供节点之间通信过程的协调
  • 负责执行会话规则(如:连接是否允许半双工或全双工通信)、同步数据流以及当故障发生时重新建立连接
  • 使用上面的表示层和下面的传输层的功能

3.2.6 表示层

  • 提供数据格式、变换和编码转换
  • 涉及正在传输数据的语法和语义
  • 将消息以合适电子传输的格式编码
  • 执行该层的数据压缩和加密
  • 从应用层接收消息,转换格式,并传送到会话层,该层常合并在应用层中

3.2.7. 应用层

  • 包括各种协议,它们定义了具体的面向用户的应用:如电子邮件、文件传输等

总结

低三层模型属于通信子网,涉及为用户间提供透明连接,操作主要以每条链路( hop-by-hop)为基础,在节点间的各条数据链路上进行通信。由网络层来控制各条链路上的通信,但要依赖于其他节点的协调操作。

高三层属于资源子网,主要涉及保证信息以正确可理解形式传送。

传输层是高三层和低三层之间的接口,它是第一个端到端的层次,保证透明的端到端连接,满足用户的服务质量(QoS)要求,并向高三层提供合适的信息形式。

3.3. TCP/IP协议

简介

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它 是在网络中使用的最基本的通信协议,对互联网中各部分进行通信 的标准和方法进行了规定。通常所说的TCP/IP协议不仅仅指的是 TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议 最具代表性,所以被称为TCP/IP协议。

要摸清网络,那么第一步肯定是要清楚网络协议的分层结构,看分 层结构相当于从上帝视角来看网络,这样后续针对每一个层深入学 习就不会摸不着头脑。

对于同一台设备上进程间的通信,有很多种方式,比如有管道、消 息队列、共享内存、信号等方式,而对于不同设备上进程间的通 信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的 设备,就协商出了一套通用的网络传输协议。这个网络协议是分层 的,每一层都有各自的作用和职责,通常是由上到下,分成 5 层。

3.3.1. 物理层

当数据准备要从设备发送到网络时,需要把数据包转换成电信号, 让其可以在物理介质中传输,这一层就是物理层(Physical Layer),它主要是为数据链路层提供二进制传输的服务。

image-20241020170444465

3.3.2. 数据链路层

实际场景中,网络并不是一个整体,而是分为很多自治域 (Autonomous System,简称AS)和子网,比如你家和我家就不属 于一个网络,所以数据不仅可以在同一个网络中的设备间进行传 输,也可以跨网络进行传输。

一旦数据需要跨网络传输,就需要有一个设备同时在两个网络当 中,这个设备一般是路由器,路由器可以通过路由表计算出下一个 要去的 IP 地址。IP地址是可变的。那么问题来了,路由器怎么知道 这个 IP 地址是哪个设备的呢?

于是,就需要有一个专门的层来标识网络中的设备,让数据在一个 链路中传输,这就是数据链路层(Data Link Layer),它主要为 网络层提供链路级别的传输服务。

image-20241020170622512

每一台设备的网卡都会有一个 MAC 地址,它就是用来唯一标识设备 的。路由器计算出了下一个目的地 IP 地址,再通过 ARP 协议 (Address Resolution Protocol,地址解析协议)找到该目的地(IP 地址)的 MAC 地址(网络设备的唯一标识),这样就知道这个 IP 地址是哪个设备的了。

3.3.3. 网络层

传输层可能大家刚接触的时候,会认为它负责将数据从一个设备传 输到另一个设备,事实上它并不负责。

实际场景中的网络环节是错综复杂的,中间有各种各样的线路和分 叉路口,如果一个设备的数据要传输给另一个设备,就需要在各种 各样的路径和节点进行选择,而传输层的设计理念是简单、高效、 专注,如果传输层还负责这一块功能就有点违背设计原则了。

也就是说,我们不希望传输层协议处理太多的事情,只需要服务好 应用即可,让其作为应用间数据传输的媒介,帮助实现应用到应用 的通信,而实际的传输功能就交给下一层,也就是网络层 (Internet Layer)。网络层最常使用的是 IP 协议(Internet Protocol)

  • IP报文

IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(最大传输单元,即Maximum Transmission Unit,以太网中一般为 1500 字节)就会再次进行分 片,得到一个即将发送到网络的 IP 报文。

image-20241020170934440

  • IP寻址

网络层负责将数据从一个设备传输到另一个设备,世界上那么多设 备,又该如何找到对方呢?因此,网络层需要有区分设备的编号。

我们一般用 IP 地址给设备进行编号,对于 IPv4 协议, IP 地址 共 32 位,分成了四段,每段是 8 位。只有一个单纯的 IP 地址虽然做到了区分设备,但是寻址起来就特别麻烦,全世界那么多台设备,难道一个一个去匹配?这显然不科学。

因此,需要将 IP 地址分成两种意义:

  • 一个是网络号,负责标识该 IP 地址是属于哪个子网的;
  • 一个是主机号,负责标识同一子网下的不同主机;

怎么分的呢?这需要配合子网掩码(比如192.168.1.1/24)才能算 出 IP 地址的网络号和主机号。那么在寻址的过程中,先匹配到相同 的网络号,才会去找对应的主机。

除了寻址能力, IP 协议还有另一个重要的能力就是路由。实际场景 中,两台设备并不是用一条网线连接起来的,而是通过很多网关、 路由器、交换机等众多网络设备连接起来的,那么就会形成很多条 网络的路径,因此当数据包到达一个网络节点,就需要通过算法决 定下一步走哪条路径。

所以,IP 协议的寻址作用是告诉我们去往下一个目的地该朝哪个方 向走,路由则是根据「下一个目的地」选择路径。寻址更像在导 航,路由更像在操作方向盘。

3.3.4. 传输层

应用层的数据包会传给传输层,传输层(Transport Layer)是为应 用层提供网络支持的。

在传输层会有两个传输协议,分别是 TCP 和 UDP:

  1. TCP 的全称叫传输层控制协议(Transmission Control Protocol),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。类比于寄快递,就是用户(HTTP协议)选 择了快递公司(TCP协议)来寄包裹。TCP 相比 UDP 多了很多 特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保 证数据包能可靠地传输给对方。
  2. UDP 就相对很简单,简单到只负责发送数据包,不保证数据包 是否能抵达对方,但它实时性相对更好,传输效率也高。应用层 的网络时间协议(Network Time Protocol, NTP)就是使用UDP 传输数据。当然,UDP 也可以实现可靠传输,把 TCP 的特性在 应用层上实现就可以,不过要实现一个商用的可靠 UDP 传输协 议,也不是一件简单的事情。

主要特点

  • 协议开销小、效率高。

  • UDP是无连接的,即发送数据之前不需要建立连接。

  • UDP使用尽最大努力交付,即不保证可靠交付。

  • UDP没有拥塞控制。

  • UDP支持一对一、一对多、多对一和多对多交互通信。

  • UDP的首部开销小,只有8个字节。

  • 分段

应用需要传输的数据可能会非常大,如果直接传输就不好控制,因 此当传输层的数据包大小超过 MSS(TCP协议的最大报文段长度) ,就要将数据包分块,这样即使中途有一个分块丢失或损坏了,只 需要重新发送这一个分块,而不用重新发送整个数据包。在 TCP 协 议中,我们把每个分块称为一个 TCP 段(TCP Segment)。UDP 协议不会分段。

image-20241020171619648

  • 端口

当设备作为接收方时,传输层则要负责把数据包传给应用,但是一 台设备上可能会有很多应用在接收或者传输数据,因此需要用一个 编号将应用区分开来,这个编号就是端口

比如 80 端口通常是 Web 服务器用的,22 端口通常是 SSH 远程登 录服务器用的。而对于浏览器(客户端)中的每个标签栏都是一个 独立的进程,操作系统会为这些进程分配临时的端口号。由于传输 层的报文中会携带端口号,因此接收方可以识别出该报文是发送给 哪个应用的。

3.3.5. 应用层

上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都是在应用层实现。那 么,当两个不同设备的应用需要通信的时候,应用就把应用数据传 给下一层,也就是传输层。

所以,应用层只需要专注于为用户提供应用功能,不用去关心数据 是如何传输的(把应用数据交给传输层就行了)。这类似于,我们 寄快递的时候,只需要把包裹交给快递员,再由快递员、司机等负 责后续的包装、运输等工作。

而且应用层是工作在操作系统中的用户态,传输层及以下则工作在 内核态。

内核态(Kernel Mode):运行操作系统程序,操作硬件

用户态(User Mode):运行用户程序

[用户态和内核态的区别](用户态和内核态的区别 - Gizing - 博客园)