1. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
程序包管理器及其管理的包文件类型:
- 软件包管理器功能: 将编译好的应用程序的各组成文件打包一个或几个程序包文件,利用包管理器可以方便快捷地实现程序 包的安装、卸载、查询、升级和校验等管理操作 主流的程序包管理器
- redhat:rpm文件, rpm 包管理器,rpm:Redhat Package Manager,RPM Package Manager
- debian:deb文件, dpkg 包管理器
包文件包含的内容:
包文件中通常包含以下内容:
- 二进制文件:软件的二进制文件。
- 库文件:程序运行所需的库。
- 配置文件:软件的配置信息。
- 帮助文档:软件的使用说明和文档。
5. 编译安装nginx的步骤总结
6. 磁盘存储术语总结: head, track, sector, sylinder.
-
Head(磁头):
- 磁头是硬盘驱动器中用于读取和写入数据的组件。在传统的机械硬盘(HDD)中,磁头悬浮在磁盘表面,与磁盘接触但不接触,通过电磁感应来读取和写入数据。
- 每个磁盘有两个面,每个面都有一个磁头,因此对于双磁头的磁盘,数据可以同时从两个面读取或写入。
-
Track(磁道):
- 磁道是磁盘表面用于存储数据的同心圆环。每个磁道可以包含多个扇区。
- 数据以螺旋形的方式存储在磁道上,从磁盘的外边缘向内螺旋。由于磁盘的外边缘比内边缘长,因此外圈的磁道比内圈的磁道可以存储更多的数据。
-
Sector(扇区):
- 扇区是磁盘上最小的可寻址存储单位,也是数据读写的基本单位。一个磁道被划分为多个扇区。
- 扇区的大小通常为512字节或更大。在现代硬盘中,扇区大小可能为4096字节(4KB)。
- 扇区通常包含数据、错误校正代码和扇区标识信息。
-
Cylinder(柱面):
- 柱面是由所有磁盘面上相同位置的磁道组成的虚拟圆柱体。换句话说,柱面是所有磁头在相同半径上的所有磁道的集合。
- 当磁头移动到不同的磁道上时,所有磁头都移动到相同编号的磁道上,这些磁道就构成了一个柱面。
- 柱面的概念在现代硬盘中已经不太重要,
7. 总结MBR,GPT结构。
MBR(Master Boot Record)和GPT(GUID Partition Table)是两种不同的磁盘分区表标准,它们定义了如何管理和组织磁盘上的分区。以下是它们的总结:
MBR(Master Boot Record)
MBR是较旧的分区表标准,主要用于传统的BIOS系统。MBR结构包含以下几个部分:
-
主引导程序(Boot Code)(占446字节):
- 这部分包含启动系统时所需的代码。
-
分区表(Partition Table)(占64字节):
- 包含四个分区条目,每个条目16字节,共64字节。
- 每个分区条目定义了一个分区的起始和结束位置、分区类型等信息。
-
魔术数字(Magic Number)(占2字节):
- 用于标识分区表的有效性,值为0xAA55。
MBR的限制包括:
- 只能处理最大2TB的硬盘。
- 每个磁盘最多只能有四个主分区,或者三个主分区加一个扩展分区,扩展分区内可以创建多个逻辑分区。
GPT(GUID Partition Table)
GPT是一种较新的分区表标准,用于现代的UEFI系统。GPT结构更为复杂,提供了更多的灵活性和可靠性:
-
保护性MBR(Protective MBR):
- 为了与MBR向后兼容,GPT磁盘上会有一个保护性MBR,其中包含一个GPT分区,指向实际的GPT头。
-
GPT头(GPT Header):
- 包含了GPT的版本信息、分区表的位置、备份GPT头的位置等信息。
-
分区表(Partition Table):
- 可以包含大量的分区条目,通常有128个条目,每个条目128字节。
- 每个分区条目包含一个全局唯一标识符(GUID)、分区的起始和结束位置、分区属性等信息。
-
分区条目(Partition Entries):
- 定义了分区的具体参数,如分区的类型、名称、起始扇区和结束扇区等。
-
CRC32校验码:
- 用于检测分区表的完整性。
GPT的优点包括:
- 支持大于2TB的硬盘。
- 支持大量的分区。
- 提供更好的数据完整性和错误检测。
- 支持多平台启动,包括Windows、Linux和macOS。
8. 总结学过的分区,文件系统管理,SWAP管理相关的命令及示例(加注释),示例 fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff
分区管理
-
fdisk
- 用于管理磁盘分区的命令。
- fdisk /dev/sdb # 交互式分区工具,用于创建、删除、修改分
-
parted
- 功能强大的分区管理工具。
sudo parted /dev/sdb # 启动parted的交互式环境
- 示例:创建一个新的分区
- 注释:
mklabel
创建新的分区表类型,mkpart
创建新的分区。
- 注释:
sudo parted /dev/sdb mklabel gpt # 创建GPT标签 sudo parted /dev/sdb mkpart primary ext4 1MiB 100% # 创建一个主分区
文件系统管理
-
mkfs
- 用于创建新的文件系统。
sudo mkfs.ext4 /dev/sdb1 # 在/dev/sdb1上创建ext4文件系统
-
tune2fs
- 用于调整现有ext2/ext3/ext4文件系统的参数。
sudo tune2fs -l /dev/sdb1 # 显示文件系统信息
- 示例:调整文件系统的块大小
sudo tune2fs -m 0 /dev/sdb1 # 设置最小保留空间为0%
-
xfs_info
- 用于显示XFS文件系统的信息。
sudo xfs_info /dev/sdb1 # 显示/dev/sdb1上的XFS文件系统信息
-
fsck
- 用于检查和修复文件系统。
sudo fsck.ext4 /dev/sdb1 # 检查并修复/dev/sdb1上的ext4文件系统
文件系统挂载与卸载
-
mount
- 用于挂载文件系统。
sudo mount /dev/sdb1 /mnt # 将/dev/sdb1挂载到/mnt目录
-
umount
umount /mnt # 卸载/mnt目录
SWAP管理
-
swapon
swapon /swapfile # 启用名为/swapfile的交换文件
-
swapoff
swapoff /swapfile # 禁用名为/swapfile的交换文件
9. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
RAID 0 工作原理及特点
- 工作原理:RAID 0通过数据条带化(Striping)将数据分散存储在多个磁盘上,提高读写性能,但不提供数据冗余。
- 利用率:100%的存储空间利用率。
- 冗余性:无数据冗余。
- 性能:读写性能均有较好提升。
- 硬盘数量:至少需要2块硬盘。
RAID 1 工作原理及特点
- 工作原理:RAID 1通过数据镜像将数据同时写入两个或多个磁盘,提供数据冗余。
- 利用率:大约50%的存储空间利用率,因为每个数据块都需要在另一个磁盘上备份。
- 冗余性:高,即使一块硬盘失败,另一块硬盘上的数据仍然可用。
- 性能:读取性能较好,写入性能可能略有下降。
- 硬盘数量:至少需要2块硬盘
RAID 5 工作原理及特点
- 工作原理:RAID 5将数据和奇偶校验信息分布在所有磁盘上,提供数据冗余,至少需要3块硬盘。
- 利用率:大约为75%的存储空间利用率,因为一部分空间用于存储奇偶校验信息。
- 冗余性:允许单个硬盘故障时数据恢复。
- 性能:提供较好的读写性能,尤其是在大文件操作中。
- 硬盘数量:至少需要3块硬盘。
RAID 10 工作原理及特点
- 工作原理:RAID 10结合了RAID 1的镜像和RAID 0的条带化,数据被镜像到两组磁盘上,每组内部采用RAID 1方式存储数据,而两组之间采用RAID 0方式条带化。
- 利用率:大约为50%的存储空间利用率,因为数据在两组磁盘上各存储一次。
- 冗余性:高,因为每个数据块都有镜像副本。
- 性能:提供较高的读写性能和数据安全性。
- 硬盘数量:至少需要4块硬盘
10. 总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容。
11. 总结开放系统互联OSI模型,每层作用及对应的协议。
1. 物理层(Physical Layer)
作用:负责在物理媒介上传输原始的比特流。这包括定义电气信号、光信号、物理连接器和物理拓扑(如总线、星型、环型等)。
光纤通道(Fiber Channel)。
2. 数据链路层(Data Link Layer)
作用:负责在相邻的网络节点之间传输帧,处理帧的同步、差错控制和流量控制。它还负责物理地址的识别,MAC地址。
协议:以太网(Ethernet)、无线局域网(WLAN)。
3. 网络层(Network Layer)
作用:负责在源和目的地之间选择路径(路由),并转发数据包。它处理端到端的数据传输,包括数据包的寻址和路由。
协议:互联网协议(IP)
4. 传输层(Transport Layer)
作用:负责提供端到端的数据传输服务,确保数据的完整性和可靠性。它包括错误检测和修复、流量控制、拥塞控制。
协议:传输控制协议(TCP)、用户数据报协议(UDP)
5. 会话层(Session Layer)
作用:负责建立、管理和终止应用程序之间的会话。它提供了数据交换的定界和同步功能。
协议:远程过程调用(RPC)、SQL
6. 表示层(Presentation Layer)
作用:负责数据的表示、安全和压缩。它确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,即便它们使用的数据格式不同。
协议:安全套接层(SSL)
7. 应用层(Application Layer)
作用:为应用软件提供网络服务。这一层直接与用户应用接触,处理网络应用程序的细节。
协议:超文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、域名系统(DNS)、动态主机配置协议(DHCP)、SSH。
12. 调整动态端口范围为20000-60000
在Linux系统中,动态端口范围是由/etc/sysctl.conf
文件中的net.ipv4.ip_local_port_range
参数控制的。要调整动态端口范围为20000-60000,你需要按照以下步骤操作:
-
使用vim编辑器的命令是:
-
sudo nano /etc/sysctl.conf
-
在文件中找到
net.ipv4.ip_local_port_range
这一行。如果这一行不存在,你可以添加它。 -
修改或添加
net.ipv4.ip_local_port_range
的值为20000 60000
。确保没有其他端口范围与之冲突。 -
保存并关闭文件
-
应用更改,使新的端口范围立即生效,而不需要重启系统。你可以使用以下命令:
sudo sysctl -p
或者
sudo sysctl -w net.ipv4.ip_local_port_range="20000 60000"
13. 总结TCP包头结构,TCP三次握手,4次挥手。
-
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即65536
-
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0开始
-
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号
-
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是 TCP首部最大60字节
-
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
-
ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规 定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
-
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
-
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
-
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段 FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段
-
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值
-
校验和:提供额外的可靠性
-
紧急指针:标记紧急数据在数据字段中的位置
-
选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节
TCP三次握手
TCP三次握手是建立一个可靠的连接的过程,包括以下步骤:
-
SYN:
- 客户端发送一个带有SYN(同步序列编号)标志位的包到服务器,请求建立连接。
-
SYN-ACK:
- 服务器收到SYN包后,回复一个带有SYN和ACK(确认)标志位的包,同时包含服务器的初始序列号。
-
ACK:
- 客户端收到SYN-ACK包后,发送一个带有ACK标志位的包,确认服务器的SYN包。
完成这三个步骤后,TCP连接就建立起来了,数据可以开始传输。
TCP四次挥手
TCP四次挥手是终止一个TCP连接的过程,包括以下步骤:
-
FIN:
- 客户端发送一个带有FIN(结束)标志位的包,请求关闭连接。
-
ACK:
- 服务器收到FIN包后,回复一个ACK包,确认客户端的FIN包。
-
FIN:
- 服务器发送一个带有FIN标志位的包,请求关闭服务器到客户端的方向。
-
ACK:
- 客户端收到FIN包后,回复一个ACK包,确认服务器的FIN包。
14. 总结主机到主机的包传递过程。
15. 总结IP地址 A, B, C, D 类,并解析IP地址的组成
A类地址
- 范围:1.0.0.0到126.255.255.255
- 默认子网掩码:255.0.0.0
- 网络部分:第一个字节(8位)
- 主机部分:后三个字节(24位)
- 用途:用于大型网络,如大型公司或国家网络。
B类地址
- 范围:128.0.0.0到191.255.255.255
- 默认子网掩码:255.255.0.0
- 网络部分:前两个字节(16位)
- 主机部分:后两个字节(16位)
- 用途:用于中等规模的网络,如企业或校园网络。
C类地址
- 范围:192.0.0.0到223.255.255.255
- 默认子网掩码:255.255.255.0
- 网络部分:前三个字节(24位)
- 主机部分:最后一个字节(8位)
- 用途:用于小型网络,如家庭或小型办公室。
D类地址(多播地址)
- 范围:224.0.0.0到239.255.255.255
- 用途:用于多播通信,即一个数据包可以发送给多个接收者。
IP地址的组成
一个IP地址由两部分组成:网络地址和主机地址。
- 网络地址:标识主机所属的网络。
- 主机地址:在该网络内标识特定的主机。
16. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
-
确定子网掩码的二进制表示:
- 子网掩码/18表示前18位是网络位,后14位是主机位。
- 子网掩码:225.225.240.0
- 二进制表示为:11111111.11111111.11000000.00000000
-
计算子网中可用的IP地址数量:
- 一个网段中最多的主机数量=2^主机ID位-2
- 因此有2^14=16384-2=16386个主机。
17. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
-
A的IP地址和子网掩码:
- IP地址:10.0.1.1
- 子网掩码:/16(即255.255.0.0)
-
B的IP地址和子网掩码:
- IP地址:10.0.2.2
- 子网掩码:/24(即255.255.255.0)
- 若A>B则将A的子网掩码分别与AB的ip地址进行逻辑and运算算出两者均为10.0.0.0网段可以通讯。若B>A则运算出B网段为10.0.2.0,A网段10.0.1.0不在同一网段不可通讯
18. 如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。
1. 确定子网掩码
要将其划分为32个子网,我们需要从主机部分借位来创建子网。具体来说,我们需要5位来表示32个子网(因为2^5 = 32)。
因此,子网掩码将从255.0.0.0变为255.248.0.0。这是因为我们从主机部分借了5位,这相当于在二进制中将前5位设置为1,即11111000,转换为十进制就是248。
2. 计算每个子网的主机数
由于我们从主机部分借了5位来创建子网,主机部分现在只剩下19位(24 - 5 = 19)。因此,每个子网可以容纳的主机数为2^19 - 2 = 524288 - 2 = 524286个主机。减去的2个主机是网络地址和广播地址。
3. 列出子网
每个子网的范围可以通过将网络地址加上子网号来计算。以下是前几个子网的示例:
- 子网1:10.0.0.0/13
- 子网2:10.8.0.0/13
- 子网3:10.16.0.0/13
- ...
- 子网32:10.248.0.0/13
总结
- 每个子网的子网掩码:255.248.0.0
- 每个子网的主机数:524286