文章目录
互联网(Internet)是指通过TCP/IP将世界各地的网络连接起来实现资源共享,提供各种应用服务的全球性计算机网络。
4.1 计算机网络基础
4.1.1 计算机网络的基本概念
1、计算机网络的基本定义
计算机网络是将若干台具有独立功能的计算机通过通信设备及传输媒体互连起来,在操作系统和网络协议等软件等支持下,实现计算机之间信息传输与交换的功能。
2、计算机网络的主要 功能(资源共享、数据传输)
计算机网络向用户提供的最主要的功能是资源共享和数据传输。资源共享包括硬件共享、软件共享和信息共享。
(1)资源共享。资源共享包括计算机资源共享以及通信资源共享。计算机资源主要指计算机的硬件、软件和数据信息资源。资源共享功能使得网络用户可以克服地理位置的差异性,共享网络中的计算机资源,以达到提高硬件、软件的利用率和充分利用信息资源的目的。
(2)数据传输。计算机网络提供网络用户之间、各个处理器之间以及用户与处理器之间的通信,这是资源共享的基础。用户可以通过网络传送电子邮件,发布新闻消息,进行文件传输、语音通信、视频会议等,这极大地方便了用户,提高了工作效率。
除了上述主要功能之外,计算机网络还可以实现集中管理、分布式处理和负载均衡等其他功能。
3、计算机网络的 组成(资源子网、通信子网)
计算机网络通常由资源子网和通信子网组成。
(1)资源子网。负责全网的数据处理,向网络用户提供各种网络资源与网络服务。资源子网由用户的主机和终端组成,主机通过高速通信线路与通信子网的路由器(早期为通信控制处理器)相连接。
(2)通信子网。完成网络的数据传输、转发等通信处理任务。通信子网包含传输线路、网络设备和网络控制中心等硬、软件设施,电信部门提供的网络(如X.25网、数字数据网(DDN)、帧中继网等)一般都属于通信子网。通信子网与具体的网络应用无关。
在计算机网络中,为了在不同设备之间进行数据通信而需要有预先制定的一整套通信双方共同遵守的格式和约定,这就是通信协议。它的存在与否是计算机网络与一般计算机互连系统的根本区别。不同的计算机网络使用不同的通信协议,如开放系统互连协议、X.25 协议等。
4、计算机网络的 体系结构
计算机网络体系结构的基本思想是在计算机网络的设计中, 采用分层次的设计方法,使其达到在相互通信的两个计算机之间高度协调工作的目的。网络体系结构规定了同层进程通信的协议,以及相邻层之间的接口及服务。这些层次结构、同层进程间通信的协议以及相邻层之间的接口统称为网络体系结构。
网络体系结构 =(分层、协议、接口)
开放系统互连参考模型 (Open System Interconnection/Reference Model,OSI/RM)是一个开放式计算机网络的层次结构模型。“开放”表示任何两个遵守了参考模型及相关标准的系统都可以进行互连。
OSI/RM定义了一个7层模型,用以进程间的通信,并作为一个框架来协调各层标准的制定。
(1)物理层。物理层是数据终端设备(Data Terminal Equipment,DTE)和数据电路终端设备 (Data Circuit terminal Equipment,DCE) 之间的接口。物理层定义了建立、维护和拆除物理链路所需的机械、电气、功能和规程特性。其目的是在物理介质上传输原始的数据比特流。
(2)数据链路层。数据链路层使用物理层提供的服务,建立通信联系,将比特流组织成名为帧的协议数据单元进行传输。
(3)网络层。网络层的功能是实现网络互连,主要功能是路由选择和拥塞控制。
物理层、数据链路层和网络层是7层协议的基础层次,也是最为成熟的3个层次。无论是广域网还是局域网,都是以这几个层次为基础的。它们主要是面向数据通信的,因此基于这3层通信协议构成的网络通常被称为通信网络或通信子网。
(4)传输层。传输层处于分层结构体系高低层之间,是高低层之间的接口,是非常关键的一层。传输层主要采用的技术手段有分流技术、复用技术、差错检测与恢复、流量控制等。
(5)会话层。会话层是进程间的通信协议,主要功能是组织和同步不同主机上各种进程间的通信;负责在两个会话层实体之间进行对话连接的建立和拆除。
(6)表示层。表示层执行协议转换、数据翻译、压缩与加密、字符转换以及图形命令的解释功能。
(7)应用层。应用层提供文件服务、数据库服务、电子邮件及其他网络软件服务。
4.1.2 局域网的基本原理
1、局域网的定义
计算机网络可以根据网络覆盖的范围划分为局域网(LAN)、城域网(MAN)和广域网(WAN)。
局域网指在较小区域范围内由各种计算机和数据通信设备互连在一起形成的计算机通信网络。
2、局域网的组成
计算机(包括个人计算机和服务器)、传输介质、网络适配器(网卡)、网络操作系统。
3、局域网的特点
1、网络覆盖范围小,适合于校园、机关、公司、企业等机构和组织内部使用。
2、数据传输速率较高,一般为10Mbps~100Mbps,光纤高速网可达10Gbps。
3、传输质量好,误码率低。
4、介质访问控制方法相对简单。
5、软、硬件设施及协议方面有所简化。
6、有相对规则的拓扑结构。
4、局域网的拓扑结构
局域网的拓扑结构是指连接网络设备的传输介质的铺设形式,局域网的拓扑结构主要有星形、总线型、环形和混合型。
5、局域网参考模型
局域网参考模型如图 4-3 示。
局域网参考模型包含了 OSI/RM 中物理层和数据链路层的功能。在局域网标准中,数据链路层被进一步划分成两个子层:介质访问控制(Medium Access Control,MAC) 子层和逻辑链路控制(Logical Link Control,LLC)子层。其目的是将数据链路层功能中与硬件相关的部分和与硬件无关的部分区分开来,降低研究和实现的复杂度。其中,MAC子层主要负责实现共享信道的动态分配,控制和管理信道的使用。LLC子层具有差错控制、流量控制等功能,负责实现数据帧的可靠传输。各种不同的LAN标准体现在物理层和MAC层上,传输介质的区别对LLC来说是透明的。
局域网不存在中间交换,不要求路由选择,所以不单独设置网络层。
6、局域网标准
局域网标准由美国电气和电子工程师协会 (Institute of Electrical and Electronics Engineers,IEEE)的802委员会负责制定,这些标准都以802开头。
IEEE 802.1: 通用网络概念及体系结构。
IEEE 802.2: 逻辑链路控制。
IEEE 802.3: 载波监听多路访问/冲突检测 (CSMA/CD)规范。(以太网)局域网标准。
IEEE 802.4: 令牌总线(Token Bus) 结构及访问方法、物理层规范。
IEEE 802.5: 令牌环(Token Ring) 访问方法及物理层规范。
IEEE 802.6: 城域网的访问方法及物理层规范。
IEEE 802.7: 宽带局域网。
IEEE 802.8: 光纤网络技术标准。
IEEE 802.9: 综合声音数据网的介质访问控制方法及物理层技术规范。
IEEE 802.10: 可互操作的局域网的安全。
IEEE 802.11: 无线局域网。
IEEE 802.12: 100VG-AnyLAN 的介质访问控制方法及物理层技术规范。
IEEE 802.15:无线个人局域网(WPANs),蓝牙无线通信规范标准。
IEEE 802.16: 无线城域网。
4.1.3 局域网协议与应用
1、以太网
以太网是目前最常见、最具有代表性的局域网。
CSMA/CD 协议适用于总线型拓扑结构网络。
CSMA 代表载波监听多路访问。它是“先听后发”,也就是各站在发送前先检测总线是否空闲,当测得总线空闲后,再考虑发送本站信号。各站均按此规律检测、发送,形成多站 共同访问总线的通信形式,故把这种方法称为载波监听多路访问(实际上采用基带传输的总线局域网,总线上根本不存在什么“载波”,各站可检测到的是其他站所发送的二进制代码。 但大家习惯上称这种检测为“载波监听”)。
CD 表示冲突检测,即“边发边听”,各站点在发送信息帧的同时,继续监听总线。当监听到有冲突发生时(即有其他站也监听到总线空闲,也在发送数据),便立即停止发送信息。
归纳起来,CSMA/CD 的控制方式如下。
一个站要发送信息,首先对总线进行监听,看介质上是否有其他站发送的信息存在。 如果介质是空闲的,则可以发送信息。
在发送信息帧的同时,继续监听总线,即“边发边听”。当检测到有冲突发生时,便 立即停止发送,并发出报警信号,告知其他各工作站已发生冲突,防止它们再发送新的信息介入冲突。若发送完成后,尚未检测到冲突,则发送成功。
检测到冲突的站发出报警信号后,退让一段随机时间,然后再试。
2、高速以太网
100Base-T 是 IEEE 正式接受的100Mbit/s 以太网规范,采用非屏蔽双绞线 (Unshielded Twisted Pair,UTP)或屏蔽双绞线 (Shielded Twisted Pair,STP)作为网络介质,MAC子层与IEEE 802.3 协议所规定的MAC子层兼容,被IEEE作为802.3规范的补充标准802.3u公布。
3、无线局域网
对于不同局域网的应用环境与需求,无线局域网可采取不同的网络结构来实现互连。
(1)点对点。点对点的结构简单,可在中远距离上获得高速率的数据传输。例如,在不 同的局域网之间互连时,如果由于物理上的原因不方便采取有线方式,则可利用无线网桥的 方式实现二者的点对点连接,无线网桥不仅提供二者之间的物理层与数据链路层的连接,还为两个网的用户提供较高层的路由与协议转换。
(2)点对多点。点对多点结构由一个中心节点和若干外围节点组成。外围节点既可以是 独立的工作站,也可与多个用户相连,是典型的集中控制方式。中心节点作为网络管理设备, 监控所有外围节点对网络的访问,管理接入点对有线局域网络或服务器的访问及带宽的使用。 例如,可以利用无线Hub 组建星形拓扑结构的无线局域网,它具有与有线Hub 组网方式类似的优点。
(3)分布式。分布式结构类似于分组无线网,所有相关节点在数据传输中都起着控制路 由选择的作用。分布式结构抗毁性好、移动能力强,但网络节点多、结构复杂、成本高、存 在多径干扰等问题。
无线局域网可以在普通局域网的基础上通过无线 Hub、无线接入站 (Access Point,AP)、 无线网桥、无线Modem 及无线网卡等来实现。其中以无线网卡最为普遍,使用最多。
4.2 Internet
Internet是指通过TCP/IP将世界各地的网络连接起来实现资源共享,提供各种应用服务的全球性计算机网络,中文称为“因特网”或“国际互联网”。
组成 Internet 的各个网络称为子网;用于连接子网的设备称为中间系统,它的主要作用是协调各个网络,使得跨网络的通信得以实现。中间系统可以是单独的设备,也可以是单独的网络。
4.2.1 TCP/IP
Internet 的主要协议是TCP 和 IP,所以Intemet 协议也叫 TCP/IP 协议簇。
1、TCP/IP 分层模型
TCP/IP采用分层体系结构,划分为4个层次,分别为网络接口层、网络层、传输层和应用层。
TCP:POP3(邮局协议版本3,下载邮件)、FTP、Telnet、SMTP(简单邮件传输协议)、HTTP
UDP:DHCP、SNMP、TFTP(简单文件传输协议)、DNS
TCP/IP 的主要特点如下。
(1)高可靠性。TCP/IP 采用重新确认的方法保证数据的可靠传输,并采用“窗口”流量控制机制得到进一步保证。
(2)安全性。为建立 TCP 连接,在连接的每一端都必须就与该连接的安全性控制达成一 致。IP 协议在它的控制分组头中有若干字段允许有选择地对传输的信息实施保护。
(3)灵活性。TCP/IP 对下层支持其协议,而对上层应用协议没有特殊要求。因此,TCP/IP 的使用不受传输媒体和网络应用软件的限制。
(4)互操作性。由FTP、Telnet等实用程序可以看到,不同计算机系统彼此之间可采用文件方式进行通信。
TCP/IP模型各层的功能如下。
(1)应用层。应用层为用户提供访问Internet的一组应用高层协议,即一组应用程序。
(2)传输层。传输层的作用是提供应用程序间(端到端)的通信服务。该层提供了TCP和UDP两个主要协议。TCP 负责提供高可靠的数据传送服务,主要用于一次传送大量报文, 如文件传送等;UDP 负责提供高效率的服务,用于一次传送少量的报文,如数据查询等。 为实现可靠传输,该层协议规定接收端必须向发送端发回确认;当有分组丢失时,必须重新发送。
(3)网络层。该层的核心是IP 协议,同时还提供了多种其他协议。IP 协议提供主机间的数据传送能力,其他协议提供IP协议的辅助功能,协助IP协议更好地完成数据报文的传送。
网络层的主要功能有3点:处理来自运输层的分组发送请求;处理输入数据报;处理差错与控制报文,如路由选择、流量控制、拥塞控制等问题。
(4)网络接口层。这是 TCP/IP 协议的最低一层,主要功能是负责接收 IP 数据报,并且通过特定的网络进行传输;或者从网络上接收物理帧,抽出IP 数据报,上交给IP 层。
2、IP
IP上Internet协议簇中最主要的协议之一。IP协议的主要功能是无连接数据报传送、数据报路由选择和差错控制。
IP 数据报的格式
(1)IP 数据报的格式。IP数据报是Internet中的基础协议,由IP控制的基本协议单元称为 IP数据报。IP数据报的一般形式是由报头和报文数据两部分组成,在其报头中包括源地址和目的地址。
IP数据报,每一行是32比特、4个字节,前20个字节的格式是固定的, 选项部分是可变的,数据部分就是上一层的协议数据。
IP 数据报格式中主要字段的定义如下。
版本:用来说明分组使用的协议的版本,这样,可以在不同版本的协议之间传输数据。 目前普遍采用的是IPv4。
报头长度:它只有4个比特,最大值是15,所以IP 协议首部最长是60个字节,去掉20个固定的字节,选项最长是40个字节。
服务类型:使主机可以要求子网用不同的方式来处理数据报,主要是可靠性和速度。
总长度:说明数据报中的所有信息的大小,包括首部和数据,共16比特,最大值是 2¹⁶-1=65535,以字节为单位。
标识:主要解决不同类型网络之间的通信问题。标志字段有3个比特,其中第一位现 已经不用了,中间的一位标识是否允许分段,最后一位用来标识是否还有分段。
片偏移:用来表明分段在数据报中的位置,就像排队用的序号一样,当所有分段到达 的主机以后,就根据它来重新组装分组。它的长度是13比特,以8个字节为单位,所以一 个分组最多可有2^13
=8192个分段, 一个分组的最大长度是2^13
×8=2¹⁶=65536 字节,其实就是64KB, 刚好和总长的最大值一致。
生存期 (Time To Live,TTL):当一个分组经过一个路由器的时候,这个值会被减1,当这个值是0的时候,路由器会直接将这个分组丢掉,不再转发,从而避免一个分组在网络 上“永久存在”。
协议字段:当网络层一个完整的数据报组装完成后,协议字段会告诉传输层由谁来处理这些数据。
报头校验和:检验收到的这些分组是否正确,它只检查首部,在每个路由器上收到一 个分组后,都会进行这个工作,这是因为 TTL 总是不停地改变。
IP 地址
(2)IP 地址。在Intenet 中,根据TCP/IP 规定,每个IP地址长32比特,以U.X.Y.Z格式来表示,U.X.Y.Z分别为8比特,其值为0~255。这种格式的地址被称为“点分十进制” 地址。
IP地址分为5类,其中A 类、B 类和C 类地址为基本的IP 地址(或称主类地址);D类和E类地址为次类地址。各类地址的格式如图4-9所示。
A类地址,第1个比特为“0”,其网络地址空间为7比特,主机地址空间为24比特,起始地址为1~126
,即允许有126种不同的A 类网络,每个网络可容纳的主机数目多达2^24
个。A 类地址结构适用少量的且含有大量主机数据的大型网络。
B类地址,前2个比特为“10”,其网络地址空间为14比特,主机地址空间为16比特,起始地址为128~191
,即允许有高达2^14
种不同的 B 类网络,每个网络可容纳的主机数为 2^16
个。
C类地址,前3个比特为“110”,网络地址空间为21比特,主机地址空间为8比特。起始地址为192~223
,即允许多达2^21种不同的 C 类网络,每个网络能容纳主机256台。
3、TCP
(1)TCP 段的格式。TCP 数据传输的基本单位是段。段由段头和数据区两个部分组成, 如图4-10所示。
TCP段的格式中主要字段的定义如下。
源端口字段标识源应用进程的端口号。
目的端口字段标识目的应用进程的端口号。
序号字段标识段中数据在发送端数据流中的位置。
确认号字段指出本机希望接收的下一个字节的序号。
数据偏移字段指出以32比特为单位的段头长度,也即确定段的数据部分的偏移量。
校验和字段用于校验段头和段数据的完整性。
(2)TCP连接 。TCP 提供面向连接的服务,实现高可靠数据传输,要经过一个连接建立、数据传输和连接释放的过程。
两主机在实现应用进程间的通信之前,必须建立一个连接。TCP 在连接建立的机制上, 提供了3次握手的方法,如图4-11所示。
(3)流量控制
TCP 协议中,数据的流量控制是由接收端进行的,即由接收端决定接收多少数据,发送 端据此调整传输速率。
在连接建立期间,每一端分配接收缓冲区空间供连接使用。进来的数据流入接收缓冲区, 直到与TCP 端口相关的应用程序取走数据进行处理。缓冲区空间用于暂存数据,当应用程序 取走数据后,缓冲区空间被释放用于接收新来的数据。
接收端实现控制流量的方法是采用“窗口”。接收窗口由接收缓冲区空间组成,表示的意义为上一次确认的字节到缓冲区的末尾。窗口是可以滑动的,当数据进入缓冲区时,窗口滑 动,缓冲区剩余空间减少,将限制数据进入;当应用程序从缓冲区中取走数据时,窗口滑动, 缓冲区剩余空间增大,可接收更多新的数据。
(4)拥塞控制。当大量数据报进入网关,致使网关超载而引起严重延迟的现象即为拥塞。 一旦发生拥塞,网关将丢弃数据报,导致重传。而大量重传又进一步加剧拥塞,这种恶性循 环将导致整个 Internet 无法工作,即“拥塞崩溃”。这时,TCP 协议的确认和超时重发机制可 以降低报文复制,但并不能解决所有问题, TCP 提供的更有效的拥塞控制措施是采用滑动窗口技术,通过限制发送端向Internet 输入报文的速率,来达到控制拥塞的目的。
4、ICMP,网际控制信息协议
ICMP 的全称是Internet Control Message Protocol,网际控制信息协议。作为 IP 协议不可缺少的组成部分,ICMP 是IP协议正常工作的辅助协议。当IP数据报在传输过程中产生差错或故障时, ICMP 允许网关和主机发送差错报文或控制报文给其他网关或主机。
在上网的过程中,使用IP 协议的同时,也一直使用着ICMP 协议。例如,当一个分组无法到达目的站点或TTL 超时后,路由器就会丢弃此分组,并向源主机返回一个目的主机不可到达的ICMP 报文。
ICMP 没有使用专用的数据报格式,它的首部使用了IP首部,如图4-12所示。由图可见,ICMP 报文是封装在IP数据报的数据部分进行传送的。
当发送一份ICMP 差错报文时,报文始终包含 IP 的首部和产生 ICMP 差错报文的IP 数据报的前8个字节。这样,接收ICMP 差错报文的模块就会把它与某个特定的协议(根据IP 数据报首部中的协议字段来判断)和用户进程(根据包含在 IP 数据报前8个字节中的 TCP 或UDP 报文首部中的TCP 或 UDP 端口号来判断)联系起来。
可应用ICMP 协议来检测网络、网络中的节点和主机的运行情况,常用的ping使用的就是ICMP 协议。
5、ARP 和 RARP
地址转换协议 (Address Resolution Protocol,ARP),提供网络接口协议,其功能是将 Internet 逻辑地址转换成物理网络(硬件)地址。
ARP 协议是通过定义ARP数据分组来实现的。将带有发送节点的硬件地址和IP地址的ARP数据分组向网络广播,当目的节点收到该分组后进行响应。如果目的节点不存在,则收不到ARP响应。
在每台使用ARP 的主机中,都保留了一个专用的内存区即高速缓存,存放着 ARP 转换表。表中登记了最近获得的 IP 地址和物理地址的对应。当主机收到ARP 响应时,就将目的节点的IP地址和物理地址登记到转换表中。在发送报文时,通过查ARP 转换表来实现地址转换。
反向地址转换协议,RARP 协议的作用与 ARP 正好相反,功能是完成物理地址到 Internet 地址的转换。在网络中,当发送节点广播一个RARP 请求,标识自己作为目的主机并提供自己的物理网络地址。 网络上所有的机器都收到了RARP 请求,但仅仅是那些有权提供RARP 服务的机器处理该请求,并发送回RARP 响应。处理RARP 请求的机器称为RARP 服务器,网络中必须至少包括一台RARP 服务器。
服务器要响应RARP 请求,必须要知道物理地址与Internet 地址的对应关系。为此,在 RARP 服务器中存有一张本网的物理地址与Internet 地址的转换表,其功能类似ARP转换表。
4.2.2 TCP/IP应用
1、IP数据报的传输
(1)数据报封装。网络数据都是通过物理网络帧传输的。作为一种高层网络数据,IP 数据报最终也是要通过帧来传输。
将数据报直接映射到物理网络帧的方式称为数据报封装,其中数据报作为物理网络帧的数据部分来传送。图4-13所示为数据报按帧封装示意图。
(2)分片机制。在数据报传输过程中,理想的情况是 整个数据报能够全部插入到一帧中。显然,这就要求数据 报的长度不大于其传输路由上所有物理网络帧的数据区的 长度。如果数据报太大,则要将数据报分成若干片。在数 据报分片时,每片都要加上IP 报头,形成IP 数据报。
片重组作为分片的逆过程,与分片过程在概念上是相对称的。但它的实现过程是完全不 对称的:分片是在传输路由中的路由器中进行的;所有片重组在目的主机中进行。即当一个 IP 数据报被分片后,各片就作为独立的数据报进行传输,在到达目的主机之前可能再次或多 次再被分片,但绝不进行分片重组。
TCPIP 的 IP 数据报的分片与重组机制,作为网络操作系统的内部功能,由系统内部自 动完成,应用软件或用户都不必关心这一问题。
(3)数据报路由选择。路由选择是IP 协议最主要的功能之一,即是为分组寻找一条从源主机到目的主机的传输路由。
一般来说,路由选择有两种形式:直接路由选择和间接路由选择。
直接路由选择就是将数据报从一台主机直接传送到另一台主机。这是物理网络内部的路由选择,等于物理网络技术的一个细节部分。
当源主机与目的主机处于不同网络时,发送主机的数据报将可能通过若干个网关传输到接收主机中,网关间需要进行多次路由选择。IP 间接路由选择就是指,从若于个网关中,选择一个网关来作为数据报的传输网关。IP 路由选择所要解决的正是间接路由选择问题。
在数据报从源主机到目的主机的传输过程中,主机与网关之间、网关与网关之间每一段的路由选择都包括间接路由选择和直接路由选择。间接路由选择只关心IP 数据报,为其传输选择下一网关;直接路由选择处理的是物理传输,其对象为物理网络帧。
IP 路由选择由改变路由表来实现。在 Internet 中各网关上都包含一个路由表,指明到达目的主机的路由信息。网关通过查路由表,为IP 数据报选择一条到达目的主机的路由。路由表中的每项由两部分构成:
目的网络地址 网关地址
其中,“网关地址”仅是指明路由中下一网关的网络地址。
例如,图4-14为5个网络3个网关组成的 Internet。图中网关 G1 使用其路由表为数据报选择路由。因为G1 与网络号为10、20和30的网络直接相连,可将IP 数据报直接送到这些网络的主机上。当G1 发现IP 数据报的目的网络地址为10、20和30其中之一时,便可立即将 IP 数据报封进相应的物理网络帧中,并经过相应的端口送到该物理网络上,由物理网络对帧进行直接路由选择。如果IP 数据报要到达网络号为50的网络的主机上,网关G1 不能直接到达,就要为其选择下一网关。结果路由为网关G3。网关 G3 可直接将数据报传输到目的主机。
在 Internet 中路由表是固定的,其大小仅与Internet 中的网络数有关,而与其主机数无关。
在路由技术选择中,有两个特例:默认路由选择和特定主机路由选择。
默认路由选择即是让IP 路由选择软件首先查看目的网络的路由表,如果表中无路由,则路由选择例行程序以默认方式发送数据报。当某一主机只能通过唯一一个网关访问其他网络时,该网关便被定义为默认路由。这种方法可以缩小路由表的规模。
特定主机路由选择是对单个主机(而非网络)指定一条特别的路由。这种特定主机路由选择方式可以赋予本地网络管理人员更大的网络控制权,便于测试网络连接,检查路由表, 维护网络安全。
网关的主要功能是为进入的数据报选择路由。按照TCP/IP 规定,只有网关和指定可以做路由选择的多宿主机才能进行IP 路由选择,其他主机则应丢弃不属于自己的数据报,避免进行路由选择。这是因为:其一,主机若收到不属于自己的IP 数据报,说明路由选择错误,如果主机对此数据报进行正确的路由选择,则掩盖了错误;其二,重新路由选择浪费主机机时, 影响其功能,并增加网络不必要的通信量;其三,重新路由选择可能由简单的错误引起大的混乱,使每台主机增加重新路由选择的工作量;其四,网关具有一些专门功能,而主机没有这些功能,重新路由选择会给网络管理带来很大困难。
2、子网与子网掩码
子网编址是在Internet地址中,网络地址部分不变,原主机地址划分为子网络地址和主机地址,这样,IP地址就划分为“网络——子网——主机”3个部分。
能支持的主机数量是:2ⁿ - 2 ,n为主机地址。
子网数 = 2ⁿ,n是子网号位数。
子网掩码是一个IP地址对应的32位数字。其中用所有的“1”表示IP地址中的网络地址段和子网地址段,用所有的“0”表示IP地址中的主机地址段。
A 类:255.0.0.0
B 类:255.255.0.0
C 类:255.255.255.0
要根据一个IP地址来确定其网络号和子网号,需要用子网掩码和这个IP地址进行布尔与运算。
上下都是1的时候为1,否则为0。经过运算,得出的就是网络号,根据它就可以将这个分组转发到相应的网络中。
在工程中常常用 202.106.2.0/26表示网络号和子网掩码,“/26”表示有26位的子网掩码。即26个1。掩码:255.255.255.192
3、域名系统
计算机网络中,主机标识符分为3类:名字、地址和路由。前面曾经提到,在 Internet 中涉及IP 地址和物理地址,这是两类处于不同层次上的地址。物理地址是指物理网络内部所使用的地址,在不同的物理网络中其物理地址模式各不相同; IP 地址用于IP层以上 各层的高层协议中,其目的在于屏蔽物理地址细节,是Internet中提供一种全局性的通用地址。
(1)域名。Internet中 IP 地址由32比特组成,对于这种数字型地址,用户很难记忆和理解。为了向用户提供一种直观、明白的主机标识符,TCP/IP 开发了一种命名协议,可以用符号型命名主机,就像每个人的名字一样,即域名系统 (Domain Name System,DNS)。
Internet 允许每个用户为自己的计算机命名,并且允许用户输入计算机的名字来代替机器的地址。Internet 提供了将主机名字翻译成IP 地址的服务。Internet 的域名服务是通过一 些专门的服务器来完成的,它们就是域名服务器,用于处理IP 地址与主机符号名之间的 转换。
(2)命名机制。对主机名字的首要要求是全局唯一性,这样才可在整个网络中通用;其 次要便于管理,这里包括名字的分配、确认和回收等工作;其三要便于名字与IP 地址之间的转换。对这样3个问题的特定解决方法,便构成了特定的命名机制。
TCP/IP 采用的是层次型命名机制,首先由中央管理机构将最高一级名字空间划分为若干部分,并将各部分的管理权授予相应机构;各管理机构可以将自己管辖的名字空间再进一步划分成若干子部分,并将这些子部分的管理权再授予若干子机构。
(3)域名结构。接入Internet 的计算机其域名的取值应遵守一定的规则, 一般结构如下。
计算机主机名·结构名·网络名·最高层域名
4、IPv6
(1)IPv6报头格式。IPv6数据报头发生根本性改变,主要提供对新的、更长的128位IP地址的支持以及去掉作废的和不用的域。
IPv6的报头相比IPv4 简化了许多。
版本号,即用于记录数据报的版本号,IPv6 中此数为6。
优先级4位长,用于定义传输顺序的优先级。IPv6 头中的优先级把数据报分成两类: 有拥塞控制和非拥塞控制。非拥塞控制的报文比拥塞控制的报文优先路由。
流标识24位长,流标识和源机器IP 地址一起提供网络流标识。
为了防止缓存过大或出现一些过时的信息,IPv6 规定缓存中维护的信息不能超过6s。如果一个具有相同流标识的数据报在6s内没有到达,则缓存项会被删除。为了防止发送机器产生重复值,发送方必须等6s 才能使用相同的到另一目的机的流标识值。
报文长度16位,用于指示整个IP 数据报的长度,以字节为单位。整个长度不包括IP头自身。
下一头用于标识哪一个应用跟在IP头之后。
跳数限制域决定了数据报经过的最大跳数。每一次转发,该数值减1,当跳数限制减少到0时,数据报被丢弃,这一点和IPv4 中的TTL 类似。
(2)IPv6地址。IPv6 和IPv4 相比,最大的变化部分是IP地址的长度和结构。
IPv6 定义了3种不同的地址类型,分别是单播地址、多播地址和任意播地址。所有类型的 IPv6 地址都属于接口而不是节点。一个 IPv6 单播地址被赋给某一个接口,而一个接口又只能属于某一个特定的节点,因此一个节点的任意一个接口的单播地址都可以用来标示该节点。
IPv6的128位地址是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。下列为一个完整的IPv6 地址。
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
IPv6地址的基本表达方式是X:X:X:X:X:X:X:X,其中X 是一个4位十六进制整数。这是比较标准的 IPv6 地址表达方式,如果在分配某种形式的 IPv6 地址时,发生包含长串0位的地址,为了简化包含0位地址的书写,指定了一个特殊的语法来压缩0。使用“::” 符号指示有多个0值的16位组。“::”符号在一个地址中只能出现一次。该符号也能用来压缩地址中前部和尾部的0。
IPv4和IPv6混合使用的时候,采用以下表示形式:
x:x:x:x:x:x:d.d.d.d
其中,x是地址中6个高阶16位段的十六进制值,d是地址中4个低价8位段的十进制值,也就是标准IPv4表示。
(3)IPv4 向 IPv6 过渡。IPv4 向 IPv6 过渡的基本问题是首部翻译,以避免数据丢失。虽然IPv6是以IPv4为基础的,但是二者的首部非常不同。IPv6 首部中的任何不被IPv4 支持的信息(如优先级分类)会在转化过程中丢失。相反,由IPv4主机生成的报文转化为IPv6报文时将会丢失大量信息,其中有一些可能是重要信息。
目前,解决过渡问题的基本技术主要有3种:双协议栈(RFC2893)、 隧道技术(RFC 2893) 和协议翻译技术 (RFC2766)。
双协议栈。采用该技术,节点上同时运行IPv4 和IPv6 两套协议栈。
隧道技术。这种技术提供了一种以现有IPv4 路由体系来传递IPv6 数据的方法:将IPv6 的分组作为无结构意义的数据,封装在IPv4 数据报中,被IPv4 网络传输。
协议翻译技术。转换网关除了要进行IPv4地址和IPv6地址转换外,还要包括协议翻译。转换网关作为通信的中间设备,可在IPv4 和 IPv6 网络之间转换IP报头的地址,同时根据协议的不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。
4.2.3 网络操作系统的功能
网络操作系统(Network Operating System,NOS) 是使网络上各计算机可以方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。网络操作系统实质上就是具有网络功能的操作系统。
1、网络操作系统的特征
网络操作系统除具备单机操作系统并发、资源共享、虚拟和异步性4大特征外,还特别引入了开放性、 一致性和透明性。
(1)开放性。网络操作系统的开放性是指把配置了不同操作系统的计算机系统互连起来形成计算机网络,使不同的系统之间能协调地工作,实现应用的可移植性和互操作性,而且能进一步将各种网络互连起来组成互联网。
(2)一致性。网络操作系统的一致性是指网络向用户、低层向高层提供一个一致性的服务接口。该接口规定了命令的类型、命令的内部参数及合法的访问命令序列等,它并不涉及服务接口的具体实现。即网络用户可以用一致的方法访问网络中的任何文件。
(3)透明性。网络环境下的透明性十分重要,几乎网络提供的所有服务无不具有透明性,即用户只需知道他应得到什么样的网络服务,而无须了解该服务的实现细节和所需资源。事实上,由于用户通信和资源共享的实现都是极其复杂的,因此,如果NOS 不具有透明性这一特征,用户将难以甚至根本不可能去使用网络提供的服务。
2、网络操作系统的功能
网络操作系统的基本任务是用统一的方法管理各主机之间的通信和对共享资源的使用。
网络操作系统作为操作系统,应提供单机操作系统的各项功能,包括进程管理、存储管理、 文件系统和设备管理。除此之外,网络操作系统还应具有以下主要功能。
(1)网络通信。网络通信的主要任务是提供通信双方之间无差错的、透明的数据传输服 务,主要功能包括建立和拆除通信链路;对传输中的分组进行路由选择和流量控制;传输数 据的差错检测和纠正等。
(2)共享资源管理。网络操作系统采用有效的方法统一管理网络中的共享资源(硬件和 软件),协调各用户对共享资源的使用,使用户在访问远程共享资源时能像访问本地资源一样 方便。
(3)网络管理。网络管理中最基本的是安全管理,主要反映在通过“存取控制”来确保数据的安全性,通过“容错技术”来保证系统故障时数据的安全性。
(4)网络服务。网络操作系统直接面向用户提供多种服务,如电子邮件服务、文件传输、存取和管理服务、共享硬件服务以及共享打印服务。
(5)互操作。互操作就是把若干相似或不同的设备和网络互连,用户可以透明地访问各服务点、主机,以实现更大范围的用户通信和资源共享。
(6)提供网络接口。网络操作系统向用户提供一组方便、有效、统一的取得网络服务的接口,以改善用户界面,如命令接口、菜单、窗口等。
3、网络操作系统的安全性
网络操作系统的安全性非常重要,主要表现在以下几个方面。
(1)用户账号的安全性。使用网络操作系统的每一个用户都有一个系统账号和有效的口 令字。
(2)时间限制。系统对每个用户的注册时间进行限定,限定方式以一定的时间间隔为单 位,如半小时间隔方式、星期几的方式等。时间限制功能主要应用在要求具有严格安全机制 的网络环境中。
(3)站点限制。系统对每个用户注册的站点进行限定。站点限定了每个用户只能在指定 物理地址的工作站上进行注册。这样就阻止了企图从其他区域使用并不同于自己的工作站而 进行注册,在一定程度上确保安全性。
(4)磁盘空间限制。系统对每个用户允许使用的磁盘服务器磁盘空间加以限定,以防止 可能出现的某些用户无限制侵占服务器磁盘的情况发生,确保其他用户磁盘空间的安全性。
(5)传输介质的安全性。由于局域网的传输介质,如同轴电缆和双绞线,很容易被窃听, 传输的数据被窃取,因此网络传输介质的安全性也是十分重要的。为此在一些机密环境中, 可以将网络电缆安装在导管内,防止由于电磁辐射而使数据被窃取。也可将网络电缆线预埋 在混凝土内,避免对网络电缆的物理挂接。
(6)加密。对数据库和文件加密是保证文件服务器数据安全性的重要手段。 一般在关闭 文件时加密,在打开文件时解密。很多数据库系统都具有对数据文件进行加密的功能。平常 所遇到的许多加密程序是与某些软件工具一起提供的。
(7)审计。网络的审计功能可以帮助网络管理员对那些企图对网络操作系统实行窃听行 为的用户进行鉴别。当对网络运行机理熟悉的某用户通过多次重复敲入口令字来试探其他用 户口令字时,很多网络就采取一定措施来制止这种非法行为。
4、网络操作系统的结构
(1)网络操作系统的功能结构。网络环境下的操作系统除了原计算机操作系统所具备的模块外,还需配置一个网络通信管理模块。该模块是操作系统和网络之间的接口,它有两个界面, 一个与网络相接,另一个与本机系统相连,分别称为网络接口界面和系统接口界面。
网络接口界面的主要功能是使本机系统和网中其他系统之间实现资源共享,因此需要配 置一套支持网络通信协议的软件,称为网络协议软件。系统接口界面的主要功能是实现本机 系统中的系统进程或用户进程,以便简便地访问网络中的各种资源,同时实现网络中其他用 户访问本机资源。因此需要配置一套与原系统相一致的原语和系统调用命令。
(2)网络操作系统的逻辑结构。网络操作系统NOS 大多数采用客户机服务器模式,在网络服务器上配置NOS 的核心部分,对客户配置工作站网络软件。这样一来,就NOS 的配置而言,NOS 可分为4部分:网络环境软件、网络管理软件、工作站网络软件和网络服务软件。
网络环境软件配置于服务器上,它使高速并发执行的多任务具有良好的网络环境;管理工作站与服务器之间的传送;提供高速的多用户文件系统, 一般包括多任务软件、传输协议软件、多用户文件系统形成软件。
网络管理软件是用于网络管理的操作软件,主要包括安全性管理软件、容错管理软件、 备份软件和性能检测软件。
工作站网络软件配置于工作站上,它能实现客户机与服务器的交互,使工作站上的用户 能访问文件服务器的文件系统、共享资源。工作站网络软件主要有重定向程序和网络基本输 入/输出系统。
网络服务是面向用户的,它是否受到用户的欢迎,主要取决于NOS 所提供的网络服务软 件是否完善。网络服务软件配置在系统服务器上或工作站上。NOS 提供的网络服务软件主要 有多用户文件服务软件、名字服务软件、打印服务软件和电子邮件服务软件。
5、常用操作系统
(1)Windows 系列操作系统。
(2)UNIX 操作系统。
(3)Linux 操作系统。
4.2.4 网络安全的概念
网络安全的通用定义是:网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者人为恶意的原因而遭到破坏、更改、泄露,系统连续、可靠、正常地运行,网络服务不中断。
网络安全包含两大部分内容:一是网络系统安全;二是网络上的信息安全。它涉及网络系统的可靠性、稳定性以及网络上信息的保密性、完整性、可用性、真实性和可控性等。
1、网络安全的定义
网络安全的本质是保证所保护的信息对象在网络上流动或者静态存放时不被非授权用户非法访问。
网络安全的概念归纳起来,涉及以下内容。
(1)网络系统安全。网络系统安全是指保证信息处理和传输系统的安全,包括计算机硬件系统、操作系统和应用软件的可靠安全运行,数据库系统的安全,计算机结构设计上的安全性考虑,计算机系统机房环境的保护,法律、政策的保护,电磁信息泄露的防护等。
(2)网络信息安全。网络信息安全包括用户身份验证、用户存取权限控制、数据存取权限、存储方式控制、安全审计、安全问题跟踪、计算机病毒防治,数据加密等。它侧重于保护信息的保密性、真实性和完整性,避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为,本质上是保护用户的利益和隐私。
(3)网络信息传播安全。网络信息传播安全即信息传播的安全性,主要是信息过滤,侧重于防止和控制非法、有害的信息进行传播;避免公用通信网络上大量自由传输的信息失控。
2、网络安全的需求
(1)保密性。保密性是指确保非授权用户不能获得网络信息资源的性能。为此,要求网络具有良好的密码体制、密钥管理、传输加密保护、存储加密保护、防电磁泄漏等功能。
(2)完整性。完整性是指确保网络信息不被非法修改删除或增添,以保证信息正确、一致的性能。为此要求网络的软件、存储媒体以及信息传递与交换过程中都具有相应的功能。
(3)可用性。可用性是指确保网络合法用户能够按所获授权访问网络资源,同时防止对网络非授权访问的性能。为此,要求网络具有身份识别、访问控制以及对访问活动过程进行审计的功能。
(4)可控性。可控性是指确保合法机构按所获授权能够对网络及其中的信息流动与行为进行监控的性能。为此,要求网络具有相应的多方面的功能。
(5)真实性,真实性又称抗抵赖性,指确保接收到的信息不是假冒的,而发信方无法否认所发信息的性能。为此,要求网络具有数字取证、证据保全等功能。
3、网络安全体系结构
OSI安全体系结构的三维空间表示:
安全攻击:任何可能会危及机构的信息安全的行为。
安全机制:用来检测、防范安全攻击并从中恢复系统的机制。
安全服务:一种用来增强组织的数据处理系统安全性和信息传递安全性的服务。这些服务是用来防范安全攻击的,它们利用了一种或多种安全机制来提供服务。
OSI安全体系结构描述的6大安全服务与8大类安全机制如表4-2所示。
4.3 计算机软件编程基础
4.3.1 数据库系统的基本概念
数据库技术是数据管理的技术,是专门研究如何科学地组织和存储数据、如何高效地获取和处理数据的技术。
1、数据库系统
数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
数据库系统(DataBase System,DBS) 是指在计算机系统中引 入数据库后的系统。它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分组成,如图4-21所示。
数据库 (DataBase,DB)是存储在计算机内、有组织的、可共享的数据和数据对象的集合,该集合按一定的数据模型(或结构)组织、描述并长期存储,并以安全可靠的方法进行数据的检索和存储,具有集成性和共享性。
用户是指使用数据库的人,他们可对数据库进行存储、维护和检索。用户分为3类:最终用户、应用程序员、数据库管理员(DataBase Administration,DBA)。
软件系统主要包括数据库 管理 系统(DataBase Management System,DBMS)及其开发工具、操作系统和应用系统等。DBMS 借助操作系统完成对硬件的访问和对数据库的数据进行存取、维护和管理。
硬件系统指存储和运行数据库系统的硬件设备,包括 CPU、 内存、大容量的存储设备、输入/输出设备和外部设备等。
DBMS。DBMS是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,都是通过数据库管理系统进行的。
DBMS 的主要功能如下。
1、提供数据 定义 语言 (Data Define Language,DDL) 定义数据的模式、外模式和内模式三级模式结构,定义外模式/模式和模式/内模式二级映像,定义有关的约束条件。
2、提供数据 操纵 语言(Data Manipulation Language,DML)实现对数据库的基本操作, 包括检索、更新等。
3、对数据库的运行进行管理。DBMS 对数据库的控制主要通过4个方面实现:数据的安全性控制、数据的完整性控制、多用户环境下的并发控制和数据库的恢复。
4、提供数据库的建立和维护功能。
5、提供与其他软件系统进行通信的功能。
6、负责对数据库中需要存放的各种数据(如数据字典、用户数据、存取路径等)的组织、存储和管理工作,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间的利用率和对数据库进行增、删、改、查的效率。
一个完整的DBMS 通常应由以下部分组成:语言编译处理程序;系统运行控制程序;系统建立、维护程序和数据字典。
2、数据模型
数据模型:用来描述数据、组织数据和对数据进行操作的一种模型。是数据库的框架,是数据库系统的核心和基础。
数据模型的分类:
第一类模型是概念模型,也称为信息模型。它是按用户的观点对数据和信息建模,是对现实世界的事物及其联系的第一级抽象,它不依赖于具体的计算机系统,不涉及信息在计算机内如何表示、如何处理等问题,只是用来描述某个特定组织所关心的信息结构。
第二类模型是逻辑模型和物理模型。这是属于计算机世界中的模型。这一类模型是按计算机的观点对数据建模,是对现实世界的第二级抽象,有严格的形式化定义,以便于在计算 机中实现。任何一个 DBMS 都是根据某种逻辑模型来设计的,逻辑模型主要用于 DBMS 的实现。
概念模型的E-R表示方法:
实体联系模型(Entity Relationship Model),简称E-R模型 。E-R模型利用E-R成分包含实体型、属性和联系。
实体型:用矩形框表示,框内标注实体名称。
属性:用椭圆形框表示,框内标注属性名称,通过无向边与实体相连。
联系:用菱形框表示,框内标注联系名称,并用无向边与有关实体相连,同时在无向边旁标上联系的类型,即1:1(一对一)、1:n(一对多)或m:n(多对多)。
4种数据模型:
1、层次模型:类似倒置树形的父子结构。一个父表可以有多个子表,而一个子表只能有一个父表。优点是不同层次之间的关联性直接且简单。
2、网状模型:使用倒置树形结构。与层次结构不同的是,网状模型的结点间可以任意发生联系,能够表示各种复杂的联系。网状模型的优点是可以避免数据的重复性。
3、关系模型:由行与列构成的二维表。在关系模型中,实体和实体间的联系都是用关系表示。二维表格中既存放着实体本身的数据,又存放着实体间的联系。关系不但可以表示实体间一对多的联系,通过建立关系间的关联,也可以表示多对多的联系。
主键:不为空值,不重复,唯一性。
4、面向对象的数据模型:即采用面向对象的方法来设计数据库。面向对象的数据库的存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。
3、SQL,结构化查询语言
SQL(Structured Query Language):结构化查询语言,是介于关系代数和关系演算之间的语言。SQL 具有丰富的查询功能,还具有数据定义和数据控制功能,是关系型数据库的标准语言。
SQL的基本应用:
1、数据定义(DDL,Data Definition Languages):包括定义表、定义视图和定义索引。
SQL 使用 CREATE TABLE 语句定义基本表,其一般格式如下。
CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束][,<列名><数据类型> [列级完整性约束]]…[,表级完整性约束]);
2、数据查询:查询是数据库的核心操作。SQL 提供了SELECT 语句进行数据库的查询, 其一般格式如下。
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<表名或视图名>[,<表名或视图名>]…
[WHERE<条件表达式>]
[GROUP BY<列名1>[HAVING<条件表达式>]]
[ORDER BY<列名2>[ASC|DESC]];
SELECT 语句的含义是,根据 WHERE 子句的条件表达式,从 FROM 子句指定的基本表或视图中找出满足条件的元组,再按 SELECT 子句中的目标列表达式,选出元组中的属性值形成结果表。
如果有 GROUP 子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,通常会在每组中使用聚集函数。如果GROUP 子句带 HAVING 短语,则只有满足指定条件的组才可输出。如果有ORDER(顺序)子句,则结果表要按<列名2>的值的升序(asc)或降序(desc)排序。
SELECT 语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。
DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop(删除数据库对象)、alter(改变)等。
DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert(插入)、delete(删除数据记录)、update 和select 等。(增删改查)
DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant(授予)、revoke(撤销) 等。
4.3.2 程序设计语言的基本概念
程序是一组有序的计算机指令,这些指令用来指挥计算机硬件系统进行工作。程序设计语言是用于书写计算机程序的语言。人们通过程序设计语言编写程序来指挥和控制计算机运行。
指令:控制计算机执行特定操作的命令。
指令系统:一台计算机所能执行的所有指令的集合。
低级语言是指机器语言和汇编语言。它们都是面向机器的语言,缺乏通用性,执行效率较高,但程序编写效率很低。
高级语言是一种与具体的计算机指令系统表面无关,而对问题和问题求解的描述方法更 接近人们习惯的自然语言,是易于被人们掌握和书写的语言。高级语言的一个语句通常由多 条机器指令组成。高级语言具有共享性、独立性和通用性的优点,但执行效率低于低级语言。 高级语言包括结构化程序设计语言、结构化查询语言和面向对象语言等。
机器语言:直接使用二进制位模式表示的指令编制程序的语言。用机器语言编写的程序能直接被计算机识别和执行,除此之外的其他语言编写的程序都不能被计算机直接执行。
汇编语言:用有意义的符号代表机器指令,就是汇编语言。汇编语言是符号化的机器语言,它用符号来表示指令,通常采用英文单词的缩写和符号来表示操作码,如用 ADD 表示加法、用SUB 来表示减法、用MOV 表示数据的传送等,而操作数可以直接用十进制数书写,地址码可以用寄存器名、存储单元的符号地址等表示。用汇编语言编写程序则比用机器语言编写程序方便多了。
用汇编语言编写的程序称为汇编语言源程序。计算机无法直接执行汇编语言源程序,需要把汇编语言源程序翻译成机器语言程序后,计算机才能执行。将汇编语言翻译成机器语言 的过程称为汇编过程,而计算机上配置好的用于翻译的程序称为汇编程序。
高级语言:以人类日常使用的自然语言为基础的一种编程语言,从而使程序编写员编写程序更容易,亦有较高的可读性。
与汇编语言源程序一样,高级语言源程序也必须被翻译成机器语言程序后才能被计算机执行。
编程模式:在编写计算机程序时,看待要解决的问题的方式。当前可分为:过程式、面向对象式、函数式和说明式。
非机器语言编写的源程序只有翻译成机器语言程序,计算机才能识别和执行。常见的翻译方式有两种: 一种是编译方式;另一种是解释方式。
编译方式是将整段程序进行翻译,把高级语言源程序翻译成相应的机器语言目标程序, 然后连接运行。解释方式则不产生完整的目标程序,而是逐句进行的,边翻译边执行。
(1)编译方式。编译是把源程序的每一条语句都翻译成机器语言,并把翻译之后的结果保存成二进制文件。在程序执行时,计算机就直接以读取机器语言来运行翻译之后的二进制文件。翻译之后的二进制程序称为目标程序或目标代码。此种方式下,翻译与执行是分开的。 由于直接执行翻译之后的机器代码,所以执行速度快。
将高级语言源程序翻译成目标代码的程序称为编译程序或编译器。C 、Fortran 、Pascal 等都是编译型高级语言。
(2)解释方式。解释是对源程序的语句依次翻译并执行,翻译一句执行一句,不生成可存储的目标代码。由于不存储目标代码,所以程序执行时要依次对每条语句先翻译再执行,所以速度慢。
用于解释(并执行)源程序的语言处理程序称为解释程序或解释器。Basic、JavaScript、VBScript 、Perl 、Python 、Ruby 、MATLAB等都是解释型高级语言。
(3)目标代码与可执行文件。编译器对源代码编译后生成的二进制代码称为“目标程序”。 通常,目标程序还不是直接可执行的程序,还需要与支持它运行的其他代码链接到一起之后才形成完整的可执行文件。
(4)链接程序。链接程序将编译器生成的目标程序和系统提供的库文件连接,生成可以装载入内存中运行的可执行文件。各种计算机平台都会提供一些事先编制好的程序代码,实现一些常用功能,为用户程序的运行提供支持,这些代码通常称为库代码。目标程序经过正确链接,就生成了可在计算机上执行的最终代码。
链接程序往往作为编译程序或运行时系统的一个组成部分存在。
4.3.3 软件工程的基本概念
软件工程不仅涉及软件开发的技术过程,还包括软件项目管理和开发支持软件生产的工具、方法和理论等活动。
软件生命周期 (Systems Development Life Cycle,SDLC)又称为软件生存周期或系统开发生命周期,是软件从定义、生产、运行直到报废或停止使用的生命周期。
软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又划分为若干个阶段,各个阶段的任务相互独立。每个阶段结束时会产生一定规格的文档或程序,提交给 下一个阶段作为继续工作的依据。软件生命周期的基本模型如图4-23 所示。
(1)问题定义及规划。此阶段,软件开发方与需求方共同讨论,确定软件的开发目标及其可行性,并制定一个开发计划。
(2)需求分析。此阶段,软件开发方要弄清楚客户对软件的全部需求,有疑问的地方,开发方需派代表同客户方进行沟通,尽可能地将需求明细化,并编写需求规格说明书和初步的用户手册,进行评审。
(3)软件设计。此阶段,软件开发方要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。
(4)程序编码。此阶段,软件开发方要将软件设计的结果转换成计算机可运行的程序代 码。在程序编码中必须要制定统一的、符合标准的编写规范,以保证程序的可读性、易维护性,提高程序的运行效率。
(5)软件测试。此阶段,软件开发方要对软件进行严密的测试,以发现软件在整个设计 过程和编码过程中存在的问题并加以纠正。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
(6)运行维护。软件运行和维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的使用需求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。
软件过程
软件工程中使用的系统化方法有时被称为软件过程。软件过程是指生产软件产品的一系列活动。所有软件过程都包含以下4项基本活动。
(1)软件描述活动是指客户和软件工程师定义要生产的软件及其操作限制。
(2)软件开发活动是指软件的设计和编程。
(3)软件验证活动是进行软件检查,以确保它是客户需要的。
(4)软件进化活动是指修改软件,以反映不断变化的客户需求和市场需求。
不同的软件过程以不同的方式组织以上4项活动的,并且被描述的详细程度也不尽相同。 整个活动的进度情况是由每一个活动的结果来确定的。不同的机构可能用不同的过程生产同一类产品。当然,总有某些过程会更适用于某些类型的应用。一旦使用了不适当的过程,就很可能降低所开发的软件产品的质量和效用。
软件开发组织所用的软件过程大致可分为以下3类。
主生产过程:与软件产品生产直接相关的过程,如需求管理过程、技术预研过程、系统设计过程、软件编码过程、系统测试过程等。
支持过程:这是支持主生产过程的过程,如配置管理过程、质量保证过程、验证与确认过程、评审过程等。
组织过程:软件组织用于建立和实现构成相关软件生产的基础结构、人事制度等活动, 如培训过程、过程改进过程等。
4.4 互联网应用技术
4.4.1 云计算技术
云计算是一种模式,能以泛在的、便利的、按需的方式通过网络访问可配置的计算资源(如网络、服务器、存储器、应用和服务),这些资源可实现快速部署与发布,并且只需要极少的管理成本或服务提供商的干预。
云计算一般具有5大特征:按需获得的自助服务;广泛的网络接入方式;资源的规模池化;快捷的弹性伸缩;可计量的服务。
云计算的主要服务模式(软件、平台、基础设施 即服务)
(1)软件即服务 (Sofware as a Service,SaaS) 以服务的方式将应用软件提供给互联网最终用户。开发商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求, 通过互联网向开发商定购所需的应用软件服务,按定购的服务多少和时间长短支付费用,并通过互联网获得服务。
(2)平台即服务 (Platform as a Service,PaaS) 以服务的方式提供应用程序开发和部署平台,就是指将一个完整的计算机平台,包括应用设计、应用开发、应用测试和应用托管, 都作为一种服务提供给客户。此项服务主要面对应用开发者,在这种服务模式中,开发者不需要购买硬件和软件,只需要利用 PaaS 平台,就能够创建、测试和部署应用和服务,并以 SaaS 的方式交付给最终用户。
(3)基础设施即服务 (Infrastructure as a Service,IaaS) 以服务的形式提供服务器、存储和网络硬件以及相关软件。它是三层架构的最底层,是指企业或个人可以使用云计算技术来远程访问计算资源,这包括计算、存储以及应用虚拟化技术所提供的相关功能。
云计算的关键技术
(1)分布式计算。分布式计算是让几个物理上独立的部件作为一个单独的系统协同工作,这些部件可能指多个 CPU,或者网络中的多台计算机。理想情况下,如果一台计算机能够在5秒内完成一项任务,那么5台计算机以并行的方式协同工作时就能在1秒内完成。而实际上,由于协同设计的复杂性,分布式计算的性能并不能随着节点数量的增加而线性增长,会有一些损失。
分布式计算要解决的核心问题是如何把一个大的应用程序分解成若于可以并行处理的子程序。有两种处理方法: 一种是分割计算,即把应用程序的功能分割成若干个模块,由网络上多台机器协同完成;另一种是分割数据,即把数据集分割成小块,由网络上的多台计算机分别计算,然后对结果进行组合得出数据结论。对于海量数据分析等计算密集型问题,通常采取分割数据的分布式计算方法,对于大规模分布式系统则可能同时采取这两种方法。
(2)分布式存储。分布式存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。其核心是应用软件与存储设备相结合,通过应用软件来实现存储设备向存储服务的转变。
与传统存储相比,分布式存储具有低成本、高效率、部署灵活、扩展性好、可靠性高等优势;在降低运营成本的同时,可以提升服务质量,并且对上层应用、服务对象以及用户透明,大大简化了应用环节,节省了客户建设成本,同时提供了更强的存储和共享功能。
(3)服务器虚拟化。服务器虚拟化也称系统虚拟化,它把一台物理计算机虚拟化成一台或多台虚拟计算机,各虚拟机间通过虚拟机监控器 (Virtual Machine Monitor,VMM) 的虚拟化层共享 CPU 、网络、内存、硬盘等物理资源,每台虚拟机都有独立的运行环境。虚拟机可以看成是对物理机的一种高效隔离复制,要求同质、高效和资源受控。
(4)多租户。多租户是支撑 SaaS 的一项核心软件架构技术。用于实现如何在多用户的环境下共用相同的系统或程序组件,仍可确保各用户间数据的隔离性。多租户的技术要点是在共用的数据中心内,以单一系统架构与服务为多个客户端提供相同甚至可定制化的服务,同时保障客户的数据隔离。
(5)存储虚拟化。存储虚拟化是将存储系统的内部功能从应用、主机或者网络资源上抽象、隐藏或者隔离的技术,其目的是进行与应用和网络无关的存储或数据管理。虚拟化为底层资源的复杂功能提供了简单、一致的接口,使得用户不必关心底层系统的复杂实现。
(6)桌面虚拟化。桌面虚拟化(也称云桌面)是典型的云计算应用,它能够在云中为用户提供远程的计算机桌面服务。云桌面技术在数据中心服务器上运行用户所需的操作系统和应用软件,然后采用桌面显示协议将操作系统桌面视图以图像的方式传送到用户端设备上。同时,服务器将对用户端的输入进行处理,并随时更新桌面视图的内容。
(7)云管理平台。此处的云管理平台特指 IaaS 云管理平台。云管理平台作为整个 IaaS 云体系的“大脑”,构建于服务器、存储、网络等基础设施及操作系统、中间件、数据库等基础软件之上,依据策略实现自动化的统一管理、调度、编排与监控。
云计算系统的典型架构
云计算系统的典型架构一般包括虚拟资源池(物理资源与虚拟资源)、基础架构层、PaaS平台层 (SaaS 软件开发、管理与托管运营平台)、运营管理平台层、服务接入与门户层 5个层次,贯穿这5个层次提供完善的业务活动监控与统一安全管理,如图4-24所示。
1、虚拟资源池:主要实现物理资源与虚拟资源的管理,对资源的池化管理,便于资源的动态分配、再分配和回收,充分体现云计算弹性、可伸缩的特点。资源池主要分为计算资源池、存储资源池和网络资源池,同时也包括软件和数据等内容资源池。
2、基础架构层:此层体现出云计算自身独特的技术特性,主要表现在数据的存储、组织与管理,并行编程模式,并发控制与管理等方面。这一层包含大规模分布式文件系统、大数据量表查询、分布式编程接口和并行任务调度等功能。
3、PaaS 平台层:提供一个 SaaS 软件开发、管理与托管运行的平台。PaaS 平台层必须依托于云计算基础架构,在云计算基础架构能力之上提供 SaaS 软件开发测试能力、部署运行能力以及基础管理能力。
4、运营管理平台层:主要实现映像与实例的全生命周期管理、资源的调度和监控、用户管理、合作伙伴管理、业务管理、平台接口管理、运营管理等功能。
5、服务接入与门户层:主要实现服务接入、自助服务门户、运营管理门户与PaaS 平台门户等功能。
4.4.2 大数据技术
大数据的4V特征:
第一,数量,即数据巨大,从TB 级别跃升到 PB 级别;第二,多样性,即数据类型繁多,不仅包括传统的格式化数据,还包括来自互联网的网络日志、视频、图片、地理位置信息等;第三,速度,即处理速度快;第四,真实性,即追求高质量的数据。
(5V模型就再加一个 低价值密度)
大数据的技术体系
大数据的技术体系可以用一个层次结构描述,自低向高依次如下。
1、文件系统层:在这一层里,分布式文件系统需具备存储管理、容错处理、高可扩展性、 高可靠性和高可用性等特性。
2、数据存储层:由于目前采集到的数据,十之七八为非结构化和半结构化数据,数据的表现形式各异,有文本的、图像的、音频的、视频的等,因此常见的数据存储也要对应有多种形式,有基于键值的、基于文档的,还有基于列和图表的。
3、资源管理器和资源协调器层:这一层是为了提高资源的高利用率和吞吐量,以达到高效的资源管理与调度的目的。在本层的系统需要对资源的状态、分布式协调、一致性和资源锁实施管理。
4、计算框架层:在本层的计算框架非常庞杂,有很多高度专用的框架包含在其内,有流式的、交互式的、实时的、批处理和迭代图等。
5、数据分析层:在这一层里,主要包括数据分析(消费)工具和一些数据处理函数库。这些工具和函数库可提供描述性的、预测性的或统计性的数据分析功能及机器学习模块。
6、数据集成层:在这一层里,不仅包括管理数据分析工作流中用到的各种适用工具,还包括对元数据(Metadata) 管理的工具。
7、操作框架层:这一层提供可扩展的性能监测管理和基准测试框架。
大数据技术
(1)数据存储
在大数据背景下,非关系型数据库 NoSQL 开始发展。这类数据库的主要特点为非关系型的、分布式的、开源的、水平可扩展的。
(2)数据分析
越来越多的应用涉及大数据,这些大数据的属性(包括数量、速度、多样性等)呈现了大数据不断增长的复杂性,所以,大数据的分析方法在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。
大数据分析的6个基本方面如下。
① 预测性分析能力。预测性分析可以让分析员根据可视化分析和数据挖掘的结果做出 一些预测性的判断。
② 数据质量和数据管理。通过标准化的流程和工具对数据进行处理,可以保证一个预先定义好的高质量的分析结果。
③ 可视化分析。数据可视化是数据分析工具最基本的要求。可视化即可以直观地展示数据,让数据自己说话,让观众听到结果。
④ 语义引擎。非结构化数据的多样性带来了数据分析的新挑战,需要一系列工具去解析、提取、分析数据。语义引擎需要被设计成能够从“文档”中智能提取信息。
⑤ 数据挖掘算法。可视化是给人看的,数据挖掘就是给机器看的。集群、分割、孤立点分析还有其他的算法让人们深入数据内部,挖掘其价值。这些算法不仅要处理大数据的量,也要处理大数据的速度。
⑥ 数据存储,即数据仓库。数据仓库是为了便于多维分析和多角度展示数据按特定模式进行存储所建立起来的关系型数据库。
(3)数据可视化
数据可视化,是指将结构或非结构数据转换成适当的可视化图表,然后将隐藏在数据中的信息直接展现于人们面前。数据可视化能将数据以更加直观的方式展现出来,使数据更加客观、更具说服力。在可视化图表工具的表现形式方面,图表类型表现得更加多样化、丰富化。除了传统的饼图、柱状图、折线图等常见图形外,还有气泡图、面积图、省份地图、词云、瀑布图、漏斗图等图表,甚至还有GIS地图。
根据数据类型和性质的差异,数据可视化可分为以下几种类型。
1、统计数据可视化:用于对统计数据进行展示、分析。统计数据一般都是以数据库表的形式提供。
2、关系数据可视化:主要表现为节点和边的关系,如流程图、网络图、UML 图等。
3、地理空间数据可视化:地理空间通常特指真实的人类生活空间,地理空间数据描述了 一个对象在空间中的位置。在移动互联网时代,移动设备和传感器的广泛使用使得每时每刻都产生着海量的地理空间数据。
(4)大数据处理过程
大数据采集:指利用多个数据库来接收发自客户端的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。
大数据导入和预处理:如果需要对海量数据进行有效的分析,就要将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群中,并且可以在导入的基础上做一些简单的清洗和预处理工作。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒的导入量经常会达到百兆,甚至千兆级别。
大数据统计和分析:主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求。
数据挖掘:数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上进行基于各种算法的计算,从而起到预测的效果,从而实现一些高级别数据分析的需求。
4.4.3 物联网技术
物联网是指通过传感器、射频识别技术、全球定位系统等技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各种可能的网络接入,实现物与物、物与人的泛在链接,实现对物品和过程的智能化感知、识别和管理。
物联网的核心和基础仍然是互联网。
物联网的3个主要特征为全面感知、可靠传输、智能处理。
1、全面感知:指物联网随时随地获取物体的各种信息,包括环境信息及物体本身的状态 信息,如物体所处环境的温度、湿度、位置、物体的运动速度等信息。物联网通过 RFID 、传感器、二维码等感知设备对物体的各种信息进行感知获取。
2、可靠传输:指物联网通过对无线网络与互联网的融合,将物体的信息实时、准确地传递给智能处理系统或用户,并将相关的控制信息向下传递到物体,以控制物体的动作或状态的改变。
3、智能处理:此部分将收集来的数据进行处理运算,然后做出相应的决策,来指导系统进行相应的改变,它是物联网应用实施的核心。
物联网的技术架构(感知、传输、应用 层)
1、感知层:主要实现物理世界信息的采集、自动识别和智能控制,包括传感器、RFID等数据采集设备,以及在数据传送到接入网关之前的小型数据处理设备和传感器网络。
2、传输层:是基于现有的通信网络和互联网建立的,包括各种无线网络、有线网络、接入网、核心网,主要实现感知层数据和控制信息的双向传递、路由和控制。
3、应用层:物联网应用涉及行业众多、涵盖面宽泛,总体上可分为身份相关应用、信息汇聚型应用、协同感知类应用和泛在服务应用。
物联网的典型应用
(1)智能交通。智能交通系统 (Intelligent Transportation Systems,ITS) 是一种实时、准确、高效的交通运输综合管理和控制系统。它通过在基础设施和交通工具中广泛应用先进的感知技术、识别技术、定位技术、网络技术、控制技术等,对道路和交通进行全面分析、计算和控制,以提高交通运输系统的效率和安全,同时降低能耗和改善环境。
智能交通并非孤立的智能车辆或简单的车辆网络,而是将人、货物、车辆、道路设施有 机结合,在信息交换的基础上实现交通管理、电子收费、紧急救援,甚至构建起先进的驾驶 操作辅导系统、公共交通系统和货运管理系统的统一整体。
智能交通应用实例有交通检测和管理、不停车收费系统 ETC 、智能停车管理等。
(2)智能物流。智能物流是现代物流发展的理想阶段,其发展呈精准化、智能化、协同化的特点。另外,智能物流还有细粒度、实时性、可靠性等特点,应体现在智能物流的各种 服务中。
智能物流的应用实例如下。
● 基于物联网环境的仓储系统:采用物联网识别技术、感知技术和定位技术等,可以实 时掌握物流过程中产品的品质、标识、位置等信息,实现智能化的仓储管理。
● 可视化RFID 系统:美国国防部在全球部署了以RFID 技术为主的“联合全资产可视化 (Joint Total Asset Visibility,JTAV) 系统”,用于现代化的军事后勤管理。
(3)环境监测。环境监测是最早提出的应用最为广泛、影响最为深远的物联网应用之一。 作为物联网感知识别层的重要手段,无线传感网在环境监测中具有与生俱来的优势。
● 大范围监测:无线传感网突破了人工巡检和单点监测的空间局限性,成千上万个传感器节点协同工作,覆盖上百平方千米。
● 长期无人监测:与人工巡检的方式不同,无线传感网可以长期部署于人迹罕至的恶劣 环境中,无需人工维护或配置,不依赖任何基础设施。感知数据可以通过无线链路传递回监 控中心。
● 复杂事件监测:对于环境监测,有一部分需要关注的事件具有时间和空间关联性,即 只有感知数据在时间上和空间上满足特定的条件,才认为事件发生。这是不能通过人工巡检 或者单点监测实现的。
● 同步监测:在无线传感网中,每个自主的传感器节点可以实时记录环境状况,感知数 据只需通过传感器节点形成的无线多跳网络,就可以实时传输到监控中心。