二 应用层
网络应用程序体系结构
1)网络体系结构是固定的
2)网络应用程序的两种主流体系结构:
客户-服务器体系结构
对等(P2P)体系结构
3)客户-服务器体系结构->有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。
客户之间不直接通信
服务器具有固定的、周知的地址,改地址称为IP地址
服务器总是打开的
4)P2P体系结构
对位于数据中心的专用服务器有最小的依赖
应用程序在间接连接的主机之间使用直接通信,这些主机对呗称为对等方
自扩展性
成本有效的
进程通信
1 客户和服务器进程
2 进程与计算机网络之间的接口
4 进程寻址
1)在两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。
2)进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文
3)套接字是同一台主机内应用层与传输层之间的接口,套接字也称为应用程序和网络之间的应用程序编程接口
4)应用程序开发中可以控制套接字在应用层端的一切,但是对该套接字的运输层几乎没有控制权
应用程序开发者对于运输层的控制仅限于:
选择运输层协议;
也许能设定几个运输层参数,如最大缓存和最大报文段长度等。
可供应用程序使用的运输服务
1 表示接收进程,需要定义两种信息:
1)主机的地址;2)定义在目的主机中的接收进程的标识符
2 在因特网中,主机由其IP地址标识
3 发送进程必须制定接收套接字-->目的地的端口号用于这个目的
1)Web服务器用端口号80来标识;2)邮件服务器进程(使用SMTP协议)用户端口号25来标识
4 对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时和安全性
可靠数据传输
1)运输层协议能够潜在地向应用程序提供的一个重要服务是进程到进程的可靠数据传输
2)容忍丢失的应用
吞吐量
1)可用吞吐量:在沿着一条网络路径上的两个进程之间的通信回话场景中,可用吞吐量就是发送进程能够向接收进程交付比特的速率
2)运输层协议能够以某种特定的速率提供确保的可用吞吐量
3)具有吞吐量要求的应用程序被称为带宽敏感的应用
4)弹性应用能够根据情况或多或少地利用可供使用的吞吐量
定时
1)运输层协议也能提供定时保证。
安全性
1)运输层协议能够为应用程序提供一种或多种安全性服务->机密性、完整性、端点鉴别
因特网提供的传输服务(TCP/IP网络)
-因特网为应用程序提供运输层协议,即UDP和TCP
带宽
1 TCP服务
1)TCP服务模型包括面向连接服务和可靠数据传输服务。
--可靠的数据传送服务->通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
2)SSL(Secure Sockets Layer)安全套接字层
这是一种对TCP的加强,这种强化实在应用层上实现的。
2 UDP服务
1)UDP是一种不提供不必要服务点的轻量级运输协议,它仅提供最小服务;UDP协议提供一种不可靠数据传送服务
2)UDP没有包括拥塞控制机制
应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。
特别是应用层协议定义了:
1)交换的报文类型,例如请求报文和响应报文
2)各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的。
3)字段的语义,即这些字段中包含的信息的含义。
4)一个进程何时以及如何发送报文,对报文进行响应的规则。
RFC-->公共域
5)应用层协议只是网络应用的一部分
本书涉及的网络应用:Web、文件传输、电子邮件、目录服务(DNS)和P2P
Web和HTTP
1 ***
1)Web的按需操作
2)Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP),它是Web的核心。
3)HTTP由两个程序实现:一个客户程序和一个服务器程序。
4)HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。
5)Web页面(Web page)是由对象组成的。一个对象只是一个文件;多数Web页面含有一个HTML基本文件以及几个引用对象,HTML基本文件通过对象的URL地址引用页面中的其他对象。
6)每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。
7)HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。
8)HTTP使用TCP作为它的支撑运输协议(而不是在UDP上运行)。
9)因为HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP是一个无状态协议(stateless protocol)
10)非持续连接和持续连接
非持续连接:每个请求/响应对是经一个单独的TCP连接发送
持续连接:所有的请求及其响应经相同的TCP连接发送
11)HTTP与客户如何解释一个Web页面毫无关系。HTTP规范仅定义了在HTTP客户程序与HTTP服务器程序之间的通信协议。
12)用户能够配置现代浏览器以控制并行度;每条连接可以处理一个请求响应事务。
13)往返时间(Round-Trip Time,RTT):该时间是指一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。
14)HTTP的默认模式是使用带流水线的持续连接。
2 HTTP报文格式
1)HTTP报文有两种:请求报文和响应报文
2)HTTP请求报文的第一行叫做请求行,其后继的行叫做首部行。
3)请求行有3个字段:方法字段、URL字段和HTTP版本字段
4)方法字段可以取的值:GET、POST、HEAD、PUT、DELETE
5)请求报文的通用格式:请求行+首部行+空行+实体主体
6)使用GET方法时实体体为空,而使用POST方法时才使用该实体体
3 HTTP响应报文
1)它有三个部分:一个初始状态+6个首部行+然后是实体体。实体体部分是报文的主要部分,即它包含了所请求的对象本身。
2)状态行有3个字段:协议版本字段、状态码和相应状态信息。
3)响应报文的通用格式:状态行+首部行+空行+实体体
4 cookie技术有4个组件:
1)在HTTP响应报文中的一个cookie首部行
2)在HTTP请求报文中的一个cookie首部行
3)在用户终端系统保留有一个cookie文件,并由用户的浏览器进行管理;
4)位于Web站点的一个后端数据库
5 流量强度-参见1.4.2节
如果流量强度接近1,链路上的时延会变得非常大并且无限增长。
6 条件GET方法(conditional GET)
1)如果请求报文使用GET方法;并且2)请求报文中包含一个“If-Modified-Since:”首部行。那么,这个HTTP请求报文就是一个条件GET请求报文。
FTP
1 FTP使用了两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。
2 FTP的控制信息是带外传送的;HTTP协议是在传输文件的同一个TCP连接中发送请求和响应首部行的,因此HTTP也可以说是带内(in-band)发送控制信息系的。
3 对FTP传输而言,控制连接贯穿了整个用户会话期间;数据连接是非持续的。
4 FTP服务器必须在整个会话期间保留用户的状态。
5 FTP协议的命令:
USER username
PASS password
LIST
RETR filename
STOR filename
因特网中的电子邮件
1 电子邮件是一种异步通信媒介
2 因特网电子邮件系统的3个主要组成部分:用户代理(user agent)、邮件服务器(mail server)和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)
3 邮件并不在中间的某个邮件服务器存留。
4 MIME报文
From:
To:
Subject:
MIME-Version:
Content-Transfer-Encoding:
Content-Type:
5 接收的报文
SMTP接收服务器一旦接收到具有RFC 822和MIME首部行的报文,就在该报文的顶部添加一个Received首部行;该首部行定义了发送该报文的SMTP服务器的名称(from),接收该报文的SMTP服务器的名称(by),以及接收服务器接收到的时间。
6 SMTP是一个推协议
7 将邮件服务器上的邮件推送给本地PC的邮件代理的协议:
1)第三版的邮局协议(Post Office Protocol-Version 3,POP3)
2)因特网邮件访问协议(Internet Mail Access Protocol,IMAP)
3)HTTP
8 POP3按照三个阶段进行工作:特许、失误处理以及更新。
DNS:因特网的目录服务
1 DNS协议是应用层协议
2 域名系统的主要任务:进行主机名到IP地址转换的目录服务
3 DNS:
a. 一个由分层的DNS服务器(DNS server)实现的分布式数据库;
b. 一个允许主机查询分布式数据库的应用层协议。
c. DNS协议运行在UDP之上,使用53号端口。