网络应用
- 网络应用体系结构
- 网络应用的服务需求
- Internet传输层服务模型
网络应用的基本原理
网络应用的基础:进程间通信
- 进程:主机上运行的程序
- 同一主机上运行的进程之间如何通信?
(1)进程间通信机制
(2)操作系统提供 - 不同主机上运行的进程间如何通信?
(1)消息交换
(2)客户机进程:发起通信的进程
(3)服务器进程:等待通信请求的进程
(4)套接字:Socket 传输基础设施向进程提供API
寻址主机---->IP地址
每个需要通信的进程----->端口号 Port Number
进程的标识符----->IP地址+端口号
网络应用的需求与传输层服务
需求
- 数据丢失(data loss)/可靠性(reliability)
(1)能容忍一定的数据丢失,如网络电话
(2)要求100%可靠数据传输,如文件传输,telnet - 时间(timing)/延迟(delay)
(1)延迟足够低才有效
(2)网络电话/网络游戏 - 带宽(bandwidth)
(1)带宽达到最低要求时才有效,如网络视频
(2)适应任何带宽,如email - 安全性
Internet提供的传输服务
- TCP
(1)面向连接
(2)可靠的传输
(3)流量控制 发送速度不会过快,超过接收方的处理能力
(4)拥塞控制 网络负载过重的时候能够限制发送方的发送速度
(5)不提供时间/延迟保障
(6)不提供最小带宽保障 - UDP
(1)无连接
(2)不可靠的数据传输
(3)不提供:可靠性保障、流量控制、拥塞控制、延迟保障、带宽保障
Web
Web与HTTP
- World Wide Web : Tim Berners-Lee
网页
网页互相链接 - 网页(Web Page)包含多个对象(Objects)
对象:HTML文件、JPEG、视频文件、动态脚本等
基本HTML文件:包含对其他对象引用的链接 - 对象的寻址(addressing)
URL(Uniform Resource Locator):统一资源定位器
Scheme://host:port/path
eg: www.someschool.edu/somDept/pic.gif - HTTP协议(HyperTest Transfer Protocol)
(1)C/S结构
(2)使用TCP传输服务
(3)无状态(stateless) 服务器不维护任何有关客户端过去所发请求的信息
有状态的协议更复杂:需要维护状态(历史信息);如果客户或服务器失效,会产生状态不一致,解决这种不一致代价高 - HTTP连接
(1)非持久性连接(Nonpersistent HTTP)
RTT(Round Trip Time) 从客户端发送一个很小的数据包到服务器并返回所经历的时间
响应时间(Response time):Total=2RTT+文件发送时间
存在问题
(2)持久性连接(Persistent HTTP)
无流水线的持久性连接
带有流水机制的持久性连接 - HTTP消息格式
(1)请求消息(request)
第一行:request line
(2)响应消息(response)
- cookie技术
HTTP是无状态协议,很多应用需要服务器掌握客户端的状态,如网上购物,如何实现?
为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)
RFC6265
身份认证、购物车、推荐、web email
隐私问题
- Web缓存/代理服务器技术
(1)功能
在不访问服务器的前提下满足客户端的HTTP请求
(2)缩短客户请求的响应时间;减少机构/组织的流量;在大范围内实现有效的内容分发
Email应用
- 构成组件
(1)邮件客户端
(2)邮件服务器
(3)SMTP协议(simple Mail transfer prorocol) RFC 2821
- 使用TCP进行email消息的可靠传输
- 端口25
- 传输过程的三个阶段
(1)握手
(2)消息的传输
(3)关闭 - 命令/响应交互模式
(1)命令:ASCII文本
(2)响应:状态代码和语句 - Email消息只能发送7位ASCII码
-
MIME 多媒体邮件扩展 RFC 2045,2056
通过在邮件头部增加额外的行以声明MIME的内容类型 -
邮件访问协议
POP
IMAP
HTTP
DNS Domain Name System 域名解析系统
- Internet 上主机/路由器的识别问题
(1)IP地址
(2)域名:www.hit.edu.cn
Internet核心功能 应用层实现 - DNS服务
IP的翻译
主机别名
负载均衡 - 为什么不实用集中式DNS?
(1)单点失败问题
(2)流量问题
(3)距离问题
(4)维护性问题
不可伸缩。