网络应用体系结构
客户机/服务器结构
服务器:
- 7*24小时提供服务
- 永久性访问地址/域名
- 利用大量服务器实现可扩展性
客户机:
- 与服务器通信,使用服务器提供的服务;
- 间歇性接入网络;
- 可能使用动态IP地址;
- 不会与其他客户机直接通信;
点对点结构
- 妹有永远在线等待服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
混合结构
文件传输使用P2P结构;
文件搜索采用C/S结构-集中式:
- 每个节点向中央服务器等级自己的内容;
- 每个节点向中央服务器提交查询请求,查找感兴趣的内容;
网络应用进程通信
套接字(SOCKET)
进程间通信利用socket发送/接受消息实现
进程标识符:IP地址 + 端口号
应用层协议内容:
①消息类型:
- 请求消息
- 响应消息
②消息语法:
- 消息中有哪些字段
- 每个字段如何描述
③字段的语义
④规则:进程何时发送/响应消息
网络应用的需求与传输层服务
数据丢失/可靠性:容忍一定数据丢失,百分百可靠传输。
时间延迟:对于延迟的要求不同。
带宽:有些应用需要带宽达到最低要求,有些应用可以适应任何带宽。
Internet提供的传输服务
Web应用
寻址:
- URL:统一资源定位器
- hostname + pathname
HTTP协议
超文本传输协议:C/S协议
客户:请求、接受、展示Web对象
服务器:响应客户的请求,发送对象
使用TCP传输服务
无状态协议:服务器不维护任何有关客户端过去所发请求的信息。
TIPS:有状态的协议面临的问题:①需要维护状态;②如果客户或服务器失效,会产生生状态的不一致,解决这种不一致的代价高。
HTTP连接
非持久性连接HTTP
响应时间:
- 发起、建立TCP连接:1个RTT;
- 发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT;
- 响应消息中所含文件/对象传输时间;
total = 2 * RTT + 文件发送
非持久性连接的问题:
- 每个对象需要两个RTT;
- 操作系统需要为每个TCP连接开销资源;
- 打开多个并行的TCP连接会给服务器带来很大压力;
持久性HTTP
特点:
- 发送响应后,服务器保持TCP连接的打开;
- 后续的HTTP消息可以通过这个连接发送;
无流水的持久性连接:客户端只有收到前一个响应后才发送新的请求,每个被引用的的对象耗时一个RTT.
带有流水机制的持久性连接:客户端只要遇到一个引用对象就尽快发出请求,理想情况下,收到所有的引用对象只需耗时约一个RTT
HTTP消息格式
消息:
- 请求消息
- 响应消息
上传输入方法:
- POST方法
- URL方法
方法类型:
- GET,POST,HEAD(请Server不要将所请求的对象放入响应信息中)
- PUT
- DELETE
Cookie技术
为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。
Web缓存技术
在不访问服务器的前提下满足客户端的HTTP请求。
Email应用
构成:
- 邮件客户端
- 邮件服务器
- SMTP协议
基于TCP连接进行email消息的可靠传输,传输过程三个阶段:
- 握手
- 消息的传输
- 关闭
命令/响应交互模式:
- 命令:ASCⅡ文本
- 响应:状态代码和语句
SMTP协议:
- 使用持久性连接
- 要求消息必须由七位ASCⅡ码构成
- SMTP服务器利用CRLF.确定消息的结束
Email消息格式与POP协议
SMTP协议
POP协议
邮件访问协议:从服务器获取邮件
下载并删除如果换了客户端软件,则无法重读该邮件;下载并保持,不同客户端都可以保留消息的拷贝。
POP3是无状态的
IMAP协议
所有消息保存在一个地方:服务器(有状态)
允许用户利用文件夹组织消息
IMAP支持跨会话的用户状态:
- 文件夹的名字
- 文件夹与消息ID之间的映射
DNS应用
DNS:域名解析系统(互联网核心功能,但在应用层上实现)
DNS服务:
- 域名向IP地址的翻译
- 主机别名
- 邮件服务器别名
- 负载均衡
分布式层次数据库
域是名字空间中一个可被管理的划分。域还可以划分为子域,从而形成了顶级域、二级域、三级域等等。每个域名都由标号序列组成,各个标号之间用.隔开。
本地域名服务器解析服务器无法解析域名时,访问根域名服务器;
根域名服务器:
- 如果不知道映射,访问权威域名服务器
- 获得映射
- 向本地域名返回映射
顶级域名服务器:负责com,org,net,edu等顶级域名和国家顶级域名,例如cn,uk等。
权威域名服务器:组织域名解析服务器,提供组织内部服务器的解析服务。
本地域名解析服务器
不严格属于层级体系
每个ISP有一个本地域名服务器(默认域名解析服务器)
当主机进行DNS查询时,查询被发送到本地域名服务器。
DNS查询
迭代查询:被查询服务器返回域名解析服务器的名字。
递归查询:将域名解析的任务交给所联系的服务器。
DNS记录缓存和更新
只要域名解析服务器获得域名-IP映射,即缓存这一映射
DNS记录
资源记录
DNS协议与消息
DNS协议:查询和回复
消息头部
P2P应用
P2P:
- 妹有服务器
- 任意端系统之间直接通信
- 节点阶段性接入Internet
- 节点可能更换IP地址
文件分发
瞄一眼bittorrent
索引
P2P索引:信息到节点位置(IP地址 + 端口号)的映射
文件共享
即时消息
集中式索引:
- 单点失效问题
- 性能瓶颈
- 版权问题
泛洪式查询:每个节点都参与
层次式覆盖网络:超级节点与普通结点使用TCP连接
文件传输协议
FTP的工作原理
FTP功能:
- 提供不同种类主机系统之间的文件传输能力;
- 以用户权限管理的方式提供用户对远程FTP服务器上的文件传输能力;
- 以匿名FTP的方式提供公用文件分享的能力;
使用C/S架构,使用TCP可靠的传输服务。