1.1 网络应用层内容概述
应用层
一、网络应用体系结构(C/S、P2P、混合)
二、网络应用的服务需求(可靠性、时延、带宽)
三、Internet传输层服务模型(TCP、UDP)
四、特定网络应用及协议(HTTP|SMTP、POP、IMAP|DNS|P2P)
五、Socket编程
1.2 网络应用的基本原理
网络应用体系结构
一、网络应用有哪些特点?(较单机应用、体系结构)
二、网络体系结构
- 客户机/服务器结构(特点?典型应用?)
. 客户机?服务器? - 纯P2P结构
. 没有永远在线的服务器 - 混合结构
典型应用:Mapster
. 文件传输使用P2P结构
. 文件搜索采用C/S结构——集中式
网络应用进程通信
一、网络应用的基础:进程间通信
- 进程?
- 同一主机上运行的进程之间如何通信?
- 不同主机上运行的进程间如何通信?
二、套接字:socket(操作系统提供的关于网络方面的API)
- 进程间通信利用Socket发送/接收消息实现
- 类似于寄信
- 传输基础设施向进程提供API
三、如何寻址进程
- 不同主机上的进程间通信,那么每个进程必须拥有标识符
- 如何寻址主机?——IP地址
- 同一主机上可能同时有多个进程需要通信——端口号
- 进程的标识符:IP地址:端口号
四、应用层协议
- 网络应用需遵循应用层协议
- 公开协议
. 由RFC(Request For Comments)定义
. 允许互操作
. HTTP、SMTP… - 私有协议
. 多数P2P文件共享应用
五、应用层协议的内容
- 消息的类型(请求、响应)
- 消息的语法(syntax)/格式
- 字段的语义(semantics)
- 规则(rules)
网络应用的需求与传输层服务
一、网络应用对传输服务的需求
- 数据丢失/可靠性(网络电话vs网上银行)
- 时间/延迟(网络电话&网络游戏)
- 带宽(网络视频vs文件下载)
二、Internet提供的传输服务
- TCP服务 vs UDP服务
. 连接?可靠性?流量控制?拥塞控制?时间保障?最小带宽保障?
1.3 web应用
web应用概述
一、web与HTTP
- world wide web
- 网页(web page)包含多个对象(objects)
. 对象?
. 基本HTML文件? - 对象的寻址——URL(统一资源定位器)
Scheme://host:post/path
二、HTTP协议概述
- 万维网应用遵守什么协议?——HTTP(超文本传输协议)
- C/S结构(C和S的角色是怎样的?)
- HTTP版本
- 使用TCP传输服务(使用过程?)
- 无状态协议(stateless)
. 服务器不维护(不记录)任何有关客户端过去行为(过去所发请求消息)
HTTP连接类型
一、HTTP连接
- HTTP连接的两种类型
非持久性连接 :每个TCP连接最多允许传输一个对象
持久性连接:每个TCP连接允许传输多个对象 - 非持久性连接过程?
- 响应时间分析与建模
. RTT(Round Trip Time):从客户端发送一个很小的数据包到服务器并返回所经历的时间(消息一去一回的时间)
. 响应时间(Response Time):总 = 2RTT + 文件传输时间 - 持久性HTTP
. 非持久性连接的问题?
. 浏览器在非持久性情况下想快速获取网页怎么做?
. 无流水(pipelining)的持久性连接:
客户端只有收到一个响应后才发送新请求
. 带有流水机制的持久性连接:
客户端只要遇到一个引用对象就尽快发出请求
HTTP消息格式
一、HTTP请求消息
- HTTP协议有两类消息(请求、响应)
- 请求消息
- HTTP请求消息的通用格式
- 上传输入的方法(eg.用户名 密码)
. POST方法
. URL方法 (使用GET方法) - 方法的类型(GET、POST、HEAD || PUT、DELETE)
二、HTTP响应消息
- HTTP响应状态代码(eg.200、400、404)
Cookie技术
一、为什么需要Cookie?
- HTTP协议无状态(网上购物、记住密码?)
二、Cookie技术
- 某些网站为了辨别用户身份进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
- Cookie的组件
- Cookie原理(eg.访问一个从来没有访问过的网站)
- Cookie作用(身份认证、购物车、推荐、Web Mail)
web缓存/代理服务器技术
- 功能?为什么发明这种技术?(性能)
- 如何实现?(缓存既充当客户端又充当服务器)
- 局域网内部性能分析?
- 缺点?如何解决?
. 数据版本一致性
. 条件性GET方法
1.4 Email应用
Email应用概述
一、Email应用的构成
- Email应用的构成组件
邮件客户端
邮件服务器
SMTP协议(Simple Mail Transfer Protocol) - 邮件客户端(读写Email消息、与服务器交互收发Email消息)
- 邮件服务器
邮箱:存储发给该用户的Email
消息队列:存储等待发送的Email - SMTP
邮件服务器之间传递消息使用的协议
二、SMTP协议
- 使用TCP进行Email消息的可靠传输
- 端口25
- 传输过程的三个阶段
- 命令/响应交互模式
- Email消息只能包含7位ASCII码
三、Email应用实例 (异步应用)
四、SMTP 与 HTTP对比
- 使用持久性连接(SMTP)
- HTTP:拉式(把网页拉回) 、每个对象封装在独立的响应消息中
SMTP:推式、多个对象在由多个部分构成的消息中发送 - 都使用命令/响应交互模式、命令和状态代码都是ACII码
Email消息格式与POP协议
一、Email消息格式
- SMTP:Email消息的传输/交换协议
- RFC822:文本消息格式标准
头部行
消息体
二、多媒体扩展(二进制)
- MIME:多媒体邮件扩展
通过在邮件的头部增加额外的行以声明MIME的内容类型
三、邮件访问协议(从服务器获取邮件)
POP(邮局协议) & IMAP(交互式邮件存取协议) & HTTP
四、POP协议
- 认证过程:
客户端命令(User、Pass)、服务器响应(+OK、-ERR) - 事务阶段 (List/Retr/Dele/Quit)
- “下载并删除”模式
- “下载并保持”模式
- POP3是无状态的
五、IMAP协议
- 所有消息统一保存在一个地方:服务器
- 允许用户利用文件夹组织消息
- IMAP支持跨会话的用户状态
六、POP3 vs IMAP
POP3:协议允许电子邮件客户端下载邮件服务器上的邮件,但是在客户端的操作不会反馈到服务器上
IMAP:提供了web mail与电子邮件客户端之间的双向通信,客户端操作都会反馈到服务器上,客户端与邮箱更新同步