计算机网络socket实验第四周

计算机网络socket实验第四周

本文基于协议设计要求,实现服务器并发处理能力,通过select()方法而非多线程支持多客户端连接。核心设计包括:设置最大连接数1024,确保客户端暂停或出错不影响其他用户;采用I/O多路复用技术,避免多线程资源浪费;使用fdclient[]数组存储连接文件描述符,fdptr索引辅助遍历处理。算法流程涵盖初始化套接字、select()监控多socket、处理新连接与业务请求、日志记录等。实验通过ApacheBench测试,结果显示并发数32时性能最佳(每秒请求数45.56,平均响应时间21.949ms),验证了并发处理的有效性。

计算机网络socket实验第三周

本研究通过启动服务器后运行客户端命令`./liso_client 127.0.0.1 9999 samples/request_pipeline`进行实验,主要包含浏览器测试与实验平台评测两部分。实验结果通过图片直观展示,其中浏览器测试聚焦于客户端与浏览器的交互功能验证,实验平台评测则对系统性能及稳定性进行综合评估。整体实验流程清晰,结果可视化呈现,为后续系统优化提供了数据支持。

计算机网络socket实验第三周
计算机网络socket实验第二周

计算机网络socket实验第二周

本文为实验结果与分析部分,展示了GET、HEAD、POST三种HTTP方法在server端与client端的实验结果,并呈现了400、501、505等错误类型在两端的测试情况。此外,还包含日志模块的实现效果及测试平台的整体结果,全面验证了相关功能的表现。

计算机网络socket实验第一周

本文详细介绍了HTTP协议的echo web server实现项目。项目要求掌握HTTP/1.1标准、Socket编程及lex/yacc解析工具,搭建开发环境并实现服务器功能。代码架构包含客户端(echo_client.c)、服务器(echo_server.c)、词法/语法分析器(lexer.l、parser.y)及解析模块(parse.c),支持GET、HEAD、POST请求的回显,并对未实现方法返回501状态码、格式错误请求返回400状态码。通过修改解析规则处理畸形请求,优化内存分配,实现服务端与客户端通信。实验结果验证了各HTTP方法的正确响应及错误处理机制,所有任务均已完成,包括协议设计、代码实现、功能测试等。

计算机网络socket实验第一周
OpenGaussLab3

OpenGaussLab3

本次实验因华为云服务器欠费,借用同学服务器完成,聚焦openGauss数据库日志与恢复机制。实验旨在深入理解WAL日志文件、XLOG记录组织、日志写入过程、检查点机制及数据库恢复原理,掌握备份与PITR恢复方法。通过查看WAL日志基本信息与命名、验证immediate关闭模式下的恢复过程、分析源代码输出调试信息,并结合pg_control文件查看,打通了日志与恢复模块的原理学习与系统实现鸿沟。实验通过源码阅读与分析,深化了对数据库ACID特性保障机制的理解,对确保数据完整性具有重要意义。

Wireshark实验

本文为网络协议实验总结,涵盖Wireshark基础使用、HTTP协议分析、TCP协议探究及DHCP协议实践。实验一通过Wireshark捕获数据包,识别SSDP、DNS、ICMPv6等协议,测量HTTP GET响应时间约0.2秒,并获取客户端与服务器IP地址。实验二分析HTTP交互,确认浏览器与服务器均运行HTTP/1.1,解析语言偏好、状态码(200 OK)、文件修改时间及内容长度,研究条件GET(304 Not Modified)、长文档TCP分段(4段)及嵌入对象串行下载机制。实验三探究TCP连接,记录SYN序列号0、SYNACK确认号1,计算RTT及EstimatedRTT,分析吞吐量(约29.17 KB/s),识别慢启动与拥塞避免阶段。实验四验证DHCP四包交换(Discover/Offer/Request/ACK),通过UDP端口67/68通信,分配IP地址192.168.1.101,租赁时间86400秒,解释ARP包在地址冲突检测中的作用。

Wireshark实验
数据库原理复习

数据库原理复习

本文系统介绍了数据库核心知识,涵盖事务管理、数据建模、规范化设计、数据操作及安全机制。事务部分详述ACID特性(原子性、持久性、一致性、隔离性)及并发控制、恢复技术;数据建模涉及ER模型(实体集、联系集、属性、弱实体集);规范化设计讲解函数依赖与范式(1NF-4NF);数据操作包括关系代数、SQL语句、索引类型(聚集索引、辅助索引等);安全机制涉及权限管理与触发器。整体构建了数据库从理论到实践的完整框架。

面向对象程序设计-作业

本文是一份Java实验作业集合,涵盖从h03到h60的多个编程任务,内容涉及Java核心知识点综合应用。作业包括数据结构操作(如杨辉三角生成、字符串去重)、异常处理机制、集合框架应用(HashMap、TreeMap等)、文件读写操作、多线程编程、网络通信实现等。每个任务均提供详细代码实现和思路解析,如使用Map统计词频、利用反射动态创建对象、实现多线程服务器等。作业难度递进,从基础算法到复杂系统设计,全面锻炼Java编程能力,适合作为Java学习实践参考。

面向对象程序设计-作业
OpenGaussLab5

OpenGaussLab5

本实验旨在通过实践理解openGauss数据库的并发控制与锁机制原理及实现。因华为云服务器欠费,改用本地PostgreSQL进行操作。实验主要内容包括:查看表锁信息,并复现Share锁、Access Share锁、Row Exclusive锁和Access Exclusive锁。通过不同会话下的操作验证各锁特性,如Share锁阻塞INSERT、Access Share锁阻塞ALTER、Row Exclusive锁阻塞CREATE INDEX、Access Exclusive锁阻塞SELECT等,展示了不同锁对并发操作的影响。实验最终完成锁复现,但因欠费,锁获取与释放信息的代码添加部分未完成。

OpenGaussLab4

本文主要围绕B+树索引展开实验研究,因华为云服务器欠费,改用本地PostgreSQL替代openGauss数据库。实验通过分析索引结构与原理,实践CREATE INDEX语句构建索引,探究索引构建流程、与查询执行计划的关联及系统开销。通过对比小表(100行)与大表(10万行)的查询性能,验证了索引在数据量较大时显著提升查询效率(17倍提速),并分析了索引的空间开销。实验还涉及索引相关系统表(pg_class、pg_index等)的查看,但因服务器问题,索引构建过程代码分析部分未完成。

OpenGaussLab4