阅读教材《计算机网络-自顶向下方法》中英文第七版时的笔记与总结,仅供参考,欢迎指正!
此处为章节目录
2.1应用层协议原理
2.1.1 网络应用程序体系结构..........55
2.1.2 进程通信...................... 57
2.1.3 可供应用程序使用的运输服务.........59
2.1.4 因特网提供的运输服务 ........ 60
2.1.5 应用层协议.................... 63
2.1.6 本书涉及的网络应用 .......... 63
2.2 Web 和 HTTP........................... 64
2.2.1 HTTP 概况.................... 64
2.2.2 非持续连接和持续连接 ........ 65
2.2.3 HTTP报文格式............... 67
2.2.4 用户与服务器的交互:cookie …70
2.2.5 Web 缓存.................... 72
2.2.6 条件GET方法.................. 74
2.3因特网中的电子邮件............... 75
2.3.1 SMTP .................................. 76
2.3.2 与HTTP的对比............... 78
2.3.3 邮件报文格式................. 79
2.3.4 邮件访问协议................. 79
2.4 DNS:因特网的目录服务.......... 83
2.4. 1 DNS 提供的服务 ............... 83
2. 4.2 DNS工作机理概述 ............ 85
2.4.3 DNS记录和报文 ............. 89
2.5 P2P文件分发 ...................... 92
2.6 视频流和内容分发网 ............... 97
2.6. 1 因特网视频 .................... 97
2. 6.2 HTTP 流和 DASH .................... 98
2. 6.3 内容分发网 .................... 98
2. 6.4 学习案例: Netflix 、 YouTube 和“看看”.........101
2.7 套接字编程:生成网络应用.......104
2. 7. 1 UDP 套接字编程 ............. 105
2. 7.2 TCP 套接字编程 ............. 109
2.8 小结 ........................... 112
课后习题和问题 ....................... 113
复习题 .............................. 113
习题 ................................ 114
1、应用层协议原理
1.1 网络应用程序体系结构
网络应用程序的核心是写出用程序体系结构。应用程序体系架构(application architecture)由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。能够运行在不同的端系统和通过网络彼此通信的程序。在选择应用程序体系结构时,应用程序研发者很可能利用现代网络应用程序中所使用的两种主流体系结构之一:客户-服务器体系结构或对等(P2P)体系结构。
客户-服务器体系结构(client-server architecture):有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。值得注意的是利用客户-服务器体系结构,客户相互之间不直接通信;客户-服务器体系结构的另一个特征是该服务器具有固定的、周知的地址,该地址称为IP地址。因为该服务器具有固定的、周知的地址,并且因为该服务器总是打开的,客户总是能够通过向该服务器的IP地址发送分组来与其联系。具有客户-服务器体系结构的非常著名的应用程序包括Web、 FTP、Telnet 和电子邮件。配备大量主机的数据中心常被用于创建强大的虚拟服务器。最为流行的因特网服务——如搜索引擎(如谷歌和Bing)、因特网商务(如亚马逊和e-Bay)、基于Web的电子邮件(如Gmail和雅虎邮件)、社交网络(如脸谱和推特),就应用了一个或多个数据中心。一个数据中心能够有数十万台服务器,它们必须要供电和维护。此外,服务提供商必须支付不断出现的互联和宽费用,以发送和接收到达/来自数据中心的数据。
P2P体系结构(P2Parchitecture):对位于数据中心的专用服务器有最小的(或者没有)依赖。相反,应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。许多目前流行的、流量密集型应用都是P2P体系结构的。这些应用包括文件共享(例如 BifTorrent)、对等方协助下载加速器(例如迅雷)、因特网电话(例如 Skype)和IPTV(例如"迅雷看看"和Pstream)。需要提及的是,某些应用具有混合的体系结构,它结合了客户-服务器和P2P的元素。例如,对于许多即时讯息应用而言,服务器被用于跟踪用户的IP地址,但用户到用户的报文在用户主机之间(无需通过中间服务器)直接发送。P2P体系结构的最引人入胜的特性之一是它们的自扩展性(self-scalability)。P2P体系结构也是成本有效的,因为它们通常不需要庞大的服务器基础设施和服务器带宽(这与具有数据中心的客户-服务器设计形成反差)。
1.2 进程通信
在操作系统的术语中,进行通信的实际上是进程(process)而不是程序。一个进程可以被认为是运行在端系统中的一个程序。当进程运行在相同的端系统上时,它们使用进程间通信机制相互通信。进程间通信的规则由端系统上的操作系统确定。 而在本书中,我们不怎么关注同一台主机上的进程间的通信,而关注运行在不同端系统(可能具有不同的操作系统)上的进程间的通信。两个不同端系统上的进程,通过跨越计算机网络交换报文(message)而相互通信。
1.3 可供应用程序使用的运输服务
2.1.4 因特网提供的运输服务 ........ 60
2.1.5 应用层协议.................... 63
2.1.6 本书涉及的网络应用 .......... 63
2.2 Web 和 HTTP........................... 64
2.2.1 HTTP 概况.................... 64
2.2.2 非持续连接和持续连接 ........ 65
2.2.3 HTTP报文格式............... 67
2.2.4 用户与服务器的交互:cookie …70
2.2.5 Web 缓存.................... 72
2.2.6 条件GET方法.................. 74
2.3因特网中的电子邮件............... 75
2.3.1 SMTP .................................. 76
2.3.2 与HTTP的对比............... 78
2.3.3 邮件报文格式................. 79
2.3.4 邮件访问协议................. 79
2.4 DNS:因特网的目录服务.......... 83
2.4. 1 DNS 提供的服务 ............... 83
2. 4.2 DNS工作机理概述 ............ 85
2.4.3 DNS记录和报文 ............. 89
2.5 P2P文件分发 ...................... 92
2.6 视频流和内容分发网 ............... 97
2.6. 1 因特网视频 .................... 97
2. 6.2 HTTP 流和 DASH .................... 98
2. 6.3 内容分发网 .................... 98
2. 6.4 学习案例: Netflix 、 YouTube 和“看看”.........101
2.7 套接字编程:生成网络应用.......104
2. 7. 1 UDP 套接字编程 ............. 105
2. 7.2 TCP 套接字编程 ............. 109