2.1 应用层协议原理
2.1.1应用程序体系结构
·客户-服务器体系结构(Web,FTP,Telnet,电子邮件)
a.客户之间不直接通信
b.服务器具有固定的、周知的IP地址,用于扩展的数据中心
·对等(P2P)体系结构
*任意终端系统直接通信
*没有“始终在服务器上”
*自扩展性(self-scalability)--每个对等方产生工作量的同时增加服务能力
2.1.2进程通信processes communicating
·客户和服务器进程
a.客户端进程:启动通信的进程
b.服务器进程:等待联系的进程
·socket:同一台主机内应用层与运输层之间的接口
·进程寻址Adressing processes
*为了标识接收进程,需要定义:①主机的地址②定义在目的主机中的接收进程的标识符(标识符包括与主机上的进程关联的IP地址(32bits)和端口号)
*运行进程的主机的IP地址不能识别进程——同一台主机可能运行多个进程
2.1.3应用程序使用的传输服务
·可靠数据传输-reliable data tranfer
·吞吐量-throughput
·定时-timing
·安全性-security
2.1.4因特网提供的传输服务
·TCP service:
a.面向连接的服务:握手阶段后,TCP连接建立(全双工),结束报文发送后必须拆除该连接
b.可靠的数据传送服务:无差错、适当顺序、无字节丢失冗余
c.TCP在应用层可以用SSL来加强安全服务
·UDP service:(streaming multimedia、Internet telephony)
a.UDP是无连接的,因此两个进程通信前没有握手过程;仅提供最小服务
b.不可靠数据传送服务:不保证能到达、可能乱序到达
2.1.5应用层协议
·定义:应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文
·交换的报文类型、各种报文类型的语法、字段的语义、进程如何发送报文,如何响应
2.2 Web和HTTP
2.2.1 HTTP概况(无状态协议)
·定义:超文本传输协议是web的应用层协议,web的核心,定义了客户和服务器进行报文交换的方法
·web页面由对象组成,一个文件是一个对象,通过一个url地址进行寻址(存放对象的服务器主机名+对象的路径名)
·交互的核心思想:客户通过HTTP请求对服务器发出对web页面的请求报文,服务器收到该报文后将返回包含该对象的HTTP响应报文
·使用TCP作为它的传输层协议;客户端首先发起一个与服务器的TCP连接,服务器根据请求作出响应但不存储任何关于该客户的状态信息
·web使用客户端-服务器的应用体系结构,web服务器总是开着的
2.2.2 持续连接和非持续连接
HTTP既可使用持续连接也可使用非持续连接,在静默情况下使用带流水线的持续连接
RTT:客户端->服务器+服务器—>客户端(prop+queue+proc)
·采用非持续连接的HTTP
总响应时间:两个RTT+传输文件的时间
·采用持续连接的HTTP
①非持续连接必须为每个请求新建一个TCP连接,而每个TCP连接将占用系统资源(缓冲区和变量等),一个对象要通过两个RTT的时延才能交付
②持续连接中,服务器在发送响应报文后将保持该TCP打开,一定时间间隔未被使用则关闭
2.2.3 HTTP报文格式:请求报文和响应报文
·请求报文格式
第一行为请求行,后继各行为首部行POST方法:实体体可以在POST方法里传递form表单内容,若表单使用get,实体体为空,会显示在url中
put方法:允许用户上传对象到指定的Web服务器上指定的路径
Delete方法:允许用户或应用程序删除Web服务器上的对象
Head:类似于get方法,将会用一个http报文进行响应,但是不返回请求对象,经常用作调试跟踪
·HTTP响应报文格式
第一部分是状态行,包含HTTP版本、状态以及状态信息
第二部分是首部行,包含发送日期、服务器类型、上一次修改请求资源的时间、内容的类型等内容。
第三部分是实体体。实体体包含请求对象本身
·常见状态码
2.2.4 用户与服务器的交互:Cookie(我的理解相当于用户信息的缓存)
·意义:虽然HTTP是无状态协议,但web站点为了识别用户身份等,使用Cookie技术
2.2.5 Web缓存——代理服务器(既是客户又是服务器)
·定义:有存储空间,并保持有最近请求过的对象的副本
·优点:Web代理服务器可以大起大减少对客户请求的响应时间;缓存器能从整体上大大降低因特网上的web流量,从而有助于提高所有应用程序的性能;
2.2.6 条件GET方法
·解决了代理服务器对缓存对象的管理问题
·If-Modified-Since首部行:判断缓存对象是否过期
2.3 文件传输协议FTP
·定义:一个典型的FTP应用,用户首先提供远程主机名,使得FTP用户代理建立一个TCP连接,提供用户名和密码,它们作为FTP命令的一部分在TCP连接上传输;一旦服务器授权,用户便可以和服务器进行文件传输了
·FTP是应用层协议,运行在TCP协议之上
·FTP使用并行的TCP连接来传输数据,控制连接(21——传输FTP命令),数据连接(20——传输文件数据)
·FTP中控制连接贯穿整个会话,但是数据连接会在一个文件开始传输的时候建立
·FTP需要在整个会话期间,保留用户的状态,也就是将控制连接同用户账户关联起来
·FTP命令和回答
2.4 因特网中的电子邮件
三个核心组件:用户代理、邮件服务器、SMTP(简单邮件传输协议)
2.4.1 SMTP(25)——邮件服务器之间发送邮件报文的协议
·定义:使用TCP可靠数据传输从发送方的邮件服务器向接收方的邮件服务器发送邮件;在每台邮件服务器上同时运行SMTP服务器和SMTP客户端
·持续连接
·SMTP报文一般不使用中间邮件服务器发送报文,也就是邮件不会在中间某个邮件服务器保留
2.4.2 与HTTP对比
·相同点:都是用TCP协议,持续的HTTP和SMTP都是持续连接
·不同点:
①用户通过HTTP主动向服务器请求内容,而SMTP则是客户将内容推向服务器端
②HTTP传输的数据不一定是用ASCII字符,但是SMTP则只能使用ASCII字符
③HTTP将每个对象封装在自己的响应报文里,而SMTP则将所有的报文对象放到一个报文之中
2.4.3 邮件报文格式和MIME
·一个包含环境信息的首部和一个包含邮件内容的报文体
2.4.4 邮件访问协议
用户代理使用邮件访问协议来从邮件服务器上获取邮件信息,常用的邮件访问协议POP3、IMAP——因特网邮件访问协议和HTTP
2.5 DNS:因特网的目录服务——域名系统
2.5.1 DNS提供的服务
·定义:DNS是一个由分层的DNS服务器组成的分布式数据库和一个使得主机可以查询分布式数据库的应用层协议组成
·服务:①提供主机名到IP地址的转换
②主机名与主机别名的转换
③提供邮件服务器主机名和别名的转换服务
④在冗余的服务器之间分配负载
2.5.2 DNS工作机理概述
·DNS运行在UDP之上(53)
·分布式层次的数据库
①层次结构中的三种DNS服务器:
根DNS服务器:13个,大部分分布在北美洲
顶级域DNS服务器:com,org,net,edu,gov,cn等
权威DNS服务器:公共可访问主机的每个组织机构必须公共可访问的DNS记录
②本地DNS服务器:起代理的作用,将请求转发到DNS服务器层次结构中
③DNS查询:递归查询(一定给请求者想要的答案)、迭代查询(接收方如果没有请求者想要的答案就告诉请求者如何去获取)。从请求主机到本地DNS服务器的查询是递归的,其余查询是迭代的
·DNS缓存
利用空间换时间的策略,减少在因特网上传输的DNS报文数量
2.5.3 DNS记录和报文
·DNS记录(RR)
①提供了主机名到IP地址的映射信息
②name,value,type,TTL(该记录的生存时间)
·DNS报文
①查询报文
②回答报文