本文主要是介绍计算机系统和网络系统基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
软考几乎都要求的计算机系统基础知识整理,掌握计算机运行的实质
-
计算机系统基础知识
- 数据的存储、表示和操作
- 计算机常用存储单位
- 大端模式
- 小端模式
- 汇编语言
- I/O
-
计算机网络
- 协议
- 信息传输
- 计算机网络的性能指标
- 信道
- 单工通信信道
- 半双工通信信道
- 全双工通信信道
- OSI模型
- 物理层
- 数据链路层
计算机系统基础知识
数据的存储、表示和操作
常见的进制
2进制逢2进一,8进制逢8进一,10进制逢10进一,16进制逢16进一
进制间转化
十进制 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|
0 | 0000 | 00 | 0x0 |
1 | 0001 | 01 | 0x1 |
2 | 0010 | 02 | 0x2 |
8 | 0011 | 010 | 0x8 |
10 | 1010 | 012 | 0xa |
16 | 00010000 | 020 | 0x10 |
tips:十六进制大于9小于16的部分用abcdef代替
负数在二进制中通常采用补码表示法。具体步骤如下:
- 首先,将负数转换为正数的二进制表示。
- 然后,取该正数的二进制补码。
- 在加上1
例如,假设要表示-5的二进制表示,可以按照以下步骤进行:
- 5的二进制表示为00000101(对于8位二进制数)。
- 取反得到11111010,即-5的二进制补码表示。
- 加一后得到111111011即为-5
基本操作符
与(&):对应位置都是1才是1,其他都是00101&1111= 0101
或(|):有位置是1就是1,0101&1010= 1111
取反(~):0就是1,1就是0,~0101= 1010
异或(^):相同为0,不同为1,0101^0011= 0110
左移(<<):将一个数的二进制位全部向左移指定位数,右边用0填充,相当与原本的数乘上2的指定位数次方,0110<<1= 1100
右移(>>):将一个数的二进制位全部向右移动指定位数,无符号整数直接在左边填充0,有符号整数应该保持符号位不变0011>>1= 0001
计算机常用存储单位
计算机常用的存储单位有bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB等,它们之间的关系如下:
- 位(bit,比特):存放一位二进制数,即0或1,是最小的存储单位。
- 字节(B,byte):8个二进制位为一个字节,是计算机数据处理的基本单位,计算机主要以字节为单位解释信息。1 Byte(B)= 8 bit。
- 千字节(KB,Kilo Byte):1 Kilo Byte(KB)= 1024B。
- 兆(MB,Mega Byte):1 Mega Byte(MB)= 1024 KB。
- 千兆(GB,Giga Byte):1 Giga Byte(GB)= 1024 MB。
- 千千兆(TB,Tera Byte):1 Tera Byte(TB)= 1024 GB。
以上单位之间都是按照1024的倍数进行换算的,这是因为在计算机中,数据的存储和传输都是以二进制的形式进行的,而2的10次方(即1024)是二进制数中最接近1000的数,因此被选作为换算的基数。
请注意,虽然理论上1KB等于1024B,1MB等于1024KB,1GB等于1024MB,但在实际应用中,由于计算机硬件和操作系统的不同,可能会存在一些差异。例如,在某些操作系统中,1MB可能被定义为1000KB,而不是1024KB。因此,在进行存储单位换算时,需要根据具体情况来确定换算关系。
大端模式
大端模式(Big-Endian)是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。这种存储模式有点儿类似于把数据当作字符串顺序处理,即地址由小向大增加,数据从高位往低位放。
小端模式
小端模式(Little-Endian)与大端模式相反,它是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。也就是说,内存地址从低到高依次存储了多字节值的各个字节,即低地址处存储了数值的低位,高地址处存储了数值的高位。这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,与我们的逻辑方法一致。
小端模式在许多现代计算机中都被广泛采用,例如常用的X86结构就是小端模式。
汇编语言
汇编语言(Assembly Language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
I/O
I/O(Input/Output),即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。它是信息处理系统(例如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信。输入是系统接收的信号或数据,输出则是从其发送的信号或数据。
I/O操作几乎遍及计算机用户的每一个行为,包括文字录入、音视频播放、文件读写和网络相关的所有行为。输入/出设备是硬件中由人(或其他系统)使用与计算器进行通信的部件。例如,键盘或鼠标是计算器的输入设备(I),而监视器和打印机是输出设备(O)。
I/O设备分为IO设备和IO接口两个部分。在POSIX兼容的系统上,例如Linux系统,I/O操作可以有多种方式,比如DIO(Direct I/O),AIO(Asynchronous I/O,异步I/O),Memory-Mapped I/O(内存映射I/O)等,不同的I/O方式有不同的实现方式和性能,在不同的应用中可以按情况选择不同的I/O方式。
计算机网络
协议
计算机网络中的协议是网络中计算机或设备之间进行通信的一系列规则的集合。这些规则或约定旨在确保数据在计算机网络中能够准确、可靠地从源地址传输到目的地址。协议规定了数据格式、通信方式、错误处理、传输控制等方面的内容,以确保不同设备之间能够相互理解和协作。
常见的网络协议包括TCP/IP、HTTP、SMTP等。TCP/IP协议族是互联网的基础,包括TCP(传输控制协议)和IP(互联网协议)等;HTTP协议用于Web浏览器和Web服务器之间的通信;SMTP协议则用于电子邮件的传输。
为了完成通信任务,网络中必须使用多层上的多种协议。这些协议按照层次顺序组合在一起,构成了协议栈或协议族。常见的网络层次结构模型有OSI(开放系统互联)模型和TCP/IP模型。OSI模型将网络通信分为七个层次,从物理层到应用层,每层都有其特定的功能和协议。TCP/IP模型则相对简化,分为四层:网络接口层、网络层、传输层和应用层。
总之,协议是计算机网络中不可或缺的一部分,它们确保了不同设备之间能够相互通信和协作,从而实现了信息的共享和传输。
信息传输
什么是信息?
- 一条短信
- 一则新闻
- 一张图片
- 一段视频
- 一份天气预报
- ……
信息如何传输
- 变成数字(数字化):首先,无论信息是文字、图片、声音还是视频,都需要先转换成数字。就像我们用电脑打字,每个字其实就是一个数字代码。图片和视频也是这样,它们由很多小方块(像素)组成,每个像素都有自己的颜色,这些颜色也是用数字来表示的。
- 变小一点(压缩):数字信息有时候很大,直接发送会很慢或者占用很多空间。所以我们需要用一个方法,把信息变得更小,但又不损失太多内容。这就像我们把一本书压缩成一个文件,虽然文件变小了,但里面的内容还在。
- 装进一个盒子(封装):压缩后的信息需要被放在一个特定的“盒子”里,这样媒介才能识别和传输它。这个“盒子”就是文件的格式,比如MP4、AVI等。这些格式可以确保信息在传输过程中不会丢失或混乱。
- 发送出去(传输):最后,我们就可以把这个装有信息的“盒子”发送出去了。可以是通过互联网发送到另一个地方,也可以是复制到一个U盘或光盘上,然后再给别人。
通信不是你一个人在进行,如何保证数据正常的接受和发送?
-
地址和标识符(IP地址):在通信过程中,每个接收方通常都有一个唯一的地址或标识符。发送方需要确保将信息准确地发送到这个地址或标识符,以确保信息能够到达正确的接收方。这可以通过在通信协议中使用适当的地址字段来实现。
-
认证和授权:通信系统通常需要进行用户认证和授权,以确保只有经过授权的用户才能访问和接收信息。这可以通过使用用户名和密码、数字证书或其他身份验证机制来实现。通过认证和授权,可以确保只有正确的接收方才能接收到信息。
-
加密和安全措施:为了防止信息在传输过程中被截获或篡改,可以使用加密技术来保护信息的安全性。发送方可以对信息进行加密,只有拥有相应解密密钥的接收方才能解密和读取信息。此外,还可以采取其他安全措施,如使用安全通信协议、防火墙等,来增强通信系统的安全性。
-
确认和反馈机制(TCP/IP协议):在通信系统中,通常会有确认和反馈机制,以确保信息被正确接收。接收方在接收到信息后,可以向发送方发送确认消息,以告知信息已成功接收。如果发送方没有收到确认消息,可以重新发送信息或采取其他措施来确保信息能够到达接收方。
-
错误纠正和校验机制:在通信过程中,由于各种原因(如噪声、干扰等),信息可能会出现错误。为了保证信息的准确性,可以使用错误纠正和校验机制来检测和纠正错误。常见的错误纠正技术包括奇偶校验、循环冗余校验(CRC)等。
既然数据是通过二进制传输的,接收者如何才能知道发送人发的内容是什么?
当我们要把信息(比如一段文字、一张图片)从一个地方传到另一个地方,我们其实是在传送一串数字,就像我们打电话时说的声音会被手机变成数字一样。这些数字是按照一种大家都懂的规则(协议)来排的。
- 编码:就像我们学外语时,每个单词都有一个对应的中文意思。编码就是把我们要传的信息(比如英文单词)变成数字(中文意思)。这样,接收的人只要知道这个“密码本”(编码方式),就能把数字再变回原来的信息。
- 打包:为了让信息在传输的路上不迷路,我们会给它加上一个“地址”(接收者的信息)和一个“信封”(数据包)。这样,信息就知道它应该去哪里了。
- 传输:信息会被送到一个叫做“网络”的地方,然后按照地址找到接收者。这个过程就像我们把一封信投进邮筒,然后邮递员会帮我们送到收信人的手里。
- 拆包和解码:当接收者收到信息时,他们会用相同的“密码本”把数字变回原来的信息。这就像我们收到一封外文信,然后用对应的词典翻译出信的内容。
- 检查错误:有时候信息在传输的过程中可能会出错,比如数字被弄错了。为了避免这种情况,我们在发送信息的时候会加上一些“校验码”,就像我们写完作业后会检查一遍有没有错一样。接收者收到信息后也会用这些校验码来检查信息是否正确。
所以,虽然数据是以二进制(也就是一串0和1)的形式传输的,但只要我们和接收者都懂这套规则(协议和编码方式),我们就能确保信息能够准确无误地传达。
计算机网络的性能指标
指标 | 描述 | 单位 |
---|---|---|
速率 | 主机在通信链路每秒传输的二进制数 | 比特每秒(bps) |
带宽 | 网络通信线路所能传输数据的能力(信道容量) | 比特每秒(bps) |
吞吐量 | 吞吐量是指在单位时间内通过某个网络(或信道、接口)的实际数据量 | |
延迟 | 数据从网络的一端传送到另一端所需的时间 | |
时延带宽积 | 等于传播时延和带宽的乘积,它表示的是一个特定的网络段在给定的时间内可以传送的最大数据量 | |
延迟包括传输延迟、传播延迟、处理延迟和排队延迟等。延迟越小,网络的响应速度就越快 |
信道
信道,通俗地说,是指以传输媒质为基础的信号通路。具体地说,信道是指由有线或无线电线路提供的信号通路。信道的作用是传输信号,它提供一段频带让信号通过,同时又给信号加以限制和损害。信道是通信系统中的一个重要组成部分,是信号传输的媒介,也是实现信息传输的必要条件。
单工通信信道
单工通信信道是一种只能进行单向通信的信道,即数据信号只能从一个方向传输到另一个方向,不能实现双向通信。在单工通信中,发送端和接收端的身份是固定的,发送端只能发送数据,不能接收数据;而接收端只能接收数据,不能发送数据。
单工通信信道通常用于只需要单向通信的场景,例如无线电广播、电视广播等。在这些场景中,信息只需要从一个方向传输到另一个方向,而不需要进行双向交互。此外,单工通信信道也可以用于一些特殊的通信场景,例如远程控制和遥测等。
需要注意的是,单工通信信道虽然简单,但也有一些限制和缺点。例如,它无法实现双向通信,因此无法进行实时的交互和反馈;同时,由于只能进行单向传输,因此容易受到干扰和攻击,安全性较低。因此,在选择通信方式时,需要根据具体的应用场景和需求进行选择,以确保通信的可靠性和安全性。
半双工通信信道
半双工通信信道是一种可以进行双向通信,但在同一时刻只能进行单向通信的信道。这意味着数据可以在两个方向上传输,但不能同时进行。半双工通信信道需要两个端点都有发送和接收设备,但任何一端在发送数据时,另一端就必须处于接收状态,反之亦然。
半双工通信信道适用于一些需要双向通信,但不需要实时交互的场景,例如对讲机、步话机等。在这些场景中,用户可以在需要时进行通话,但不需要同时进行双向通话。此外,半双工通信信道也可以用于一些数据传输的场景,例如低速率的串行通信。
需要注意的是,半双工通信信道虽然可以实现双向通信,但由于在同一时刻只能进行单向通信,因此通信效率较低。此外,由于需要频繁切换通信方向,也容易产生通信延迟和误差。因此,在选择通信方式时,需要根据具体的应用场景和需求进行选择,以确保通信的可靠性和效率。
全双工通信信道
全双工通信(Full-Duplex Communication)是一种通讯传输的术语,指通信的双方可以同时发送和接收信息的数据传输方式。在全双工模式下,通信系统的每一端都设置了发送器和接收器,因此能够控制数据同时在两个方向上进行传送。这种通信方式又叫做双向同时通信,即A→B的同时B→A,而且这两个过程是瞬时同步的。
全双工通信要求通信双方均有发送器和接收器,同时需要2根数据线传送数据信号。在全双工方式下,数据传输可以同时进行,不会发生冲突或重叠,这要求通信双方使用独立的通信通道进行发送和接收数据。例如,在电话通信中,全双工通信可以通过同时使用两个线路(一个用于话筒,一个用于听筒)实现。
全双工通信的优点包括高效、实时性和可靠性,能够满足多种复杂的通信需求。它广泛应用于电话通信、计算机网络和无线通信系统等领域,为用户提供了更好的通信体验,使通信双方能够更快地进行双向交互和沟通,提高了通信的效果和效率。
OSI模型
7 - 应用层 - 提供接口和服务
6 - 表示层 - 数据处理(编码解码,加密解密等)
5 - 会话层 - 管理(建立,维护,重连)会话
4 - 传输层 - 管理端到端的通信连接
3 - 网络层 - 确保数据正确传输和网络资源的高效利用
2 - 数据链路层 - 加强数据传输的可靠性、流量控制和链路管理
1 - 物理层 - 数据链路层提供稳定、可靠的传输通道
物理层
物理层的作用是为数据链路层提供稳定、可靠的传输通道,确保数据能够在不同的硬件设备和传输介质之间正确传输。
- 中继器(Repeater):中继器是一种物理层设备,用于扩展网络的传输距离。它接收来自发送方的信号,放大并重新发送,以克服信号衰减和噪声干扰。中继器通常用于连接两个或多个网段,并在网络拓扑中起到扩展网络范围的作用。
- 集线器(Hub):集线器也是一种物理层设备,它接收来自一个端口的信号,并将其复制到其他所有端口。集线器通常用于将多个设备连接到一个共享的网络段上,并且不提供任何形式的智能或过滤功能。
- 调制解调器(Modem):调制解调器是一种物理层设备,用于将数字信号转换为模拟信号,以便在模拟传输介质(如电话线)上进行传输。调制解调器通常用于远程通信,如拨号上网或通过电话线进行数据传输。
- 光纤收发器(Fiber Optic Transceiver):光纤收发器是一种物理层设备,用于将电信号转换为光信号,以便在光纤传输介质上进行传输。光纤收发器通常用于高速数据传输和长距离通信。
数据链路层
是什么
它位于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
数据链路层的主要功能包括如何将数据组合成数据块(在数据链路层中称为帧),如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配,以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
作用
- 加强物理层传输功能:数据链路层通过在物理层提供的服务基础上进行加强,将可能出错的物理连接转化为逻辑上无差错的数据链路。这使得数据链路层对网络层表现为一条无差错的链路,从而确保数据的可靠传输。
- 帧同步功能:为了实现数据的可靠传输,数据链路层将比特流组合成以帧为单位进行传送。每个帧除了包含要传输的数据外,还包含校验码,以便接收方能够检测传输过程中的错误。
- 差错控制:数据链路层使用纠错码来检测和纠正传输过程中的错误。当接收方检测到错误时,它可以请求发送方重新发送有误的帧,从而确保数据的完整性。
- 流量控制:数据链路层负责调节发送速率,使其与接收方的接收能力相匹配。这可以防止因发送速率过快而导致的数据丢失或缓冲区溢出等问题。
- 链路管理:数据链路层还负责建立、维持和释放数据链路层的连接。这包括连接的建立、维持和释放过程,以及连接状态的监控和管理。
- 提供多种服务:数据链路层可以为网络层提供多种类型的服务,包括无确认的无连接服务、有确认的无连接服务以及有确认的面向连接服务等。这些服务可以根据不同的通信需求和场景进行选择和使用。
协议
- 点对点协议(PPP):PPP是一种广泛用于数据链路层的协议,它支持全双工操作,并允许在单个物理连接上同时进行多个数据流的传输。PPP提供了对多种网络层协议的支持,包括IPv4、IPv6等。
- 以太网(Ethernet):以太网是一种广泛使用的局域网技术,它使用CSMA/CD(载波侦听多路访问/碰撞检测)机制进行数据传输。以太网支持多种传输速率,如10Mbps、100Mbps、1Gbps等。
- 高级数据链路控制协议(HDLC):HDLC是一种用于在数据链路层传输数据的协议,它提供了帧同步、差错控制、流量控制等功能。HDLC被广泛用于广域网和局域网中。
- 帧中继(Frame Relay):帧中继是一种用于高速数据传输的协议,它使用虚电路进行数据传输,并允许在多个帧之间进行数据复用。帧中继适用于低延迟和高吞吐量的应用场景。
- 异步传输模式(ATM):ATM是一种面向连接的传输模式,它使用固定长度的信元(cell)进行数据传输。ATM提供了高速、低延迟和可靠的数据传输服务,适用于多种应用场景,包括语音、视频和数据传输等。
以太网协议
以太网协议是一种在局域网(LAN)中广泛使用的通信协议,它定义了在局域网中传输数据的方式和规则。以太网协议是基于CSMA/CD(载波侦听多路访问/冲突检测)机制进行数据传输的,这种机制可以在多个设备共享同一物理介质(如双绞线、光纤等)的情况下,实现高效、可靠的数据传输。
以太网协议的主要特点包括:
- 简单性:以太网协议相对简单,易于实现和维护。
- 可扩展性:以太网技术具有很强的可扩展性,可以方便地进行网络升级和扩展。
- 成本效益:以太网技术的成本相对较低,适用于各种规模的企业和组织。
- 广泛的应用范围:以太网协议已经成为局域网技术的标准之一,被广泛应用于各种网络环境。
在以太网协议中,数据被划分为一定大小的数据包(或称为帧),每个数据包都包含源地址、目的地址、数据内容等信息。当设备需要发送数据时,它会将数据包发送到局域网中,所有设备都会接收到这些数据包。每个设备会检查数据包的目的地址是否与自己的地址匹配,如果匹配则接收该数据包并进行处理,否则忽略该数据包。
设备
- 网卡(Network Interface Card,NIC):网卡是计算机与网络之间的接口设备,用于实现计算机与局域网之间的连接和数据通信。网卡通常插在计算机的主板上,通过电缆与网络中的其他设备相连。网卡负责将数据从计算机传输到网络中,并接收来自网络的数据。它工作在数据链路层,并处理与数据链路层相关的协议和功能,如帧的封装和拆封、差错控制等。
- 网桥(Bridge):网桥是一种用于连接两个或多个网络的设备,它工作在数据链路层。网桥能够根据数据帧中的MAC地址信息,将帧转发到目标网络,从而实现不同网络之间的通信。网桥可以过滤掉不需要的帧,减少网络中的广播流量,提高网络的性能。网桥还可以隔离不同网络之间的冲突域,增加网络的稳定性。
- 交换机(Switch):交换机是一种多端口网桥,它可以在多个端口之间转发数据帧。交换机通过维护一个MAC地址表,快速地将数据帧转发到目标端口,实现数据的高效传输。交换机还可以提供诸如VLAN(虚拟局域网)划分、端口安全、流量控制等高级功能,以满足不同网络的需求。
差错检测
数据链路层的差错检测是确保数据在传输过程中没有出现错误的重要机制。由于实际的通信链路并不理想,比特在传输过程中可能会发生变化,如1变为0或0变为1。这种比特的变化称为比特差错。为了确保数据的完整性,数据链路层引入了差错检测机制。
差错检测的主要方法包括奇偶校验和循环冗余检验(CRC)。
- 奇偶校验:这是一种简单的差错检测方法。在待发送的数据后面添加一位奇偶校验位,使整个数据(包括所添加的校验位)中“1”的个数为奇数(奇校验)或偶数(偶校验)。如果传输过程中出现比特差错,则数据的奇偶性会发生变化,从而检测出错误。但是,奇偶校验只能检测出奇数个比特的错误,对于偶数个比特的错误则无法检测。
- 循环冗余检验(CRC):CRC是一种更强大的差错检测方法。在发送端,数据被划分为多个组(通常为k位),并为每组计算一个冗余码(通常为n位)。这个冗余码是根据数据组使用二进制模2运算生成的。接收端在接收到数据后,使用相同的算法计算冗余码,并与接收到的冗余码进行比较。如果两者不匹配,则表明数据在传输过程中出现了错误。
数据最大传输单元MTU
数据最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位)。这个参数通常与通信接口有关(如网络接口卡、串口等)。
在网络中,数据包在传输时会被分割成多个片段,每个片段都必须小于或等于MTU,以确保数据包能够顺利通过网络。如果数据包大小超过MTU,则需要在发送前进行分片。接收方在接收到所有分片后,会将其重新组装成完整的数据包。
MTU的大小对于网络性能具有重要影响。如果设置得过大,可能会导致网络拥塞和传输延迟增加;如果设置得过小,则可能会增加分片开销和重组数据的复杂性。
因此,MTU的选择需要根据网络的具体情况进行权衡。在大多数情况下,操作系统会提供一个默认的MTU值,该值通常适用于大多数网络环境。但是,在某些特定情况下,可能需要手动调整MTU值以优化网络性能。
这篇关于计算机系统和网络系统基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!