2017-2018-1 20155212 《信息安全系统设计基础》第14周学习总结
教材学习内容总结
客户端-服务器模型
- 客户端-服务器模型中的基本操作是事物
- 客户端发送请求
- 服务器解释请求,并以适当的方式操作资源
- 服务器发送响应*,并等待下一个请求
- 客户端收到响应并处理
- 客户端和服务器是进程而不是主机
网络
- 对主机而言,网络只是一种I/O设备,是数据源和数据接收方
- 协议:消除了不同网络之间的差异
- 命名机制:定义一种一致的主机地址
- 传送机制:定义一种把数据位捆扎
- 数据传送过程
- TCP/IP与OSI参考模型
- OSI七层模型
- TCP/IP模型处理过程
- TCP/IP的包处理
全球IP因特网
- 软硬件
- 程序员角度:
- 主机集合被映射为一组32位的IP地址
- 这组IP地址被映射为一组称为因特网域名的标识符
- 因特网主机上的进程能够通过连接和任何其他因特网主机上的进程通信
IP地址
- IP地址结构
- TCP/IP定义网络字节顺序(大端字节顺序),而很多主机字节顺序是小端法。字节顺序转换函数
- IP地址和点分十进制之间的转换
因特网域名
1988年前映射通过HSOTS.txt手工维护,后通过分布世界范围内的数据库(DNS)维护。
因特网连接
- 点对点、全双工、可靠、
- 客户端端口内核自动分配,称为临时端口。服务器套接字端口知名端口
套接字接口
- 基于套接字接口的网络应用概述
- 套接字地址结构
- Linux内核:一个套接字就是通信的一个端点。
- Linux程序:一个由相应描述符的打开文件
- socket函数
- connect函数
- bind函数
- listen函数
- accept函数
- 主机和服务的转换
- getaddrinfo函数
- addrinfo数据结构
- getnameinfo函数
- getaddrinfo函数
- 套接字接口的辅助函数
- open_clientfd函数
教材学习中的问题和解决过程
- 如何在C程序中嵌入汇编代码?
在C语言中,嵌入汇编语言的语法如下(*):asm<; or newline> leaq作为加载有效地址指令,实际上是movq的变形。那么leaq与movq的用法有什么不同?
LEA指令的功能是取偏移地址,例如LEA AX,[1000H],作用是将源操作数[1000H]的偏移地址1000H送至AX;
MOV指令的功能是传送数据,例如MOV AX,[1000H],作用是将1000H作为偏移地址,寻址找到内存单元,将该内存单元中的数据送至AX。
CMP和SUB用在什么地方?
CMP应该是用在对操作数进行测试的时候,比如,可以测试某个数与已知数的大小关系等;而SUB执行的是减法操作,用于普通运算中while循环有两种翻译方式,这两种翻译方式分别什么时候使用呢?
较低优化等级编译时(-Og)会采用跳转到中间的策略,较高优化等级时采用guarded-do策略
代码调试中的问题和解决过程
git push origin master
时出现错误
原因是我设置虚拟机为桥接模式,因为网速不好,我从Wifi切换到移动热点,Ubuntu的网路设置没有更新。运行
sudo /etc/init.d/networking restart
即可。
代码托管
上周考试错题总结
第一题
解析:实际环境中只有-pthread可用。第二题
错因:没有看到返回的文件描述符,以为是返回值
解析:P654第三题
错因:考试时没看到A选项;混淆了TCP和UDP的参数;对Sockt()掌握不够牢固
解析:P654
其他(感悟、思考等,可选)
之前对汇编掌握不够好,第一次学习时没有把握住重点。本次重新学习了这一章,但是感觉还有很多地方需要继续了解。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 96/96 | 1/1 | 15/15 | |
第二周 | 30/126 | 1/2 | 21/36 | |
第三周 | 30/156 | 1/3 | 21/57 | |
第四周 | 10/156 | 1/4 | 20/77 | |
第五周 | 23/189 | 3/7 | 20/97 | |
第六周 | 201/390 | 3/10 | 18/115 | |
第七周 | 0/390 | 2/12 | 20/135 | |
第八周 | 0/390 | 3/15 | 22/157 | |
第九周 | 284/674 | 3/18 | 25/182 | |
第十周 | 53/727 | 1/19 | 15/197 | |
第十一周 | 612/1339 | 2/21 | 26/223 | |
第十三周 | 557/1896 | 2/23 | 24/247 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:24小时
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)