2.1 应用层协议原理
2.1.1 网络应用程序体系结构
1.应用程序体系结构规定了如何在各种端系统上组织该应用程序。主要分为:客户-服务器体系结构和对等P2P体系结构
2.客户-服务器体系结构。服务器:总是打开、永久的IP地址以及是数据中心,客户端:间断地连接、可能有动态的IP地址、不直接和其他客户直接通信
3.P2P体系结构:任意端系统直接通信、接受服务同时提供服务、自扩展性(新的对等方带来了新的服务需求和服务器容量)。挑战有ISP友好、安全性和激励。
2.1.2 进程通信
1.客户和服务器进程。通常将通信的两个进程一个称为服务器(等待联系的),一个称为客户(发起通信的)
2.进程与计算机网络之间的接口。进程通过一个称为套接字socket的软件接口向网络发送报文和从网络接收报文,是应用层和运输层之间的接口
3.进程寻址:IP地址+端口号
2.1.3 可供应用程序使用的运输服务
1.可靠的数据传输
2.吞吐量
3.定时
4.安全性
2.1.4 因特网提供的运输服务
1.TCP服务:(1)面向连接的服务(2)可靠的数据传送服务(3)拥塞控制
2.UDP服务
3.因特网运输协议所不能提供的服务:吞吐量或定时保证
2.1.5 应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。定义了交换的报文类型、报文语法、报文语义、规则。可以分为开放协议和专有协议
2.2 Web和HTTP
2.2.1 HTTP概况
1.web的应用层协议是超文本传输协议HTTP,由两个程序实现,一个客户程序和一个服务器程序
2.Web页面由对象组成,一个对象是一个文件。Web服务器实现了HTTP的服务器端,它用于存储Web对象,每个对象由URL寻址
3.HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。HTTP使用TCP作为它的支撑运输协议,端口号为80。
4.HTTP是一个无状态的协议
2.2.2 非持续连接和持续连接
非持续连接
1.使用非持续连接的HTTP,一次传送一个请求报文和一个相应报文
2.往返时间RTT,指一个短分组从客户到服务器然后再返回客户所花费的时间。
3.三次握手,总的响应时间就是两个RTT加上服务器传输HTML文件的时间
持续连接
1.非持续连接存在的问题:(1)给Web服务器带来了严重的负担(2)每个对象要经受两倍的RTT交付时延
2.2.3 HTTP报文格式
1.HTTP请求报文
2.上传表单的输入:POST方法(表单在网页里)和URL方法(表单在URL文件里)
3.方法类型 HTTP/1.0:GET POST HEAD(要求服务器将响应的对象排除在响应之外)
HTTP/1.1:GET POST HEAD PUT DELETE
4.HTTP响应报文,第一行变为状态行
2.2.4 用户与服务器的交互:cookie
1.cookie技术的4个组件:(1)在HTTP响应报文中的一个cookie首部行(2)在HTTP请求报文中的一个cookie首部行(3)客户端,由浏览器管理(4)Web站点的一个后端数据库
2.cookie可以用于标识一个用户
2.2.5 Web缓存
1.Web缓存器也叫代理服务器
2.Web缓存器可以(1)大大减少对客户请求的响应时间(2)减少一个机构的接入链路到因特网的通信量(3)整体上大大减低因特网上的Web流量,从而改善了所有应用的性能。
2.2.6 条件GET方法
1.GET机制允许缓存器证实它的对象是最新的
2.请求报文使用GET方法,并且请求报文中包含一个“If-Modified-Since”首部行
2.3 文件传输协议:FTP
1.从远程主机传输文件,端口号为21,运行在TCP上。
2.使用两个并行的TCP来传输文件,一个是控制连接,一个是数据连接。带外。控制连接是贯穿的,数据连接是一个文件一个
3.FTP服务器必须在整个会话期间保留用户的状态。
2.4 因特网中的电子邮件
1.电子邮件系统的三个主要成分:(1)客户代理user agents(2)邮件服务器mail server和简单邮件传输协议STMP。用户在邮件服务器上有一个邮箱
2.4.1 SMTP
1.两个服务器直接相连,不使用中间服务器,端口号25,TCP,必须是7位ASCII
2.SMTP使用持久连接
2.4.2 与HTTP的对比
1.HTTP是pull,SMTP是push
2.都有ASCII命令,响应交互和状态代码
3.HTTP的每个对象封装在它的响应报文里,SMTP是多个对象放在多个报文里
2.4.3 邮件报文格式和NIME
2.4.4 邮件访问协议
1.POP3。端口110。分为三个阶段:特许、事务处理以及更新。下载并保存和下载并删除,会话过程中无状态。
2.IMAP。将所有邮件保存在服务器上,允许用户组织文件夹中的文件,保持会话之间的用户状态
2.5 DNS:因特网的目录服务
2.5.1 DNS提供的服务
1.域名系统DNS的主要任务能进行主机名到IP地址转换的目录服务。DNS是(1)一个由分层的DNS服务器实现的分布式数据库(2)一个使得主机能够查询分布式数据库的应用层协议。DNS运行在UDP之上,端口号为53
2.主机别名
3.邮件服务器别名
4.负载分配,许多IP地址对应了一个名称
2.5.2 DNS工作机理概述
1.集中式DNS存在的问题是(1)单点故障(2)通信容量(3)远距离的集中式数据库(4)维护
2.分布式、层次数据库
(1)根DNS服务器(2)顶级域DNS服务器(3)权威DNS服务器(4)本地DNS服务器
3.迭代查询iterative query
4.递归查询recursive query
5.DNS缓存
2.5.3 DNS记录和报文
1.DNS服务器存储了资源记录RR,RR提供了主机名到IP地址的映射。每个DNS回答报文包含一条或多条资源记录。资源记录是一个4元组(Name,Value,Type,TTL)
2.DNS报文
3.在DNS数据库中插入记录。注册登记机构register。域名、主机名记录输入TLD com服务器,主机名和MX类RR输入权威服务器中
2.6 P2P应用
1.主要探讨文件分发和分布式散列表DHT
2.6.1 文件分发
1.P2P体系结构的扩展性。分发时间指所有N个对等方得到该文件的副本所需要的时间。
对于C/S体系结构,,对于P2P,
2.BitTorrent,用于文件分发的留下P2P协议。文件分成每块256KB,在洪流中的对等方下载/上载块。每个洪流都有追踪器tracker。每个新进入的对等方向tracker注册自己,并得到对等方子集(邻近对等方)和对等方IP表,并周期性地询问邻近对等方的块列表,采取稀缺优先的技术。这是请求块(chunk),发送块的策略是选择4个能够以最高速率向他提供数据的邻居,这四个邻居称为疏通unchoked,同时随机选择第五位对等方发送数据(此时可能会成为第五位对等方的疏通,那么第五位对等方也会发送数据,这也两者就互为疏通,直到找到更合适的,这样的对换能够找到彼此协调的上载速率),tit-for-tat
2.6.2 分布式散列表DHT
1.DHT:分布的P2P数据库,数据库有键值对,将键值对分布在众多的对等方上。可以用键查询和插入键值对
2.中心问题:定义为对等方分配键的规则。
3.为每个对等方分配一个标识符。为该键最邻近的后继标识符对等方分配
4.环形DHT,平均要发送N/2条,通过增加捷径来优化
5.对等方扰动。为了避免,要求每个对等方联系其第一个和第二个后继(指前面的)