2017-2018-1 20155214 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155214 《信息安全系统设计基础》第13周学习总结

教材学习内容总结

本章主要学习网络编程,重点研究 客户端-服务器编程模型 。本章学习的知识承接了我们之前学习的计算机网络课程,与本学期的 信息安全技术网络安全编程 课程息息相关。对于信息安全系学生而言不可谓不重要。

在本章学习中,重点实现了:

  1. socket服务器和客户端搭建
  2. daytime服务器
  3. echo服务器
  4. wc服务器
  5. 服务器迭代
  6. 服务器并发
  7. 服务器文件简单加密

第11章习题解答

  • 练习题11.1
十六进制地址 点分十进制地址
0x0 0.0.0.0
0xffffffff 255.255.255.255
0x7f000001 127.0.0.1
0xcdbca079 205.188.160.121
0x400c950d 64.12.149.13
0xcdbc9217 205.188.146.23
  • 练习题11.2

    编程hex2dd.c,将他的十六进制参数转换为点分十进制字符串并打印出结果。

hex2dd.c 码云链接

  • 练习题11.3

    编程dd2hex.c,将他的点分十进制参数转换为十六进制数并打印出结果。

dd2hex.c 码云链接

  • 练习题11.4

    编写HOSTINFO的一个版本,用inet_pton而不是getnameinfo将每个套接字地址转换成点分十进制地址字符串。

Hostinfo 码云链接

  • 练习题11.5

    在10.11节中,我们警告过你关于在网络应用中使用标准I/O函数的危险,然而,CGI程序却能没有任何问题地使用标准I/O。为什么?

在子进程中运行的CGI程序不需要显式地关闭他的输入输出流。当子进程终止时,内核会自动关闭所有描述符。

详细总结本章要点

==socket服务器和客户端搭建==

  • 如何创建服务器:

在服务器端建立套接字所涉及的步骤如下:

  1. 创建一个socket可使用socket()的系统调用
  2. 使用bind()系统调用套接字绑定到一个地址。对于互联网上的服务器套接字,地址包括主机的端口号。
  3. 连接监听listen()系统调用
  4. 接受连接使用accept()系统调用。此调用通常会阻塞,直到客户端与服务器连接。
  5. 发送和接收数据read()和write()系统调用.
  • 如何创建客户端:
  1. 系统调用有所不同的客户端和服务器建立连接,但两者套接字涉及的基本构造。这两个过程分别建立自己的套接字。
  2. 在客户端建立套接字所涉及的步骤如下:
  3. 创建一个socket可使用socket()的系统调用
  4. 套接字连接的服务器地址使用connect()系统调用。
  5. 发送和接收数据。做到这一点的方法有许多,但最简单的方法是使用read()和write()

==daytime服务器实现==

  • 设计内容
  • 设计思路
  • 运行截图

daytime服务器 码云链接

==echo服务器实现==

  • 设计内容
  • 设计思路
  • 运行截图

echo服务器 码云链接

==wc服务器实现==

  • 设计内容
  • 设计思路
  • 运行截图

wc服务器 码云链接

==服务器迭代==

这是最简单形式的服务器的服务进程的客户端和第一个请求,然后完成后,需要从其他客户机的请求。同时,另一个客户端一直等待。

==服务器并发==

这种类型的服务器运行多个进程并发服务请求一次。因为一个进程可能需要更长的时间,但其他客户机又不能等太久。 Unix下写一个并发服务器的方法:

  • 多进程
  • 多线程

==服务器文件简单加密==

  • 设计内容
  • 设计思路
  • 运行截图

文件加密服务器 码云链接

代码托管

结对及互评

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
    - XXXX
    - XXXX
    - ...

其他(感悟、思考等,可选)

xxx

xxx

参考资料

时间: 2024-11-09 06:48:38

2017-2018-1 20155214 《信息安全系统设计基础》第13周学习总结的相关文章

信息安全系统设计基础第13周学习总结

知识点总结 并发编程*序 并发:逻辑控制流在时间上重叠. 应用级并发的应用: 访问慢速I/O设备 与人交互 通过推迟工作以降低延迟 服务多个网络客户端 在多核机器上进行并行计算 进程 I/O多路复用 线程 基于进程的并发编程 最简单的构造并发程序的方法是进程. 下图是基于进程的并发echo服务器: 图 几点需要说明的内容: 因为服务器会运行很长时间,所以需要一个SIGCHLD处理程序来回收僵死子进程的资源. 父子进程必须关闭它们各自的connfd拷贝,以避免存储器泄露. 因为套接字的文件表表项的

20145216 史婧瑶《信息安全系统设计基础》第一周学习总结

20145216 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 Linux基础 1.ls命令 ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略.我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录.其中“-a” 就是选项,改变了显示的内容.如图所示: 2.man命令 man命令可以查看帮助文档,如 man man : 若在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数:若不加数字,那man命令默认从数字较

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分

20145339《信息安全系统设计基础》第一周学习总结

20145339顿珠达杰<信息安全系统设计基础>第一周学习总结 ◆ Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]-[F6]进行终端和图形界面切换,在线实验环境中按下[Ctrl]+[Alt]+[F7]来完成切换.普通意义上的 Shell 就是可以接受用户输入命令的程序,Unix/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的

2017-2018-1 20155228 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155228 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 常见的存储技术 RAM 随机访问存储器(Random-Access Memory, RAM)分为两类:静态的和动态的.静态 RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储 器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲 区.典型地,一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆 字节. SRAM将每

2017-2018-1 20155332 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155332 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 简单模型中,存储器是一个线性的字节数组.真实模型中,是一个具有不同容量,成本,访问时间的存储层次结构(存储器山) 程序的局部性很重要,对程序性能有很重要的影响. 计算机系统一个基本而持久的思想,如果你理解了系统是如何将数据在存储器层级结构中上下移动,你就可以编写程序,让数据存储在层次结构中较高的地方,从而CPU可以更快的访问到他们. 编写程序实现功能是最简单的,如何让编写的程序拥有最高的性能,例

2017-2018-1 20155227 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155227 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 第六章 随机访问存储器 随机访问存储器分为:静态RAM(SRAM)和动态RAM(DRAM),静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多. (1)静态RAM SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 属性:它可以无限制地保持在两个不同的电压配置或状态之一.其他任何状态都是不稳定的. 特点:由于SRAM的双稳态特性,只要有电,它就会永

2017-2018-1 20155334 《信息安全系统设计基础》第九周学习总结

2017-2018-1 20155334 <信息安全系统设计基础>第九周学习总结 学习目标: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 教材学习内容总结 一.常见的存储技术: 基本的存储技术包括随机存储器(RAM).非易失性存储器(ROM)和磁盘. 1. RAM分静态RAM(SRAM)和动态RAM(DRAM). 2. SRAM快些,主要用做CPU芯片上的高速缓存,也可以用作芯片下的