存储系统

存储系统概述 存储系统的层次结构 为了解决存储容量、存取速度和价格之间的矛盾,计算机中通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。CPU能直接访问的存储器称为内存储器,包括高速缓冲存储器和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器才能被CPU处理。 高速缓冲存储器-主存 层次:CPU的处理速度比主存的存取速度快。为弥补主存速度的不足,在主存和CPU之间增加一级高速缓冲存储器(Cache)。其特点是速度高而容量小。它所存放的是主存中部分内容的复制,是当前最有可能被CPU访问的信息。 从整体看,Cache-主存层次的存取速度接近于Cache的速度,而容量接近于主存的容量。Cache存储器全部由硬件调度,对程序员是透明的。 从整体看,主存-辅存层次具有接近于主存的速度和接近于辅存的容量。 存储器的分类 按存储介质分 • 半导体存储器:主要有MOS型存储器和双极型存储器两大类。 • 磁表面存储器:在金属或塑料基体上,涂覆一层磁性材料,用磁层存储信息,常见的有磁盘、磁带等。 • 光存储器:采用激光技术访问的存储器。 按存取方式分 • 随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。如半导体存储器。 • 顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。如磁带存储器。 磁盘存储器既不像随机存储器那样能随机地访问任一个存储单元,也不像顺序存储器那样完全按顺序存取,而是介于两者之间。存取信息时,第一步指向整个存储器中的某个小区域(磁盘上的磁道);第二步在小区域内顺序检索,直至找到目的地后再进行读/写操作。其存取时间和信息的物理位置有一定关系。 按存储器的读写功能分 • 只读存储器(ROM):存储的内容固定不变,只能读出而不能写入。 • 随机读写存储器(RAM):既能读出又能写入。 按信息的可保存性分 • 易失性存储器:断电后信息即消失的存储器。 • 非易失性存储器:断电后仍能保存信息的存储器。 按在计算机系统中的作用分 • 根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器(用于存放微程序,由ROM构成)。 存储器的编址和端模式 存储器的技术指标 存储容量:存储器所包含的存储单元的总数称为存储容量。存储容量用字数或字节数表示。一个字节定义为8个二进制位,一个字包括2个或4个字节。 存取时间:从启动一次存储器操作到完成该操作所经历的时间。例如:读出时间是指从CPU向主存发出有效地址和读命令开始,直到将被选单元的内容读出为止所用的时间;写入时间是指从CPU向主存发出有效地址和写命令开始,直到信息写入被选中单元为止所用的时间。 存取周期:连续两次访问存储器操作之间所需要的最短时间。一般情况下,存取周期大于存取时间。这是因为对于任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间。 存储器带宽:又称数据传输率,指单位时间内存储器可读写的数据量,用位/秒或字节/秒度量。由存取周期和字长决定。 可靠性:用平均无故障时间来衡量。 其它参数:功耗、价格等。 静态随机存取存储器 目前广泛使用的半导体存储器是MOS型半导体存储器,可以分为静态MOS型存储器(Static RAM)和动态MOS型存储器(Dynamic RAM) 六管SRAM存储元的电路图 $T_3、T_4$相当于负载电阻,$T_1、T_2$构成双稳态触发器。若$T_1$截止,A为高电平,使$T_2$导通,B为低电平,而B的低电平又使$T_1$更加截止;反之,若B为高电平,则A为低电平。 可见该电路有两个稳定状态,且A和B两点电位总是互反的。如果用A点高电平代表 “1”,A点低电平代表 “ 0”,该电路可存储一位二进制数。 $T_5、T_6、T_7和T_8$为控制管。如果某存储元被选中,X、Y地址译码线均处于高电平,使$T_5~T_8$导通,输入输出电路I/O和$\overline{I/O}$分别与A点和B点相连,A点和B点的电平状态就能输出到I/O和$\overline{I/O}$上,完成读操作。 写操作时,如果要写入“1”,在I/O线上输入高电位,在$\overline{I/O}$线上输入低电位,开启$T_5~T_8$四个MOS管把高、低电位分别加在A、B点,使$T_1$管截止,使$T_2$管导通,将“1”写入存储元。如果要写入“0”,在I/O线上输入低电位,在$\overline{I/O}$线上输入高电位,打开$T_5~T_8$,把低、高电位分别加在A、B点,使$T_1$管导通,$T_2$管截止,将“0” 写入存储元。 基本的静态存储元阵列 本例 任何一个 SRAM,都有三组信号线与外部打交道: ①地址线,本例中有 6 条,即 $A_0、A_1、 A_2、 A_3、 A_4、 A_5$,它指定了存储器的容量是 $2^6$=64 个存储单元。 ②数据线,本例中有4 条,即 $I/O_0、 I/O_1、 I/O_2 、 I/O_3$,说明存储器的字长是 4 位,因此存储位元的总数是 64×4=256。 ③控制线, 本例中 $R/\overline{W}$ 控制线, 它指定了对存储器进行读( $R/\overline{W}$ 高电平), 还是进行写( $R/\overline{W}$低电平)。注意,读写操作不会同时发生。 ...

September 3, 2025 · 1 min · farmer3-c

运算方法和运算器

数据与文字的表示方法 数据格式 数的机器码表示 字符与字符串的表示方法 汉字的表示方法 校验码 定点加法、减法运算 补码加法 补码减法 溢出概念与检测方法 基本的二进制加法/减法器 定点除法运算 原码除法算法原理 并行除法器 定点运算器的组成 逻辑运算 多功能算术/逻辑运算单元 内部总线 定点运算器的基本结构 浮点运算方法和浮点运算器 浮点加法、减法运算 浮点乘法、除法运算 浮点运算流水线 数据与文字的表示方法 数据格式 计算机中的数据分为数值数据和非数值数据(字符、汉字、图像、声音等)。数值数据在计算机内部采用二进制编码表示,根据小数点位置是否固定,分为定点表示法和浮点表示法。 定点表示法:小数点位置固定不变,分为定点整数(纯整数)和定点小数(纯小数)。定点数通常用补码或原码表示。 浮点表示法:形如 N = M × R^E,其中M为尾数(定点小数),E为阶码(整数),R为基数(通常为2)。IEEE 754标准定义了单精度(32位)、双精度(64位)等浮点数格式。 数的机器码表示 计算机中为了简化运算电路,通常使用以下机器码表示有符号数: 原码:符号位(0正1负)加绝对值。简单但不便于加减运算。 反码:正数同原码,负数符号位不变,其余位取反。主要用于中间计算。 补码:正数同原码,负数反码加1。补码可将减法转化为加法,是现代计算机最常用的有符号整数编码。 移码:在补码基础上加上偏置常数(通常2^(n-1)),用于浮点数的阶码表示。 字符与字符串的表示方法 字符编码采用标准编码方案,如ASCII(美国信息交换标准代码)使用7位或8位二进制表示128个基本字符(英文大小写字母、数字、标点符号、控制字符)。扩展ASCII(ISO-8859)支持西欧语言。Unicode(如UTF-8、UTF-16)统一表示全世界所有字符,支持多语言混排。字符串在内存中通常以连续字节存储,以空字符(’\0’)或长度字段作为结束标志。 汉字的表示方法 汉字编码分为输入码(拼音、五笔等)、机内码(存储编码,如GB2312、GB18030、BIG5、Unicode中的汉字区)、字形码(点阵或矢量字体)。国家标准GB2312包含6763个常用汉字,GB18030兼容GB2312并扩展至7万余汉字。在Unicode中,汉字位于CJK统一表意文字区(U+4E00至U+9FFF)。 校验码 校验码用于检测数据在传输或存储过程中的错误。常见类型: 奇偶校验码:增加一位奇偶位,使整个码字中1的个数为奇数(奇校验)或偶数(偶校验)。只能检测奇数个错误,不能纠错。 海明校验码:通过在数据位之间插入多个校验位,能够检测并纠正一位错误(或者检测两位错)。 循环冗余校验(CRC):将数据视为多项式,除以生成多项式得到余数作为校验码。CRC能检测突发错误,广泛用于网络通信和存储设备。 定点加法、减法运算 补码加法 补码加法的公式:[X+Y]补 = [X]补 + [Y]补 (mod 2^n)。即直接将两个数的补码相加,若最高位产生进位则丢弃该进位(模2^n运算)。正负数均可直接相加,无需特殊处理。例如:X=5(0101),Y=-3(1101),和=2(0010)。 补码减法 补码减法转化为加法:[X-Y]补 = [X]补 + [-Y]补。其中[-Y]补可通过将[Y]补连同符号位一起取反后加1得到。例如:X=5(0101),Y=3(0011),则[-Y]补=1101,相加得0010(即2)。 溢出概念与检测方法 当运算结果超出机器数表示范围时发生溢出。对于补码加减法,溢出检测方法: 双符号位法(变形补码):用两个符号位,如00为正,01为上溢,10为下溢,11为负。结果的两个符号位不同则表示溢出。 单符号位法:比较操作数的符号和结果的符号。若两个正数相加得负数,或两个负数相加得正数,则溢出。进位检测法:最高有效位的进位与符号位的进位不同时溢出。 基本的二进制加法/减法器 一位全加器(FA)是实现加法/减法的基础。它有三个输入:A、B、低位进位Cin;两个输出:和S、进位Cout。逻辑表达式:S = A ⊕ B ⊕ Cin;Cout = AB + (A⊕B)Cin。多个全加器串联构成行波进位加法器(RCA)。减法可通过将减数取反(按位取反后加1,即使用异或门控制)并设置初始进位为1来实现。为提高速度,可采用超前进位加法器(CLA)并行计算进位。 ...

September 3, 2025 · 1 min · farmer3-c

计组概论

计算机的分类 计算机的发展简史 计算机的五代变化 半导体存储器的发展 微处理器的发展 计算机的性能指标 计算机的硬件 硬件组成要素 运算器 存储器 控制器 适配器与输入/输出设备 计算机的软件 软件的组成与分类 软件的发展演变 计算机系统的层次结构 多级组成的计算机系统 软件与硬件的逻辑等价性 计算机的分类 电子计算机从总体上来说分为两大类。一类是电子模拟计算机,模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。另一类是电子数字计算机,数字计算机的主要特点是按位运算,并且不连续地跳动计算。 此外,数字计算机还可根据规模和用途分为巨型机、大型机、小型机、微型机、工作站、嵌入式计算机等类别。巨型机用于科学计算和国家战略任务;微型机(个人计算机)普及最广;嵌入式系统则应用于智能设备、汽车电子等领域。 计算机的发展简史 计算机的五代变化 世界上第一台电子数字计算机是1946年在美国宾夕法尼亚大学制成的ENIAC。这台机器用了18000多个电子管,占地170m²,重量达30吨,而运算速度只有5000次/秒。 自从这台计算机问世70多年来,从使用器件的角度来说,计算机的发展大致经历了五代的变化。 第一代为1946~1957年,电子管计算机。采用电子管作为逻辑元件,磁鼓或磁芯作为存储器,体积庞大、功耗高、可靠性低。主要用于科学计算。 第二代为1958~1964年,晶体管计算机。晶体管代替电子管,体积缩小,功耗降低,速度提高。出现了高级编程语言(如FORTRAN、COBOL),开始应用于商业领域。 第三代为1965~1971年,中小规模集成电路计算机。将多个晶体管集成在一块硅片上,使计算机进一步小型化,运算速度达到每秒数百万次。操作系统和分时系统开始普及。 第四代为1972~1990年,大规模和超大规模集成电路计算机。一片芯片可集成数千至上万个元件。个人计算机(PC)诞生并迅速发展。1971年Intel 4004微处理器标志着微计算机时代的开始。 第五代为1991年开始的巨大规模集成电路计算机。运算速度提高到每秒10亿次以上。由一片巨大规模集成电路实现的单片计算机(系统级芯片,SoC)开始出现。并行处理、多核技术、量子计算等新技术不断涌现。 计算机从第三代起,与集成电路技术的发展密切相关。LSI(大规模集成电路)的采用,一块集成电路芯片上可以放置1000个元件,VLSI(超大规模集成电路)达到每个芯片1万个元件,现在的ULSI(甚大规模集成电路)芯片超过了100万个元件。1965年摩尔观察到芯片上的晶体管数量每年翻一番,1970年这种态势减慢成每18个月翻一番,这就是人们所称的摩尔定律。该定律揭示了集成电路工艺的持续进步,但也面临物理极限的挑战。 半导体存储器的发展 半导体存储器的发展经历了从磁芯存储器到半导体RAM和ROM的转变。20世纪60年代末,半导体存储器开始取代磁芯存储器,成为计算机的主要存储部件。随着集成电路技术的进步,存储容量不断增大,成本不断降低,速度也大幅提升。如今,DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)广泛应用于主存和高速缓存,闪存(Flash)则成为移动设备和固态硬盘的重要存储介质。近年来,3D NAND、MRAM、ReRAM等新型存储器不断涌现,进一步拓展了存储技术的边界。 微处理器的发展 微处理器是将中央处理器的主要功能集成到一块芯片上的器件。1971年,英特尔公司推出了世界上第一块微处理器4004,4位字长,主频108kHz,开启了微处理器时代。随后,8位微处理器(Intel 8080、Zilog Z80)、16位(Intel 8086/8088、Motorola 68000)、32位(Intel 80386、ARM)、64位微处理器相继问世,性能不断提升,集成度从数千晶体管发展到数百亿晶体管。微处理器的出现极大地推动了个人计算机和嵌入式系统的发展。当前主流微处理器包括Intel Core系列、AMD Ryzen系列、ARM Cortex系列等,广泛应用于从智能手机到超级计算机的各类设备。 计算机的性能指标 衡量计算机性能的主要指标包括: 主频(时钟频率):CPU的核心时钟速率,单位Hz。主频越高,单位时间内能完成的操作越多,但不同架构的CPU不能单纯比较主频。 字长:CPU一次能并行处理的二进制位数,通常为8、16、32、64位。字长影响数据精度和寻址范围。 运算速度:通常用每秒百万条指令(MIPS)或每秒浮点运算次数(FLOPS)表示。现代计算机常用SPEC等基准测试程序综合评估。 存储容量:主存(RAM)容量和辅存(硬盘/SSD)容量。容量越大,可运行的程序和数据越多。 输入输出速度:I/O带宽和响应时间,影响系统的整体运行效率。 其他指标:功耗、可靠性(MTBF)、可用性、可扩展性等。 计算机的硬件 硬件组成要素 计算机硬件主要包括运算器、存储器、控制器、输入设备和输出设备五大部分。它们共同协作,实现数据的输入、存储、运算、控制和输出功能。这些部件通过总线(数据总线、地址总线、控制总线)相互连接,组成完整的硬件系统。 运算器 运算器负责对数据进行算术和逻辑运算,是计算机的“计算核心”。它通常包括算术逻辑单元(ALU)、累加器(ACC)、暂存器、状态寄存器(标志寄存器)等部件。ALU执行加、减、乘、除等算术运算和与、或、非、异或等逻辑运算。运算器的设计对计算机的性能至关重要。 存储器 存储器用于存放程序和数据,分为主存(内存)和辅存(外存)。主存速度快但容量有限,通常由DRAM构成,直接与CPU交换信息;辅存容量大但速度较慢,如硬盘、固态硬盘、光盘等,用于长期保存信息。存储器系统采用层次结构(Cache-主存-辅存)来兼顾速度、容量和成本。 控制器 控制器负责协调和控制计算机各部件的工作,保证程序的正确执行。它通过时序信号和控制信号实现对各部件的管理。控制器从存储器中逐条取出指令,分析指令(译码),然后发出相应的微操作命令序列,驱动运算器、存储器、I/O设备执行指令规定的操作。控制器分为微程序控制器和硬布线控制器两种主要类型。 适配器与输入输出设备 适配器(也称接口或控制器)用于连接主机与各种输入输出设备,如键盘、鼠标、显示器、打印机、磁盘驱动器等,实现数据的输入和输出。适配器负责信号转换、数据缓冲、协议转换和错误处理。常见的I/O接口标准有USB、HDMI、SATA、PCIe等。输入设备将外部信息转换为计算机可识别的电信号;输出设备则将计算机的处理结果转换为人们可感知的形式(如显示、打印、声音)。 计算机的软件 软件的组成与分类 计算机软件分为系统软件和应用软件。 系统软件:包括操作系统(Windows、Linux、macOS等)、编译程序(GCC、LLVM等)、解释程序、数据库管理系统(MySQL、Oracle等)、汇编程序、链接程序等,负责管理硬件资源和为应用软件提供运行环境。 应用软件:用于完成特定的用户任务,如文字处理(Word)、图像编辑(Photoshop)、科学计算(MATLAB)、网页浏览(Chrome)、游戏、财务软件等。 软件的发展演变 软件从最初的机器语言(二进制代码)、汇编语言(符号化机器指令)发展到高级语言(FORTRAN、C、Java、Python等)和面向对象编程,极大地提高了开发效率和程序的可维护性。随着互联网和人工智能的发展,软件的功能和复杂性也在不断提升。软件开发方法也从结构化方法发展到面向对象、组件化、服务化、敏捷开发、DevOps等模式。开源软件的兴起深刻改变了软件产业格局。 ...

September 3, 2025 · 1 min · farmer3-c

计算机组成原理

计算机组成原理 概论 运算方法和运算器 存储系统 指令系统 中央处理器 总线系统 参考 白中英,戴志涛.计算机组成原理 第6版

September 3, 2025 · 1 min · farmer3-c

应用层

应用层是参考模型的最上层,也是距离用户最近的一层,为各式各样的应用定义了通信规则和协同方式,满足不同的应用需求。围绕这个主题,本章主要探讨了以下内容。 (1)应用进程通信方式与套接字编程 客户/服务器模型(C/S):服务器长期运行,被动等待请求;客户主动发起请求,完成服务后断开。优点是集中管理,缺点是服务器可能成为瓶颈。现代 Web、FTP、电子邮件均采用此模型。 套接字(Socket):应用层与传输层的编程接口。原语包括: socket():创建套接字。 bind():绑定本地地址和端口(服务器用)。 listen()(TCP):进入被动监听状态。 accept()(TCP):接受连接请求。 connect()(TCP):主动连接服务器。 send()/recv() 或 write()/read():数据传输。 close():关闭连接。 基于 TCP 的套接字流程:服务器创建→绑定→监听→接受;客户端创建→连接→通信;可靠有序字节流。 基于 UDP 的套接字流程:无需连接,直接使用 sendto()/recvfrom(),发送和接收数据报。 (2)域名系统(DNS) DNS 负责将主机名(如 www.example.com)解析为 IP 地址。域名空间为层次树结构,根域为 ""(点),顶层域(TLD)包括通用域(.com, .org)和国家域(.cn, .uk)等。 域名服务器按层次分工: 根域名服务器:全球 13 组(逻辑上),不直接解析,只指引到 TLD 服务器。 顶级域名服务器:负责特定 TLD 下的域名。 权威域名服务器:负责特定域(如 example.com)的所有记录。 本地域名服务器:ISP 或企业网络提供,缓存解析结果,代表用户发起查询。 解析算法: 递归查询:本地域名服务器代为请求其他服务器,将最终结果返回用户。 迭代查询:本地域名服务器依次询问各服务器(根→TLD→权威),每个服务器返回下一级地址。 DNS 缓存:各层服务器缓存解析结果,降低延迟,但必须设置 TTL 以确保更新。 (3)典型应用层协议 文件传输(FTP):使用两个 TCP 连接:控制连接(端口 21,发送命令)和数据连接(端口 20,传输文件)。支持主动模式(服务器主动连接客户端)和被动模式(客户端连接服务器协商的端口)。 远程登录 TELNET/SSH: TELNET(端口 23):明文传输,不安全。 SSH(端口 22):加密认证,支持远程 shell、文件传输(SFTP)、端口转发。 电子邮件协议: SMTP(简单邮件传输协议)(端口 25):用于邮件客户端到服务器、服务器到服务器之间的邮件发送。仅支持 ASCII 文本,使用 MIME 支持多媒体。 POP3(邮局协议第3版)(端口 110):下载邮件到本地,通常删除服务器上的邮件。 IMAP(互联网消息访问协议)(端口 143):邮件保留在服务器上,支持远程文件夹管理、部分下载。 MIME(多用途互联网邮件扩展):在邮件中传输非 ASCII 内容(图片、音频、附件),通过定义新的内容类型(Content-Type)和编码方式(Base64、QP)。 ...

August 27, 2025 · 1 min · farmer3-c

网络层

网络层是两个核心层之一,其功能是将分组从源主机一路送到目的主机。本章围绕这个功能,探讨网络层的技术和协议。 网络层服务模型 网络层首先探讨了源和目的之间的通信网络的分类和提供的服务: 数据报网络:提供无连接的服务,每个分组(数据报)独立路由,使用 IP 协议。特点:不维护连接状态,分组可能乱序到达。优点:鲁棒性强,适合动态路由。 虚电路网络:提供面向连接的服务,通信前需建立虚电路(如 X.25、ATM、MPLS)。特点:所有分组沿相同路径按序到达,可以预留资源(QoS)。缺点:需要维护连接状态,容错性差(节点故障导致所有连接中断)。 网络层上的协议分为被路由协议(routed protocol)和路由选择协议(routing protocol): 被路由协议:为分组的路由提供所需要的信息,例如 IP 协议提供地址和分组格式。 路由选择协议:用于填充路由表,如 RIP、OSPF、BGP。 IPv4 地址与子网划分 IPv4 地址表示和分类 IPv4 地址长度为 32 位,通常用点分十进制表示(如 192.0.2.1)。最初分为五类(A、B、C、D、E): A 类:首位 0,网络号 8 位,主机号 24 位(范围 0.0.0.0 – 127.255.255.255),但 0 和 127 保留,实际 1–126。 B 类:首位 10,网络号 16 位,主机号 16 位(128.0.0.0 – 191.255.255.255)。 C 类:首位 110,网络号 24 位,主机号 8 位(192.0.0.0 – 223.255.255.255)。 D 类(组播):1110 开头,地址 224.0.0.0 – 239.255.255.255。 E 类(保留):240.0.0.0 – 255.255.255.255。 子网划分与 CIDR IPv4 地址资源按块分配给 ISP,个人用户从 ISP 获取 IP 地址。为了方便管理和节约 IP 地址,使用子网掩码(如 255.255.255.0)将主机号再分为子网号和子网内主机号。**可变长子网掩码(VLSM)**允许不同子网使用不同掩码长度,尽量不浪费地址。 ...

August 27, 2025 · 2 min · farmer3-c

传输层

传输层是承接应用层和网络层的关键一环,传输层基于网络层提供的服务将主机与主机之间的通信封装为端与端之间的通信,实现了两台主机进程之间的数据交付,并且为上层应用屏蔽了复杂的底层网络细节,建立了网络的抽象模型。围绕以上特性,本章探讨传输层使用的技术。 (1)传输层多路复用/分用功能与端到端传输 传输层通过 多路复用 和 多路分用 实现多个应用进程共享网络层服务。 多路复用:发送方传输层将多个应用进程的数据(来自不同套接字)封装成数据段,然后传递给网络层。 多路分用:接收方传输层根据数据段中的端口号,将数据交付给正确的套接字(即相应进程)。 端口:16 位整数(0–65535),用于标识主机上的特定进程。 熟知端口(0–1023):分配给标准服务,如 HTTP(80)、HTTPS(443)、FTP(21)、SSH(22)、DNS(53)。 注册端口(1024–49151):用户应用程序使用,需要向 IANA 注册。 动态/私有端口(49152–65535):客户端临时使用。 套接字(Socket):IP 地址 + 端口号的组合,唯一标识网络中的一个端点。套接字是应用层与传输层之间的编程抽象。 传输层提供两种核心服务模式:无连接的 UDP 和面向连接的 TCP。 (2)UDP(用户数据报协议) UDP 提供无连接、不可靠的数据传输服务,不保证顺序,不进行重传。 特点: 无连接:发送前无需建立连接,每个 UDP 数据段独立处理。 轻量:头部开销小(仅 8 字节),无拥塞控制和流量控制。 支持组播和广播。 应用场景:对延迟敏感、容忍丢包、实时性要求高的场景(如 DNS 查询、VoIP、视频直播、在线游戏)。 UDP 数据段格式: 源端口(2 字节)、目的端口(2 字节)、长度(2 字节,包括头部和数据)、校验和(2 字节,覆盖头部和数据及伪头部)。 校验和计算:包含 UDP 伪头部(源 IP、目的 IP、协议号、UDP 长度),用于检测从网络层到传输层的差错。 典型应用: 远程过程调用(RPC):客户调用远程服务时,UDP 的低延迟适合请求-响应交互。 实时传输协议(RTP):通常运行在 UDP 上,传输音视频媒体流,允许少量丢包。 (3)TCP(传输控制协议) TCP 提供面向连接、可靠、有序的字节流服务。 特点: 面向连接:数据传输前需经过三次握手建立连接。 可靠传输:使用序号、确认、重传保证数据不丢失、不重复、按序到达。 流量控制:基于滑动窗口机制,协调发送速率避免接收方缓存溢出。 拥塞控制:动态调整发送速率,避免网络过载。 全双工通信:支持双向同时传输数据。 TCP 数据段格式: 源端口、目的端口(各 2 字节) 序号(4 字节,本段第一个字节的序号) 确认号(4 字节,期望收到的下一个序号,表示之前的数据都已收到) 数据偏移(4 位,头部长度) 标志位:ACK(确认有效)、RST(复位)、SYN(同步序号)、FIN(终止连接)、URG(紧急指针有效)、PSH(立即推送) 窗口大小(2 字节,接收方给出的剩余缓存空间) 校验和(2 字节,覆盖头部、数据和伪头部) 紧急指针(2 字节,与 URG 配合) 选项(可变长,如最大段大小 MSS、时间戳、窗口缩放因子) 可靠传输机制: ...

August 27, 2025 · 2 min · farmer3-c

链路层

数据链路层的主要功能 数据链路层位于物理层和网络层之间,其主要功能包括: 成帧:将网络层交付的比特流封装成独立的帧,添加帧头和帧尾,以便接收方能识别帧的边界。 差错控制:通过检错码或纠错码检测(或纠正)传输过程中产生的比特错误,并可配合重传机制。 流量控制:协调发送方和接收方的速率,防止接收方缓存溢出。 介质访问控制(MAC):在广播型多路访问链路(如以太网、WiFi)上,决定哪个节点何时占用信道。 链路管理:建立、维护和释放数据链路层的连接(在面向连接的链路中)。 可靠传输:在不可靠的物理链路上,通过确认和重传机制实现数据的可靠交付。 本章对成帧的基本方法进行了详细的描述;针对错误的处理这一数据链路层的重要任务,介绍了检错和纠错的基本原理和典型的编码方法;详细介绍了奇偶检验、循环冗余校验、互联网校验等常用检错码,以及纠1位错的海明码、里所码、低密度奇偶检验等常用纠错码。 成帧的基本方法 成帧是指将原始比特流分割成若干独立的帧,以便接收方能准确提取每个帧的数据。常用方法: 字节计数法:帧头中使用一个字段表示帧的总长度(字节数)。接收方读取长度字段后,就知道从哪里结束。缺点:长度字段本身出错会导致帧同步丢失。 字节填充的标志字节法:使用特殊标志字节(如 FLAG=0x7E)表示帧的开始和结束。如果数据中出现了标志字节,则在其前面插入转义字节(如 ESC=0x7D)。接收方遇到转义字节则删除并还原数据。 比特填充的标志比特法(HDLC 常用):使用标志位序列 01111110 作为帧边界。发送方在数据中连续出现 5 个 1 后自动插入一个 0;接收方连续收到 5 个 1 后,若下一比特为 0 则删除该 0,若为 1 且再下一比特为 0 则视为标志。该方法避免了修改数据内容长度。 物理层编码违例法:利用物理层编码中的“非法”信号作为帧边界(例如曼彻斯特编码中不使用连续的相同电平)。仅适用于特定的物理层编码。 检错与纠错基本原理 检错码:在数据后添加冗余位(校验位),使得接收方能根据校验位判断数据是否出错。常见检错码:奇偶校验、循环冗余校验(CRC)、校验和(Checksum)。检错码无法确定错误位置,只能判断“有/无错误”。 纠错码:添加更多冗余位,使接收方能不仅检测错误,还能定位并纠正一定数量的错误比特。典型纠错码:海明码(纠1位错)、BCH码、里所(Reed-Solomon)码、低密度奇偶检验(LDPC)码。纠错码的编码效率(数据位/总位数)较低,适用于无法重传的场景(如深空通信、实时音频)。 常用检错码详解 奇偶校验:在数据后面附加一个比特,使整个数据中 1 的个数为奇数(奇校验)或偶数(偶校验)。可以检测奇数个比特错误,但不能检测偶数个错误,且无法纠错。 循环冗余校验(CRC):将数据视为多项式,用生成多项式相除,余数作为 CRC 码附加。接收方重新计算并比对余数。可以检测任意长度的大多数突发错误(取决于生成多项式),广泛用于以太网、WiFi、存储设备。 互联网校验和(Internet Checksum):将数据按 16 位字分组,进行二进制反码求和,结果取反。简单高效,用于 IP、TCP、UDP 头部校验。错误检测能力弱于 CRC,但便于在软件中快速计算。 常用纠错码简介 海明码(Hamming Code):通过在数据位之间插入校验位,使得数据位与校验位形成多个奇偶校验组。能够纠正单比特错误,并能检测双比特错误(扩展海明码)。最小码距为 3(或 4)。 里所码(Reed-Solomon, RS):非二进制纠错码,以符号(如 8 位字节)为单位进行编码,非常擅长纠正突发错误。广泛用于光盘、QR 码、卫星通信、数字电视。 低密度奇偶检验码(LDPC):使用稀疏校验矩阵,通过迭代置信传播译码,性能接近香农极限。用于 5G、WiFi 6(802.11ax)、10G 以太网等。 为了实现数据链路层上的可靠传输,本章介绍了利用停-等协议实现流量控制,利用肯定确认与重传机制处理信道上出现差错的情况。此外,为了提高信道利用率,本章介绍了滑动窗口协议的基本思想,在此基础上详细说明了回退 n 帧协议和选择性重传协议的工作原理,并对两者的滑动窗口大小进行了分析。 ...

August 27, 2025 · 2 min · farmer3-c

物理层

物理层负责比特流的透明传输 物理层是参考模型中的最底层,是最基础的一层。本章探讨传输比特所需要的介质和所使用的技术。 通信 信道 物理层通信:利用物理传输介质,将计算机中的比特流(0、1)转换为电信号、光信号或电磁波信号,在物理链路上实现透明、原始的比特流传输,不负责数据含义与纠错,只负责信号的发送与接收。 信道:在物理层中,传送信号的通路,是传输比特流的逻辑通道,包含传输介质和相关通信设备。 模拟和数字通信 数字和模拟通信的区别在于使用数字信号还是模拟信号进行传递消息。 模拟信号:代表信息的信号及其参数(幅度、频率或相位)随着消息连续变化的信号,它在幅度上连续,但在时间上可以连续也可以不连续。 波形连续,具有无穷多个幅度取值; 易受干扰,噪声会累积且难以去除; 不易加密,不易存储和处理(需先数字化); 典型例子:传统电话语音、模拟电视信号。 数字信号:不仅在时间上是离散的,而且在幅度上也是离散的信号,通常只取有限个离散值(如二进制信号取0和1)。 波形离散,只传送0和1; 抗干扰能力强,噪声不会累积(可通过中继器再生); 易加密、易存储、易纠错,与计算机系统天然兼容; 典型例子:以太网信号、USB信号、光纤通信信号。 并行和串行通信 串行通信:数据在传输过程中,逐位依次传输,一次只传输一个比特。数据通过单一的通信线路(如一根电线或一根光纤)按顺序发送和接收。 优点:节省线路资源,线缆成本低;远距离传输时不易出现信号间干扰(串扰)。 缺点:传输速率相对较低(需通过提高时钟频率来提升速率)。 典型应用:USB、RS-232、I²C、以太网(内部串行化)、SATA。 并行通信:数据在传输过程中,同时通过多条线路传输,一次可以传输多个比特。通常每条线路传输一个比特,多条线路同时传输数据。 优点:相同时钟频率下,数据吞吐量是串行的N倍(N为并行位数)。 缺点:线路多,成本高;远距离时不同线路的信号到达时间可能不一致(时延偏移),限制传输距离和速率。 典型应用:旧式打印机并口(Centronics)、IDE硬盘接口、芯片内部总线。 同步和异步通信 异步通信:收发双方时钟各自独立,以字符为单位传输,每个字符加起始位、停止位做同步。 特点: 按字符逐个发送,字符之间的间隔不固定; 无需统一的时钟信号,实现简单,成本低; 每个字符需要额外的起始位和停止位(通常每8位数据需2-3位开销),传输效率较低; 适用于低速、间歇性数据传输。 例子:串口RS-232、键盘输入、鼠标通信。 同步通信:收发双方使用统一时钟信号(可由单独时钟线或从数据信号中提取),以数据块/帧为单位连续传输,不需每个字符加起止位。 特点: 连续成块传输,数据块内比特间隔固定; 收发双方时钟需严格同步(使用同步时钟或锁相环); 传输效率高,额外开销仅为帧头帧尾(如标志位或同步字符); 硬件复杂,适合高速、大块连续数据传输。 例子:以太网、光纤通信(SONET/SDH)、USB高速模式。 单工、半双工和全双工通信 单工通信 定义:信息只能单向传输,一方固定发送,一方固定接收,不能反向。 例子:广播、电视、遥控器。 半双工通信 定义:双方都能收发,但同一时刻只能单向,不能同时发和收。 例子:对讲机、传统步话机、RS-485总线。 全双工通信 定义:双方可同时发送和接收,双向互不干扰。 例子:手机通话、以太网(使用独立收发线对)、微信语音通话。 信号传输特性与信道容量 通过信号的傅里叶分析,本章解释了其传输过程存在的衰减、失真等现象,引入了截止频率、物理带宽的概念以及它们对信号传输的影响。 傅里叶分析与信号失真 任何周期信号都可以分解为一系列不同频率的正弦波(基波和谐波)的叠加。当信号通过实际信道时,不同频率分量会经历不同的衰减和相移,导致接收端波形发生畸变。 幅度衰减:高频分量衰减通常比低频分量更严重,导致信号边沿变缓。 相位失真:不同频率的传输延迟不同,造成码间干扰。 信道带宽:信道的截止频率范围,只有频率落在带宽内的分量才能被有效传输。 信道带宽与截止频率 物理带宽:信道能够通过的最大频率与最小频率之差,单位为赫兹(Hz)。例如,话音信道带宽约为3.1 kHz(300 Hz~3.4 kHz)。 截止频率:信号功率衰减超过某一阈值(通常为-3 dB)的频率点。 影响:带宽越窄,可传输的高频分量越少,输出波形越接近“圆滑”,可能导致接收端无法区分相邻比特。 信道容量:奈奎斯特定理与香农定理 信道的物理带宽直接影响信道的传输性能,即它的传输速率,或者数字带宽。 奈奎斯特定理(无噪声信道) 对于无噪声、带宽为 B 赫兹的理想信道,最大数据速率为: 最大数据速率 = 2B * log2(M),其中 M 为信号电平数(如M=2,则速率为 2B bps)。 该定理给出了在避免码间串扰条件下的理论上限。 ...

August 27, 2025 · 2 min · farmer3-c

计算机网络概述

计算机网络在信息时代的作用 计算机网络已经成为信息社会的核心基础设施。它使得人们可以随时随地访问、处理和交换信息,极大地促进了数字化、网络化和智能化的发展。具体作用包括: 信息共享:用户可以通过网络访问分布在世界各地的信息资源(网页、数据库、文件等)。 通信协同:电子邮件、即时消息、视频会议等应用支持人与人、人与机器之间的高效协作。 远程访问:支持远程办公、在线教育、远程医疗等,打破了地理限制。 电子商务与金融:网络支付、网上银行、在线购物等改变了传统商业模式。 娱乐与媒体:流媒体、社交网络、在线游戏等丰富了人们的文化生活。 互联网概述 网络的网络 互联网是由众多计算机网络(局域网、城域网、广域网)通过路由器互联而成的“网络的网络”。其两大基本特点是: 连通性:任何接入互联网的用户(终端)之间都可以相互交换数据,仿佛彼此直接相连一样。这种连通性不受物理距离的限制。 共享性:指资源共享,包括信息(网页、文件)、软件(在线服务、云应用)和硬件(如远程打印机、算力资源)。共享使得资源利用率大幅提升,降低了成本。 互联网基础结构发展三个阶段 第一阶段(1969–1990):ARPANET 到互联网雏形 1969 年美国国防部建立 ARPANET,最初只有 4 个节点。 20 世纪 70 年代提出 TCP/IP 协议体系。 1983 年 ARPANET 全面采用 TCP/IP,标志着现代互联网的诞生。 80 年代中期美国国家科学基金会建立 NSFNET,成为主干网。 第二阶段(1990–2000):商业化与万维网兴起 1990 年 ARPANET 停止运行,NSFNET 成为骨干。 1991 年万维网(WWW)公开,浏览器出现,互联网向公众开放。 1995 年 NSFNET 退役,互联网完全由商业 ISP 运营,进入爆炸式增长。 第三阶段(2000 至今):移动互联网、物联网与高速宽带 光纤到户、4G/5G 移动通信普及。 智能终端、云计算、社交网络、流媒体成为主流。 物联网(IoT)将数十亿设备接入互联网,进入“万物互联”时代。 互联网的标准化工作 互联网的标准化由 IETF(互联网工程任务组) 等组织负责,遵循“ rough consensus and running code” 原则。主要成果以 RFC(Request For Comments) 文档形式发布。 Internet Standard:经过充分验证的正式标准(如 RFC 791 – IP、RFC 793 – TCP)。 Proposed Standard / Draft Standard:处于不同成熟度的草案。 此外还有 BCP(Best Current Practice)、Informational 等类型。 标准化过程公开透明,任何人均可提交提案,保证了互联网的开放性和快速演进。 互联网的组成 互联网从物理结构上由以下四类元素构成: ...

August 27, 2025 · 2 min · farmer3-c