应用层
2.1 应用层协议原理
应用程序体系结构
- 客户-服务器体系结构
- p2p体系, 有自拓展性和成本效益
进程通信
同一个端系统间进程通信
- 网络应用程序间通信, 一个作为服务器, 一个作为客户端
- 套接字也就是应用程序编程接口API, 用于应用层和运输层间通信
运输服务
- 可靠数据运输, 容忍丢失的应用不太注重, 也就是多媒体应用
- 吞吐量, 对吞吐量有要求的程序就是带宽敏感的应用, 而能够根据带宽多少来利用的是弹性应用
- 定时, 时延方面
- 安全性
运输服务
- TCP服务(tansmission control protocol), 具有可靠的数据传输, 有拥塞控制机制, 先握手, 然后建立连接, 最后断开连接
- UDP服务(User Datagram protocol), 没有握手, 就比较轻量, 快速
应用层协议
应用层协议只是网络应用的一个组成部分
web和http
http(hypertext transfer protocol)超文本传输协议
web页面由对象组成, 通过URL寻址
HTTP定义了客户向服务器响应的方式:用户请求一个web页面, 浏览器发送请求, 服务器接收并且响应. 传输方式:客户通过API访问TCP
非持续性连接: 每个请求都单独建立一次TCP, 总的响应时间就是两个TRR(Round-Trip Time往返时间)加上服务器传输HTML文件的时间
缺点:必须为每个请求对象建立和维护一个全新的连接, 给服务器带来负担; 每个对象都需要经受两倍的RTT的交付时延
持续性连接的HTTP: 使用单个持续的TCP连接
HTTP报文格式
请求报文
首行为请求行, 包含三个字段: 方法字段, URL字段, HTTP字段
之后为首部行
每行行尾有一个回车换行符
首部行后有个回车换行符的空行响应报文
有三部分: 首行状态行, 六个首部行, 最后实体体
cookie
cookie可以标识用户, 在无状态的HTTP之上建立一个用户会话层
cookie技术有四个组件
- 在HTTP响应报文的一个cookie首部行
- 在HTTP请求报文中的一个cookie首部行
- 在用户端系统保留一个cookie文件
- 位于web站点一个后端数据库
wei缓存(Web chahe)/代理服务器(proxy server)
使用Web缓存器的两点原因:
- 减少对客户请求的响应时间
- 减少一个机构的接入链路到以太网的通信量
- 减少因特网的Web流量, 改善应用的性能
条件GET的方法
条件GET用于验证Web缓存器中的对象副本是不是最新版
也就在GET方法的情况下, 添加一个”If-Modified-Since”的首部行
电子邮件
主要有3个部分:用户代理(user agent), 邮件服务器(mail server), 简单邮件传输协议(Simple Mail Transfer Protocol, SMTP)