计算机网络第二章:应用层完整复习笔记

计算机网络第二章:应用层完整复习笔记

### 文章目录

  • [计算机网络第二章:应用层完整复习笔记](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [@toc](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [一、第二章整体概览](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二、网络应用的基本原理](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [2.1 什么是网络应用](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [2.2 创建一个网络应用需要做什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [三、两种典型应用体系结构](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [3.1 Client-Server 客户-服务器结构](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [3.2 P2P 对等结构](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [3.3 Client-Server 与 P2P 对比](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [四、进程通信与 Socket](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [4.1 网络中真正通信的是进程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [4.2 Socket 是什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [4.3 如何定位一个进程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [五、应用层协议定义什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [5.1 消息类型](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [5.2 消息语法 syntax](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [5.3 消息语义 semantics](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [5.4 发送与响应规则](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [5.5 开放协议与私有协议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [六、应用需要什么传输层服务](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [6.1 数据完整性 data integrity](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [6.2 时延 timing](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [6.3 吞吐量 throughput](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [6.4 安全 security](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [七、TCP、UDP 与 TLS](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [7.1 TCP 提供的服务](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [7.2 UDP 提供的服务](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [7.3 常见应用与传输层协议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [7.4 TLS:给 TCP 加安全性](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [八、Web 与 HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [8.1 Web 页面由对象组成](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [8.2 URL:统一资源定位符](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [8.3 HTTP 概述](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [8.4 HTTP 是无状态协议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [九、HTTP 连接方式](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [9.1 Non-persistent HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [9.2 Non-persistent HTTP 响应时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [9.3 Persistent HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十、HTTP 报文格式](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [10.1 HTTP request message](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [10.2 常见 HTTP 方法](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [GET](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [POST](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [HEAD](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [PUT](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [10.3 HTTP response message](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [10.4 常见 HTTP 状态码](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [10.5 用 netcat 手动测试 HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十一、Cookie:HTTP 如何维护状态](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [11.1 为什么需要 cookie](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [11.2 Cookie 的四个组成部分](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [11.3 Cookie 工作流程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [11.4 Cookie 可以用于什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [11.5 Cookie 与隐私问题](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十二、Web Cache 与 Conditional GET](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.1 Web cache 是什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.2 Web cache 同时扮演 client 和 server](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.3 为什么需要 Web cache](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.4 Web cache 计算例子](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.5 方案一:购买更快的 access link](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.6 方案二:安装 Web cache](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [12.7 Browser caching 与 Conditional GET](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十三、HTTP/2 与 HTTP/3](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [13.1 HTTP/1.1 的问题](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [13.2 HTTP/2 的目标](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [13.3 HTTP/2 如何缓解 HOL blocking](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [13.4 HTTP/2 到 HTTP/3](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十四、电子邮件:E-mail、SMTP、IMAP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.1 电子邮件系统的三个组成部分](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.2 User Agent](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.3 Mail Server](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.4 SMTP 基本特点](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.5 Alice 给 Bob 发邮件的过程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.6 SMTP 交互示例](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.7 SMTP 的几个重要观察](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.8 SMTP 与 HTTP 对比](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.9 Mail message format](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [14.10 邮件访问协议:IMAP 与 HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十五、DNS:Domain Name System](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [15.1 为什么需要 DNS](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [15.2 DNS 提供哪些服务](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [15.3 为什么 DNS 不能集中式](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [15.4 如何理解 DNS](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十六、DNS 层次结构与解析过程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.1 DNS 是分布式层次数据库](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.2 Root DNS Servers](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.3 TLD Servers](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.4 Authoritative DNS Servers](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.5 Local DNS Name Server](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.6 迭代查询 Iterated Query](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.7 递归查询 Recursive Query](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [16.8 DNS 缓存](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十七、DNS Resource Records](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [17.1 A 记录](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [17.2 NS 记录](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [17.3 CNAME 记录](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [17.4 MX 记录](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [17.5 其他 DNS 记录](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十八、DNS Protocol Messages 与注册域名](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [18.1 DNS 查询和回复报文](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [18.2 如何把自己的信息加入 DNS](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [18.3 DNS 安全问题](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [DDoS attacks](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [Spoofing attacks](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [DNS cache poisoning](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [十九、P2P 文件分发](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [19.1 P2P 架构回顾](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [19.2 文件分发问题](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [19.3 Client-Server 文件分发时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [19.4 P2P 文件分发时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十、BitTorrent](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [20.1 BitTorrent 基本概念](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [20.2 Peer 加入 torrent 的过程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [20.3 Requesting chunks:rarest first](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [20.4 Sending chunks:tit-for-tat](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [20.5 Tit-for-tat 的意义](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十一、视频流与 CDN](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [21.1 视频流背景](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [21.2 视频的本质](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [21.3 CBR 与 VBR](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十二、Streaming Stored Video](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [22.1 存储视频流的挑战](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [22.2 Continuous playout constraint](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [22.3 Playout buffering](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十三、DASH:Dynamic Adaptive Streaming over HTTP](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [23.1 DASH 的基本思想](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [23.2 DASH 的智能在客户端](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十四、CDN:Content Distribution Networks](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.1 为什么需要 CDN](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.2 CDN 的基本思想](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.3 CDN 两种部署方式](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [enter deep](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [bring home](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.4 Netflix 工作机制](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.5 OTT 挑战](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [24.6 CDN 内容访问与 DNS/CNAME](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十五、Socket Programming](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [25.1 Socket 编程目标](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [25.2 两种 socket 类型](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十六、UDP Socket 编程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [26.1 UDP 的特点](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [26.2 UDP client 代码](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [26.3 UDP server 代码](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十七、TCP Socket 编程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [27.1 TCP 的特点](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [27.2 TCP client 代码](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [27.3 TCP server 代码](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [27.4 TCP 与 UDP socket 对比](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十八、Socket Timeout 与异常处理](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [28.1 为什么需要等待多个事件](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [28.2 Python socket.settimeout()](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [28.3 try-except 处理异常](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [二十九、本章总结](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [29.1 应用体系结构](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [29.2 应用服务需求](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [29.3 Internet 传输服务模型](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [29.4 具体应用层协议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [29.5 Socket 编程](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [三十、第二章高频考点整理](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [30.1 必背概念](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [30.2 必背公式](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [非持续 HTTP 响应时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [Client-Server 文件分发时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [P2P 文件分发时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [Web cache 平均响应时间](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [30.3 DNS 记录速记](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [30.4 HTTP 状态码速记](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [三十一、容易混淆的问题](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.1 HTTP 无状态是不是服务器不能记住用户](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.2 DNS 是不是网络层协议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.3 SMTP 和 IMAP 区别是什么](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.4 HTTP 与 SMTP 都是文本协议,区别在哪里](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.5 UDP 不可靠为什么还能用于重要应用](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [31.6 DASH 中是谁决定视频码率](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [三十二、用一条主线串起第二章](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)
  • [三十三、本章复习建议](#文章目录 计算机网络第二章:应用层完整复习笔记 @[toc] 一、第二章整体概览 二、网络应用的基本原理 2.1 什么是网络应用 2.2 创建一个网络应用需要做什么 三、两种典型应用体系结构 3.1 Client-Server 客户-服务器结构 3.2 P2P 对等结构 3.3 Client-Server 与 P2P 对比 四、进程通信与 Socket 4.1 网络中真正通信的是进程 4.2 Socket 是什么 4.3 如何定位一个进程 五、应用层协议定义什么 5.1 消息类型 5.2 消息语法 syntax 5.3 消息语义 semantics 5.4 发送与响应规则 5.5 开放协议与私有协议 六、应用需要什么传输层服务 6.1 数据完整性 data integrity 6.2 时延 timing 6.3 吞吐量 throughput 6.4 安全 security 七、TCP、UDP 与 TLS 7.1 TCP 提供的服务 7.2 UDP 提供的服务 7.3 常见应用与传输层协议 7.4 TLS:给 TCP 加安全性 八、Web 与 HTTP 8.1 Web 页面由对象组成 8.2 URL:统一资源定位符 8.3 HTTP 概述 8.4 HTTP 是无状态协议 九、HTTP 连接方式 9.1 Non-persistent HTTP 9.2 Non-persistent HTTP 响应时间 9.3 Persistent HTTP 十、HTTP 报文格式 10.1 HTTP request message 10.2 常见 HTTP 方法 GET POST HEAD PUT 10.3 HTTP response message 10.4 常见 HTTP 状态码 10.5 用 netcat 手动测试 HTTP 十一、Cookie:HTTP 如何维护状态 11.1 为什么需要 cookie 11.2 Cookie 的四个组成部分 11.3 Cookie 工作流程 11.4 Cookie 可以用于什么 11.5 Cookie 与隐私问题 十二、Web Cache 与 Conditional GET 12.1 Web cache 是什么 12.2 Web cache 同时扮演 client 和 server 12.3 为什么需要 Web cache 12.4 Web cache 计算例子 12.5 方案一:购买更快的 access link 12.6 方案二:安装 Web cache 12.7 Browser caching 与 Conditional GET 十三、HTTP/2 与 HTTP/3 13.1 HTTP/1.1 的问题 13.2 HTTP/2 的目标 13.3 HTTP/2 如何缓解 HOL blocking 13.4 HTTP/2 到 HTTP/3 十四、电子邮件:E-mail、SMTP、IMAP 14.1 电子邮件系统的三个组成部分 14.2 User Agent 14.3 Mail Server 14.4 SMTP 基本特点 14.5 Alice 给 Bob 发邮件的过程 14.6 SMTP 交互示例 14.7 SMTP 的几个重要观察 14.8 SMTP 与 HTTP 对比 14.9 Mail message format 14.10 邮件访问协议:IMAP 与 HTTP 十五、DNS:Domain Name System 15.1 为什么需要 DNS 15.2 DNS 提供哪些服务 15.3 为什么 DNS 不能集中式 15.4 如何理解 DNS 十六、DNS 层次结构与解析过程 16.1 DNS 是分布式层次数据库 16.2 Root DNS Servers 16.3 TLD Servers 16.4 Authoritative DNS Servers 16.5 Local DNS Name Server 16.6 迭代查询 Iterated Query 16.7 递归查询 Recursive Query 16.8 DNS 缓存 十七、DNS Resource Records 17.1 A 记录 17.2 NS 记录 17.3 CNAME 记录 17.4 MX 记录 17.5 其他 DNS 记录 十八、DNS Protocol Messages 与注册域名 18.1 DNS 查询和回复报文 18.2 如何把自己的信息加入 DNS 18.3 DNS 安全问题 DDoS attacks Spoofing attacks DNS cache poisoning 十九、P2P 文件分发 19.1 P2P 架构回顾 19.2 文件分发问题 19.3 Client-Server 文件分发时间 19.4 P2P 文件分发时间 二十、BitTorrent 20.1 BitTorrent 基本概念 20.2 Peer 加入 torrent 的过程 20.3 Requesting chunks:rarest first 20.4 Sending chunks:tit-for-tat 20.5 Tit-for-tat 的意义 二十一、视频流与 CDN 21.1 视频流背景 21.2 视频的本质 21.3 CBR 与 VBR 二十二、Streaming Stored Video 22.1 存储视频流的挑战 22.2 Continuous playout constraint 22.3 Playout buffering 二十三、DASH:Dynamic Adaptive Streaming over HTTP 23.1 DASH 的基本思想 23.2 DASH 的智能在客户端 二十四、CDN:Content Distribution Networks 24.1 为什么需要 CDN 24.2 CDN 的基本思想 24.3 CDN 两种部署方式 enter deep bring home 24.4 Netflix 工作机制 24.5 OTT 挑战 24.6 CDN 内容访问与 DNS/CNAME 二十五、Socket Programming 25.1 Socket 编程目标 25.2 两种 socket 类型 二十六、UDP Socket 编程 26.1 UDP 的特点 26.2 UDP client 代码 26.3 UDP server 代码 二十七、TCP Socket 编程 27.1 TCP 的特点 27.2 TCP client 代码 27.3 TCP server 代码 27.4 TCP 与 UDP socket 对比 二十八、Socket Timeout 与异常处理 28.1 为什么需要等待多个事件 28.2 Python socket.settimeout() 28.3 try-except 处理异常 二十九、本章总结 29.1 应用体系结构 29.2 应用服务需求 29.3 Internet 传输服务模型 29.4 具体应用层协议 29.5 Socket 编程 三十、第二章高频考点整理 30.1 必背概念 30.2 必背公式 非持续 HTTP 响应时间 Client-Server 文件分发时间 P2P 文件分发时间 Web cache 平均响应时间 30.3 DNS 记录速记 30.4 HTTP 状态码速记 三十一、容易混淆的问题 31.1 HTTP 无状态是不是服务器不能记住用户 31.2 DNS 是不是网络层协议 31.3 SMTP 和 IMAP 区别是什么 31.4 HTTP 与 SMTP 都是文本协议,区别在哪里 31.5 UDP 不可靠为什么还能用于重要应用 31.6 DASH 中是谁决定视频码率 三十二、用一条主线串起第二章 三十三、本章复习建议)

一、第二章整体概览

第二章讲的是 Application Layer(应用层)

如果说第一章是在建立"互联网整体怎么工作"的宏观框架,那么第二章就开始进入真正的网络应用:Web、HTTP、电子邮件、DNS、P2P、视频流、CDN,以及最后的 socket 编程。

这一章的核心问题可以概括为一句话:

网络应用程序之间到底是怎么通过网络交换消息的?

本章主要内容包括:

  1. 网络应用的基本原理
  2. Web 与 HTTP
  3. E-mail、SMTP、IMAP
  4. DNS 域名系统
  5. P2P 应用
  6. 视频流与 CDN
  7. UDP/TCP socket 编程
  8. socket timeout 与 try-except 异常处理

本章最重要的关键词包括:

  • client-server
  • P2P
  • process
  • socket
  • IP address + port number
  • HTTP
  • cookie
  • Web cache
  • Conditional GET
  • SMTP
  • IMAP
  • DNS
  • BitTorrent
  • DASH
  • CDN
  • UDP socket
  • TCP socket

二、网络应用的基本原理

2.1 什么是网络应用

网络应用就是运行在端系统上的程序,并通过网络与其他端系统上的程序通信。

常见网络应用包括:

  • Web 浏览器和 Web 服务器
  • 社交网络
  • 即时消息
  • 电子邮件
  • 多人网络游戏
  • YouTube、Netflix 等流媒体视频
  • P2P 文件共享
  • VoIP,例如 Skype
  • 实时视频会议,例如 Zoom
  • 搜索引擎
  • 远程登录

注意,网络应用运行在 end systems(端系统) 上,而不是运行在网络核心设备上。

也就是说:

浏览器、Web 服务器、邮件客户端、视频客户端这些应用程序运行在主机上;路由器、交换机等网络核心设备只负责转发分组,不运行用户应用。

这样设计的好处是非常大的:

如果想开发一个新的网络应用,只需要在端系统上写程序并部署,不需要修改网络核心设备。

这就是互联网应用能够快速发展和扩散的重要原因。


2.2 创建一个网络应用需要做什么

创建网络应用时,程序员主要写的是运行在端系统上的程序。

例如:

  • Web server software 运行在服务器上;
  • browser software 运行在用户主机上;
  • 两者通过网络通信。

程序员不需要给路由器写用户应用代码,因为网络核心设备不运行用户应用。

这体现了互联网设计中的一个重要思想:

complexity at network edge,复杂性放在网络边缘。

应用层的复杂逻辑通常放在端系统,网络核心尽量保持简单,主要负责转发。


三、两种典型应用体系结构

网络应用常见的体系结构主要有两类:

  1. Client-Server,客户-服务器结构
  2. Peer-to-Peer,P2P 对等结构

3.1 Client-Server 客户-服务器结构

Client-Server 是最经典的网络应用结构。

在这种结构中,有一个长期在线的服务器,多个客户端主动联系服务器。

服务器 server 的特点:

  • always-on host,通常一直在线;
  • permanent IP address,通常具有固定 IP 地址;
  • often in data centers,为了扩展能力,常部署在数据中心。

客户端 client 的特点:

  • 主动联系服务器;
  • 可以间歇性连接网络;
  • IP 地址可能是动态的;
  • 客户端之间通常不直接通信。

典型例子:

  • HTTP
  • IMAP
  • FTP

例如浏览网页时,浏览器是 client,Web 服务器是 server。浏览器主动连接服务器,请求网页对象,服务器返回对象。


3.2 P2P 对等结构

P2P 的全称是 Peer-to-Peer。

它的核心特点是:

没有 always-on server,任意端系统之间可以直接通信。

P2P 中的节点称为 peer,对等方。

Peer 的特点是:

  • 向其他 peer 请求服务;
  • 同时也向其他 peer 提供服务;
  • 可能频繁上线和下线;
  • IP 地址可能变化;
  • 管理复杂。

P2P 的一个重要优势是 self scalability(自扩展性)

什么意思?

当新 peer 加入系统时,它确实带来了新的下载需求,但它同时也带来了新的上传能力。因此,系统规模变大时,不一定完全依赖中心服务器扩容。

典型例子:

  • BitTorrent
  • P2P file sharing
  • 一些流媒体或 VoIP 系统

3.3 Client-Server 与 P2P 对比

对比项 Client-Server P2P
是否有中心服务器 通常没有固定中心服务器
通信方式 客户端与服务器通信 peer 之间直接通信
可扩展性 服务器压力随用户数上升 新 peer 同时贡献上传能力
管理复杂度 相对简单 更复杂
节点稳定性 服务器稳定 peer 可能频繁上下线
典型应用 Web、邮件、FTP BitTorrent

考试中常见判断:

P2P 中的 peer 既可能像客户端一样请求服务,也可能像服务器一样提供服务。

这个说法是对的。


四、进程通信与 Socket

4.1 网络中真正通信的是进程

应用层中,真正通信的对象不是"主机"本身,而是主机上的 进程 process

process 是运行在主机中的程序。

同一台主机上的两个进程,可以通过操作系统提供的进程间通信机制通信。

不同主机上的进程,需要通过网络交换 messages。

所以应用层通信可以理解为:

text 复制代码
主机 A 上的进程  <------网络------>  主机 B 上的进程

即使一个应用采用 P2P 结构,也仍然可以区分 client process 和 server process:

  • 请求服务的一方临时扮演 client process;
  • 提供服务的一方临时扮演 server process。

4.2 Socket 是什么

Socket 可以理解为应用进程与传输层之间的接口。

课件中用了一个非常形象的比喻:

socket 就像一扇门。应用进程把消息推出门,门后面的传输层和网络基础设施负责把消息送到对方进程的 socket。

发送方:

text 复制代码
应用进程 → socket → 传输层 → 网络层 → 链路层 → 物理层

接收方:

text 复制代码
物理层 → 链路层 → 网络层 → 传输层 → socket → 应用进程

一次通信涉及两个 socket:

  • 发送端一个 socket;
  • 接收端一个 socket。

需要注意:

socket 不是一个单独的网络层次,而是应用层进程和传输层之间的 API。


4.3 如何定位一个进程

要让一个进程收到消息,必须有标识符 identifier。

一台主机有 IP 地址,例如 IPv4 中是 32-bit IP address。

但是只知道 IP 地址不够。

原因是:

一台主机上可能同时运行很多进程。

例如一台电脑上可能同时运行:

  • 浏览器
  • 微信
  • 邮件客户端
  • 游戏客户端
  • SSH
  • 其他后台服务

所以,要唯一定位某台主机上的某个进程,需要:

text 复制代码
IP 地址 + 端口号

常见端口号:

应用 默认端口号
HTTP server 80
mail server SMTP 25
HTTPS 443

例如向 gaia.cs.umass.edu 发送 HTTP 请求,可能需要:

text 复制代码
IP address: 128.119.245.12
port number: 80

总结:

IP 地址定位主机,端口号定位主机上的具体进程。


五、应用层协议定义什么

一个应用层协议 application-layer protocol 主要定义以下内容。

5.1 消息类型

协议需要定义会交换哪些类型的消息。

例如:

  • request 请求消息
  • response 响应消息

HTTP 就是典型的 request / response 模式。


5.2 消息语法 syntax

消息语法规定:

  • 消息中有哪些字段;
  • 字段如何排列;
  • 字段之间如何分隔。

例如 HTTP 请求行:

http 复制代码
GET /index.html HTTP/1.1

其中包含方法、URL 路径和 HTTP 版本。


5.3 消息语义 semantics

消息语义规定每个字段是什么意思。

例如:

http 复制代码
Host: www.example.com

表示请求的主机名。


5.4 发送与响应规则

协议还要规定:

  • 什么时候发送消息;
  • 收到某类消息后如何响应;
  • 出错时如何处理。

5.5 开放协议与私有协议

应用层协议可以分为两类。

开放协议 open protocols:

  • 通常由 RFC 定义;
  • 所有人都可以访问协议定义;
  • 支持互操作 interoperability。

典型例子:

  • HTTP
  • SMTP

私有协议 proprietary protocols:

  • 协议细节由公司或组织控制;
  • 外部不一定完全公开。

典型例子:

  • Skype
  • Zoom

六、应用需要什么传输层服务

不同应用对传输层的要求不同。主要可以从四个角度看。


6.1 数据完整性 data integrity

有些应用不能丢数据,例如:

  • 文件传输
  • Web 事务
  • 电子邮件
  • 文本消息

这些应用要求 100% reliable data transfer。

有些应用可以容忍少量丢包,例如:

  • 实时音频
  • 实时视频
  • 流媒体

因为实时音视频中,少量丢包可能只是画面或声音轻微抖动,但如果为了重传导致延迟过大,体验反而更差。


6.2 时延 timing

有些应用要求低时延。

例如:

  • Internet telephony
  • interactive games
  • real-time video conferencing

如果网络电话延迟太大,对话就会很不自然;如果游戏延迟过大,操作反馈就会滞后。


6.3 吞吐量 throughput

有些应用需要最低吞吐量。

例如多媒体应用:

  • audio: 5 Kbps 到 1 Mbps
  • video: 10 Kbps 到 5 Mbps

有些应用是 elastic apps,弹性应用。

弹性应用的特点是:

给多少吞吐量就用多少,慢一点也能完成。

例如:

  • 文件下载
  • 电子邮件
  • Web 文档

6.4 安全 security

应用可能需要:

  • 加密 encryption
  • 数据完整性 data integrity
  • 端点认证 end-point authentication

这就引出了 TLS。


七、TCP、UDP 与 TLS

7.1 TCP 提供的服务

TCP service 包括:

  1. reliable transport

    在发送进程和接收进程之间提供可靠传输。

  2. flow control

    发送方不会压垮接收方。

  3. congestion control

    网络过载时限制发送方发送速率。

  4. connection-oriented

    客户端和服务器进程之间需要先建立连接。

TCP 不提供:

  • 时延保证;
  • 最小吞吐量保证;
  • 原生安全性。

7.2 UDP 提供的服务

UDP service 是非常简单的:

  • unreliable data transfer;
  • 不保证可靠;
  • 不保证有序;
  • 不提供流量控制;
  • 不提供拥塞控制;
  • 不提供连接建立;
  • 不提供时延和吞吐量保证;
  • 不提供安全性。

那为什么还要 UDP?

因为 UDP:

  • 没有握手,开销小;
  • 延迟低;
  • 应用可以自己在上层实现可靠性或拥塞控制;
  • 适合 DNS、实时音视频、HTTP/3 等场景。

7.3 常见应用与传输层协议

应用 应用层协议 传输层协议
文件传输 FTP TCP
电子邮件 SMTP TCP
Web 文档 HTTP TCP
Internet telephony SIP/RTP/proprietary TCP 或 UDP
streaming audio/video HTTP/DASH TCP
interactive games proprietary UDP 或 TCP

7.4 TLS:给 TCP 加安全性

普通 TCP 和 UDP socket 没有加密。

如果直接把明文密码写进 socket,它会以 cleartext 的方式穿过互联网,非常危险。

TLS,Transport Layer Security,可以提供:

  • encrypted TCP connections;
  • data integrity;
  • end-point authentication。

注意:

TLS 实现在应用层。应用调用 TLS library,TLS library 再使用 TCP。

所以 HTTPS 可以粗略理解为:

text 复制代码
HTTP + TLS + TCP

明文数据进入 TLS socket 后,在网络中传输的是加密后的内容。


八、Web 与 HTTP

8.1 Web 页面由对象组成

一个 Web page 由多个 objects 组成。

对象 object 可以是:

  • HTML file
  • JPEG image
  • Java applet
  • audio file
  • CSS 文件
  • JavaScript 文件

一个 Web 页面通常有一个 base HTML file,里面引用多个其他对象。

每个对象都可以通过 URL 定位。


8.2 URL:统一资源定位符

URL 的全称是 Uniform Resource Locator。

URL 是对互联网资源位置和访问方法的一种简洁表示。

一般格式:

text 复制代码
protocol://domain_name:port/item_name

含义:

部分 含义
protocol 使用的访问协议,例如 http
domain_name 服务器域名
port 协议端口号
item_name 资源路径名

默认情况下:

text 复制代码
protocol = http
port = 80
path = index.html

例如:

text 复制代码
http://www.example.com:80/index.html

8.3 HTTP 概述

HTTP 是 HyperText Transfer Protocol。

它是 Web 的应用层协议。

HTTP 使用 client/server model:

  • client:浏览器,请求、接收并显示 Web objects;
  • server:Web server,响应请求并发送对象。

HTTP 使用 TCP:

  1. client 创建 socket,向 server 的 80 端口发起 TCP 连接;
  2. server 接受 TCP 连接;
  3. 浏览器和 Web 服务器交换 HTTP messages;
  4. TCP 连接关闭,或者在 persistent HTTP 中保持一段时间。

8.4 HTTP 是无状态协议

HTTP 是 stateless。

意思是:

HTTP 服务器默认不维护过去客户端请求的信息。

每个 HTTP 请求在协议层面上都是独立的。

这带来一个好处:服务器实现简单。

但也带来一个问题:很多 Web 事务实际上需要状态,例如登录、购物车、推荐系统。因此后面需要 cookie 等机制来维护状态。


九、HTTP 连接方式

HTTP 连接分为两类:

  1. Non-persistent HTTP
  2. Persistent HTTP

9.1 Non-persistent HTTP

非持续 HTTP 的特点是:

text 复制代码
一个 TCP 连接最多发送一个对象

流程:

  1. 打开 TCP 连接;
  2. 发送一个 HTTP 请求;
  3. 服务器返回一个对象;
  4. 关闭 TCP 连接。

如果一个网页有 1 个 HTML 文件和 10 张 JPEG 图片,那么需要多次重复这个过程。

课件中的例子:

用户输入:

text 复制代码
www.someSchool.edu/someDepartment/home.index

该 HTML 文件包含文本和对 10 张 JPEG 图片的引用。

下载过程:

  1. 浏览器先与服务器建立 TCP 连接;
  2. 发送 HTTP request,请求 HTML 文件;
  3. 服务器返回 HTML;
  4. 服务器关闭 TCP 连接;
  5. 浏览器解析 HTML,发现 10 个图片对象;
  6. 对每个图片对象重复 TCP 连接和 HTTP 请求过程。

9.2 Non-persistent HTTP 响应时间

RTT,Round Trip Time,表示一个小分组从客户端到服务器再回到客户端的时间。

非持续 HTTP 请求一个对象需要:

  1. 一个 RTT 建立 TCP 连接;
  2. 一个 RTT 发送 HTTP 请求并收到 HTTP 响应的前几个字节;
  3. 对象传输时间。

所以:

text 复制代码
Non-persistent HTTP response time = 2RTT + file transmission time

这是第二章很重要的公式。


9.3 Persistent HTTP

Persistent HTTP 是 HTTP/1.1 默认使用的方式。

特点:

text 复制代码
一个 TCP 连接可以传输多个对象

服务器在发送响应后,不立即关闭连接,后续同一 client/server 之间的 HTTP messages 可以继续通过这个连接发送。

好处:

  • 不需要每个对象都重新建立 TCP 连接;
  • 减少 RTT;
  • 减少操作系统维护 TCP 连接的开销;
  • 可以更快获取网页中的多个对象。

课件提到,在理想情况下,所有 referenced objects 可能只需要 as little as one RTT,从而显著减少响应时间。


十、HTTP 报文格式

HTTP 有两类消息:

  1. request message
  2. response message

10.1 HTTP request message

HTTP 请求报文是 ASCII,人类可读。

示例:

http 复制代码
GET /index.html HTTP/1.1

Host: www-net.cs.umass.edu

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:80.0) Gecko/20100101 Firefox/80.0

Accept: text/html,application/xhtml+xml

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Connection: keep-alive

HTTP request message 的一般格式:

text 复制代码
request line
header lines
blank line
entity body

request line 一般包括:

text 复制代码
method URL version

例如:

http 复制代码
GET /index.html HTTP/1.1

10.2 常见 HTTP 方法

GET

GET 用于请求资源。

也可以把用户数据放在 URL 中,例如:

text 复制代码
www.somesite.com/animalsearch?monkeys&banana

问号后面的内容就是查询参数。


POST

POST 常用于提交表单数据。

用户输入的数据通常放在 entity body 中发送给服务器。


HEAD 类似 GET,但只请求响应头,不请求对象内容。

用途是查看某个资源的元信息,例如是否存在、大小、修改时间等。


PUT

PUT 用于上传新文件,或者用请求体中的内容完全替换服务器上指定 URL 的文件。


10.3 HTTP response message

HTTP response message 一般包括:

text 复制代码
status line
header lines
blank line
data

示例:

http 复制代码
HTTP/1.1 200 OK
Date: Tue, 08 Sep 2020 00:53:20 GMT
Server: Apache/2.4.6
Last-Modified: Tue, 01 Mar 2016 18:57:50 GMT
Content-Length: 2651
Content-Type: text/html; charset=UTF-8

<data>

status line 包括:

  • protocol version
  • status code
  • status phrase

10.4 常见 HTTP 状态码

状态码 含义
200 OK 请求成功,请求对象在响应报文中
301 Moved Permanently 请求对象已永久移动,新位置在 Location 字段中
400 Bad Request 请求报文格式错误,服务器无法理解
404 Not Found 请求文档在服务器上不存在
505 HTTP Version Not Supported 服务器不支持请求的 HTTP 版本

状态码出现在 server-to-client response message 的第一行。


10.5 用 netcat 手动测试 HTTP

课件中提到可以用 netcat 连接 Web server 的 80 端口,手动输入 HTTP 请求。

Mac 示例:

bash 复制代码
nc -c -v gaia.cs.umass.edu 80

Windows 示例:

bash 复制代码
ncat -C gaia.cs.umass.edu 80

连接后,用户键入的任何内容都会被发送到该 Web server 的 80 端口。

这可以帮助理解:

HTTP 报文本质上就是通过 TCP 连接发送的文本格式应用层消息。


十一、Cookie:HTTP 如何维护状态

HTTP GET/response 交互是 stateless 的。

也就是说,HTTP 本身没有"多步事务状态"的概念。

但现实中很多网站需要状态,例如:

  • 登录状态
  • 购物车
  • 推荐系统
  • 用户会话
  • Web 邮件

因此 Web sites 和 client browser 使用 cookies 在多个事务之间维护某些状态。


Cookie 机制包括四个部分:

  1. HTTP response message 中的 cookie header line;
  2. 后续 HTTP request message 中的 cookie header line;
  3. 用户主机上的 cookie file,由浏览器管理;
  4. Web site 后端数据库。

以 Susan 第一次访问某电商网站为例:

  1. Susan 用浏览器访问网站;
  2. 网站收到第一次 HTTP 请求;
  3. 网站生成 unique ID,也就是 cookie;
  4. 网站在后端数据库中为这个 ID 创建 entry;
  5. 网站通过 HTTP response 的 cookie header 把 cookie 发给浏览器;
  6. 浏览器保存 cookie;
  7. Susan 后续访问该网站时,HTTP request 会携带 cookie ID;
  8. 网站根据 cookie ID 识别 Susan。

所以 cookie 的本质是:

HTTP 报文携带状态标识,服务器后端数据库保存状态内容。


Cookie 常见用途:

  • authorization 授权
  • shopping carts 购物车
  • recommendations 推荐系统
  • user session state 用户会话状态,例如 Web e-mail

Cookie 也会带来隐私问题。

第一方 cookie 可以跟踪用户在某个网站上的行为。

第三方 persistent cookies,也叫 tracking cookies,可以跨多个网站追踪用户。

课件中的例子是:

  • 用户访问 nytimes.com
  • 页面中嵌入来自 AdX.com 的广告资源;
  • 浏览器向 AdX.com 请求广告时携带 AdX cookie;
  • 用户第二天访问 socks.com,如果该网站也有 AdX 广告,则 AdX 可以把这两次浏览行为关联起来;
  • 后续用户再访问 nytimes.com arts 页面时,AdX 可以根据之前看过袜子网站的记录返回袜子广告。

因此:

用户可能从未主动访问过 tracking site,但仍然被第三方 cookie 追踪。

追踪甚至可以通过 invisible link 实现,不一定需要显示广告。

课件提到:

  • Firefox 和 Safari 默认禁用第三方追踪 cookie;
  • Chrome 也计划禁用第三方 cookie。

十二、Web Cache 与 Conditional GET

12.1 Web cache 是什么

Web cache 又称 proxy server。

目标是:

在不访问 origin server 的情况下满足客户端请求。

用户可以配置浏览器指向一个 local Web cache。

浏览器发送 HTTP 请求时:

  1. 请求先发给 cache;
  2. 如果对象在 cache 中,cache 直接返回对象;
  3. 如果对象不在 cache 中,cache 向 origin server 请求;
  4. cache 保存收到的对象;
  5. cache 再把对象返回给 client。

12.2 Web cache 同时扮演 client 和 server

Web cache 既是 server,也是 client。

对原始请求客户端来说:

text 复制代码
cache 是 server

对 origin server 来说:

text 复制代码
cache 是 client

12.3 为什么需要 Web cache

Web caching 的好处:

  1. 减少客户端请求响应时间

    因为 cache 通常离 client 更近。

  2. 减少机构 access link 流量

    命中的对象不用走外部 Internet。

  3. 减轻 origin server 压力

    很多请求在缓存处就被满足。

  4. 帮助小内容提供者更有效地分发内容

    Internet 中充满了各种 cache。


12.4 Web cache 计算例子

课件中的场景:

text 复制代码
access link rate = 1.54 Mbps
RTT from institutional router to server = 2 sec
web object size = 100000 bits
average request rate = 15 requests/sec
LAN rate = 1 Gbps

平均数据率:

text 复制代码
100000 bits/request × 15 requests/sec = 1.50 Mbps

没有 cache 时,access link utilization:

text 复制代码
1.50 / 1.54 ≈ 0.97

链路利用率高达 0.97,会造成很大的排队时延。

end-end delay 大致为:

text 复制代码
Internet delay + access link delay + LAN delay
= 2 sec + minutes + usecs

其中 access link queueing delay 可能非常大。


一种解决方案是购买更快的接入链路。

这样可以降低 access link utilization。

但是缺点是:

text 复制代码
expensive

12.6 方案二:安装 Web cache

安装 Web cache 通常更便宜。

假设 cache hit rate = 0.4。

也就是说:

  • 40% 请求由 cache 满足,时延很低;
  • 60% 请求需要访问 origin server。

则外部 access link 上的数据率变成:

text 复制代码
0.6 × 1.50 Mbps = 0.9 Mbps

access link utilization:

text 复制代码
0.9 / 1.54 ≈ 0.58

利用率下降后,access link queueing delay 也会显著降低。

平均 end-end delay:

text 复制代码
0.6 × delay from origin servers + 0.4 × delay when satisfied at cache
≈ 0.6 × 2.01 + 0.4 × 几毫秒
≈ 1.2 sec

这个例子说明:

Web cache 可以用较低成本显著降低平均响应时间和接入链路压力。


12.7 Browser caching 与 Conditional GET

浏览器本地也可以缓存对象。

问题是:

浏览器缓存的对象可能已经不是最新版本。

Conditional GET 的目标是:

如果浏览器已有最新缓存版本,就不要重新发送对象。

客户端在 HTTP request 中加入:

http 复制代码
If-modified-since: <date>

服务器判断对象是否在该日期之后修改过。

如果没有修改:

http 复制代码
HTTP/1.0 304 Not Modified

响应中不包含对象数据。

如果已经修改:

http 复制代码
HTTP/1.0 200 OK
<data>

服务器发送新对象。

这样可以减少对象传输延迟和网络资源消耗。


十三、HTTP/2 与 HTTP/3

13.1 HTTP/1.1 的问题

HTTP/1.1 引入了 persistent connection,也可以在单个 TCP 连接上进行 pipelined GETs。

但是 HTTP/1.1 中,服务器通常按照 FCFS,first-come-first-served 顺序响应请求。

这会导致 Head-of-Line blocking,队头阻塞。

例如客户端请求:

text 复制代码
O1: 大对象,例如视频文件
O2: 小对象
O3: 小对象
O4: 小对象

如果 O1 在前面,O2、O3、O4 可能必须等待 O1 传完。

另外,TCP segment 丢失后的恢复也会阻塞对象传输。


13.2 HTTP/2 的目标

HTTP/2 的关键目标是:

decreased delay in multi-object HTTP requests。

HTTP/2 保留了 HTTP/1.1 的很多语义:

  • methods 不变;
  • status codes 不变;
  • 大多数 header fields 不变。

但 HTTP/2 提高了服务器向客户端发送对象的灵活性:

  1. 可以根据客户端指定的对象优先级决定传输顺序;
  2. 可以 push 客户端未请求但可能需要的对象;
  3. 可以把对象划分为 frames;
  4. 可以交错调度不同对象的 frames,从而缓解 HOL blocking。

13.3 HTTP/2 如何缓解 HOL blocking

HTTP/1.1 中,如果客户端请求一个大对象 O1 和三个小对象 O2、O3、O4,服务器按顺序发送,那么小对象必须等在大对象后面。

HTTP/2 把对象拆成 frames,并交错发送不同对象的 frames。

这样:

  • O2、O3、O4 可以较快到达;
  • O1 可能稍微延迟一点;
  • 整体用户感知时延更低。

13.4 HTTP/2 到 HTTP/3

HTTP/2 运行在单个 TCP 连接上,仍然有一个问题:

TCP 层的丢包恢复会阻塞该连接上的所有对象传输。

因此浏览器仍然有动力打开多个并行 TCP 连接来减少阻塞并增加吞吐量。

另外,vanilla TCP 本身没有安全性。

HTTP/3 的思路是:

  • 基于 UDP;
  • 增加安全性;
  • 支持每个对象的错误控制和拥塞控制;
  • 提供更好的多路复用能力。

更深入的 HTTP/3 会在传输层学习。


十四、电子邮件:E-mail、SMTP、IMAP

14.1 电子邮件系统的三个组成部分

E-mail 系统有三个主要组成部分:

  1. user agents
  2. mail servers
  3. SMTP,Simple Mail Transfer Protocol

14.2 User Agent

User Agent 又称 mail reader。

功能包括:

  • composing mail messages;
  • editing mail messages;
  • reading mail messages。

典型例子:

  • Outlook
  • iPhone mail client

用户的 incoming messages 和 outgoing messages 通常存储在服务器上。


14.3 Mail Server

mail server 主要有两个重要部分:

  1. mailbox

    保存用户收到的邮件。

  2. message queue

    保存等待发送的邮件。

SMTP 运行在 mail servers 之间,用于发送 email messages。

在 SMTP 中:

  • 发送方 mail server 扮演 client;
  • 接收方 mail server 扮演 server。

14.4 SMTP 基本特点

SMTP 定义在 RFC 5321 中。

SMTP 使用 TCP,在 port 25 上可靠传输 email message。

SMTP 是 direct transfer:

text 复制代码
sending server → receiving server

SMTP 传输有三个阶段:

  1. SMTP handshaking,也就是 greeting;
  2. SMTP transfer of messages;
  3. SMTP closure。

SMTP 与 HTTP 类似,也采用 command/response interaction:

  • commands 是 ASCII text;
  • response 包含 status code 和 phrase。

14.5 Alice 给 Bob 发邮件的过程

场景:Alice 给 Bob 发送邮件,Bob 的地址是:

text 复制代码
bob@someschool.edu

流程:

  1. Alice 使用 UA 编写邮件;
  2. Alice 的 UA 使用 SMTP 把邮件发送到 Alice 的 mail server;
  3. Alice 的 mail server 中 SMTP client 打开到 Bob mail server 的 TCP 连接;
  4. SMTP client 通过 TCP 连接发送 Alice 的邮件;
  5. Bob 的 mail server 把邮件放入 Bob 的 mailbox;
  6. Bob 使用自己的 user agent 读取邮件。

14.6 SMTP 交互示例

课件给出的 SMTP 交互示例:

text 复制代码
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

关键命令:

命令 作用
HELO 客户端向服务器打招呼
MAIL FROM 指定发送方
RCPT TO 指定接收方
DATA 开始发送邮件正文
. 单独一行的点表示邮件结束
QUIT 关闭会话

14.7 SMTP 的几个重要观察

SMTP 使用 persistent connections。

SMTP 要求 message,也就是 header 和 body,采用 7-bit ASCII。

SMTP server 使用:

text 复制代码
CRLF.CRLF

判断消息结束。


14.8 SMTP 与 HTTP 对比

对比项 HTTP SMTP
模式 client pull client push
主要用途 获取 Web 对象 发送邮件
命令/响应 ASCII command/response ASCII command/response
状态码
对象组织 每个对象封装在自己的 response 中 多个对象可放在 multipart message 中

一句话:

HTTP 是拉取内容,SMTP 是推送邮件。


14.9 Mail message format

SMTP 是交换电子邮件消息的协议。

但电子邮件消息本身的语法由 RFC 2822 定义。

邮件消息格式:

text 复制代码
header lines
blank line
body

常见 header lines:

text 复制代码
To:
From:
Subject:

注意:

邮件 header 中的 To、From、Subject 与 SMTP 命令 MAIL FROM、RCPT TO 不完全是同一个层面的东西。

Body 是邮件正文,传统 SMTP 中要求 ASCII characters only。


14.10 邮件访问协议:IMAP 与 HTTP

SMTP 主要用于 delivery/storage,也就是把邮件发送到接收方邮件服务器。

用户读取邮件时,需要 mail access protocol。

IMAP,Internet Mail Access Protocol:

  • 消息保存在服务器上;
  • 支持 retrieve;
  • 支持 deletion;
  • 支持服务器上的 folders 管理。

Webmail,例如 Gmail、Hotmail、Yahoo Mail,则提供基于 HTTP 的网页界面。

可以理解为:

text 复制代码
用户浏览器通过 HTTP 操作邮箱界面
底层邮件发送仍可能使用 SMTP
邮件读取可能使用 IMAP 或 POP

十五、DNS:Domain Name System

15.1 为什么需要 DNS

人类喜欢使用名字,例如:

text 复制代码
cs.umass.edu
www.amazon.com

而互联网主机和路由器真正转发数据报时使用的是 IP address。

DNS 解决的问题是:

如何在 hostname 和 IP address 之间相互映射。

DNS 是:

  • 一个分布式数据库;
  • 由层次化的很多 name servers 实现;
  • 一个应用层协议;
  • 主机和 DNS server 通过 DNS protocol 进行 name resolution。

虽然 DNS 是互联网核心功能,但它被实现为应用层协议。

这再次体现了:

complexity at network edge。


15.2 DNS 提供哪些服务

DNS services 包括:

  1. hostname-to-IP-address translation

    主机名到 IP 地址的转换。

  2. host aliasing

    主机别名,例如 canonical name 和 alias name。

  3. mail server aliasing

    邮件服务器别名。

  4. load distribution

    负载分配。一个域名可以对应多个 IP 地址,用于复制的 Web servers。


15.3 为什么 DNS 不能集中式

如果 DNS 是一个集中式服务器,会出现严重问题:

  1. single point of failure

    单点故障。

  2. traffic volume

    查询流量过大。

  3. distant centralized database

    用户距离中心数据库很远,时延大。

  4. maintenance

    维护困难。

所以结论是:

text 复制代码
centralized DNS does not scale

课件中提到:

  • Comcast DNS servers alone: 600B DNS queries/day;
  • Akamai DNS servers alone: 2.2T DNS queries/day。

DNS 查询量巨大,不可能依赖单一中心。


15.4 如何理解 DNS

DNS 可以看作一个巨大的分布式数据库。

特点:

  • 大约有十亿级别记录,每条记录很简单;
  • 每天处理许多万亿次查询;
  • 读远多于写;
  • 性能非常重要,因为几乎每次互联网事务都会与 DNS 交互;
  • 组织上和物理上都去中心化;
  • 需要可靠性和安全性。

十六、DNS 层次结构与解析过程

16.1 DNS 是分布式层次数据库

以查询 www.amazon.com 的 IP 地址为例。

第一近似过程:

  1. client 查询 root server,找到 .com DNS server;
  2. client 查询 .com DNS server,找到 amazon.com DNS server;
  3. client 查询 amazon.com DNS server,得到 www.amazon.com 的 IP address。

16.2 Root DNS Servers

Root name servers 是最后求助对象。

当其他 name server 无法解析某个名字时,会联系 root server。

Root DNS 是非常重要的互联网功能。

课件强调:

Internet couldn't function without it!

Root DNS 相关信息:

  • ICANN 管理 root DNS domain;
  • 全球有 13 个 logical root name servers;
  • 每个 logical server 会被复制很多次;
  • DNSSEC 可以提供 authentication 和 message integrity。

16.3 TLD Servers

TLD 是 Top-Level Domain。

TLD servers 负责顶级域名,例如:

  • .com
  • .org
  • .net
  • .edu
  • .aero
  • .jobs
  • .museums
  • .cn
  • .uk
  • .fr
  • .ca
  • .jp

例如:

  • Network Solutions 是 .com、.net 的 authoritative registry;
  • Educause 负责 .edu TLD。

16.4 Authoritative DNS Servers

Authoritative DNS server 是某个组织自己的 DNS server。

它负责提供该组织主机名到 IP 地址的权威映射。

它可以由组织自己维护,也可以由服务提供商维护。

例如 cs.umass.edu 的权威 DNS 服务器负责回答该域下主机名对应的 IP 地址。


16.5 Local DNS Name Server

当主机发起 DNS 查询时,通常先发送给 local DNS server。

Local DNS server 可以:

  1. 从本地 cache 返回结果;
  2. 如果缓存没有,则把请求转发到 DNS 层次结构中继续解析。

每个 ISP 通常都有 local DNS name server。

本地 DNS server 严格来说不属于 DNS hierarchy,但它非常重要。

查看本机 local DNS server:

MacOS:

bash 复制代码
scutil --dns

Windows:

bash 复制代码
ipconfig /all

16.6 迭代查询 Iterated Query

例子:engineering.nyu.edu 的主机想解析 gaia.cs.umass.edu

Iterated query 的特点是:

被询问的服务器如果不知道答案,会返回下一步该问谁。

也就是:

text 复制代码
I don't know this name, but ask this server.

流程大致是:

  1. 请求主机问 local DNS;
  2. local DNS 问 root DNS;
  3. root DNS 返回 TLD DNS 地址;
  4. local DNS 问 TLD DNS;
  5. TLD DNS 返回 authoritative DNS 地址;
  6. local DNS 问 authoritative DNS;
  7. authoritative DNS 返回目标 IP;
  8. local DNS 返回给请求主机。

16.7 递归查询 Recursive Query

Recursive query 的特点是:

被询问的服务器承担继续解析名字的责任。

也就是说,请求者把任务交给某个 DNS server,DNS server 再替它往下查询,最后返回结果。

递归查询的问题是:

可能给 DNS 层次结构上层服务器带来较重负载。


16.8 DNS 缓存

DNS 大量依赖缓存。

一旦某个 name server 学到了某个映射,就可以缓存它,并在后续查询中立即返回。

缓存的好处:

  • 提高响应速度;
  • 降低 DNS 上层服务器负载;
  • 减少 root 和 TLD 查询。

缓存条目会在 TTL 后消失。

TTL 是 Time To Live。

注意:缓存可能过期或不新。

如果某个主机 IP 地址改变,在所有缓存 TTL 过期之前,Internet 上可能仍有人拿到旧地址。

因此 DNS 是一种 best-effort name-to-address translation。


十七、DNS Resource Records

DNS 分布式数据库中存储的是 resource records,简称 RR。

格式:

text 复制代码
(name, value, type, ttl)

17.1 A 记录

text 复制代码
type = A
name = hostname
value = IP address

A 记录表示:

主机名到 IPv4 地址的映射。

例如:

text 复制代码
www.example.com → 93.184.216.34

17.2 NS 记录

text 复制代码
type = NS
name = domain
value = hostname of authoritative name server

NS 记录表示:

某个域名由哪个权威 DNS 服务器负责。

例如:

text 复制代码
foo.com → dns.foo.com

17.3 CNAME 记录

text 复制代码
type = CNAME
name = alias name
value = canonical name

CNAME 用于别名。

例如:

text 复制代码
www.ibm.com is really servereast.backup2.ibm.com

其中 www.ibm.com 是 alias name,servereast.backup2.ibm.com 是 canonical name。


17.4 MX 记录

text 复制代码
type = MX
value = name of SMTP mail server associated with name

MX 记录用于指定某个域名对应的邮件服务器。

例如:

text 复制代码
example.com → mail.example.com

17.5 其他 DNS 记录

课件还补充了以下记录类型:

类型 name value 作用
SOA 请求域名 该 DNS 区域的权威性信息 区域权威信息
TXT 主机名或域名 文本说明 SPF、验证等
AAAA 请求域名 IPv6 地址 域名到 IPv6
PTR IP 地址 域名 反向 DNS 查找
HINFO 请求域名 主机 CPU 和操作系统 主机信息

最常考的是:

text 复制代码
A、NS、CNAME、MX

十八、DNS Protocol Messages 与注册域名

18.1 DNS 查询和回复报文

DNS query 和 reply messages 使用相同的格式。

消息头包括:

  • identification:16-bit number,用于匹配查询和回复;
  • flags:标志字段。

flags 可以表示:

  • query or reply;
  • recursion desired;
  • recursion available;
  • reply is authoritative。

DNS message 中还包括:

  • query 的 name 和 type;
  • response 中的 RRs;
  • authoritative servers 的 records;
  • additional helpful info。

18.2 如何把自己的信息加入 DNS

课件例子:新创业公司 Network Utopia 想注册:

text 复制代码
networkutopia.com

步骤:

  1. 在 DNS registrar 注册域名,例如 Network Solutions;
  2. 提供 authoritative name server 的名字和 IP 地址,包括 primary 和 secondary;
  3. registrar 向 .com TLD server 插入 NS 和 A 记录:
text 复制代码
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
  1. 公司本地创建 authoritative server,IP 地址为 212.212.212.1
  2. 在本地 authoritative server 中创建:
text 复制代码
A record for www.networkutopia.com
MX record for networkutopia.com

18.3 DNS 安全问题

DNS 面临的攻击包括:

DDoS attacks

攻击者可能用大量流量轰炸 root servers 或 TLD servers。

课件指出:

  • 攻击 root servers 到目前为止没有成功;
  • 可以通过 traffic filtering 缓解;
  • local DNS servers 缓存 TLD server IP,因此很多查询可以绕过 root server;
  • 攻击 TLD servers 可能更危险。
Spoofing attacks

攻击者可能拦截 DNS 查询并返回伪造回复。

DNS cache poisoning

攻击者污染 DNS 缓存,使后续用户得到错误映射。

DNSSEC,RFC 4033,提供 authentication services,可以提升 DNS 安全性。


十九、P2P 文件分发

19.1 P2P 架构回顾

P2P 架构的特点:

  • no always-on server;
  • 任意端系统直接通信;
  • peers 从其他 peers 请求服务,同时也向其他 peers 提供服务;
  • self scalability;
  • peers 可能间歇性连接并改变 IP 地址;
  • 管理复杂。

典型应用:

  • BitTorrent
  • KanKan
  • Skype

19.2 文件分发问题

问题:

从一个 server 向 N 个 peers 分发大小为 F 的文件,需要多少时间?

符号:

符号 含义
F 文件大小
N peer 数量
us server upload capacity
ui peer i upload capacity
di peer i download capacity
dmin 所有 peer 中最小下载速率

peer 的 upload/download capacity 是有限资源。


19.3 Client-Server 文件分发时间

在 client-server 模式下,server 必须上传 N 份文件。

服务器上传一份需要:

text 复制代码
F / us

上传 N 份需要:

text 复制代码
NF / us

每个 client 至少要下载一份文件。

最慢客户端下载时间:

text 复制代码
F / dmin

所以 client-server 分发时间满足:

text 复制代码
Dcs ≥ max{ NF/us, F/dmin }

课件中写成大于号,本质上表示理论下界。

重点:

Client-server 分发时间随着 N 线性增加,因为服务器必须上传 N 份副本。


19.4 P2P 文件分发时间

P2P 模式下,服务器至少上传一份文件:

text 复制代码
F / us

每个 peer 至少下载一份文件:

text 复制代码
F / dmin

整体上,所有 peers 总共要下载 NF bits。

系统最大上传能力为:

text 复制代码
us + Σui

因此 P2P 分发时间满足:

text 复制代码
DP2P ≥ max{ F/us, F/dmin, NF/(us + Σui) }

P2P 的核心优势是:

N 增大时,虽然下载需求增加,但 peers 的总上传能力也增加。

因此 P2P 具有更好的 self scalability。


二十、BitTorrent

20.1 BitTorrent 基本概念

BitTorrent 中,文件被划分为 chunks。

课件中 chunk 大小为:

text 复制代码
256 Kb

相关概念:

概念 含义
torrent 正在交换某个文件 chunks 的 peers 集合
tracker 追踪参与 torrent 的 peers
chunk 文件块
churn peers 频繁加入和离开

20.2 Peer 加入 torrent 的过程

当一个 peer 加入 torrent:

  1. 一开始没有 chunks;
  2. 向 tracker 注册;
  3. 从 tracker 获得 peer list;
  4. 连接其中一部分 peers,称为 neighbors;
  5. 下载 chunks 的同时,也向其他 peers 上传 chunks;
  6. peer 可能改变交换对象;
  7. peer 可能随时离开或加入;
  8. 下载完整文件后,可以 selfishly leave,也可以 altruistically remain。

20.3 Requesting chunks:rarest first

在任意时刻,不同 peers 拥有不同的 chunks 子集。

Alice 会周期性询问每个 neighbor:

text 复制代码
你有哪些 chunks?

Alice 会请求自己缺失的 chunks,并采用:

text 复制代码
rarest first

也就是优先请求最稀有的块。

这样做的好处是:

避免某些 chunk 在系统中太少,提升整个 torrent 的分发效率和鲁棒性。


20.4 Sending chunks:tit-for-tat

BitTorrent 发送 chunks 时使用 tit-for-tat。

规则:

  1. Alice 给当前向她发送 chunks 速率最高的 4 个 peers 发送 chunks;
  2. 其他 peers 被 Alice choked,暂时收不到 Alice 的 chunks;
  3. 每 10 秒重新评估 top 4;
  4. 每 30 秒随机选择另一个 peer,开始给它发送 chunks,这叫 optimistically unchoke;
  5. 如果这个新 peer 速度很好,它可能进入 top 4。

20.5 Tit-for-tat 的意义

课件中的过程:

  1. Alice optimistically unchokes Bob;
  2. Alice 成为 Bob 的 top-four providers 之一;
  3. Bob 反过来也给 Alice 发送 chunks;
  4. Bob 成为 Alice 的 top-four providers 之一。

核心结论:

上传速率越高,越容易找到更好的交易伙伴,下载文件越快。

这是一种激励机制,鼓励 peer 上传。


二十一、视频流与 CDN

21.1 视频流背景

视频流是互联网带宽的主要消费者。

课件提到:

Netflix、YouTube、Amazon Prime 等流视频流量占 residential ISP traffic 的 80% 左右(2020)。

视频流面临两个主要挑战:

  1. scale

    如何服务大约 10 亿用户?

  2. heterogeneity

    不同用户能力不同,例如 wired vs mobile,bandwidth rich vs bandwidth poor。

解决思路是:

distributed, application-level infrastructure。

也就是分布式的应用层基础设施。


21.2 视频的本质

视频是按固定速率显示的一系列图像。

例如:

text 复制代码
24 images/sec

数字图像是像素数组,每个 pixel 用 bits 表示。

视频编码 coding 的目标是利用冗余减少表示图像所需的 bits。

两类冗余:

  1. spatial redundancy

    单张图像内部的空间冗余。

  2. temporal redundancy

    相邻图像之间的时间冗余。


21.3 CBR 与 VBR

视频编码率有两种形式。

CBR,constant bit rate:

视频编码率固定。

VBR,variable bit rate:

视频编码率会随着空间冗余和时间冗余变化而变化。

课件给出的例子:

编码格式 码率
MPEG 1,CD-ROM 1.5 Mbps
MPEG 2,DVD 3--6 Mbps
MPEG 4,Internet 常用 64 Kbps--12 Mbps

二十二、Streaming Stored Video

22.1 存储视频流的挑战

stored video 指服务器中已经存好的视频,客户端通过网络播放。

主要挑战:

  1. server-to-client bandwidth 会随时间变化;
  2. 网络拥塞会带来 packet loss 和 delay;
  3. delay 会影响播放;
  4. loss 会降低视频质量;
  5. 客户端需要支持 pause、fast-forward、rewind、jump 等交互;
  6. 丢失的视频 packets 可能需要重传。

22.2 Continuous playout constraint

视频播放有 continuous playout constraint。

意思是:

客户端播放视频时,播放时间必须匹配原始视频的时间节奏。

但是网络 delay 是可变的,也就是 jitter。

因此需要 client-side buffer。

buffer 的作用是:

用一定的播放前等待时间,吸收网络延迟抖动,保证连续播放。


22.3 Playout buffering

客户端缓冲和播放延迟可以补偿网络带来的 delay 和 delay jitter。

如果数据到达速度暂时变慢,播放器可以先消耗 buffer 中的数据。

如果 buffer 被耗尽,就会出现卡顿。


二十三、DASH:Dynamic Adaptive Streaming over HTTP

23.1 DASH 的基本思想

DASH 全称是 Dynamic Adaptive Streaming over HTTP。

服务器端:

  1. 将 video file 分成多个 chunks;
  2. 每个 chunk 编码为多个不同 rate;
  3. 不同 rate encodings 存储在不同 files;
  4. files 被复制到多个 CDN nodes;
  5. manifest file 提供不同 chunks 的 URLs。

客户端:

  1. 周期性估计 server-to-client bandwidth;
  2. 查询 manifest;
  3. 一次请求一个 chunk;
  4. 根据当前带宽选择最大可持续编码率;
  5. 不同时间点可以选择不同码率;
  6. 也可以从不同 server 请求 chunk。

23.2 DASH 的智能在客户端

DASH 中的 intelligence at client 体现在:

  1. when to request chunk

    决定什么时候请求 chunk,避免 buffer starvation 或 overflow。

  2. what encoding rate to request

    网络好时请求高质量,网络差时请求低质量。

  3. where to request chunk

    从更近或者可用带宽更高的 URL server 请求。

因此:

text 复制代码
Streaming video = encoding + DASH + playout buffering

这一句可以直接作为本节总结。


二十四、CDN:Content Distribution Networks

24.1 为什么需要 CDN

问题:如何把海量视频内容同时传给数十万甚至更多用户?

方案一是 single large mega-server。

但这个方案不可扩展,因为会有:

  1. single point of failure;
  2. network congestion point;
  3. 到远距离客户端的路径长且可能拥塞;
  4. 整体不具备可扩展性。

所以结论是:

text 复制代码
single mega-server does not scale

24.2 CDN 的基本思想

CDN 的思路是:

在多个地理分布的位置存储和服务内容副本。

也就是:

text 复制代码
store/serve multiple copies of videos at multiple geographically distributed sites

这样用户可以从更近或更合适的节点获取视频。


24.3 CDN 两种部署方式

enter deep

enter deep 指把 CDN servers 深入部署到许多 access networks 中。

特点:

  • 更靠近用户;
  • 节点数量很多;
  • Akamai 是典型例子。

课件提到 Akamai 在 2015 年:

text 复制代码
240,000 servers deployed in > 120 countries

bring home

bring home 指在靠近 access networks 的 POPs 中部署较少数量但规模更大的集群。

特点:

  • clusters 数量较少,可能是几十个;
  • 每个集群更大;
  • Limelight 使用这种方式。

24.4 Netflix 工作机制

Netflix 使用 OpenConnect CDN nodes 存储内容副本。

流程大致如下:

  1. Bob 管理 Netflix account;
  2. Netflix registration 和 accounting servers 可能运行在 Amazon cloud;
  3. Bob 浏览 Netflix 视频;
  4. 服务提供商返回 manifest file;
  5. 客户端根据 manifest 选择 DASH server;
  6. 客户端以当前最高可支持速率获取内容;
  7. 如果网络路径拥塞,可以选择不同 rate 或不同 copy。

Netflix 系统并不是单一服务器,而是:

text 复制代码
账号系统 + 云服务 + CDN + DASH 客户端自适应选择

24.5 OTT 挑战

OTT 是 over the top。

CDN 面临的问题包括:

  1. what content to place in which CDN node?

    哪些内容应该放在哪些 CDN 节点?

  2. from which CDN node to retrieve content?

    用户应该从哪个 CDN 节点取内容?

  3. at which rate?

    应该以什么码率取内容?

这些都是从网络边缘处理拥塞 Internet 的问题。


24.6 CDN 内容访问与 DNS/CNAME

课件给出的例子:

Bob 想访问:

text 复制代码
http://netcinema.com/6Y7B23V

视频实际存储在 CDN 中:

text 复制代码
http://KingCDN.com/NetC6y&B23V

流程:

  1. Bob 从 netcinema.com 页面得到视频 URL;
  2. Bob 的 local DNS 解析 netcinema.com/6Y7B23V
  3. netcinema 的 authoritative DNS 返回一个 CNAME,指向:
text 复制代码
http://KingCDN.com/NetC6y&B23V
  1. 继续解析 KingCDN 的域名;
  2. KingCDN authoritative DNS 帮 Bob 选择合适的 CDN server;
  3. Bob 从 KingCDN server 请求视频;
  4. 视频通过 HTTP streaming 返回。

这个例子说明:

CDN 常常通过 DNS 和 CNAME 把用户引导到合适的内容服务器。


二十五、Socket Programming

25.1 Socket 编程目标

socket programming 的目标是:

学会构建使用 socket 通信的 client/server applications。

Socket 是:

text 复制代码
door between application process and end-end transport protocol

也就是应用进程与端到端传输协议之间的门。


25.2 两种 socket 类型

对应两种传输层服务,socket 也主要有两类。

socket 类型 传输协议 特点
UDP socket UDP unreliable datagram
TCP socket TCP reliable byte stream-oriented

课件中的应用例子:

  1. client 从键盘读取一行小写字符;
  2. client 把数据发送给 server;
  3. server 收到数据后转换为大写;
  4. server 把修改后的数据发回 client;
  5. client 显示结果。

二十六、UDP Socket 编程

26.1 UDP 的特点

UDP client 和 server 之间没有连接。

特点:

  • 发送数据前没有 handshaking;
  • sender 必须在每个 packet 中显式附带 destination IP address 和 port number;
  • receiver 从收到的 packet 中提取 sender IP address 和 port number;
  • UDP 数据可能丢失;
  • UDP 数据可能乱序到达。

从应用视角看:

UDP 在 client/server processes 之间提供 groups of bytes,也就是 datagrams 的不可靠传输。


26.2 UDP client 代码

课件中的 Python 3 UDP client:

python 复制代码
from socket import *

serverName = 'hostname'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)

message = input('Input lowercase sentence:')
clientSocket.sendto(message.encode(), (serverName, serverPort))

modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage.decode())

clientSocket.close()

关键点:

  • SOCK_DGRAM 表示 UDP;
  • sendto() 需要指定服务器地址和端口;
  • recvfrom() 返回消息和发送方地址;
  • UDP 没有 connect()

26.3 UDP server 代码

课件中的 Python 3 UDP server:

python 复制代码
from socket import *

serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))

print('The server is ready to receive')

while True:
    message, clientAddress = serverSocket.recvfrom(2048)
    modifiedMessage = message.decode().upper()
    serverSocket.sendto(modifiedMessage.encode(), clientAddress)

关键点:

  • server 使用 bind() 绑定本地端口;
  • recvfrom() 会得到 clientAddress;
  • server 回复时必须用 sendto(..., clientAddress)
  • 因为 UDP 没有连接,所以 server 必须知道每个 datagram 的来源地址。

二十七、TCP Socket 编程

27.1 TCP 的特点

TCP client 必须 contact server。

server process 必须先运行,并创建一个 socket 用来欢迎 client contact。

client 连接 server 时:

  1. 创建 TCP socket;
  2. 指定 server IP address 和 port number;
  3. client TCP 建立到 server TCP 的连接。

当 server 被 client 联系时:

server TCP 会创建一个新的 socket,专门用于和该 client 通信。

这允许 server 同时与多个 clients 通信。

不同 client 通过:

text 复制代码
client source port number + client IP address

区分。


27.2 TCP client 代码

课件中的 Python 3 TCP client:

python 复制代码
from socket import *

serverName = 'servername'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)

clientSocket.connect((serverName, serverPort))

sentence = input('Input lowercase sentence:')
clientSocket.send(sentence.encode())

modifiedSentence = clientSocket.recv(1024)
print('From Server:', modifiedSentence.decode())

clientSocket.close()

关键点:

  • SOCK_STREAM 表示 TCP;
  • TCP client 使用 connect() 建立连接;
  • 发送数据用 send()
  • 接收数据用 recv()

27.3 TCP server 代码

课件中的 Python 3 TCP server:

python 复制代码
from socket import *

serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', serverPort))
serverSocket.listen(1)

print('The server is ready to receive')

while True:
    connectionSocket, addr = serverSocket.accept()
    sentence = connectionSocket.recv(1024).decode()
    capitalizedSentence = sentence.upper()
    connectionSocket.send(capitalizedSentence.encode())
    connectionSocket.close()

关键点:

  • serverSocket 是 welcoming socket,用来等待 client 连接;
  • listen(1) 表示 server 准备接受连接;
  • accept() 返回新的 connectionSocket
  • connectionSocket 专门服务某个 client;
  • 处理完该 client 后关闭 connectionSocket

27.4 TCP 与 UDP socket 对比

对比项 UDP socket TCP socket
连接建立 无连接,无握手 需要 connect
数据形式 datagram byte stream
可靠性 不可靠 可靠、有序
发送函数 sendto send
接收函数 recvfrom recv
server 是否创建新 socket 通常不需要 accept 后创建 connectionSocket
是否需要每次指定目的地址 需要 连接建立后不需要

二十八、Socket Timeout 与异常处理

28.1 为什么需要等待多个事件

网络程序有时必须等待多个事件之一发生,例如:

  1. 等待 socket 对端的 reply;
  2. 等待 timeout 计时器到期;
  3. 等待多个 socket 中任意一个有回复。

这在网络编程中非常常见。

例如可靠数据传输协议 RDT 中,发送方发出 packet 后,需要等待:

  • ACK 到达;
  • 或者 timeout 发生。

28.2 Python socket.settimeout()

Python 中可以使用:

python 复制代码
s.settimeout(30)

含义是:

设置该 socket 后续所有操作的 timeout 为 30 秒。

如果后续 socket operation 超过 30 秒没有完成,就会抛出 exception。


28.3 try-except 处理异常

Python 中可以用 try-except 处理异常。

格式:

python 复制代码
try:
    # do something
except Exception:
    # handle the exception

执行 try 代码块时,如果发生 exception,程序会跳转到 except 代码块。

注意:

try block 必须搭配 except block。

在网络程序中,timeout 常常会抛出异常,所以需要用 try-except 来处理。


二十九、本章总结

第二章学习的是应用层。

本章主要掌握了:

29.1 应用体系结构

  • client-server
  • P2P

29.2 应用服务需求

  • reliability
  • bandwidth
  • delay
  • security

29.3 Internet 传输服务模型

  • TCP:connection-oriented,reliable
  • UDP:unreliable,datagram

29.4 具体应用层协议

  • HTTP
  • SMTP
  • IMAP
  • DNS
  • BitTorrent
  • DASH/CDN

29.5 Socket 编程

  • UDP socket
  • TCP socket
  • timeout
  • try-except

三十、第二章高频考点整理

30.1 必背概念

  1. 应用程序运行在端系统上,不运行在网络核心设备上。
  2. socket 是应用进程和传输层之间的接口。
  3. IP 地址定位主机,端口号定位主机上的进程。
  4. HTTP 是 stateless。
  5. cookie 用于在 HTTP 中维护用户状态。
  6. DNS 是分布式层次数据库,也是应用层协议。
  7. SMTP 是 push,HTTP 是 pull。
  8. P2P 具有 self scalability。
  9. DASH 的智能主要在客户端。
  10. CDN 通过分布式副本降低延迟、提升扩展性。

30.2 必背公式

非持续 HTTP 响应时间
text 复制代码
Non-persistent HTTP response time = 2RTT + file transmission time

Client-Server 文件分发时间
text 复制代码
Dcs ≥ max{ NF/us, F/dmin }

含义:

  • NF/us:服务器上传 N 份文件所需时间;
  • F/dmin:最慢客户端下载文件所需时间。

P2P 文件分发时间
text 复制代码
DP2P ≥ max{ F/us, F/dmin, NF/(us + Σui) }

含义:

  • F/us:服务器至少上传一份文件;
  • F/dmin:最慢 peer 至少下载一份文件;
  • NF/(us + Σui):系统整体上传能力限制。

Web cache 平均响应时间
text 复制代码
平均响应时间 = hit rate × cache 命中时延 + miss rate × origin server 时延

30.3 DNS 记录速记

类型 速记 作用
A Address 主机名到 IPv4 地址
AAAA IPv6 Address 主机名到 IPv6 地址
NS Name Server 域名到权威 DNS 服务器
CNAME Canonical Name 别名到规范名
MX Mail Exchange 域名到邮件服务器
PTR Pointer IP 地址到域名,反向 DNS
TXT Text 文本说明、验证信息
SOA Start of Authority 区域权威信息

30.4 HTTP 状态码速记

状态码 含义
200 OK,请求成功
301 Moved Permanently,永久移动
400 Bad Request,请求格式错误
404 Not Found,资源不存在
505 HTTP Version Not Supported

三十一、容易混淆的问题

31.1 HTTP 无状态是不是服务器不能记住用户

不是。

HTTP 协议本身无状态,意思是每个请求在协议层面独立。

但服务器可以通过 cookie、session、数据库等机制维护用户状态。


31.2 DNS 是不是网络层协议

不是。

DNS 解决的是域名到 IP 地址的映射,是互联网核心功能,但它被实现为应用层协议。


31.3 SMTP 和 IMAP 区别是什么

SMTP 用于发送邮件。

IMAP 用于从服务器读取和管理邮件。

一句话:

text 复制代码
SMTP 负责送,IMAP 负责取和管。

31.4 HTTP 与 SMTP 都是文本协议,区别在哪里

HTTP 是 pull,客户端主动拉取对象。

SMTP 是 push,发送方服务器主动把邮件推给接收方服务器。


31.5 UDP 不可靠为什么还能用于重要应用

因为 UDP 简单、延迟低、没有连接建立开销。

应用可以在 UDP 之上实现自己需要的可靠性、拥塞控制或加密。

例如 HTTP/3 基于 UDP,但在 QUIC 中实现了很多高级机制。


31.6 DASH 中是谁决定视频码率

客户端决定。

服务器提供多个码率版本和 manifest,客户端根据当前带宽、buffer 状态、服务器位置等选择合适 chunk。


三十二、用一条主线串起第二章

第二章的主线可以这样串起来:

  1. 网络应用运行在端系统,通过进程通信实现;
  2. 进程通过 socket 使用传输层服务;
  3. TCP 提供可靠连接,UDP 提供简单不可靠数据报;
  4. HTTP 使用 TCP 实现 Web 请求响应;
  5. Cookie、Cache、HTTP/2、HTTP/3 都是在优化 Web 体验;
  6. SMTP/IMAP 实现电子邮件发送与读取;
  7. DNS 把人类可读域名解析成机器可用 IP;
  8. P2P 利用 peer 上传能力提升扩展性;
  9. DASH 和 CDN 解决大规模视频分发问题;
  10. socket 编程让我们真正写出 client/server 程序。

最终总结一句话:

应用层定义端系统中进程之间如何交换消息;HTTP、SMTP、DNS、BitTorrent、DASH/CDN 都是在 TCP 或 UDP 提供的传输服务之上实现具体网络应用。


三十三、本章复习建议

复习第二章时,建议按以下顺序:

  1. 先理解应用层整体框架:进程、socket、IP + port;
  2. 再掌握 TCP/UDP 服务差异;
  3. 重点学习 HTTP,包括连接方式、报文格式、cookie、cache;
  4. 单独背 DNS 层次结构和 DNS record;
  5. 用公式掌握 Client-Server 与 P2P 分发时间;
  6. 理解 DASH 和 CDN 的工程动机;
  7. 最后看 UDP/TCP socket 代码流程。

如果为了考试,优先级最高的是:

text 复制代码
HTTP + DNS + P2P 公式 + socket 基本流程

这一章概念很多,但逻辑其实很清楚:

text 复制代码
应用进程 → socket → TCP/UDP → 网络

所有具体协议都可以放回这条线上理解。

相关推荐
努力成为AK大王1 小时前
TCP 连接管理篇
计算机网络·tcp协议·三次握手·四次挥手·传输层
sulikey1 小时前
数据库系统概论 - 定义与查询 期末速成课笔记
数据库·笔记·期末考试·数据查询·期末速成·数据库系统概论·数据定义
hj2862511 小时前
NFS共享存储 完整超详笔记(含原理+流程+命令详解+案例)
笔记
xcLeigh1 小时前
鸿蒙平台 NixNote2 富文本笔记应用适配实战:从 Linux 到 鸿蒙PC 的 Electron 迁移
linux·笔记·harmonyos·富文本·nixnote2·evernote
kdxiaojie1 小时前
Linux 驱动研究 —— SPI (2)
linux·运维·笔记·学习
星恒随风2 小时前
C++ 模板初阶:从泛型编程、函数模板到类模板,一篇打通基础概念
开发语言·c++·笔记·学习
爱讲故事的2 小时前
计算机网络第三讲:传输层 Transport Layer 全面复习
计算机网络
艾莉丝努力练剑2 小时前
【Linux网络】NAT、内网穿透、内网打洞
linux·运维·服务器·网络·计算机网络·udp·php
LuminousCPP2 小时前
数据结构 - 单链表第二篇:单链表进阶操作
c语言·数据结构·笔记·链表