Email应用
概述
Email应用的组成:
- 邮件客户端(User agent)
- 读写Email消息
- 与服务器交互,收/发Email消息‘
- 邮件服务器(Mail Server)
- 邮箱:存储发给该用户的Email
- 消息队列(message queue):存储等待发送的Email
- SMTP协议(Simple Mail Transfer Protocol)
- 邮件服务器之间传递消息所使用的协议
- 客户端:发送消息的服务器
- 服务器:接收消息的服务器
- 使用TCP进行Email消息的可靠传输
- 端口25
- 传输过程的三个阶段
- 握手
- 消息传输
- 关闭
- 命令/响应交互模式
- 命令:ASCII文本
- 响应:状态代码和语句
- Eamil消息只能由7位ASCII码构成
- 使用持久性连接
SMTP协议与HTTP协议对比:
- 不同
- HTTP:拉式(PULL)
SMTP:推式(PUSH) - HTTP:每个对象封装在独立的响应消息中
SMTP:多个对象在由多个部分构成的消息中发送
- 相同
- 都使用命令/响应交互模式
- 命令和状态代码都是ASCII码
Email消息格式与POP3协议
Email消息格式
头部行(Header)
- TO
- From
- Subject
- MIME:多媒体邮件扩展
- 通过在邮件头部增加额外的行以声明MIME的内容类型
消息体(body)
- 消息本身
- 只能是ASCII字符
邮件访问协议
Email在应用层上不只使用了SMTP这一种协议,还使用了邮件访问协议
邮件访问协议:
- 从服务器获取邮件
- POP:Post Office Protocol
- 认证/授权(客户端–服务器)和下载
- IMAP:Internet Mail Access Protocol
- 更多功能
- 更加复杂
- 能够操纵服务器上存储的消息
- HTTP:163、QQ Mail等
POP协议
IMAP协议
DNS应用
概述
DNS:Domain Name System-域名系统
DNS域名解析系统:
- 多层命名服务器构成的分布式数据库
- 应用层协议:完成域名的解析
- Internet核心功能,用应用层协议实现
- 网络边界复杂
- 分布式层次式数据库
- DNS根域名服务器工作过程:
- 当本地域名服务器无法解析域名时,访问根域名服务器
- 当根域名服务器不知道映射时,访问权威域名服务器获得映射,然后向本地域名服务器返回映射
- TLD(top-level domain)顶级域名解析服务器
- 负责com、org、net、edu等顶级域名和国际顶级域名(cn、uk、fr等)
- 权威(Authoritative)域名解析服务器
- 组织的域名解析服务器,提供组织内部服务器的解析服务
- 本地域名解析服务器
- 不严格属于层级体系
- 每个ISP有一个本地域名服务器
- 当主机进行DNS查询时,查询首先被发送到本地域名服务器
DNS查询示例:
假如主机Cis.poly.edu要获得gain.cs.umass.edu域名的IP地址
- 迭代查询
- 递归查询
DNS记录缓存和更新
DNS记录和消息格式
DNS记录
数据库中记录的格式
资源记录(resource records)
DNS协议与消息
如何注册域名:
P2P应用
p2p结构:
- 没有服务器
- 任意端系统之间直接通信
- 节点阶段性接入Internet
- 节点可能更换IP地址
以具体应用为例:
文件分发
从一个服务器向N个节点分发一个文件所需时间
CS结构
P2P结构
CS与P2P对比
BitTorrent
索引技术
集中式索引
洪泛式索引
层次式覆盖网络
Socket编程