网络应用模型
客户/服务器模型
客户是服务请求方,服务器是服务提供方
常见的使用客户/服务器模型的应用包括:Web、文件传输协议(FTP)、远程登录和电子邮件
C/S模型主要特点:
- 网络中各计算机的地位不平等
- 客户机之间不直接通信
- 可扩展性不佳
P2P模型
在P2P模型中,各计算机没有固定的客户和服务器划分
任意一对计算机称为对等方,直接相互通信
与C/S模型相比,P2P模型的优点:
- 减轻了服务器的计算压力,消除了对某个服务器的完全依赖
- 多个客户机之间可以直接共享文档
- 可扩展性好
- 网络健壮性强
P2P模型的缺点:在获取服务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机速度
域名系统(DNS)
DNS用来把便于记忆的具有特定含义的主机名转换为便于机器处理的IP地址
采用C/S模型,运行在UDP上,使用53号端口
层次域名空间
因特网采用层次树状结构的命名方法
域名标号中的英文不区分大小写
顶级域名分类:
- 国家(地区)顶级域名
- 通用顶级域名
- 基础结构域名
域名服务器
根域名服务器
最高层次的域名服务器
所有的根域名服务器都知道所有的顶级域名服务器的IP地址
最重要的域名服务器
顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名
授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记
本地域名服务器
域名解析过程
域名解析是指把域名映射成为IP地址(正向解析)或把IP地址映射成为域名的过程(反向解析)
域名解析两种方式:
- 递归查询
- 递归与迭代相结合的查询
查询方式:
- 主机向本地域名服务器的查询采用的是递归查询
- 本地域名服务器向根域名服务器的查询采用迭代查询
文件传输协议(FTP)
工作原理
FTP提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
FTP提供的功能:
- 提供不同种类主机系统之间的文件传输能力
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
- 以匿名FTP的方式提供公用文件共享的能力
FTP采用C/S的工作方式,使用TCP
FTP的服务器进程:
- 一个主进程:负责接收新的请求
- 若干从属进程:负责处理单个请求
控制连接与数据连接
FTP工作时使用两个并行的TCP连接:
- 控制连接(端口号21)
- 数据连接(端口号20)
数据连接有两种传输模式:
- 主动模式PORT
- 被动模式PASV
主动模式传送数据是服务器连接到客户端的端口
被动模式传送数据是客户端连接到服务器的端口
FTP的控制信息是带外传送的
电子邮件
系统组成
- 用户代理
- 邮件服务器
- 电子邮件使用的协议:SMTP,POP3(或IMAP)
电子邮件格式与MIME
电子邮件格式
一个电子邮件格式分为信封和内容
To是必须的关键字,后面填入一个或多个收件人的电子邮件地址
Subject是可选关键字,是邮件的主题,反映了邮件的主要内容
必填关键字From
多用途网际邮件扩充(MIME)
SMTP只能传送一定长度的ASCII码邮件
MIME定义了传送非ASCII码的编码规则
SMTP和POP3
SMTP
简单邮件传输协议(SMTP)是一种提供可靠且有效的电子邮件传输的协议,它控制两个互相通信的SMTP进程交换信息
SMTP使用C/S方式
使用TCP连接
端口号为25
三个阶段:
- 连接建立
- 邮件传送
- 连接释放
POP3和IMAP
邮局协议(POP)是一个非常简单但功能有限的邮件读取协议
POP使用C/S方式
TCP
端口号110
POP有两种工作方式:
- 下载并保留
- 下载并删除
因特网报文存取协议(IMAP)
万维网(WWW)
WWW组成结构
WWW是一个分布式、联机式的信息存储空间
由一个全域 统一资源定位符(URL)标识
通过超文本传输协议(HTTP)传送给使用者
超文本标记语言(HTML)
WWW内核部分由三个标准构成
- 统一资源定位符(URL)
- 超文本传输协议(HTTP)
- 超文本标记语言(HTML)
URL的一般形式:<协议>://<主机>:<端口>/<路径>
C/S工作
超文本传输协议(HTTP)
通过TCP向服务器发送连接建立请求
端口80
HTTP的特点
使用TCP作为运输层协议,保证了数据的可靠传输
HTTP本身是无连接的
HTTP是无状态的
Cookie是存储在用户主机中的文本文件
HTTP既可以使用非持久连接,也可以使用持久连接
持久连接又分为非流水线和流水线
HTTP的报文结构
HTTP是面向文本的
HTTP报文:
- 请求报文:从客户向服务器发送的请求报文
- 相应报文:从服务器到客户的回答
开始行:
请求报文中的开始行称为请求行
相应报文中的开始行称为状态行
HTTP请求报文中常用的方法:
方法(操作) | 意义 |
---|---|
GET | 请求读取由URL标识的信息 |
HEAD | 请求读取由URL标识的信息首部 |
POST | 给服务器添加信息 |
CONNECT | 用于代理服务器 |
常见应用层协议:
应用程序 | FTP数据连接 | FTP控制连接 | TELNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | UDP |
熟知端口号 | 20 | 21 | 23 | 25 | 53 | 69 | 80 | 110 | 161 |
Tips
客户机是面向用户的,服务器是面向任务的
如果一台主机通过两块网卡连接到这个网络,那么就具有两个IP地址,每个网卡对应一个MAC地址,这两个IP地址可以映射到同一域名上
Internet上提供访问的主机一定要有IP地址,而不一定要有域名
POP3协议在传输层使用明文来传输密码