计算机网络教程谢希仁 编著主讲:龚本灿本课程的教学目的和要求
教学目的,培养高素质、拥有创新能力的网络设计人才和高级网络管理人才。
教学要求:计算机网络的基本概念、基本原理、
局域网的组建,TCP/IP协议,因特网的应用及网络安全
成绩:期未考试 70%,平时成绩 30%,平时成绩包括:
实验,作业,考勤,提问。对提问能主动举手回答,且回答正确的,每次奖平地时成绩 1分。
课堂要求:上课不迟到,认真听讲,不讲小话,
希望对上课有什么要求或建立能及时反映上来,
以便改进教学方法,提高教学质量。
第 1章 概述
1.1计算机网络在信息时代的作用
1.2计算机网络的发展过程
1.3计算机网络的分类
1.4计算机网络的主要性能指标
1.1计算机网络在信息时代的作用
21世纪的特征:数字化、网络化和信息化
知识经济中的两个特点:信息化和全球化
信息化和全球化必需依靠计算机网络。
信息高速公路
1.2计算机网络的发展过程
第一代面向终端的计算机网络
第二代以分组交换网为中心的计算机网络
第三代体系结构标准化的计算机网络
第四代高速化、综合化的计算机网络第一代面向终端的计算机网络
时期,是 20世纪 50年代至 60年代。
产生背景,当时计算机数量很少,价格很昂贵,人们买不起计算机,为了解决“人多机少”的矛盾,想出了多人共用一台计算机的方法,其形式是将一台计算机经过通信线路与若干台终端连接起来,这种简单的计算机联机系统被称为 分时系统 。
典型应用,由一台计算机和全美范围内 2000多个终端组成的 飞机定票系统 。分时系统允许你通过只含显示器和键盘的哑终端来使用主机。
对于远程终端可 通过电话线 与计算机相连。
由于当初计算机的设计主要是用于信息处理的,与终端通信需要主机腾出相当一部分的时间用于通信处理,
这样增加了主机的额外开销,降低了计算机数据处理的速度和效率。为了解决这个问题,在主机前设置一个前端处理机 FEP(Front End Processor),其功能相当于现在的网卡,专门负责处理主机和终端的通信问题,
进行串/并转换、差错控制和数据的收发,使主机专心进行数据处理。
随着终端数目的增加,每增加一个终端就增加一条线路,从而通信费用大大提高。为了节约通信线路和费用,可在终端密集处增加一个 集中器 。
面向终端的计算机网络结构图第二代以分组交换网为中心的计算机网络
时期,是 20世纪 70年代
背景,随着计算机应用的普及和硬件价格的下降,一些大公司常常拥有多台计算机系统,这些计算机系统分布在不同的地点,它们之间需要进行信息交换,人们希望将分布在不同地点的计算机,通过通信线路连接起来。
典型应用,分组交换网
分组交换网产生的原因,
1、连网首先想到利用现有电话网,但传统的电话网不适合计算机数据传输
( 1)采用电路交换方式,通话时全部占用线路;且计算机数据是突发式地出现在传输线路上;因此 线路的利用率低,不到 10%
( 2) 在电路交换传输线路上有任一故障,都需重新拨号建立连接。电路交换的过程是:
建立连接-通信-释放连接电路交换示意图
2、军事上的需要
20世纪 60年代后期,处于美苏冷战时期,为了对付苏联,美国军方一些高层人士提出一种新的设想,要建立一个类似于蜘蛛网
( Web)的打不垮的网络系统,使其在现代战争中,如果通信网中的某一个交换节点或线路被破坏,系统能够自动寻找其他路径,
从而保证通信的畅通。 1969年 12月在美国国防部高级研究计划署 (ARPA)的资助下建立了世界上第一个远程分组交换网 ARPANET,
该网由 通信子网和资源子网 组成。
分组交换网的结构示意图
分组交换的主要特点,
( 1) 以分组为单位发送,通常将欲发送的整块数据称为报文,发送之前,先将较长的报文划分成若干个等长的数据段,并在每个数据段前面,加上一些必要的控制信息组成的首部后,构成一个分组,如书 P4,图 1-3。
( 2) 采用存储转发方式,交换机处理分组的过程是:将收到的分组先放入缓存,再查找路由表(路由表中写有何目的地址应从何端口转发的信息),再将分从适当的端口转发出去。
设主机 H1向主机 H5发数据,分组交换过程:主机 H1将分组发往?结点交换机 A(存储、查路由、转发 )?
下一个结点 (存储、查路由、转发 )?直到 主机 H5,
类似接力赛跑。
分组交换过程
分组交换的优点,
高效,动态分配传输带宽,对通信链路是逐段占用,
共享使用整个通信链路,提高了线路利用率。
灵活,每个结点均有智能,为每一个分组独立地选择转发路由。
迅速,以分组为单位,分组小且不需建立连接。
可靠,由于有冗余的路由,且有完善的网络协议,因此打不垮。
报文交换报文交换也是 采用存储转发方式,出现在 20世纪
40年代的电报通信中,在报文交换中心,以整份电报为单位发送 。这种报文发送的时延较长,从几分钟到几小时不等。现在已不使用。
三种交换的比较第三代体系结构标准化的计算机网络
背景,随着计算机网络的发展,各大计算机厂家纷纷开展计算机网络产品的研制和开发,
同时也提出了各自的网络体系结构和网络协议,如美国 IBM公司的 SNA(System Network
Architecture)、美国 DEC公司的 DNA( Digital
Network Architecture)等。网络体系结构的出现,使一个公司所生产的设备很容易互连成网。但是,由于标准不统一,不同厂家的网络产品互联十分困难,迫切需要制定一个国际标准。
时期,是 20世纪 80年代。
标准,
(1)国际标准化组织 ISO在 1984年正式颁布了 开放系统互联参考模型 OSI/ RM( Open System
Interconnection Reference Model ),简称为 OSI。
(2)80年代初期美国国防部高级研究计划署和美国国防部通信局也在 ARPANET的基础上研制成功了 TCP/IP协议 。
1,Internet的发展史
1984年,ARPANET 分成民用 ARPANET和军用
MILNET
1986年,NFS建立国家科学基金网 NFSNET,
后来接管 ARPANET,并改为 Internet。
1991年:扩大 Internet范围,后商业化。
1996年:美国开始研制下一代 Internet。
2,Internet的标准化工作
Internet由因特网协会 ISOC负责,下有一个技术组织因特网体系结构研究委员会 IAB,
负责有关协议的开发,IAB下设两个工程部:
因特网工程部 IETF(下设若干工作组,负责协议的开发和标准化)和因特网研究部(下设若干研究组,负责理论研究和长期规划)
普通 RFC 文挡?正式标准,经过草案、建议标准、草案标准、正式标准
http//www.rfc-editor.org
3,Internet在我国的发展
1992年,中科院高能物理研究所建立了与西欧的连接。
从那时开始,Internet在我国出现了突飞猛进的发展。尤其是从九六年以后,随着我国信息产业的发展和不断扩大,Internet在国内得到了迅速的普及。现在,国内与
Internet互联的四大信息网络是:
中国公共数据网 CHINANET
中国教育科研网 CERNET
中国金桥网 GBN
中国科技网 CSN。
此外,还有:中国联通互联网 UNINET
中国网通 CNCNET
中国国际经济贸易互联网 CIETNET
中国移动互联网 CMNET
中国长城互联网 CGWNET。
第四代高速化、综合化的计算机网络
背景,全球范围内的信息高速公路热使计算机网络的发展进入了一个新的历史时期。以高速化、综合化 为基本特征的新一代宽带综合业务数字网 B-ISDN(Broad Integrated
Services Digital Network)是第四代计算机网络的代表。所谓高速化是指采用光缆作为传输介质,网络具有宽频带和低时延特点,目前,
高速网络的传输速率可达几 G。所谓综合化是指将语音,视频、图像、数据等多种业务综合到一个网络中去。
时期,是 20世纪 90年代以后
1.3.1计算机网络的定义
1 计算机网络的定义
计算机网络就是利用通信设备和通讯线路把地理上分散的、具有独立功能的多台计算机连接起来,并配以相应的网络软件从而实现 资源共享和信息交换 的系统。
计算机网络与分布式系统的区别两者在硬件组成及拓扑结构上相同,不同的是分布式系统的各计算机对用户就是透明的。
即,对用户来说,分布式系统就好像只有一台计算机一样。用户通过急键入命令就可以运行程序,但用户并不知道是哪一台计算机在为他运行程序,而是由操作系统为用户选择一个最合适的计算机来运行其程序,无需用户干预,而计算机网络则需由用户指定运行程序的计算机。
1按交换方式分
1.3计算机网络的分类分类 电路交换 报文交换 分组交换优缺点优点,信息延时短,并且固定不变;适用于连续、大批量的数据传输。
缺点,建立连接的时间长;
独占信道,线路利用率低。
优点,信道可以进行复用且需要时才分配信道,线路利用率高;不需建立连接。
缺点,延时长;对中继结点存储容量要求较高;差错高优点,转发延时短;数据传输灵活(每个分组可按不同路径不同顺序到达);转发差错少;对中继结点要求低。
缺点,在目的结点要对分组进行重组,增加了复杂性。
实例 电话系统 电报 因特网
2按拓扑结构分有总线型、星型、树型、环型、网状匹配电阻
( b)环形网集线器
( a)星形网
( c)总线网 ( d)树形网干线藕合器
( e)网状 (广域网采用)
星型以太网是目前局域网的主流一般大型企业网或校园网的网络结构。
3按网络地理范围分
1.局域网 ( LAN)
通常在 10km的区域范围内,属一个单位所有,如校园网、企业内部网( Intranet)都属于局域网。
2.城域网 ( MAN)
规模在 10-100km的区域范围内,局限于一座城市。
3.广域网 ( WAN)
网络范围可以覆盖全国,甚至全球。如 Internet属于广域网。
目前局域网和广域网是网络的热点。
3按网络的使用范围分
1.公用网一般是国家的电信部门建造的网络。所有人都可以用。
2.专用网是某个单位建立的网络。
1.4计算机网络的主要性能指标
最主要的两个性能是 带宽 (或吞吐量 )和时延,
1.4.1带宽
1,信号带宽,指某个信号具有的频带宽度。
一个特定的信号是由许多不同频率成份组成的,各种频率成份所占的频率范围,如电话信号的标准带宽是 3.1kHz(300Hz~3.4kHz)。
2,线路的带宽
(1)传模拟信号时用线路上允许通过的信号的频率范围,即“通频带”来度量,单位 Hz,带宽越大,数据率也越高。
(2)传数字信号时在计算机网络中,线路的带宽指线路上能够传送的数字信号的速率,即,数据率,或,比特率,,
单位是 bit/s(bps)。
3,吞吐量指每秒发送的比特数(或字节数、帧数)。
因为带宽代表数字信号的发送速率,因此带宽有时也称为吞吐量。
1.4.2时延数据经历的总时延由三部分组成:
总时延 =传播时延 +发送时延 +排队时延
1、传播时延传播时延 =信道长度 /电磁波在信道上的传播速率信道:传送信号的一条通路。采用多路复用技术,一条线路可以被分割成多条信道。
2、发送时延发送时延 =数据块长度 /信道带宽信道带宽就是数据在信道上的发送速率,也称为信号传输速率。信号传输速率和电磁波在信道上的传播速率是不同的。
3,排队时延指数据在交换结点等候发送所经历的时间。
三种时延产生的地方见书 P17,图 1-11
电磁波在介质中的传播速率为定固定值,约 2.3*105,
因此,传播时延与信道的带宽无关 。
对于高速网络链路,提高的仅仅是数据的发送速率而不是传播速率 。通常所说的“光纤的传输速率高”是指光纤信道的发送速率高,而光纤信道的传播速率实际上还要比铜线略低,光在光纤中的传播速率为 2.05 *105
1.4计算机网络的主要性能指标
1.4.3时延带宽积和往返时延
1,时延带宽积 =传播时延 *带宽时延带宽积表示这个管道的体积,表示链路中可容纳多少个比特。如:链路的传播时延为 20ms,带宽为
10Mbit/s,则时延带宽积 =2*105bit
表示在发送的第一个比特到达终点时,已发送了 20万个比特。
2,往返时延 RTT
表示从发送端发送数据开始,到发送端收到来自接收端的确认,总其经历的时延习题复习作业
P19 3,9,10
第二章计算机网络协议与体系结构
2.1 计算机网络体系结构的形成
2.2 协议和划分层次
2.3 计算机网络的原理体系结构
2.4 OSI与 TCP/IP体系结构 的比较
2.5 客户 -服务器方式
2.1 计算机网络体系结构的形成计算机网络是一个庞大、复杂的大系统,需解决差错控制、路径选择、流量控制等诸多技术问题,为了便于实现和维护,通常将复杂问题划分为多个小问题,然后为每个小问题设计一个单独的协议,各层协议之间高效率地相互作用,协同解决整个通信问题。
将网络系统分成多少层,每层采用什么协议(即实现什么功能),这便是网络的体系结构。即 网络体系结构 是计算机网络的各层及其协议的集合 。
1974年,IBM公司宣布了它研制的系统网络体系结构 SNA,它按分层的方法制定。其后,
其它一些公司也相继推出了自己的网络体系结构。
网络体系结构的出现使得一个公司生产的各种设备能够很容易互连成网。而 不同公司的产品,由于网络体系结构的不同,很难互连,
使得网络扩容时只能再购买原公司的产品。
迫切需要制定网络体系结构的 国际标准 。
国际标准:
(1)国际标准化组织 ISO在 1984年正式颁布了 开放系统互联参考模型 OSI/ RM( Open System
Interconnection Reference Model ),简称为 OSI。
“开放”:只要遵循 OSI标准,一个系统就能和位于世界上任何一个地方的、也遵循同一标准的其它系统进行通信。
(2)80年代初期美国国防部高级研究计划署和美国国防部通信局也在 ARPANET的基础上研制成功了 TCP/IP协议 。
OSI试图达到一种理想境界,全世界的计算机网络都遵循这个统一的标准,方便地互连和交换数据,
但未能实现是由于以下原因,OSI的专家们缺乏实际经验,在完成 OSI标准时没有商业驱动力; OSI
的协议实现起来过分复杂,运行效率低; OSI的制定周期太长,使得按 OSI标准生产的设备无法及时进入市场; OSI的层次划分也不太合理,有些功能在多个层次中重复出现。
由于 Internet的广泛应用,TCP/IP已成为是事实上的国际标准,OSI仅是理论上的国际标准 。 OSI和
TCP/IP的关系类似于世界语和英语的关系。
2.2 协议与划分层次一、网络协议网络能够有条不紊地交换数据,就必须遵守一些事先约定好的规则,类似于交通规则。
1.网络协议,为进行网络中的数据交换而建立的规则标准或约定。
2.网络协议三要素:
语义 ( Semantics),控制信息的 含义 ;
语法 ( Syntax),数据与控制信息的 格式 ;
时序 ( Timing),事件先后 顺序 。
以两个人打电话为例来说明协议的概念:
甲给乙打电话的过程中双方都遵守了电话的协议 。
其中,电话号码就是,语法,的一个例子,一般电话号码由五到八位阿拉伯数字组成,如果是长途要加拨区号,国际长途还有国家代码等等;
甲拨通乙的电话后,乙的电话振铃,振铃表示有电话打进,就是,语义,的例子 ;
因为甲拨了电话,乙的电话才会响,乙听到铃声后才会接,这一系列事件的因果关系 就是,时序,
的例子 。
二、协议的分层
.网络协议分层的好处,
1) 各层之间是独立的 。某一层并不需要知道它的下一层是如何实现的,而仅需要知道该层通过层间接口所提供的服务。
2) 灵活性好 。当任何一层发生变化时,只要层间接口关系保持不变,则其它层均不受影响。
3) 结构上可分割开 。各层都可以采用最合适的技术来实现。
4) 易于实现和维护 。大系统变成了若干个子系统。
5) 能促进标准化工作 。每一层的功能及其所提供的服务都有精确的说明。
分层原则,每层的功能应非常明确;层数不能太少,
以避免不同的功能混杂在同一 层中,协议太复杂,
但也不能太多,否则体系结构会过于庞大,
由于有了网络体系结构的规范,网络开发人员就可以根据协议设计每一层的软件程序或是硬件设备。 需要指出的是网络体系结构并不包括实现细节和接口规范,这些都是各个计算机系统设计者需要解决的问题。
通常每一层所要实现的功能往往是下面的一种功能或多种功能:
(1)差错控制
(2)路径选择
(3)流量控制
(4)分段与重装:将数据块划分成小块
(5)复用与分用:几个高层会话复用一条低层连接
(6)连接建立与释放我们希望退货他们要退货尊敬的J o h n,
由于.,,方面的原因我们希望退货尊敬的J o h n,
由于.,,方面的原因我们希望退货经理们的想法公司之间的正规书信利用信函、
传真等传递的公文尊敬的J o h n,
由于.,,方面的原因我们希望退货尊敬的J o h n,
由于.,,方面的原因我们希望退货
F A X #,,,F A X #,,,
图2 - 1 协议层次实例图 2-1的例子来说明层次结构的通信原理每个公司都形成了三个层次的机构,经理、高级助理、
秘书 。每一层都有各自的功能,遵守该层的协议,每一层都不关心下一层的实现细节,并向上一层提供服务。
甲方经理对乙方的供货不满意,希望退货。
高级助理起草一份 一份正式公函,并加上了一些理由。
秘书发送 。采用电话或传真。
一,OSI与 TCP/IP体系结构应用层物理层数据链路层网络层传输层会话层表示层图2 - 5 O S I 参考模型与T C P / I P 参考模型
O S I 参考模型 T C P / I P 参考模型应用层网络接口层互连层传输层
1.3.2 计算机网络的原理体系结构
1.3.2 计算机网络的原理体系结构
一,OSI体系结构:分七层
二,原理体系结构,为了便于讲解网络原理,综合 OSI 和 TCP/IP的优点,采用五层的体系结构各层的功能
1,应用层,直接为用户的应用进程提供服务,并为网络用户之间的通信提供专用的程序 。 常用的应用层协议有
HTTP超文本传输协议,SMTP简单电子邮件传输协议,
FTP文件传输协议等 。
2、传输层,负责主机中两个进程之间的通信,对高层屏蔽了通信子网的实现细节,真正实现了源主机到目的主机的“端”到“端”的通信。传输的数据单元为报文。
因特网的运输层可使用两种不同的协议,传输控制协议
TCP和用户数据报协议 UDP。
TCP协议是可靠的、面向连接的协议 。它保证通信主机之间有可靠的字节流传输。 UDP是一种不可靠的、无连接协议 。它最大的优点是协议简单,额外开销小,效率较高;
缺点是不保证正确传输。只是尽力传送。
需要可靠数据传输保证的应用应选用 TCP协议;
相反,对数据精确度要求不是太高,而对速度、效率要求很高的环境,如声音、视频的传输,应该选用 UDP 协议。
网络层,负责在互连网上传输数据分组,主要功能是路径选择。数据的传送单位是 分组或包 。
因特网中网络层又叫网际层或 IP层,主要协议有 网际协议 IP,IP是无连接的协议。
数据链路层,负责在两个相邻结点间无差错地传送帧。
数据单位是帧。每一帧包含有必要的控制信息,控制信息有同步信息、地址信息、差错控制、及流量控制等。
数据链路层将一条有可能出错的实际链路,转变成让网络层看上去好像是一条不出错的链路。
物理层,负责透明地传送比特流。 传输单位是比特 。
透明 表示某一个实际存在的事物看起来却好像不存在一样。
我们通常说玻璃是透明的,是因为透过玻璃看过去,
视觉不受影响,好像不存在一样。
,透明地传送比特流”表示经实际电路传送后的比特流没有发生变化,因此,对传送流来说,由于电路并没有对其产生影响。因而是透明的。
物理层顺序地传输,0”,,1”信号,但不必考虑这些
,0”,,1”信号表示什么意义 。
物理层要考虑多大的电压表示,1”或,0”,连接插头的形状,大小,引脚数等 。
数据在各层的传递过程数据在各层的传递过程
虽然应用进程数据要经过上图所示的复杂过程才能送到对方的应用进程,但这些复杂过程对用户来说都已被屏蔽掉了,以致发送进程觉得好像是直接把数据交给了接收进程。
同理,任何两个同样的层次都好像将数据通过水平虚线直接交给对方。称为对等层间的通信。不同系统中的相同层次称为 对等层 。
协议栈 指系统中所有层次的协议的列表 。 画在一起看上去很像栈 。
1.3.2 计算机网络的原理体系结构
2.实体、协议、服务、服务访问点:
实体,能够发送和接收信息的软件进程或硬件(如
I/O芯片),位于不同系统中的同一层次的实体叫做对等实体。
协议,是控制两个对等实体进行通信的规划的集合 。
服务,描述了每一层的功能。在协议的控制下,第
N层能够向 N+1层提供服务,要实现 N层协议,又需要利用 N-1层提供的服务。
服务是同一开放系统中相邻层之间的操作,是“垂直的”;协议是不同开放系统的对等实体间虚拟通信所必须遵守的规定。是“水平的”。
服务访问点 SAP(Service Access Point)是同一系统中相邻两层实体进行交互 ( 即交换信息 ) 的地方 。
实际上就是一个逻辑接口,有些像邮政信箱 。
服务原语,上层调用下层所提供的服务必须通过与下层交换一些命令,这些命令在 OSI中称为服务原语。 所谓原语,就是不可再细分的意思。
服务原语 要通过服务访问点 SAP来传递,原语先放在 SAP的队列中。实体从 SAP队列中取出原语并执行。原语是如何实现的,完全是各层实体内部的事情,SAP完全不必考虑。
数据单元,在 OSI/RM中规定了下列数据单元:
服务数据单元 ( SDU)
相邻层实体间传送的数据单元;并将 N+1层向 N
层传送信息的服务数据单元记为 ( N) SDU。
协议数据单元 ( PDU)
对等实体之间传送的数据单元;并将 N层的协议数据单元记为 ( N) PDU。
( N) PDU由两部分组成,( N) SDU和 N协议控制信息 ( N) PCI;
2.3.3面向连接的服务和无连接的服务
1) 面向连接的服务面向连接的服务就象打电话,有一个明显的拨通电话、
讲话、再挂断电话的过程,面向连接服务也经过:
建立连接?数据交换?释放连接 的过程,这种服务的最大好处就是可靠性高,而且保证数据顺序传输,
但建立连接的时间长,适合于向某一目的地连续发送许多报文的情况。
面向连接的服务在 网络层称为虚电路服务。如 X.25的网络层。
若两个用户需要经常进行通信,则可建立 永久虚电路,
查免除每次通信时建立和释放连接。
2) 无连接服务无连接的服务就像寄信,信发出后你并不能确认对方已经收到,无连接服务的优点是不需要建立连接,
灵活方便迅速,但是可靠性较低,不能防止报文的丢失、重复、失序。适合于传送少量零星的报文。
无连接的服务在 网络层称为 数据报服务 。如 Internet
的 IP层。
那么 Internet中如何保证可靠性?
2.4 OSI与 TCP/IP体系结构的比较应用层物理层数据链路层网络层传输层会话层表示层图2 - 5 O S I 参考模型与T C P / I P 参考模型
O S I 参考模型 T C P / I P 参考模型应用层网络接口层互连层传输层
1,OSI的体系结构
分七层协议,将原理体系结构的应用层再划分为三层:应用层、表示层和会话层。
表示层 解决数据表示问题,实现格式转换、数据的加密、解密、压缩等。
会话层 对数据传输进行管理,如断点续传。
注意,TCP/IP并不是指 TCP和 IP这两个具体的协议,
而是指 TCP/IP协议族 (一组协议)
2.TCP/IP协议族
3,TCP/IP和 OSI的不同点:
1) TCP/IP一开始就考虑到多种异构网的互连问题。
2) TCP/IP一开始就对面向连接的服务和无连接的服务并重。而 OSI只强调面向连接的服务。
3) TCP/IP有较好的网络管理功能,而 OSI到后来才考虑这个问题。
总之,OSI参考模型虽然一直被人们所看好,但由于没有把握好时机,技术不成熟,实现起来很困难,迟迟没有一个成熟的产品推出,大大影响了它的发展;
相反,TCP/IP虽然有许多不尽人意的地方,但近 30年的实践证明它还是比较成功,特别是近年来国际互连网络的飞速发展,也是它获得了巨大的支持。
2.5 客户 -服务器方式
Internet上客户端和服务器之间采用一种叫 客户/服务器
( C/ S,Client/ Server)的方式进行工作,如 WWW、
FTP服务等。客户/服务器系统是计算机网络(尤其是
Internet)中最重要的应用技术之一。
客户/服务器的概念来源于日常生活中。例如,在一个商店买东西时,顾客先向服务员提出购买请求(如商品名称、数量等),服务员按要求将商品提供给顾客,这种分工、协作的工作方式就是 C/ S方式。
采用客户 /服务器的网络,服务器端安装有服务器软件,
常用的 Internet服务器软件有 WWW服务器软件,FTP服务器软件、电子邮件服务器软件等。一台服务器上可以同时安装多个服务器软件。 客户端安装有客户端软件,
常用的 Internet客户端软件有 IE。
客户 /服务器的工作过程是,用户通过客户端软件向服务器发出请求,服务器上的服务器软件接收到请求后,
进行相应的处理,并将请求结果返回给客户。
例如,在客户机浏览器的地址栏输入
http://www.ctgu.edu.cn/netresources/dianqi/jsj.htm后,
客户机将请求发送给主机 www.ctgu.edu.cn,主机看到是采用 http(超文本传送协议 ),便和主机上的 WWW服务器建立连接,WWW服务器接下来检索出页面文件 jsj.htm,并传送给客户端,客户端浏览器收到后显示页面内容。
除了 TCP/IP采用客户 /服务器方式工作外,还有 大型数据库系统(如 Sybase,Microsoft SQL Server,Oracle
等)也采用 C/S方式,服务器端安装大型数据库系统,
充当服务器;客户端安装客户端软件,如财务软件。
客户端软件发出的 SQL指令,如 Select * from 工资库 where 姓名 =‘张三’,数据库服务器收到后会从数据库取出张三的工资,返回给客户端,减少了网络流量,提高了效率。这一点与小型数据库(如
Access,Foxpro等)不同。
习题作业
P33 1,2,4,6
网络体系结构的设计和实现方法
(选讲 )
实现要点
1.重要的网络类
TNetEntity(实体):包含有原语的实现函数
TNetSAP(服务访问点 ):定义有消息队列
TNetMSG(服务原语消息):消息对象包含有原语的名称及参数
2.不同类对象的结合关系
2.P84 图 2.7 OSILite 类体系图
1.P82 图 2.4 OSILite 对象结构实体类的方法:
virtual void upConnReq() {} // 处理上层连接请求原语,派生类应超越
virtual void upConnResp() {} // 处理上层连接响应原语,派生类应超越
void upConnInd(); // 向上层发出连接指示原语
void upConnConf(); // 向上层发出连接证实原语
virtual void upDataReq(int,char *) {} // 处理上层数据请求原语,
void upDataInd(int,char *); // 向上层发出数据指示原语
virtual void upDiscReq() {} // 处理上层释放连接请求原语,
void upDiscInd(); // 向上层发出释放连接指示原语
virtual void downDataInd(char) {}// 处理下层数据指示原语,派生类应超越
virtual void downDataConf() {} // 处理下层证实原语,派生类应超越
void downDataReq(int,char *); // 向下层发出数据请求原语服务访问点类
{// 枚举方式定义数据链路层服务原语名称及类型
enum {CONN_REQ,CONN_IND,CONN_RESP,
CONN_CONF,DATA_REQ,DATA_IND,
DISC_REQ,DISC_IND,DISC_RESP,DISC_CONF
};
protected:
TNQueue qUp,qDown;// 定义上行、下行消息队列
public:
void putUp(TNetMSG*); // 在上行消息队列中追加指定原语消息
void putDown(TNetMSG *); // 在下行消息队列中追加指定原语消息
};
class TNetMSG:public TNObject 服务原语消息类
{public:
unsigned int iPrimitive; // 原语消息名称及类型标识
int iLength; // 原语参数长度
char *cpParameter; // 指向参数的指针
// 构造时需指定原语名称及类型、参数长度、参数
TNetMSG(int p,int l=0,const char *c=0)
{ iPrimitive=p; iLength=l;
if(l)
{ cpParameter=new char[l];
memcpy(cpParameter,c,l);
}
}
};
网络层服务原语的实现实例
void TNetNLEntity::upDataUnitInd(int l,char *buf)
// 向上层发出数据单元指示原语,用调用参数构造消息
// 调用参数,buf是指向数据的指针,l是数据长度
{
TICIdataunitNL *p = (TICIdataunitNL *)buf;
TNetNLSAP *sap=getUpSAP(p->da);
if(*sap!=(TNetNLSAP &)NOOBJECT)
sap->putUp(new
TNetMSG(TNetNLSAP::DATAUNIT_IND,l,buf));
}
void TNetNLEntity::run()
// 主运行函数,处理相关 SAP中保存的消息,处理协议事件
{ // 首先,检查并处理来自数据链路层的原语消息
msg=&(sap->getUp()); // 取消息
if (*msg!=(TNetMSG &)NOOBJECT)// 如果有消息
{ switch(msg->iPrimitive)
{
case TNetDLLSAP::CONN_IND:// 连接指示原语
downConnInd(sap->address); break;
case TNetDLLSAP::CONN_CONF,// 连接证实原语
downConnConf(sap->address); break;
case TNetDLLSAP::DATA_IND,// 数据指示原语
downDataInd(msg->iLength,msg->cpParameter,
sap->address); break;
case TNetDLLSAP::DISC_IND:// 释放连接指示原语
downDiscInd(sap->address); break;
}
//从运输层获得并处理原语消息
TNetNLSAP *sap=(TNetNLSAP *)&(litUp++);
msg=&(sap->getDown()); // 取消息
if (*msg!=(TNetMSG &)NOOBJECT)// 如果有消息
{switch(msg->iPrimitive)
{
case TNetNLSAP::DATAUNIT_REQ:// 数据单元指示原语
upDataUnitReq(msg->iLength,msg->cpParameter);
break;
– ………
}