应用层
文章目录
网络应用模型
客户/服务器模型
服务器:总是打开的主机
客户机:被服务的主机(请求)
工作流程
服务器处于接收请求
客户机发出服务请求,等待接收结果
服务器收到请求,分析请求,进行处理,得到结果发回客户机
主要特征
客户是服务请求方,服务器时服务提供方;网络中各计算机的地位不平等,服务器通过对用户权限控制达到管理客户机目的,使其不能随意存储/删除数据;客户机相互之间不能直接通信;可扩展性不佳
客户/服务器模型应用
Web;文件传输协议FTP;远程登录;电子邮件
P2P模型
各计算机没有固定的客户和服务器划分;任意一对计算机/对等方直接相互通信;每个结点既作为客户访问其他结点资源,也作为服务器提供资源给其他结点访问
P2P应用:PPlive、Bittorrent、电驴
优点
减轻服务器的计算压力,消除对某个服务器的完全依赖,提高系统效率和资源利用率;多个客户机之间直接共享文档;可扩展性好(传统服务器有响应和带宽的限制,只能接受一定数量请求);网络健壮性强,单个结点的失效不会影响其他部分结点
缺点
占用较多内存,影响主机速度;P2P下载会对硬盘造成较大损伤;网络变得拥塞;各大ISP(互联网服务提供商)都对P2P应用持反对态度
域名系统DNS
概述
因特网使用的命名系统,便于记忆具有特定含义的主机名,转化为机器处理的IP地址
客户机/服务器工作方式;使用UDP协议,53号端口
层次域名空间
层次树状结构命名方法,任何一个连接到Internet上的主机或路由器,都有一个唯一的层次结构【域名】
域名规则:英文不区分大小写;除连字符外不使用其他标点;每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符;级别最低的域名写在最左边,级别最高的域名写在最右边
顶级域名分类
国家顶级域名nTLD:国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,“.uk”表示英国
通用顶级域名gNLD:“.com”(公司) “net”(网络服务机构) “org”(非营利性组织) “gov”(国家或政府部门)
基础结构域名:只有一个ARPA,用于反向解析/反向域名
域名服务器
域名系统被设计成一个联机分布式数据库系统,采用客户机/服务器模型
根域名服务器:最高层次/最重要的域名服务器,所有根域名服务器都知道所有顶级域名服务器的IP地址
顶级域名服务器:管理顶级域名器注册的所有二级域名,收到DNS查询请求时,给出回应(最后的结果/下一步要查找的域名服务器的IP地址)
授权域名服务器(权限域名服务器):每台主机都必须在授权域名服务器上登记;授权域名服务器能将其管辖的主机名转为主机的IP地址
本地域名服务器:当一台主机发出DNS查询请求时,查询请求报文就能发送给主机的本地域名服务器;每个ISP/大学/大学中的系,都可以拥有一个本地域名服务器
域名解析过程
正向解析:域名映射成为IP地址;反向解析:IP地址映射成为域名
查询方式
递归查询:根域名服务器造成负载过大,实际中很少使用
递归与迭代结合的查询:主机向本地域名服务器查询【递归】;本地域名服务器向根域名服务器查询【迭代】
解析过程
1、客户机向其本地域名服务器发出DNS请求报文(递归)
本地域名服务器收到请求,查询本地缓存;若没有记录,则以DNS客户身份向根域名服务器发出解析请求(迭代)
根域名服务器收到请求,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器
2、本地域名服务器向顶级域名服务器dns.com发出解析请求报文(迭代)
顶级域名服务器收到请求,判断该域名属于abc.com域,将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器
3、本地域名服务器向授权域名服务器dns.abc.com发出解析请求报文(迭代)
授权域名服务器dns.abc.com收到请求,将查询结果返回给本地域名服务器
4、本地域名服务器将查询结果保存到本地缓存,同时返回客户机
高速缓存
主机名和IP地址之间的映射不是永久的,DNS服务器将在一段时间后丢弃高速缓存中的信息
优点:提高DNS的查询效率;减少因特网上的DNS查询报文数量
文件传输协议FTP
FTP工作原理
概述
采用客户/服务器工作方式,使用TCP可靠传输
FTP提供交互式访问,允许客户指明文件的类型与格式,允许文件具有存取权限
屏蔽各计算机系统细节,适合在异构网络中的任意计算机之间传输文件
FTP功能
提供不同种类主机系统之间的文件传输能力
以用户权限管理的方式提供用户对远程FTP服务器的文件管理能力
以匿名FTP的方式提供公用文件共享的能力
FTP进程组成
主进程:负责接收新的请求
从属进程:处理单个请求
工作步骤
打开熟知端口21(控制端口)使客户进程能够连接上;等待客户进程发连接请求
启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后终止
回到等待状态,继续接收其他客户进程的请求
FTP服务器在整个会话期间保留用户的状态信息
控制连接和数据连接
特点:FTP在工作时使用两个并行的TCP连接
控制连接(端口号21)
服务器监听21号端口,等待客户连接,建立在这个端口上的连接为控制连接
用来传输控制信息(连接请求、传送请求等)控制信息都以7位ASCII码格式传送
整个会话期间一直保持打开状态
数据连接(端口号20)
服务器端的控制进程在接收到FTP客户发来的文件传输请求后,创建数据传送进程和数据连接;传输完毕后关闭“数据传送连接”结束运行
主动模式传送数据的是“服务器”连接到”客户端“的端口;被动模式传送数据的是”客户端“连接到“服务器”的端口
FTP使用一个分离的控制连接,FTP控制信息带外传送
使用两个不同的端口号可使协议更加简单和容易实现
电子邮件
电子邮件系统的组成结构
用户代理UA:用户与电子邮件系统的接口
邮件服务器:电子邮件系统的核心;发送和接收邮件;向用户回报发送情况
邮件发送协议和读取协议
SMTP:邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件
POP3:邮件读取协议用于用户代理从邮件服务器读取邮件
电子邮件的收发过程
发信人调用用户代理来撰写和编辑发送邮件,用户代理用SMTP把邮件传送给发送方邮件服务器;
发送方邮件服务器将邮件放入邮件缓存队列中,等待发送;
运行在发送方邮件服务器的SMTP客户进程,发现邮件缓存中有待发送的邮件,运行在接收方邮件服务器的SMTP服务器进程发起建立TCP连接;
TCP连接建立后,SMTP客户进程开始向远程SMTP服务器发送邮件,所有邮件发送完毕,SMTP关闭所有建立的TCP连接;
运行在接收方邮件服务器中的SMTP进程收到邮件后,将邮件放入收信人的用户信箱,等待收信人读取;
收信人打算收信时,调用用户代理,使用POP3/IMAP协议将自己的邮件从接收方邮件服务器的用户邮箱中取回(如果邮箱中有来信)
电子邮件格式与MIME
电子邮件格式
to是必填关键字,后面填入一个或多个收件人的电子邮件地址
Subject是可选关键字,邮箱主题,反映邮件主要内容
From是必填关键字,通常由邮件系统自动填入
多用途网际邮件扩充MIME
背景:SMTP只能传送一定长度的ASCII码,许多其他非英语国家的文字(如中文)无法传送;无法传可执行文件以及其他二进制对象;继续使用目前的格式,增加了邮件主体的结构,定义了传送非ASCII码的编码规则
内容:5个新的邮件首部字段,包括MIME版本、类型;定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化;定义了传送编码,可对任何内容格式进行转化,不会被邮件系统改变
简单邮件传输协议SMTP
概述
一种提高可靠而有效的电子邮件传输协议,控制两个相互通信的SMTP进程交换信息
客户机/服务器工作方式
发送邮件的SMTP进程——SMTP客户,接收邮件的SMTP进程——SMTP服务器
TCP连接,端口号=25
通信阶段
连接建立:发件人的邮件发送到发送方邮件服务器的邮件缓存中,SMTP客户每隔一定时间就对邮件缓存扫描一次;发现有邮件,使用SMTP端口号25与接收方邮件服务器的SMTP服务器建立TCP连接;SMTP不使用中间邮件服务器,TCP连接总是在发送方和接收方的邮件服务器之间直接建立
邮件传送:连接建立后,开始传送邮件;邮件的传送从MAIL命令开始,MAIL命令后面有发件人的地址;SMTP服务器已准备好接收邮件,SMTP客户端发送一个/多个RCPT命令【弄清接收方系统是否已做好接收邮件的准备,才发送邮件,避免浪费通信资源】;SMTP客户端使用DATA命令,表示开始传输邮件的内容
连接释放:邮件发送完毕后,SMTP客户应发送QUIT命令;SMTP服务器返回信息时服务关闭,表示SMTP同意释放TCP连接
缺点
SMTP不能传送可执行文件或者其他二进制对象
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家文字
SMTP服务器会拒绝超过一定长度的邮件
邮局协议POP3
概述
简单且功能有限的邮件读取协议,使用的是第3个版本POP3
当用户读取邮件时,用户代理向邮件服务器发出请求,拉取用户邮箱中的邮件
客户机/服务器工作方式;TCP协议,端口号=110
工作方式
下载并保留;下载并删除
因特网报文存取协议IMAP
邮件接收协议,比POP3复杂
用户提供了创建文件夹、在不同文件夹之间移动邮件及在远程文件夹中查询邮件的命令,为IMAP服务器维护了会话用户的状态信息
基于万维网的电子邮件
用户浏览与Hotmail或Gmail的邮件服务器之间的邮件发送或接收使用HTTP
在不同邮件服务器之间传送邮件时使用SMTP
万维网WWW
概念与组成结构
内核部分标准构成
统一资源定位符URL:负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一标识符URL
超文本传输协议HTTP:应用层协议,使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须遵守的协议
超文本标记语言HTML:一种文档结构的标记语言,使用一些约定的标记对页面上的各种信息(包括文字、声音、图像、视频等)格式进行描述
工作流程
Web用户使用浏览器(指定URL)与Web服务器建立连接,发送浏览请求
Web服务器把URL转换为文件路径,返回信息给Web浏览器
通信完成,关闭连接
超文本传输协议HTTP
概述
定义了浏览器如何向万维网服务器请求万维网文档以及服务器怎样把文档传送给浏览器
面向事务的应用层协议
规定了浏览器和服务器之间的请求和响应格式与规则
万维网上能够可靠地交换文件的重要基础
操作过程
每个万维网站点都有一个服务器进程,不断监听TCP端口80;监听到连接请求后便于浏览器建立连接
TCP连接建立——>
浏览器向服务器发送请求获取某个Web页面的HTTP请求;
服务器收到HTTP请求后,构建所请求Web页的必需信息,通过HTTP响应返回给浏览器;
浏览器再将信息进行解释,将Web页显示给用户
——>TCP连接释放
HTTP报文
请求报文、响应报文
用户单击鼠标后发生的事件
浏览器分析链接指向页面的URL,向DNS请求解析域名的IP地址,域名服务器DNS解析出IP地址
浏览器与该服务器建立TCP连接80,发出HTTP请求:GET /chn/index.html;服务器通过HTTP响应把文件index.html发送给浏览器
TCP连接释放;浏览器解释文件index.html 将Web页显示给用户
HTTP的特点
1、无状态,同一个客户第二次访问同一个服务器上的页面时,服务器响应与第一次被访问时的相同
2、无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求
3、使用Cookie+数据库的方式来跟踪用户的活动
4、HTTP采用TCP作为传输层协议,保证数据可靠传输
5、既可以使用非持久连接,也可以使用持久连接
持久连接与非持久连接
非持久连接:每个网页元素对象(如JPEG图像、Flash等)的传输都需要单独建立一个TCP连接
持久连接:万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求和响应报文
非流水线:客户在收到前一个响应后才能发出下一个请求
流水线:客户每遇到一个对象引用,就立即发出一个请求
HTTP的报文结构
HTTP是面向文本的
报文类型
请求报文:从客户向服务器发送请求报文
响应报文:从服务器到客户的回答
方法/操作 | 意义 |
---|---|
GET | 请求读取URL标识信息 |
HEAD | 请求读取URL标识信息的首部 |
POST | 给服务器添加信息(注释) |
CONNECT | 用于代理服务器 |
状态码
1xx:表示通知信息,如请求收到了或正在处理
2xx:表示成功,如接受或知道了
3xx:表示重定向,如要完成请求还必须采取进一步行动
4xx:表示客户的差错,如请求中有错误的语法或不能完成
文:从客户向服务器发送请求报文
响应报文:从服务器到客户的回答
方法/操作 | 意义 |
---|---|
GET | 请求读取URL标识信息 |
HEAD | 请求读取URL标识信息的首部 |
POST | 给服务器添加信息(注释) |
CONNECT | 用于代理服务器 |
状态码
1xx:表示通知信息,如请求收到了或正在处理
2xx:表示成功,如接受或知道了
3xx:表示重定向,如要完成请求还必须采取进一步行动
4xx:表示客户的差错,如请求中有错误的语法或不能完成
5xx:表示服务器的差错,如服务器失效无法完成请求