title: 【重拾网络】应用层
date: 2017-07-20 21:49:20
tags: 网络
categories: 网络
原理
网络应用的体系结构:CS, P2P, 混合
不同端系统上的进程通信方式:跨越计算机网络交换报文
套接字:传输基础设施向进程提供的 API
-
进程寻址:
- 主机地址:IP
- 进程标示符:端口号
- 网络应用的需求:
- 数据丢失/可靠性
- 时间/延迟
- 带宽
- 安全
- 传输层提供的服务:
- TCP:
- 面向连接
- 可靠传输
- 流量控制
- 拥塞控制
- UDP
- 无连接
- 不可靠数据传输
- TCP:
TCP & UDP 都无法提供时间/延时保障、最小带宽保障
安全传输服务:在 TCP 套接字基础上实现的应用层协议——SSL(Secure Socket Layer)
应用层协议
应用层协议定义的内容:
- 交换的报文类型
- 各种报文语法
- 字段语义
- 一个进程何时 & 如何发送报文
HTTP
这部分不知道怎么说啊,内容有点多、有点杂,简单记一下,尤其是众多头部。
简单记一下,挖个坑后期填。
- 连接类型:
- 非持久连接:HTTP 1.0 版本默认
- 持久连接:HTTP 1.1 版本默认
- 无流水线:使用一个 TCP 连接,一个一个请求
- 流水线:并行请求
- 各种头部信息
- 无状态 & Cokite 技术
-
代理 & 缓存
条件 GET
对于相同 IP 的访问,HOST 头部完整指定主机名/域名URI
邮件系统构成:用户代理,邮件服务器(邮箱,报文队列)、简单邮件传输协议
邮件协议基于命令/响应模式
- 命令:ASCII 文本
- 响应:状态代码和语句
SMTP
简单邮件传输协议,特点:
- 邮件报文体只能采用简单的 7 比特 ASCII 表示
- 一般不使用中间邮件服务器,邮件不在中间某个服务器留存
- 使用 TCP 可靠数据传输服务,端口 25
- MIME:多媒体邮件扩展,头部增加 MIME 内容类型
与 HTTP 比较:
- 都建立在 TCP 连接,都是 持续连接
- HTTP 是拉协议,SMTP 是推协议
- SMTP 要求每个报文使用 7 比特 ASCII, HTTP 不受该限制
- 对混合消息处理,HTTP 把每个对象封装在一个相应报文里,SMTP 把所有对象放在一个报文
POP3 & IMAP
邮件访问协议
POP3 特点:
- 实现简单
- 使用 TCP 连接,110 端口
- 三个阶段:
- 认证
- 事务处理
- 退出
- 无状态
IMAP 特点:
- 实现相对复杂
- 使用 TCP 连接,端口 145
- 可以把邮件与文件夹联系起来
- 允许用户代理获取邮件
- 有状态
TELNET 收发邮件 demo
// 使用 SMTP 发邮件
telnet smtp.163.com 25
HELO 163.com
AUTH LOGIN
Base64(YourUsername)
Base64(YourPassword)
MAIL FROM: <${Your Email Address}>
RCPT TO: <${Receiver's Email Address}>
data
Subject:${SUBJECT}
From:${SENDER}
To:${RECEIVER}
${DATA}
.
// 使用 POP3 收邮件
Telnet pop3.163.com 110
User:YourUsername
Pass:yourPassword
List
Retr 邮件编号
Dele 邮件编号
Quit