一、网络应用模型
1.1 客户/服务器模型
1.1.1 工作流程
- 服务器处于接收请求的状态,
- 客户机发出服务请求,并等待接收结果,
- 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机
- 客户程序必须知道服务器程序的地址
1.1.2 最主要的特征:
- 客户是服务请求方,服务器是服务提供方,
- 网络中各计算机的地位是不平等的,服务器可以通过对用户权限的限制来达到管理客户机的目的,使他们不能随意存储/删除数据,或进行其他受限的网络活动。整个网络的管理工作由少数服务器担当,因此网络的管理非常集中和方便
- 客户机之间不能直接通信
- 可扩展性不高,受服务器硬件和网络带宽的限制,服务器支持的客户机的数量是有限的,服务器接入的客户机越多,我的服务器的效率就会越低
1.1.3 常见的使用客户/服务器模型的应用
Web,文件传输协议(FTP),远程登录和电子邮件
1.2 P2P模型
在C/S模型中,服务器性能的好坏决定了整个系统的性能,而P2P模型的思想是整个网络中的传输内容不再被保存在中心服务器中,每一个结点都同时具有下载、上传的功能,其权利和义务都是大体对等的。
1.2.1 P2P模型的优点:
- 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点中,因此大大提高了系统效率和资源利用率
- 多个客户机之间可以直接共享文档
- 可扩展性好
- 网络健壮性好,单个结点的失效不会影响其他部分的结点
1.2.2 P2P模型的缺点
在获取任务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机的速度。
二、域名系统(DNS)
域名系统是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转化为便于机器处理的IP地址。DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。从概念上,DNS分为3部分:层次域名空间,域名服务器和解析器。
2.1 层次域名空间
2.2 域名服务器
2.3 解析器
三、文件传输协议(FTP)
3.1 FTP的工作原理
FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,屏蔽了计算机系统的细节,适合于在异构网络中的任意计算机之间发送文件。FTP使用客户/服务器模型,使用TCP可靠的传输服务。
3.1.1 FTP提供的功能
- 提供不同种类主机系统之间的文件传输能力
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
- 以匿名FTP的方式提供公用文件共享的能力
3.1.2 FTP的工作原理
FTP的服务器进程有两大部分组成:一个主进程:负责接收新的请求;若干个从属进程:负责处理单个请求。
工作的步骤是:
- 打开熟知端口21(控制端口),使客户进程能够连接上
- 等待客户进程发连接请求
- 启动从属进程来处理客户进程发来的请求
- 回到等待状态,继续接收其他客户进程的请求
FTP服务器必须在整个会话期间保留用户的状态信息。
3.2 控制连接和数据连接
FTP在工作时使用两个并行的TCP连接:一个是控制连接(21),一个是数据连接(20)。
3.2.1 控制连接
服务器监听21号端口,等待客户的连接,建立在这个端口的连接称为控制连接,控制连接用来传输控制信息,并且控制信息都以7位ASCII格式发送。
3.2.2 数据连接
四、电子邮件
4.1 电子邮件系统的组成结构
用户代理:用户与电子邮件系统的接口,用户代理具有撰写、显示和邮件处理的功能,通常情况下,用户代理就是一个运行在PC端的程序。
邮件服务器:其功能是发送和接收邮件,同时还要向发信人报告邮件传送情况(已交付,被拒绝,丢失等)。邮件服务器采用客户/服务器模型,但它必须能够同时充当客户和服务器。
电子邮件使用的协议:SMTP是邮件发送协议,POP3是邮件接收协议
4.2 电子邮件格式与MIME
4.2.1 电子邮件格式
4.2.2 多用途网际邮件扩充(MIME)
由于STMP只能发送一定长度的ASCII码邮件,许多其他非英语国家的文字就无法传送,且无法传送可执行文件及其他二进制对象,因此提出MIME,MIME增加了邮件主题的结构。
MIME主要包括三个部分:
- 5个新的邮件首字母,包括:MiME版本,内容描述,内容标识,传送编码和内容类型
- 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行标准化
- 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
4.3 SMTP和POP3
4.3.1 SMTP
SMTP使用客户/服务器模式,用的是TCP连接,端口号为25。
SMTP通信有以下三个阶段:
- 连接建立
- 邮件传送
- 连接释放
4.3.2 POP3和IMAP
邮局协议(POP)是一个非常简单但功能有限的邮件读取协议,使用客户/服务器模型,在传输层上使用TCP,端口号为110,
IMAP是因特网报文存取协议,Wie用户提供了创建文件夹,在不同的文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令。
随着万维网的流行,出现了很多基于万维网的电子邮件,如Hotmail、Cmail等。这种电子邮件的特点是:用户浏览器与Hotmail或Cmail的邮件服务器之间的邮件发送或者接收使用的是Http,而仅在不同邮件服务器之间传送邮件时才使用SMTP。
五、万维网(WWW)
5.1 WWW的概念与组成结构
万维网的内核部分是由三个标准构成:
- 统一资源定位符(URL)
- 超文本传输协议(HTTP)
- 超文本标记协议(HTML)
万维网以客户/服务器模型方式工作的,万维网的工作流程:
- Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求
- Web服务器把URL转换为文件路径,并返回信息给Web浏览器
- 通信完成,关闭连接
5.2 超文本传输协议
5.2.1 HTTP的操作过程
从协议执行过程来说,浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析。一旦获得了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求
万维网的大致工作流程:
每一个万维网站点都有一个服务器进程,它不断地监听TCP的端口(80),当监听到连接请求后,便于浏览器建立TCP连接。然后,浏览器就向服务器发送请求获取某个Web页面的HTTP请求。服务器收到请求后,将构建所请求的Web页的必需信息,并通过HTTP响应返回给浏览器。浏览器再将信息进行解释,然后将Web页面显示给用户。最后,TCP连接释放。
HTTP有两类报文:请求报文和响应报文
5.2.2 HTTP的特点
- HTTP本身是无连接的,虽然HTTP使用TCP连接,但是通信的双方在交换HTTP报文之前不需要进行建立HTTP连接
- HTTP是无状态的,服务器不记得访问过几次客户
- HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求
- HTTP既可以使用非持久化连接,也可以使用持久化连接,非持久化连接:对于每一个网页元素对象的传输都需要单独建立一个TCP连接;持久连接:万维网服务器在发送响应后仍然保持这条连接。持久连接又分为:非流水线和流水线
5.2.3 HTTP的报文结构
- 请求报文:从客户向服务器发送的请求报文
- 响应报文:从服务器到客户的回答
- 开始行:用于区分是请求报文还是响应报文,在请求报文中的开始行称为请求行,在响应报文中的响应行为状态行。
- 首部行:用于说明浏览器、服务器或报文主体的一些信息
- 实体主体:在请求报文中一般不用这个字段,在响应报文中也可能没有这个字段
六、总结
6.1 常见应用层协议小结
- FTP数据连接:使用的协议是TCP,端口号为20
- FTP控制连接:使用的协议是TCP,端口号为21
- TELNET:使用的协议是TCP,端口号为23
- SMTP:使用的协议是TCP,端口号为25
- DNS:使用的协议是UDP,端口号为53
- TFTP:使用的协议是UDP,端口号为69
- HTTP:使用的协议是TCP,端口号为80
- POP3:使用的协议是TCP,端口号为110
- SNMP:使用的协议是TCP,端口号为161
6.2 如何理解客户进程端口号与服务器进程端口号
我们通常所说的熟知端口号是指应用层在服务器端的默认端口号,而客户端进程的端口号是由客户端进程任意指定的。
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号,同时还有告诉服务器进程自己的临时端口号,接着,服务器进程就用自己的熟知端口号与客户进程提供的端口号建立连接。
6.3 互联网、因特网和万维网的区别
互联网泛指由多个计算机网络按照一定的通信协议相互连接而成的一个大型计算机网络
因特网是指在ARPA网基础上发展而来的世界上最大的全球性互联网络。因特网和其他类似的由计算机相互连接而成的大型网络系统,都可算为“互联网”。
万维网是由无数个网络站点和网页的集合,他们一起构成了因特网最主要的部分。
6.4 域名的高速缓存是什么
每一个域名服务器都维护一个告诉缓存,存放最近用过的名字以及从何处获得名字映射信息的记录,可大大减轻根域名服务器的负荷,使因特网上的DNS查询请求和回答报文的数量大为减少。
为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项。