网络安全&安全协议&物联网&软件工程大复习

网络安全

零. 试题解析

1.分数分配

删去。。。。

2.IP分类复习

img

根据上图,我们可以推出下面的表

img

再筛选掉特殊的地址,就有如下的范围

P地址根据网络号和主机号来分,分为A、B、C三类及特殊地址D、E。 全0和全1的都保留不用。

A类:==(1.0.0.0-126.255.255.255)==(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。

B类:==(128.0.0.0-191.255.255.255)==(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。

C类:==(192.0.0.0-223.255.255.255)==(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。

D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于==224~239==之间。一般用于多路广播用户[1] 。

E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于==240~255==之间。

按照文中说的,A类地址范围应该是[0.0.0.0 - 127.255.255.255],但有两个特殊地址段,0.0.0.0/8127.0.0.0/8(也就是[0.0.0.0 - 0.255.255.255][127.0.0.0 - 127.255.255.255]),分别代表主机网络地址和环回地址。所以最后只剩下[1.0.0.0 - 126.255.255.255],在这个段里面还有两段特殊地址,其中一段是10.0.0.0/8(也就是[10.0.0.0 - 10.255.255.255]),就是作为私网地址段使用的。去掉这些保留地址,其他的地址就是可以正常提供互联网服务的公网IP地址了。

3.端口扫描原理

端口扫描技术的原理: 攻击者通过系统调用connect(),向目标机器的各个端口发送连接的请求,根据返回的响应信息,判断端口开放情况

4.黑客攻击五步骤

黑客攻击的5个步骤:

  1. 信息收集:网络信息,系统信息,用户信息
  2. 权限获取:获取目标系统的读/写和执行权限
  3. 安装后门:以更方便,更加隐蔽的方式对目标系统进行操控
  4. 扩大影响:目标系统为跳板,对目标所属网络的其他主机进行攻击,以最大程度扩大攻击效果
  5. 清楚痕迹:清楚攻击痕迹,以尽可能长久地对目标进行控制,防止被识别和被追踪

5.IDS组成

IDS的系统组成:

IETF将一个入侵检测系统分为四个组件:

事件产生器(Event generators),它的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。

事件分析器(Event analyzers),它经过分析得到数据,并产生分析结果。

响应单元(Response units ),它是对分析结果作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。

事件数据库(Event databases )事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。

image-20210110160425986

6.病毒和木马的区别

计算机病毒的特点:病毒自我执行,自我复制,具有很强的感染性,一般会通过攻击者的共享文件,邮件等载体发起攻击,所以只要我们不去触碰,就不会形成影响。

一. 信息收集

1.公开信息挖掘

公开信息挖掘是指对目标组织和个人的大量公开或意外泄漏的Web信息进行挖掘

PDRR:保护,检测,恢复,响应

image-20210110160548197

网络安全发展的3个阶段:

image-20210110160700448

==2.扫描探测技术==

2.1.主机扫描探测法

2.1.1作用
  • 查看目标网络中主机在线
  • 开放端口
  • 操作系统类型
2.1.2.方法
  • ARP主机扫描探测法(局域网内使用)
  • ICMP主机扫描探测法(没有局域网限制,但防火墙会对ICMP过滤)
  • TCP/UDP扫描探测法(TCP和UDP检测主机开放端口)
    • 端口扫描探测法(向目标机器的各个端口发送连接的请求,根据返回的响应信息,判断端口开放情况)
    • 操作系统扫描探测法(不同操作系统在实现TCP/IP协议栈时细节上有差异,即TCP/IP协议栈指纹进行操作系统识别时最为准确的一种方法)

2.2.漏洞扫描探测法

2.2.1.作用

查看目标主机的服务或应用程序是否存在安全方面的脆弱点

2.2.2.定义

利用漏洞扫描探测程序对目标存在的系统漏洞或应用程序漏洞进行扫描探测,从而得到目标安全脆弱点的详细列表

2.2.3.类别
  • 专用漏洞扫描探测程序(对特定漏洞的扫描探测,WebDav)
  • 通用漏洞扫描探测程序(具有相对完整的漏洞特征数据库,可对绝大部分的已知漏洞进行扫描探测,nessus,SSS,X-Scan)
2.2.4.性能指标
  • 扫描结果的准确性
  • 扫描活动的隐秘程度

==二. 口令攻击==

1.身份认证

1.1.定义

为进行合适的授权许可而提供的用户身份验证的过程。

2.口令攻击

系统口令的静态破解就要通过获取并分析SAM(安全账户管理,它通过系统唯一的安全标志SID标识用户)数据库文件来进行。

2.1.口令攻击的常用方法

  • 字典破解
  • 暴力攻击
  • 字典混合破解

2.2.原理(归纳)

口令攻击的原理在于通过字典破解,暴力攻击,字典混合破解等手段分析系统的SAM数据库文件(Linux是/etc/passwd)从而完成用户的身份验证,拿到合适的系统授权许可。

==三. 缓冲区溢出==

1.原理

  • 栈溢出(向栈中的某个局部变量存放数据时,数据的大小超出了该变量预设的空间大小,导致该变量之后的数据被覆盖破坏)

  • 整型溢出

    • 宽度溢出(存储最大值固定,超过范围,会被截断)
    • 符号溢出(程序没有正确处理有无符号数之间的关系)
    • 运算溢出(程序忽略进位)
  • UAF类型缓冲区溢出(程序逻辑错误,将已释放的内存当作未释放的内存使用而导致的问题)

==2.危害==

现象:

  • 应用程序异常
  • 系统服务频繁出错
  • 系统不稳定甚至崩溃

后果:

  • 以匿名身份直接获得系统最高权限
  • 从普通用户提升为管理员用户
  • 远程植入代码执行任意指令
  • 实施远程拒绝服务攻击

3.种类

  • 栈溢出
  • 整形溢出
  • UAF(User After Free)类型缓冲区溢出

4.如何防范

  • ==栈溢出==
    • 编程时注意缓冲区的边界
    • 不使用strcpy,memcpy等危险函数
    • 在编译器中加入边界检查
    • 在使用栈中重要数据之前加入检查,如Security Cookie技术
  • 整形溢出(代码审核工具)

==四. 恶意代码==

1.定义

恶意代码是指经过存储介质和网络进行传播,从一台计算机系统到另外一台计算机系统,且未经授权认证,破坏计算机系统完整性的程序和代码

2.类型

计算机病毒,木马,蠕虫,后门,恶意脚本(注入式脚本)

3.分类特点

  • 病毒自我执行,自我复制,具有很强的感染性
  • 蠕虫也是病毒的一种
    • 蠕虫是一种通过网络传播的恶性病毒,它具有病毒的一些共性,如传播性、隐蔽性、破坏性等等,同时具有自己的一些特征,如不利用文件寄生(有的只存在于内存中),对网络造成拒绝服务,以及和黑客技术相结合,等等
    • 普通病毒需要传播受感染的驻留文件来进行复制,而蠕虫不使用驻留文件即可在系统之间进行自我复制, 普通病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是互联网内的所有计算机
  • 木马不具传染性,现在的木马一般主要以窃取用户相关信息为主要目的,相对病毒而言,我们可以简单地说,病毒破坏你的信息,而木马窃取你的信息。典型的特洛伊木马有灰鸽子、网银大盗等

4.反击机制

恶意代码分析

  • 静态分析(程序在为执行的状态,通过分析程序指令与结构来确定程序功能,提取特征码的工作机制)
    • 正确脱壳
  • 动态分析(代码运行在沙盘,虚拟机等仿真环境中,通过监控运行环境变化,代码执行的系统调用来判定恶意代码及其原理)

==五. Web应用攻击==

1.类别

  • XSS跨站脚本攻击
    • 反射性XSS
    • 存储型XSS
    • DOM型XSS
  • SQL注入攻击
  • 文件上传漏洞攻击
  • 跨站请求伪造攻击(Cross Site Request Forgery)

六. 假消息攻击

1.方式

  • ARP欺骗
    • img
  • DNS欺骗
    • img
  • HTTP中间人攻击

中间人攻击:一种间接的入侵攻击,这种攻击模式是将一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。大多数发生在局域网。

img

2.防范

DNSSEC防范DNS欺骗

防火墙和杀毒软件抵御ARP欺骗

使用HTTPS抵御HTTP中间人攻击

七. 防火墙


安全协议与标准

零. 概述

1月7号:19:00-20:45,闭卷考试

5个题型,每个20分

  1. 填空
  2. 判断
  3. 计算(CRT 表格法;通过计算 mod p, mod q 的雅克比符号,判断想是否为 mod N 二次剩余;计算 y mod N 的两组二次根;利用二次根分解 N)【对应A,B卷的四道计算题和作业】
  4. 协议(正确性、安全性)分析: 能够对给出的协议进行分析
  5. 协议设计:根据要求,给出协议过程描述(示意图+文字描述)【比特或,比特与安全计算】

一. 计算题

1.二次根

image-20210104154419001

2.判断是否是二次剩余

雅可比符号

image-20210104165205351

image-20210104153306743

3.中国剩余定理

(图片来源于上个学期密码学优秀作业,侵删)

image-20210104164726979

4.题目解析

image-20210105111303848 image-20210105111434700 image-20210105111510036

二. 协议

  • 身份识别协议:重点掌握口令认证协议概念及原理(离线字典攻击、加盐、公开盐值、秘密盐值)、一次口令协议的基本概念、挑战-应答协议的基本概念(基于 MAC和基于数字签名);
  • 密钥建立协议: Merkle 谜题的原理; 复习课上讲过的“单向认证密钥建立协议”的过程和原理(特别注意 加密 r 或不加密 r 带来的区别)。
  • 比特承诺:概念;基于二次剩余假设的实现及安全性(绑定性、隐藏性)分析;无条件安全性与计算安全性。 如何利用比特承诺解决电话抛币问题?(分别考虑抛币方和猜币方分别担任承诺方的两种解决方案。)作业中关于利用承诺方案的零知 识泄露的、基于公钥加密的身份识别协议。
  • 安全计算:不经意传输协议(Rabin OT 和 二择一 OT 的概念,以及利用后者如何实现前者?) 利用二次根理论实现 Rabin OT 协议; 利用公钥加密实现二择一 OT协议; 利用二择一 OT 协议解决比特与的安全计算; 比特或的安全计算; 比特 或的安全计算所适用的实际场景(头脑风暴,避免和复习课上提到的“分手问题” 重复)。

1.身份识别协议

1.1.字典攻击

针对口令认证的攻击,在文件中存储可能存在的用户名和密码进行不断的尝试

显著的攻击:“彩虹表攻击”

1.2.加盐

概念

在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”

实际项目中,Salt 不一定要加在最前面或最后面,也可以插在中间嘛,也可以分开插入,也可以倒序,程序设计时可以灵活调整,都可以使破解的难度指数级增长

MD5('123' + '1ck12b13k1jmjxrg1h0129h2lj') = '6c22ef52be70e11b6f3bcf0f672c96ce'
MD5('456' + '1h029kh2lj11jmjxrg13k1c12b') = '7128f587d88d6686974d6ef57c193628'

1.3.一次口令(OTP)

S / KEY是Bellcore开发的软件包。它是一次性密码系统。系统中使用的每个密码仅可用于一种身份验证。密码无法重复使用,因此,截获的密码没有任何用处。而且,对用户的S / KEY密码序列中已使用的密码的了解不会提供有关将来密码的信息。因此,即使一个人的所有S / KEY密码经过不安全的网络时也被“嗅探到”,它们也不会使拦截器受益。

image-20210105183724487

1.4.挑战应答协议

1.4.1.基于MAC

image

1.4.2.基于数字签名

image-20210105182645486

2.密钥建立协议

2.1.Merkle 谜题的原理

Merkle's Puzzles能够做到**“拿到所有通信内容也找不出双方交换的密钥”**

作者:Gh0u1L5
链接:https://www.zhihu.com/question/312961692/answer/604126828
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  1. Alice生成 公式 个可用的会话密钥, 公式 ,以及 公式 个随机生成的序列号 公式,每个序列号与会话密钥一一对应。

  2. Alice将每对会话密钥和序列号打包成 公式 个谜题(puzzle),令每个谜题 公式 具有如下特征:

    1. 解决谜题 公式 需要一定的计算量,比如每道谜题平均需要花1小时才能解决。
    2. 解决谜题 公式 后,可以得到两个值:一个是会话密钥 公式 ,另一个是序列号 公式
  3. Alice将这些谜题发送给Bob,Bob随机选择一个谜题 公式 加以解决,并发回相应的序列号 公式

  4. Alice根据Bob传回的序列号,确定通信双方接下来将要使用的会话密钥 公式

Ralph Merkle没有限定过协议中的谜题到底应该以何种方式生成,一个比较简单的方法是利用对称式加密算法。假定这个算法有64位的加密强度,我们可以用一枚随机生成的密钥将 公式公式 加密,然后当场销毁这枚随机密钥。这样一来,想要解密这道谜题,就需要进行 公式 次计算,满足了Merkle's Puzzles所需的条件。

在这个交换过程中,Bob只需要解决一个谜题,Alice只需要进行一次查表,两名合法用户可以非常高效的完成密钥交换。而攻击者Eve,虽然成功窃听到所有的谜题,以及Bob传回的序列号 公式 , 然而为了从谜题的汪洋大海当中找到对应的会话密钥 公式,Eve仍然需要解决平均 公式 个谜题。

2.2.单向认证密钥建立协议

Diffle-Hellman协议(DH算法无法避免中间人攻击)

协商生成公钥S(由计算得到),私钥A,B(由Ali,Bob自己生成)

img

3.比特承诺

绑定性,隐藏性

若抛币方拥有无穷计算能力,那么安全协议满足无条件绑定性

有限,有条件绑定性

image-20210105195741915

image-20210106133856710

image-20210106134105586

一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)

4.OT(茫然传输协议)

茫然传输(oblivious transfer)是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送一条给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),这个协议也叫茫然传输协议

(判断题有考到过,需注意)

1981由Michael O.Rabin提出第一种形式的茫然传输

“二择一”茫然传输协议(1 out 2 oblivious transfer)由 Shimon Even, Oded Goldreich, 和Abraham Lempel 在1985年提出

img

1.基于RSA的茫然传输

img

  1. 发送者Alice生成两对rsa公私钥,并将两个公钥puk0、puk1发送给接受者Bob。

  2. Bob生成一个随机数,并用收到的两个公钥之一加密随机数(用哪个秘钥取决于想获取哪条数据,例如如果想要得到消息M0 就用puk0加密随机数,如果想要得到M1就用puk1加密随机数),并将密文结果发送给Alice。

  3. Alice用自己的两个私钥分别解密收到随机数密文,并得到两个解密结果k0,k1,并将两个结果分别与要发送的两条信息进行异或(k0异或M0,k1异或M1),并将两个结果e0,e1发给Bob。

    • ==这里需要注意一个知识点,异或的性质,00=0, 11=0 ; 01=1 ,所以0k=k==
    • ==假设随机数Bob挑选的是k0,那么k0^k0^M0=M0==
  4. Bob用自己的真实随机数与收到的e0、e1分别做异或操作,得到的两个结果中只有一条为真实数据,另外一条为随机数。

什么是不经意传输?


物联网概论

零. 题型

填空题(10)

判断并改错(10)

单选题(10)

简答题(30)

论述题(40)

一. 简答题

1.无线传感器工作方式

  • 大量的传感器节点获取探测数据,并通过彼此间的相互合作将采集到的数据传送到网关,由网关接入到主干网络将数据传送到数据中心。
  • 传感器网络实现了数据采集、数据处理和数据传输三种功能。

2.大数据的4V特征

  • Volume(大量):数据体量巨大。 从TB级别,跃升到PB级别;
  • Variety(多样):数据类型繁多。 网络日志、视频、图片、传感器数据、地理位置信息等。
  • Velocity(高速) :处理速度快,1秒定律,可从各种类型的数据中快速获得高价值的信息,这是和传统的数据挖掘技术有着本质的不同。
  • Value(价值) :合理利用低密度价值的数据并对其进行正确、准确的分析,将会带来很高的价值回报。
  • Veracity(准确) :数据处理结果要保证一定的准确性。

3.以GPS为例简述移动终端

  • GPS的组成:空间部分,地面控制部分和用户终端
  • 移动互联网、智能手机与GPS技术的应用带动了基于位置的服务的发展。基于位置的服务也叫做移动定位服务(MPS)。
  • 物联网应用高度依赖位置信息与位置服务,位置服务将成为物联网重要的研究内容与新的产业增长点。
  • GPS用户终端设备就是GPS接收机。为准确定位,GPS接收机通过接收卫星发送的信号,从解调出的卫星轨道参数获取精确的时钟信息,通过判断卫星信号从发送到接收的传播时间来测算出观测点到卫星的距离,然后根据到不同卫星的距离来计算出自己的位置。

4.互联网IPV6

  • 互联网面临着地址匮乏的危机,解决的办法是从IPv4协议向IPv6协议过渡。
  • IPv6的地址长度定为128位,因此IPv6可以提供多达超过2128(3.4×1038)个地址。今后所有的智能电话、信息家电与物联网节点都可以获得IP地址,连入物联网的设备数量将不受限制。
  • IPv6协议的主要特征有:巨大地地址空间、新的协议格式、有效的路由结构、自动地址配置、内置安全机制以及更好的服务质量。
  • IPv6协议能够适应物联网智能工业、智能农业、智能交通、智能医疗、智能物流、智能家居等领域的应用,IPv6协议将成为物联网核心协议之一。

5.网络接入技术的概念和分类

  • 接入技术关系到如何将成千上万住宅、办公室、企业用户计算机接入互联网,涉及到用户能得到的网络服务类型、应用水平、服务质量、资费等切身问题,同时也是城市网络基础设施建设中需要解决的重要问题。
  • image-20210108142056447

6.云计算分类

  • 公有云:由某个组织拥有,其云基础设施对公众或某个很大的业界群组提供云服务(例如Google,中国电信)。
  • 私有云:云基础设施特定为某个组织运行服务。可以是该组织或某个第三方负责管理,可以是场内服务(on-premises),也可以是场外服务(off-premises)。
  • 混合云:云基础设施由两个或多个云(私有的、或公有的)组成,独立存在,但是通过标准的或私有的技术绑定在一起,这些技术促成数据和应用的可移植性。
  • 区别:公有云和私有云在技术上并没有本质差异,只是运营和使用对象有所不同:前者是指企业使用其他单位运营的云平台服务;而后者则是企业自己运营并使用云平台服务,而混合云的运营介于两者之间 。

7.地面辅助系统WIFI,RFID,WNS

  • Wi-Fi:无线局域网中的移动节点需要通过无线接入点接入网络。无线接入点不断地向外发送信息,以便各种准备接入到无线局域网的节点网卡能够及时的发现它。用一个数据库纪录全球所有的无线接入点的MAC地址,以及对应的接入点设备的地理位置信息,从而根据接收到的接入点信号的强度大小来推算出本节点的位置;定时查询移动节点接入到接入点的位置。
  • RFID:RFID标签通过与标签读写器的数据交互,可以将存储在RFID标签中有关物品的信息自动传送到计算机中,同时RFID标签与RFID标签读写器交互的过程也记录下带着RFID标签物体的位置,成功应用到幼儿园管理。
  • WNS: 在无线传感器网络中,位置信息是事件发生位置报告、目标跟踪、路由控制、网络管理的前提。
    • 基于距离的定位算法
    • 距离无关的定位算法
    • 递增式的定位算法
    • 基于信标节点的定位算法和无信标节点的定位算法

8.互联网和物联网的不同之处

  • 数据采集与传输方式不同。
  • 互联网的功能主要是实现人与人之间的信息交换与共享,因此在互联网端节点之间传输的文本文件、语音文件、视频文件都是人为输入的,即使是通过扫描和文字识别技术输入的文字或图形、图像文件等也都是在人的操作之下完成的。
  • 与互联网终端需要人为输入不同,物联网终端系统采用的是传感器、RFID标签等,因此物联网感知的数据是传感器主动感知或RFID读写器自动读出的。因此在网络端系统数据采集方式上,互联网与物联网是有区别的,这也正体现出互联网与物联网应用系统服务功能的不同。
  • 物联网是互联网功能的延伸与扩展,如果说互联网实现了“Everybody over IP”的互联目标,而物联网的目标则是“Everything over IP”。

9.智能判断大数据的应用过程P247

  • 透过数据,应用一定的分析方法,从大量数据中提取出一些有价值的信息和知识,这个过程就是“数据挖掘(Data Mining)”。
  • image-20210108151146303
  • image-20210108151326777

10.什么是5G(不少于6项)

  • 5G是将人与人之间的通信扩展到万物互联,打造全移动和全连接的数字化社会的一种技术。
  • 5G是面向未来的VR/AR、智慧城市、智慧农业、工业互联网、车联网、智能家居、智慧医疗等的应用。
  • 5G是微基站和Massive MIMO的关键技术组合。
  • 5G是一场新技术的融合创新:5G超高速上网和万物互联将产生呈指数级上升的海量数据,这些数据需要云存储和云计算,并通过大数据分析和人工智能产出价值。
  • 5G就是第五代通信技术,主要特点是波长为毫米级,超宽带,超高速度,超低延时。
    • 5G是摒弃多个技术版本,形成统一融合的唯一标准。

11.三网工作的融合方式

  • 三网融合实质上是计算机网络、电信通信网和有线电视网在技术、业务上的融合。
  • 从技术融合的角度看,电信通信网、电视传输网都统一到计算机网络的IP地址协议上,网关可以实现电信通信网、电视传输网与计算机网络的互联。
  • 从业务融合的角度看,移动电话用户希望通过智能电话收看有线电视新闻节目、访问Web网站、收发电子邮件;有线电视的用户希望利用有线电视网打电话、访问Web网站、收发电子邮件;互联网用户也希望可以在计算机上收看电视新闻、打电话。

12.按XAAS分类云计算

  • 将基础设施作为服务(Infrastructure as a Service,IaaS ),IaaS将硬件设备等基础资源封装成服务供用户使用,IaaS最大的优势在于它允许用户动态申请或释放节点,按使用量计费,用户可以认为能够申请的资源几乎是无限的。
  • 将平台作为服务(Platform as a Service,PaaS),PaaS对资源的抽象层次更进一步,它提供用户应用程序的运行环境,JVM虚拟机。
  • 将软件作为服务(Software as a Service,SaaS),SaaS的针对性更强,它将某些特定应用软件功能封装成服务。

13.物联网三层体系架构模型

  • image-20210108135427564

  • 物联网从架构上面可以分为感知层、网络层和应用层

    • 感知层:负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备更精确、更全面的感知能力,并解决低功耗、小型化和低成本的问题。**
    • 网络层:是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度昀高、产业化能力昀强、昀成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
    • 应用层:提供丰富的基于物联网的应用,是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案集,关键在于行业融合、信息资源的开发利用、低成本高质量的解决方案、信息安全的保障以及有效的商业模式的开发。

    各个层次所用的公共技术包括对象名字服务技术,网络管理技术,服务质量保证技术,信息安全技术。

14.辅助GPS定位技术

  • 辅助GPS定位技术(Assisted GPS, A-GPS)技术融合了GPS高精度定位与移动通信网高密度覆盖的特点。
  • A-GPS的工作原理是:在用户手机没有捕捉到GPS卫星信号前,首先将手机所处小区基站的地址通过移动通信网传输到A-GPS系统中的位置服务器
  • 位置服务器根据手机的当前位置将与该位置相关的GPS辅助信息传送到手机,手机根据这些卫星辅助信息,如方位角、俯角和仰角等数据就能够立即寻找到GPS卫星信号
  • 手机接收到GPS初始信号,计算出手机到卫星的伪距,然后将这个伪距数据传送回位置服务器。这里的伪距指受到各种GPS误差影响的距离数据
  • 位置服务器根据传送的GPS伪距信息,结合其它的定位方式计算出手机更精确和动态的位置数据。位置服务器实时地将该用户手机的位置信息传送到位置服务平台,使手机用户可以获得及时和高精度的服务

15.划分计算机网络的范围

  • 广域网又称远程网,覆盖面广,形成国际性的远程计算机网络。其通信子网利用公用分组交换网、卫星通信网或无线分组交换网,将分布在不同地区的计算机系统、城域网、局域网互联起来,实现资源共享的目的。
  • 城域网是以IP协议为基础,通过计算机网络、广播电视网、电信网的三网融合,形成覆盖城市区域的网络通信平台,提供高质量的语音、数据、图像、视频等信号的传输与服务。
  • 局域网覆盖有限的地理范围,它适用于机关、校园、工厂、机房等有限范围内的计算机、服务器与存储设备连网的需求。可以分为有线局域网(如Ethernet)与无线局域网(如Wi-Fi)等两类。
  • 个人区域网络PAN主要是用无线通信技术实现联网设备之间的通信,因此就出现了无线个人区域网络(WPAN)的概念。
  • 智能医疗应用系统需要将人体携带的传感器或移植到人体内的生物传感器结点组成人体区域网,物联网智能医疗的应用对网络提出了新的需求,促进了人体区域网的发展。

16.物联网的关键技术

  • 自动感知技术
    • RFID标签选型与读写器设计;
    • RFID标签编码体系与标准研究;
    • 传感器选型与传感器节点设计;
    • 传感网的设计与实现;
    • 中间件与数据处理软件的设计与实现;
  • 嵌入式技术
    • 专用芯片设计制造;
    • 嵌入式硬件结构设计与实现;
    • 嵌入式操作系统研究;
    • 嵌入式应用软件编程技术;
    • 微机电(MEMS)技术与应用;
  • 移动通信技术
    • 无线通信技术的选型;
    • 无线通信网络系统设计;
    • M2M协议与应用;
  • 计算机网络技术
    • 网络技术选型;
    • 网络结构设计;
    • 异构网络互联;
    • 异构网络管理;
  • 智能数据处理技术
    • 数据格式与标准化;
    • 信息融合技术;
    • 中间件与应用软件编程技术;
    • 海量数据存储与搜索技术;
    • 数据挖掘与知识发现算法;
  • 智能控制技术
    • 环境感知技术;
    • 规划与决策算法;
    • 智能控制方法;
  • 位置服务技术
    • 位置信息的获取方法;
    • GPS、GIS与网络地图应用技术;
    • 位置服务方法;
  • 信息安全技术
    • 感知层安全;
    • 网络层安全;
    • 应用层安全;
    • 隐私保护技术与法律法规;

二.课后作业

1.什么是云计算?什么是大数据?什么是人工智能?

  • 云计算是一种动态扩展的计算模式,通过网络将虚拟化的资源作为服务提供;通常包含infrastructure as a service(IaaS), platform as a service(PaaS), software as a service(SaaS)。
  • 大数据指的是所涉及的数据量规模巨大到无法通过人工,在合理时间内达到截取、管理、处理、并整理成为人类所能解读的信息。
  • 人工智能(英语:artificial intelligence,缩写为AI)亦称智械、机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。

2.论述三者之间的联系

云计算与大数据之间的联系

  • 大数据必然无法用单台的计算机进行处理,必须采用云端分布式架构对海量数据进行分布式存储、分布式处理。
  • 云计算为大数据资源、大数据挖掘提供技术设施(软硬科学技术)。
  • 大数据挖掘为云计算建设和运作提供决策。
  • 云计算与大数据的关系是静与动的关系,前者强调的是计算、存储能力;大数据需要强大的数据处理能力(数据获取、清洁、转换、存储、分析、统计等),其实就是强大的计算能力和数据存储能力。
  • 云计算为大数据提供了可以弹性扩展,相对便宜的存储空间和计算资源,使得中小企业也可以像亚马逊一样通过云计算来完成大数据分析。

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。

云计算与人工智能之间的联系

人工智能是程序算法和大数据结合的产物。而云计算是程序的算法部分,物联网是收集大数据的根系的一部分。可以简单的认为:人工智能=云计算+大数据(一部分来自物联网)。随着物联网在生活中的铺开,它将成为大数据最大,最精准的来源。

大数据与人工智能之间的联系

与以前的众多数据分析技术相比,人工智能技术立足于神经网络,同时发展出多层神经网络,从而可以进行深度机器学习。与以外传统的算法相比,这一算法并无多余的假设前提(比如线性建模需要假设数据之间的线性关系),而是完全利用输入的数据自行模拟和构建相应的模型结构。这一算法特点决定了它是更为灵活的、且可以根据不同的训练数据而拥有自优化的能力。

三者融合之间的联系

云计算是基础,没有云计算,无法实现大数据存储与计算;大数据是应用,没有大数据,云计算就缺少了目标与价值

两者都需要人工智能的参与,人工智能是互联网信息系统有序化后的一种商业应用。这才是:云计算与大数据真正的出口!

而商业智能中的智能从何而来? 方法之一就是通过大数据这个工具来对大量数据进行处理,从而得出一些关联性的结论,从这些关联性中来获得答案,因此,大数据是商业智能的一种工具。 而大数据要分析大量的数据,这对于系统的计算能力和处理能力要求是非常高的,传统的方式是需要一个超级计算机来进行处理,但这样就导致了计算能力空的时候闲着、忙的时候又不够的问题, 而云计算的弹性扩展和水平扩展的模式很适合计算能力按需调用,因此,云计算为大数据提供了计算能力和资源等物质基础。

3.分别举例说明三种新技术的典型应用

大数据:基于客户行为分析的产品推荐,基于客户评价的产品设计(客户的评价既有对产品满意度、物流效率、客户服务质量等方面的建设性改进意见,也有客户对产品的外观、功能、性能等方面的体验和期望,有效采集和分析客户评价数据,将有助于企业改进产品、运营和服务,有助于企业建立以客户为中心的产品创新。),基于数据分析的广告投放

人工智能:语音识别,人脸识别,决策管理(智能机器能够向AI系统引入规则及逻辑,因此你可以利用它们进行初始化设置/训练,以及持续的维护和优化。决策管理在多类企业应用中得以实现,它能协助或者进行自动决策,实现企业收益最大化。)

云计算:在线办公,个人网盘(与我们日常已经在使用的网盘不同,直接在云计算服务商处购买的个人网盘服务,具有极强的私密性和安全性。目前我们在使用的网盘就像商场的存包处,不仅你可以用密码纸打开,商场也有要是或者其他技术打开来看看你放了什么东西在里面。个人网盘就像是买一个远程的保险箱,只有你自己能打开他,云服务商连钥匙带箱子一起给你,他也没有打开保险箱的权限。这对那些需要存储高机密数据的用户来说是十分重要的。)


软件工程

第1章 软件工程学概述

软件危机定义:

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题

软件危机典型表现:

  • 对软件开发成本和进度的估计常常很不准确
  • 用户对“已完成的”软件系统不满意的现象经常发生
  • 软件产品的质量往往靠不住
  • 软件常常是不可维护的
  • 软件通常没有适当的文档资料
  • 软件成本在计算机系统总成本中所占的比例逐年上升
  • 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势

产生软件危机的原因:

  • 软件本身的特点
    • 软件缺乏可见行
    • 开发时期引入但在测试阶段没有检测出来的错误
    • 规模庞大
  • 软件开发和维护方法不正确
    • 对用户要求没有完整准确的认识就开始编写代码
    • 程序只是完整软件产品的一个组成部分
    • 清楚只重视程序而忽视软件配置其余成分的糊涂观念
    • 轻视维护

消除软件危机的途径:

  • 对计算机软件有正确的认识,消除“软件就是程序”的错误观念
  • 充分认识软件开发是一种组织良好,管理严密,各人类协同配合,共同完成的工程项目
  • 推广使用在实践中总结出来的开发软件的成功技术和方法
  • 应用开发和使用更好的软件工具

本质特征:

  • 软件工程关注于大型程序的构造
  • 软件工程的中心课题是控制复杂性
  • 软件经常变化
  • 开发软件的效率非常重要
  • 和谐地合作是开发软件的关键
  • 软件必须有效地支持它的用户
  • 在软件工程领域中通常由具有一种文化背景的人替另一种文化背景的人创造产品

基本原理:

  • 用分阶段的生命周期计划严格管理
  • 坚持进行阶段评审
  • 实行严格的产品控制
  • 采用现代程序设计技术
  • 结果应能清楚的审查
  • 开发小组人员应该少而精
  • 承认不断改进软件工程实践的必要性

三要素:

方法,工具,过程

软件生命周期:

  • 软件定义
    • 问题定义
    • 可行性研究
    • 需求分析
  • 软件开发(设计,实现)
    • 总体设计
    • 详细设计
    • 编码和单元测试
    • 综合测试
  • 运行维护
    • 改正性
    • 适应性
    • 完善性
    • 预防性

软件过程:

软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤

瀑布模型的特点:

  • 阶段间具有顺序性和依赖性
  • 推迟实现的观点
  • 质量保证的观点

瀑布模型的优点:

  • 强迫开发人员采用规范的方法
  • 严格的规定每个阶段必须提交文档
  • 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证

瀑布模型的缺点:

瀑布模型是由文档驱动的

快速原型模型:

定义:

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集

特点:

本质是“快速”,开发人员应该尽可能快的建造出原型系统。

原型的用途是获知用户的真正需求。

迅速构建原型然后根据用户意见迅速修改原型

优点:

软件产品的开发基本是线性顺序进行的

增量模型:

定义:使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计,编码,集成和测试。第一个增量构件往往实现软件的基本需求,提供最核心的功能。

优点:

  • 较短时间内向用户提交可完成部分工作的产品
  • 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品

缺点:

  • 新增量集成,必须不破坏原来已经开发出的产品
  • 软件体系结构必须是开放的

第2章 可行性研究

可行性研究的目的:

用最小的代价在尽可能短的时间内确定问题是否能够解决

可行性的类型:

技术,经济,操作,法律,社会效益

步骤:

  • 复查系统规模和目标
  • 研究目前正在使用的系统
  • 导出新系统的高层逻辑模型
  • 进一步定义问题
  • 导出和评价供选择的解法
  • 推荐行动方针
  • 草拟开发计划
  • 书写文档提交审查数据字典

数据字典的元素:

数据流,数据流分量,数据存储,处理

数据字典的方法:

顺序,选择,重复,可选

P54第5题

第3章 需求分析

需求分析定义:

需求分析是软件定义时期的最后一个阶段,它的基本认识是准确回答系统必须做什么这个问题

需求分析的意义

  • 为了开发出真正满足用户需求的软件产品,首先需要知道用户的需求
  • 对软件需求的的深入理解是软件开发工作获得成功的前提条件
  • 为开发者带来便捷

需求分析的任务:

功能需求,性能需求,==可靠性和可用性需求==,出错处理需求,接口需求,约束,逆向需求,将来可能提出的要求

与用户沟通获取需求的方法:

访谈,面向数据流自顶向下求精,简易的应用规格说明技术,快速建立软件原型

数据模型(实体-联系图),功能模型(数据流图),行为模型(状态转换图)

状态的定义:

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式

状态类型:

初始(1),终态(0~多个),中间状态

层次方框图:

用树形结构的一系列多层次的矩形框描绘数据的层次结构,树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不可再分割的元素)

验证软件需求&方法:

  • 一致性。所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。
    • 自然语言书写——人工技术审查验证软件系统规格说明书的正确性
    • 形式化需求陈述语言书写——软件工具
  • 现实性。指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
    • 分析员分析现有软,硬件技术实现目标系统的可能性,必要时采用仿真或性能模拟技术,辅助分析现实性
  • 完整性。需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
  • 有效性。必须证明需求是正确有效的,确实能解决用户的问题。

第5章 总体设计

基本目标:

通过这个阶段的工作将划分出组成系统的物理元素——程序,文件,数据库,人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计;设计软件结构,也就是要确定系统的每个程序是由哪些模块组成的,以及这些模块相互间的关系。

两个主要阶段:

  • 系统设计阶段,确定系统的具体实现方案
  • 结构设计阶段,确定软件结构

设计过程:

设想供选择的方案,选取合理的方案,推荐最佳方案,功能分解,设计软件结构,设计数据库,制定测试计划,书写文档,审查和复审

设选供,分软数,测文审

模块及模块化概念:

  • 模块是由边界元素限定的相邻程序元素,(边界元素例如{}),(函数,子程序,宏,对象,方法都是模块)
  • 模块化就是把程序划分成独立命名且独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求

抽象:

抽出事物的本质特性而暂时不考虑它们的细节

逐步求精:

为了能集中解决主要问题而尽量推迟对问题细节的考虑

信息隐藏和局部化:

隐藏模块的实现细节——细节隐藏

模块独立:

  • 耦合(对一个软件结构内不同模块之间互连程度的度量)
    • 数据耦合(通过参数交换信息)
    • 控制耦合(控制信息)
    • 特征耦合(传递整个数据结构,但只需要其中的一部分数据)
    • 公共环境耦合(两个或多个模块通过一个公共数据相互作用时,如全局变量)
    • 内容耦合
  • 内聚(标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展)
    • 低内聚(偶然内聚,逻辑内聚,时间内聚)
    • 中内聚(过程内聚,通信内聚)
    • 高内聚(顺序内聚,功能内聚)

启发规则:

  • 改进软件结构提高模块独立性
  • 模块规则应该适中
  • 深度 宽度 扇入和扇入都应当适当
    • 深度表示软件结构中控制的层数(树高)
    • 宽度是软件结构内同一层次上的模块总数的最大值(树宽)
    • 扇出是一个模块直接控制(调用)的模块数目(出度)
    • 扇入表明有多少个上级模块直接调用它(入度)
  • 模块的作用域应该在控制域之内
  • 力争降低模块接口的复杂程度
  • 设计单入口单出口的模块
  • 模块功能应该可以预测

面向数据流的设计方法:

变换流,事务流(P105)

第6章 详细设计

根本目的:

详细设计阶段的根本目的是确定应该怎样具体的实现所要求的系统。

设计人机界面的问题:

系统响应时间,用户帮助设施,出错信息处理,命令交互

人机设计界面指南:

一般交互指南,信息显示交互指南,数据输入指南

P122~P124

判定表,判定树:

P142练一下题目

McCabe方法:

程序流程图转流图

环形复杂度计算

  • 流图中线性无关的区域数等于环形复杂度

  • 流图G的环形复杂度V(G)= E - N + 2 E是流图中边数,N是点数

  • 流图G的环形复杂度V(G)= P + 1 P是流图中判定结点的数目

Max Min流图 应用题

P142-例题-7

第7章 实现

定义:

编码和测试统称为实现

所谓编码就是把软件设计结果翻译成用某种程序语言书写的程序。作为软件工程的一个阶段,编码是对设计的进一步具体化,因此程序的质量主要取决于软件设计的质量。

测试的定义时为了发现程序中的错误而执行程序的过程。

编码风格的规则:

(未完成部分)

测试阶段的目的:

  1. 发现程序中的错误而执行程序的过程

  2. 最好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案

  3. 成功的测试是发现了至今为止尚未发现的错误的测试

测试的目标:暴露程序的错误。

测试目标:

测试步骤:

  1. 模块测试
  2. 子系统测试
  3. 系统测试
  4. 验收测试
  5. 平行运行

单元测试重点:

  1. 模块接口
  2. 局部数据结构
  3. 重要的执行通路
  4. 出错处理通路
  5. 边界条件

代码审查

(未完成部分)

驱动程序:

通常是主程序,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果

存根程序:

代替被测试的模块所调用的模块

自顶向下集成:

是一个日益为人们广泛采用的测试和组装软件的途径。从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于(及最终附属于)主控制模块组装到程序结构中去时,或者使用深度优先策略,或者使用宽度有限策略。

把模块结合进软件结构的具体过程:

  1. 对主控制模块进行测试,测试时使用存根程序代替所有直接附属于主控制模块的模块

  2. 根据选定的结合策略(深度优先或者宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的程序往往又需要新的存根程序)。

  3. 在结合进一个新的模块时进行同时测试

  4. 为了保证新加入的模块没有引进新的错误,可能需要进行回归测试(及全部或者部分地重复以前的操作)

自底向上集成:

自底向上测试从“原子”模块(即在软件结构最底层的模块)开始组装测试。因为是从底部向上结合的模块,总能得到所需要的下层模块处理功能,所以不需要存根程序。

用下述步骤可以实现自底向上的结合策略

  1. 把底层模块组合成实现某个特定的软件子功能族

  2. 写一个驱动程序(用于测试的程序),协调测试数据的输入输出

  3. 对于模块组成的子功能族进行测试

  4. 去掉驱动程序,沿软件架构自下向上移动,把子功能结合起来形成更大的子功能

2-4循环

回归测试:

是指重新执行已经做过的测试的某个子集,以保证新结合进来的模块变化没有带来非预期的副作用。

黑盒测试:

黑盒测试法把程序看做一个黑盒子,完全不考虑程序内部的结构和处理过程。也就是说,黑盒测试是在程序接口进行测试,他只检查功能是否按照规格说明书的规定正常使用,程序是否能适当的接受输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如数据库或文件)的完整性。黑盒测试又称为功能测试。

白盒测试:

与黑盒测试相反,他的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路能否都按预定要求正常工作。白盒测试又称为结构测试。

软件维护的4类活动:

  • 为了纠正在使用过程中暴露出来的错误而进行的改正性维护
  • 为了适应外部环境的变化而进行的适应性维护
  • 为了改进原有的软件而进行的完善性维护
  • 为了改进将来的可维护性和可靠性而进行的预防性维护

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×