客户/服务器模型 C/S
服务器服务于许多来自其他称为客户机的主机请求
工作流程:
(1)服务器处于接收请求的状态
(2)客户机发送服务请求,并等待接收结果
(3)服务器收到请求后,分析请求,进行必要的处理,得到结果发给客户机
客户程序必须知道服务器程序的地址,服务器程序不需要知道客户的地址
主要特点:
(1)网络中各计算机的地位不平等,服务器可以对用户权限的限制来管理客户机
整个网络的管理工作由少数服务器担当,因此网络管理非常集中和方便
(2)客户机相互之间不直接通信
(3)可扩展性不佳
P2P模型
C/S模型中服务器性能的好坏决定整个系统的性能,大量用户请求时,服务器成为系统的瓶颈
P2P模型每个结点都同时具有下载,上传的功能,其权利和义务大体对等
优点:
(1)减轻了服务器的计算压力,消除对服务器的完全依赖,任务分配到各个结点,大大提高了系统效率和资源利用率
(2)多个客户机直接可以直接共享文档
(3)可扩展性好,传统服务器有相应和带宽的限制,只能接收一定数量的请求
(4)网络健壮性强,单个结点失效不影响其他结点
缺点:获取服务时还要给其他结点提供服务,因此会占用较多的内存,影响整机速度
DNS是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如www.DASDSA.COM)转换为便于机器处理的IP地址。DNS采用C/S模型,运行在UDP之上,使用53号端口
DNS分为三部分
层次域名空间
域可划分为子域,子域还可以划分为子域的子域,形成了顶级域,二级域,三级域
特点:
(1)标号中英文不区分大小写
(2)标号中除连字符-外不能使用其他标点符号
(3)每个标号不超过64个字符,完整域名最长不超过255个字符
(4)级别最低的域名在最左边,最高的在最右边
顶级域名:
(1)国家地区顶级域名:如cn,us,uk
(2)通用顶级域名:com公司,net网络服务机构,org非盈利性组织,gov国家或政府部门
(3)基础结构域名:只有一个,arap,用于反向域名解析,又称反向域名
国家顶级域名下注册的二级域名有国家自行决定;每个域分别由不同的组织管理
域名服务器
域名系统被设计成一个联机分布式的数据库系统,采用C/S模型;域名到IP地址的解析是由域名服务器上的程序完成的,一个服务器负责管辖的范围称为区,每个区设置相应的权限域名服务器,用来保存该区中所有主机的域名到IP地址的映射
DNS使用大量的域名服务器,以层次的方式组织,没有一台域名服务器具有因特网上所有主机的映射
(1)根域名服务器:知道所有的顶级域名服务器的IP地址;它不直接把查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找那个顶级域名服务器进行查询
(2)顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名
(3)授权/权限域名服务器:每台主机都必须在授权域名服务器登记,许多域名服务器同时充当本地域名服务器和授权域名服务器,总能将其管辖的主机名转换为IP地址
(4)本地域名服务器:每个因特网服务提供者都可以有一个,主机发出DNS查询请求,先发给主机的本地域名服务器
域名解析过程
正向解析:把域名映射成IP地址
反向解析:把IP地址映射成域名
域名解析的方式:递归查询,递归与迭代结合的查询
(1)主机向本地域名服务器的查询采用的是递归查询
(2)本地域名服务器向根域名服务器的查询采用迭代查询
为提高DNS的查询效率,并减少因特网的DNS报文数量,在域名服务器中广泛的使用了高速缓存;但主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息
工作原理
提供交互式访问,允许客户指明文件的类型和格式,允许文件具有存取权限,屏蔽了计算机系统的细节,适合在异构网络中的任意计算机之间传送文件;采用C/S工作方式,使用TCP可靠传输;端口号21
提供功能:
(1)提供不同种类主机系统之间的文件传输能力
(2)以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
(3)以匿名FTP的方式提供公用文件共享的能力
FTP服务器必须在整个会话期间保留用户的状态信息
控制连接与数据连接
FTP工作时使用两个并行的TCP连接,一个控制连接(服务器端口号21),一个数据连接(服务器端口号20)
(1)控制连接
用来传输控制信息(如连接请求,传送请求等),并且控制信息都以7位ASCII格式传送
传输文件时还可以使用控制连接,如客户在传输中途发一个终止传输的命令,因此连接一直保持打开状态
(2)数据连接
服务器收到文件传输请求后,就创建数据传送进程和数据连接
数据连接的两种传输模式
主动模式PORT:客户端先连接到服务器的21端口,登录成功后读取数据时,客户端要随机开放一个端口,并告知服务器,服务器收到PORT命令和端口号后,通过20端口和客户端开放的端口连接,发送数据
被动模式PASV:不同是服务器在本地随机开放一个端口,告知客户端,客户端再连接到服务器开放端口进行数据传输
FTP要修改服务器上的文件,必须先传给本地主机,修改后再将副本传给服务器
网络文件系统NFS,运行进程打开一个远程文件,并在文件某个特定位置开始读写数据,这样NFS可使用户复制大文件中一个很小的片段,不需要复制整个文件
三个最主要的组成构件,即用户代理,邮件服务器和电子邮件使用协议
用户代理UA:用户与电子邮件系统的接口,具有撰写,显示和邮件处理的功能,通常情况下就是一个用户程序
邮件服务器:发送和接收邮件,向发信人报告邮件传送情况,采用C/S工作方式,同时充当客户和服务器
邮件发送协议和读取协议:发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP;读取协议用于用户代理从邮件服务器读取邮件,如POP3
邮件分为信封和内容两大部分,内容又分为首部和主体两部分
RFC822规定了邮件的首部格式,主体部分让用户自由撰写,写好首部系统自动填写信封
内容的首部首部包含一些首部行,每个首部行由一个关键字后跟冒号再后跟值组成
多用途网际邮件扩充MIME
SMTP只能传输一定长度的ASCII码邮件,一些其他国家的非英语文字就无法传送,且无法传送可执行文件及其他二进制对象,因此提出MIME
MIMIE并未改动SMTP或取代它,继续使用目前格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则
MIMI主要内容:
(1)5个新的邮件首部字段:MIME版本,内容描述,内容标识,传送编码和内容类型
(2)定义了许多邮件内容的格式:对多媒体电子邮件的表示方法进行了标准化
(3)定义了传送编码,对任何内容格式进行转换,而不会被邮件系统改变
SMTP
简单邮件传输协议SMTP,提供可靠且有效的电子邮件传输的协议,TCP连接,端口号25
(1)连接建立:SMTP客户每隔一定时间对邮件缓存扫描一次,发现有文件就建立TCP连接,建立后,接收方服务器发出220 service ready,然后客户向服务器发送HELLO命令,并附上发送方的主机名;两个服务器直接连接,不管有多远
(2)邮件传送:
MAIL命令后右发件人的地址:MAIL FROM:asudiashd
服务器准备好接收就回答:250 OK
客户端发送一个或多个RCPT命令:RCPT TO:收件人地址;每发送一个RCPT就有一个相应信息从服务器返回;RCPT的作用是检测接收方是否做好接收邮件的准备,然后才发送,避免资源浪费
获得OK后,客户端使用DATA命令,表示要开始传输邮件
(3)连接释放:
邮件发送完毕,客户发出QUIT命令,服务器返回221表示同意释放
POP3和IMAP
邮局协议POP3,非常简单功能有限,使用C/S,TCP,端口号110,
两种工作方式:
下载并保留:读取邮件后仍保存在服务器上
下载并删除:邮件一旦读取就被从邮件服务器上删除
邮件读取协议IMAP:为用户提供了创建文件夹,在不同文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令,为此IMAP服务器维护了会话用户的状态信息
IMAP允许用户代理只获取报文的部分,非常适合低带宽的情况,用户可能不想读取所有邮件
随着万维网的发展,出现了很多基于万维网的电子邮件如Gmail,特点是用户浏览器与邮件服务器之间的邮件发送或接收使用HTTP,仅在不同邮件服务器之间传送才使用SMTP
万维网是一个分布式,联机式的信息存储空间,这个空间中:一样有用的事物称为一样资源,由一个全域同一资源定位符URL标识
这些资源通过超文本传输协议HTTP传送给使用者,而后者通过单击链接来获取资源
超文本标记语言HTML使得万维网页面的设计者可以很方便的用一个超链接从本页面的某处链接到因特网上的任何一个万维网页面,并能够在自己的计算机屏幕上显示这些页面
万维网内核部分的三个标准:
(1)统一资源定位符URL:表示万维网上的各种文档,并使文档具有唯一标识符,相当于一个文件名在网络范围的拓展
(2)超文本传输协议HTTP:一个应用层协议,使用TCP连接进行可靠的传输,是客户和服务器必须遵守的协议
(3)超文本标记语言HTML:使用一些约定的标记对页面上的各种信息,格式进行描述
URL一般形式:<协议>://<主机>:<端口>/<路径>
是面向事物的应用层协议,定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器
操作过程
浏览器访问www服务器时,首先对域名解析,获得IP地址,浏览器就通过TCP向服务器发送连接建立请求
HTTP报文:请求报文,响应报文
具体过程:页面的URL—DNS解析IP地址—建立TCP连接—浏览器发出HTTP请求—服务器发出HTTP响应和文件—释放TCP连接—打开文件并显示页面
特点
HTTP本身是无连接的,交换报文前不需要先建立HTTP连接
是无状态的,同一个客户第二次访问同一个服务器的页面,服务器的响应和第一次访问相同,简化了服务器设计,容易支持大量并发的HTTP请求
既可以使用非持久连接,也可以使用持久连接
非持久:每个网页元素都单独建立一个TCP连接,每次都要建立新的缓存和变量使得服务器负担重
持久:万维网服务器发送相应后仍保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文
持久连接又分为非流水线和流水线两种方式
非流水线:客户在收到前一个响应后才能发出下一个请求,服务器发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源
流水线(HTTP/1.1):客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个的连续发出对各个引用对象的请求
如果所有请求响应都是连续发送,那么所有引用对象共计一个RTT延迟,而不是像非流水线方式那样,每个引用都必须有一个RTT延迟,这种方式减少了TCP连接中的空闲时间,提高了效率
报文结构
HTTP是面向文本的,报文中每个字段都是ASCII码串,长度也不确定
开始行:用于区分是请求报文还是响应报文;请求报文的开始行称为请求行,响应报文的开始行称为状态行。方法是对所请求对进行的操作,方法实际上就是一些命令
首部行:用来说明浏览器,服务器或报文主体的一些信息,首部行结束时,还有一空行将首部行和实体主体分开