自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 lab前言简介(必读)

文件说明apps # 应用层函数CMakeLists.txt # 构建脚本doctests # 内置函数测试脚本libsponge # 应用层函数tests # lab测试脚本build # 构建文件compile_commands.json # 编译命令etc # 配置文件README.md # 使用文档writeups # lab0-4的文档极详细文档使用说明创建build文件夹自动生成makefilecmake ..构建make运行可执行文件。

2023-04-07 19:33:12 168

原创 Lab3 the TCP sender

在lab0中,我我们实现了ByteStream这个类似于socket的抽象在lab1中,我们实现了字节重组器,将乱序、重复、丢失的字符串重组成一个字节流。在lab2中,我们将把到来的数据报转换成可靠的字节流。在lab3中,我们实现了整个TCP接收端,用于接收数据,返回ackno()和窗口大小。

2023-04-07 19:22:25 111

原创 Lab1 stitching substrings into a byte stream

在lab0中,我们用了socket接口获取网页和发送邮件信息,基于linux内置的TCP协议。同样我们实现了ByteStream这个类似于socket的抽象在接下来的四周里,你将实现TCP去提供不同主机之间的可靠字节流。向ByteStream写入数据TCPSender在合适时机将数据发出收到ack时,将改变发送窗口的大小添加seqno、SYN、payload、FIN、端口号等得到数据报将数据报加上ip头部发送到网络层。

2023-04-07 19:20:53 129

原创 Lab4 the TCP Connection

在lab0中,我们实现了字节流的抽象ByteStream在lab1,lab2,lab3中,我们实现了TCP发送端和接收端在lab4中,你将会实现一个叫做TCPConnection的一个重要的模块,将TCP发送端和接收端结合在一起处理连接问题,用来解决和其他计算机的通信问题。

2023-04-07 19:20:45 130

原创 Lab0 networking warmup

在完成实验前,你最好阅读完所有的文档在接下来的八个实验中,你将要实现互联网中几个重要的部分:路由器、网络接口,TCP协议在接下来的四周里,你将实现TCP去提供不同主机之间的可靠字节流。这里的实验不是唯一的,当你发现实验过程中有歧义时,也可以有自己的实现。

2023-04-07 19:19:07 132

原创 Lab 2 the TCP receiver

在lab0中,我我们实现了ByteStream这个类似于socket的抽象在lab1中,我们实现了字节重组器,将乱序、重复、丢失的字符串重组成一个字节流。在lab2中,我们将把到来的数据报转换成可靠的字节流。数据报从网络层过来,调用segment_received方法调用StreamReassembler重组字节流,将重组好的字符串写到ByteStream中最后应用层从ByteStream读取数据。

2023-04-07 19:19:05 65

原创 Linux操作系统分析学习总结

linux学习笔记

2022-07-06 11:09:58 587

原创 Mit 6.858 Spring 2020 Lab 1: Buffer overflows

信息安全

2022-05-25 17:48:22 1149

原创 正则表达式

正则表达式入门基础入门关于正则表达式匹配中由字符匹配符号和次数匹配符号两种。字符匹配符号为: ‘.’ ‘[]’ ‘^’次数匹配符号为 :’+’ ‘*’ ‘?’ ’{}‘如需要查找A字符出现B次的字符串,那么就需要字符匹配符号和次数匹配符号组合。’ . ’ 匹配任意一个字符’ + ’ 匹配1或多次出现的字符’ ? ’ 匹配0-1次出现的字符’ * ‘ 匹配0次或者多次出现的字符* [Pp]ython 匹配python和Python* [a-

2022-03-29 16:23:29 394

原创 高级软件工程复习资料大全

1.概述功能 用例图结构 业务类图形式 数据模式高质量需求的特点有哪些需求类型需求分析的两类基本方法用例满足的四个必要条件统一过程的核心要义是什么模块化的基本原理本地化外部接口是什么含义接口的5个基本要素通用接口定义的基本方法依赖倒置原则的含义及其应用价值MVC架构为什么更灵活以及MVVM架构为什么更智能(10分)执行视图、部署视图、分解视图没有银弹的含义简述v模型团队强度和项目特点的关系简述敏

2022-03-29 16:21:08 1165

原创 高级软件工程 c语言实现多态

第五次作业​ 需要自己编写一个程序来使用链表接口用c语言实现多态。其中Linktable.h和Linktable.c文件可以借鉴前面lab中的文件,自己需要实现一个程序,作用是调用Linktable的接口来实现数据的存储和读取,实现了对于数据增加、删除、查找以及遍历的功能,最后得到的结果如下。​ 总体来说主要分为以下三个程序:Linktable.h#ifndef _LINK_TABLE_H_#define _LINK_TABLE_H_#define SUCCESS 0#define

2022-03-29 16:20:06 873

原创 高级软件工程 回调函数

回调函数(callback函数)1.函数的名字可作为参数。2.函数名作为参数传递给其他函数。作用:1.恰当时机发通知2.让程序设计更加灵活3.提高效率编译运行:使用gcccd xxx/lab4 gcc menu.c linktable.c -o menu -lpthread # lab5.1 5.2同样可以使用这个命令配置launch.json和task.json其中launch.json的配置与作业3一样,修改task.json如下即可:{

2022-03-29 16:17:03 137

原创 高级软件工程 VScode开发环境搭建

作业三:VScode开发环境搭建1.开发环境搭建安装mingw-x64编译器(GCC for windows64), Cmake工具(选装)可自行去官网下载设置环境变量,并检查是否成功进入cmd:gdb -v gcc -v // 如果出现版本号即为配置成功VSCode插件安装c/c++cmake(选装)cmake tools(选装)2.配置launch.json和task.json文件需要懂一些基本的makefile或者cmake文件的语法,可自行学习

2022-03-29 09:55:56 278

原创 高级软件工程 正则表达式

回顾:​ 先说说课件上这个练习题吧,这题我想了挺久,还是有难度的。• 你需要检查数据库中的所有用户名。以下是创建用户名时用户必须遵循的一些简单规则。•(1)用户名中唯一的数字必须在末尾。末尾可以有零个或多个数字。•(2)用户名字母可以是小写和大写,用户名只有数字和大小写字母组成。•(3)用户名必须至少有两个字符长度。双字母用户名只能使用字母表的字母字符。•写出正则表达式以符合上面列出的规则。解答:​ 首先第1个条件表达不清,应该理解成用户名中的数字必须在末尾,并且末尾有0或者多个数字。除此

2022-03-28 22:28:34 103

原创 高级软件工程 git rebase操作

第一次作业实时查看git提交生成树 1. 在线学习网站,windows,linux均可,可用于自己测试。 https://learngitbranching.js.org/?locale=zh_CN 2. 如用linux操作系统,可使用gitk --all命令查看提交历史。如没有gitk也可使用命令sudo apt-get install gitk则需提前安装。 3. 如用windows系统,自行安装git bash,可直接使用命令gitk --all查看提交记录。实现上图所示的提交生成树

2022-03-28 22:27:01 422

原创 形式化方法 Assignment 8: Symbolic execution

LAB8 符号执行​ 这里主要讨论三个部分,操作语义、符号执行、并行执行。Part A Concrete execution B ::= + | - | * | / | == | != | > | < | >= | <= E ::= n | x | E B E S ::= pass | x = E | seq(S, S) | f(E1, ..., En) | if(E, S, S)

2022-03-28 21:54:22 850

原创 形式化方法 Assignment 7: Theories for Data Structures

LAB7 数据结构理论Part A bit vectorsexercise 1运行如下代码,解释输出。x, y = BitVecs('x y', 2)solve(x+y==9)​ 得到的结果如下为,[y = 0, x = 1], 由于定义一个两位的位向量,而9明显超过了2bit的表示范围,所以有(x + y) % 4 == 9 % 4,即为(x + y) % 4 == 1, 因此z3得到结果x = 1, y = 0, 满足题意。exercise 2lab2需要实现一个计数器,实现对于一个B

2022-03-28 21:53:25 782

原创 形式化方法 Assignment 6: Linear arithmetic

LAB6 线性算法linear arithmetic 线性算法linear programming 线性规划作业共分为三个部分第一部分介绍了LA/LP理论的基本背景知识第二部分介绍了LA/LP理论的应用,解决了一些NPC问题第三部分包括解决一些复杂的问题PartA 基础线性算法理论exercise1x, y = Reals('x y')solver = Solver()solver.add(x + y == 0.8, x - y == 0.2)res = solver.che

2022-03-28 21:52:43 538

原创 形式化方法 Assignment 5: Theory for EUF

EUF理论

2022-03-28 21:49:49 728 2

原创 形式化方法 Assignment 4: Proof for predicate logic

LAB4: 谓词逻辑系统自动证明

2022-03-28 21:48:21 425

原创 形式化方法 Assignment 3: SAT

形式化方法 SAT

2022-03-28 21:46:50 1220 3

原创 形式化方法 Assignment 2: Proof engineering

Assignment 2: Proof engineering

2022-03-28 21:44:02 3564

原创 形式化方法 Assignment 1: software setup

Assignment 1: software setup

2022-03-28 21:41:48 357

原创 二分法模板大全

最近看了看刷了刷二分的题目,发现自己对于二分的理解还不够透彻,参考了其他大佬的资料再加上自己的总结,重新手写了一遍二分的模板,具体模板如下:#include <bits/stdc++.h> using namespace std;//返回小于等于num的第一个数字 int bs_1(int arr[], int num, int l, int r){ while (l < r){ int mid = (l + r) / 2; if (arr[mid] >= nu

2021-02-09 15:52:01 318

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除