1、应用层协议原理
1、1 网络应用的体系结构
1、2 客户-服务器模式(C/S)
1、3 对等模式(P2P)
1、4 C/S和P2P体系结构的混合体
1、5 进程通信
1、6 分布式应用进程通信需要解决的问题
标示:跟其他人不同,是唯一的。本质是端口号
寻址:让别人找的到
1、问题1:对进程进行编址(addressing)
标识和寻址包括三部分
1、在哪个主机IP上或终端系统上
2、应用进程在终端设备上的TCP还是UDP上
3、在TCP上有很多应用进程你在哪个端口上
2、问题2:传输层提供的服务-需要穿过层间的信息
3、问题2:传输层提供的服务-层间信息的代表
4、TCP之上的套接字(socket)
5、问题2:传输层提供的服务-层间信息代码
6、UDP之上的套接字(socket)
7、套接字(Socket)
8、问题3:如何使用传输层提供的服务实现应用
9、应用层协议
实体:仅仅是某一层交互有关的遵守协议的这部分内容
10、应用需要传输层提供什么样的服务?如何描述传输层的服务?
11、常见应用对传输服务的要求
12、Internet 传输层提供的服务
13、UDP存在的必要性
14、Internet应用及其应用层协议和传输协议
15、安全TCP
2、Web 与 HTTP
2、1 HTTP概况
2、 2 HTTP概况(续)
2、3 HTTP连接
2、4 非持久HTTP连接
2、5 非持久HTTP (续)
2、6 响应时间模型
2、7 持久HTTP
2、8 HTTP请求报文
get:是head和body都要
post:上载
head:只要头
2、9 HTTP请求报文:通用格式
2 、10 提交表单输入
2、11 方法类型
put:通常做网页内容的维护
2、12 HTTP响应报文
Last-Modified:客户端请求对象服务器响应对象的同时把上一次这个对象的修改时间给客户端
2、13 HTTP响应状态码
2、14 用户-服务器状态:cookies
2、15 Cookies: 维护状态
2 、16 Cookies (续)
3、1 Web缓存 (代理服务器)
3、2 缓存示例
3、3 缓存示例:更快的接入链路
3、4 缓存例子:安装本地缓存
3、5 缓存例子:安装本地缓存
3、6 条件GET方法
3、FTP
3、1 FTP: 文件传输协议
3、2 FTP: 控制连接与数据连接分开
HTTP:无状态的
3、3 FTP命令、响应
4、Email
4、1 电子邮件(EMail)
4、2 EMail: 邮件服务器
4、3 EMail: SMTP [RFC 2821]
4、4 SMTP:总结
HTTP:可以上载和下载文件
用户代理:软件就是使用这个应用的用户代理(通过客户端软件和服务器交互)
4、5 邮件报文格式
4、6 报文格式:多媒体扩展
4、7 邮件访问协议
4、8 POP3协议
4、9 POP3 (续) 与 IMAP
5、DNS
作用:域名到IP地址的转换
5、1 DNS(Domain Name System)
5、2 DNS系统需要解决的问题
5、3 DNS(Domain Name System)的历史
5、4 DNS(Domain Name System)总体思路和目标
规范的名字:便于管理
别名:便于用户使用
5、5 DNS名字空间(The DNS Name Space)
主机的域名是从树叶往上走,每过一个层级用 “.” 隔开
5、6 问题2:解析问题-名字服务器(Name Server)
5、7 名字空间划分为若干区域:Zone
5、8 TLD服务器
5、9 区域名字服务器维护资源记录
5、10 DNS记录
5、11 DNS(Domain Name System)
5、12 本地名字服务器(Local Name Server)
5、13 名字服务器(Name Server)
5、14 递归查询
5、15 迭代查询
5、16 DNS协议、报文
5、17 提高性能:缓存
5、18 问题3:维护问题:新增一个域
5、19 攻击DNS
6、P2P
6、1 纯P2P架构
6、2 文件分发: C/S vs P2P
文件分发时间: C/S模式
文件分发时间: P2P模式
在C/S模式下 随着客户端数量的增加,服务器的服务能力就会变成瓶颈
在P2P模式下 随着请求资源的增加,提供服务的资源也在增加
Client-server vs. P2P: 例子
P2P文件分发: BitTorrent
P2P文件分发: BitTorrent
BitTorrent: 请求,发送文件块
BitTorrent: tit-for-tat
P2P文件共享
P2P文件共享
P2P:集中式目录
P2P:集中式目录中存在的问题
查询洪泛:Gnutella
Gnutella:协议
Gnutella:对等方加入
利用不匀称性:KaZaA
KaZaA:查询
Kazaa小技巧
Distributed Hash Table (DHT)
7、 CDN
7、1视频流化服务和CDN:上下文
7、2多媒体: 视频
7、3多媒体: 视频
7、4存储视频的流化服务:
7、5多媒体流化服务:DASH
7、6流式多媒体技术3: DASH
7、7Content Distribution Networks
7、8Content distribution networks
7、9Content Distribution Networks (CDNs)
7、10Content Distribution Networks (CDNs)
7、11CDN:“简单”内容访问场景
7、12案例学习: Netflix
8、套字节编程
8、1 Socket编程
8、2 TCP套接字编程
8、3 TCP套接字编程
8、4TCPsocket编程
8、5C/S socket 交互: TCP
8、6数据结构 sockaddr_in
8、7数据结构 hostent
8、8 例子: C客户端(TCP)
8、9 例子: C客户端(TCP) (续)
8、10 例子: C服务器(TCP)
8、11 例子: C服务器(TCP)(续)
8、12 UDP Socket编程
8、13Client/server socket 交互: UDP
8、14 样例: C客户端 (UDP)
8、15样例: C客户端 (UDP)(续)
8、16样例: C服务器(UDP)
8、17样例: C服务器(UDP)(续)
9、第2章:小结