应用层
应用部署
只集中在端系统,对核心网络没有🈚改变
应用架构
- C/S
- P2P
- 混合
进程通信
- 同主机
调用操作系统 - 不同主机
利用网络架构
SOCKET
- OS标示应用通信关系所采用的本地标志,是数字
- TCP——标识连接🔗
- UDP——标识端节点
网络应用原理
进程编址
IP&TCP
应用所需服务考虑因素
网络基础设施提供服务指标
- 丢失率,可靠性
- 延迟,抖动
- 带宽
- 安全
传输协议
提供进程标示
- TCP
- 可靠字节流服务
- 面向连接
- 流量控制
- 拥塞控制
- UDP
- 无连接
- 不可靠🤷♂️服务
WEB应用
组成
- HTTP协议
- HTML格式
- Client,Server
术语
- 对象
- URL
HTTP
- 定义客户端与服务器的通信报文格式,解释,时序
- 连接
- 持续连接连接——1.0
- 非持续连接——1.1,2.0,3.0
- 往返延迟RTT,对象抓取时间
- 报文格式
- 请求报文:方法
- 响应报文:状态码
- COOKIES
- 添加状态信息
- 服务器响应报文setcookies字段,客户端存储cookie文件
- 客户端请求报文cookies字段,服务器存储cookie文件
- WEB缓存
- 减少访问延迟
- 减少接入链路强度
- 减轻服务器负担
e-mail📧
- 构成
- 用户代理
- 邮件服务器
- SMTP协议
- 解析
- 报头+报体
- MIME:多媒体拓展
- 存取协议
- 客户端从服务器拉取邮件
- IMAP / POP3 / HTTP
DNS
基础设施
- 作用
- 域名到IP地址转换
- 别名到正规名字
- 层次数据库
命名分层,防重名,令字符串有意义 - 分布式数据库
缓存与服务分布,分区覆盖 - 构成
- 本地解析器
- 域名服务器
- DNS协议
- 解析过程
- 递归解析
- 迭代解析
- 缓存
- 提高效率
- 过期时间保证一致性
- 本地+服务器
视频流
- 播放方式
- 下载
- 流视频
- 方式
- UDP / HTTP
- DASH (Dynamic Adaptive Streaming over HTTP)
- DASH流化过程
客户端会根据
- 缓存播放数据块情况
- 各服务器网络情况
来决定
- 什么时候
- 向哪些服务器
- 请求哪些块
CDN
单个 / 多个服务器像客户端提供海量内容并发服务的问题——拓展性差
原理
- 应用层协作服务网络
- 全网🌏部署缓存节点,内容预先部署到CDN缓存节点
- 用户通过域名解析重定向至最近节点请求内容
缓存节点放置方式
- Enter Deep:深入各叶子ISP部署
- 离客户近
- 效果好
- 数量多
- 代价大
- 管理困难
- Bring Home:部署关键点,到各ISP距离都比较近,通常层次较高
- 代价小
- 效果一般
SOCKET
API
- 创建
- 使用
- 读
- 写
- 关闭
TCP Socket
4元组本地标识,标识连接
写socket即发送给对方进程,读socket即读对方进程数据
编程
- 建立
- 客户端和服务器握手
- 服务器响应
- 三次握手(第一次数据传输)
- 使用(同时双向)
- 关闭
UDP Socket
本地端节点标识(本地IP,端口)
特点
- 无连接
- 不可靠
编程
- 建立socket(无需握手)
- 使用
- 发送(需提供对方IP的端口)
- 接收(需获取对方IP端口)
- 关闭