应用层知识点总结
客户端/服务器结构
服务器
7*24小时提供服务
永久性访问地址。域名
利用大量服务期实现可扩展性
客户机
与服务通信,使用服务器提供的服务
间歇性接入网络
可能使用动态ip地址
不会与其他客户及直接通信
例子:web
纯p2p结构
没有永远在线的服务器
任意端系统/节点之间可以直接通机
节点间歇性接入网络
节点可能改变IP地址
优点:高度可伸缩
缺点;难于管理
混合结构
两种模式混合使用
网络应用的基础:进程间通信
进程;主机上运行的程序
客户机进程:发起通信的进程
服务器进程;等待通信请求的进程
套接字Socket
进程间通行利用socket发送、接收消息实现
传输基础设施向进程提供API
不同主机之间的通信必须有标识符
如何寻址进程
IP地址,端口号,进程的标识符
网络应用对传输服务的需求
数据丢失/可靠性
时间/延迟
带宽
HTTP协议
两种类型:非持久连接和持久性连接
RTT
从客户端发送一个很小的数据包到服务器
响应时间
Total=2RTT+文件发送时间
非持久性连接的问题
每个对象需要2个RTT,操作系统需要为每个TCP连接开销资源
持久性连接
发送响应后,服务器保持TCP连接的打开
后续的HTTP消息可以通过这个连接发送
无流水的持久性连接
客户端只有收到前一个响应后才发送新的请求
每个被引用的对象耗时一个RTT
带流水的持久性连接
理想情况下值耗时1个RTT
HTTP请求消息
上传输入的方法:post方法,get方法
方法的类型
get,post,head,put,delete
Cookie技术
组件:HTTP响应消息的cookie头部行,请求消息的cookie头部行,保存在客户端主机上的cookie文件,有浏览器管理,Web服务端的后台数据库
Web缓存技术
改善的性能:加快响应速度,减少机构/组织的流量,在大范围内实现有效的内容分发
条件性GET方法
如果缓存有最新版本,则不需要发送请求对象
缓存:在HTTP请求消息中声明所持有版本的日期
服务器:如果缓存的版本是最新的,则响应消息中不包含对象
EMAIL应用
EMAIL应用的构成组件
邮件客户端
邮件服务器
SMTP协议
邮件客户端
读写email信息
与服务器交互、收、发email消息
Outlook,Foxmail,Thunderbird
Web客户端
邮件服务器
邮箱:存储发给该用户的EMAIL
消息队列:存储等待发送的EMAIL
SMTP协议
邮件服务器之间传递消息所使用的协议
客户端:发送消息的服务器
服务器:接收消息的服务器
SMTP协议
使用TCP进行email的可靠传输
端口25
传输过程的三个阶段
握手,消息的传输,关闭
命令、响应交互模式
命令:ASCII文本,响应:状态代码和语句
EMAIL消息只包含7位ASCII码
POP协议:邮件访问协议
DNS服务
域名解析系统DNS
多层命名服务器构成的分布式数据库
应用层协议:完成名字的解析
DNS记录缓存和更新:只要域名解析服务器获得域名-IP映射,即缓存这一映射
迭代查询
递归查询
DNS记录
资源记录RR
type为A时,name为主机域名,value为IP地址
type为ns时,name为域,value为该权威域名解析服务器的主机域名
type为cname:name:某一个真实域名的别名,value为真实域名
type为mx:value是与name相对于的邮件服务器
P2P
P2P广泛使用于文件分发,下载服务
P2P系统的索引:信息到节点位置(IP地址+端口号)的映射
集中式索引
节点加入是都需要通知中央服务器其IP地址和内容
请求时从中央服务器查找
缺点:单点失效问题,性能瓶颈,版权问题
洪泛式查询
层次式覆盖网络