应用层
2.1应用层协议原理
研发网络应用程序的核心是写出能够运行在不同端系统和用过网路彼此通信的程序。
网络核心设备并不在应用层起作用,而仅在较低层起作用。
2.1.1应用程序体系结构(客户-服务器体系结构C/S architecture、对等体系结构P2P)
C/S 客户相互之间不直接通信 服务器:总是打开,有固定、周知的地址,利用大量服务器实现可扩展性(配备有大量主机的数据中心 用于创建强大的虚拟服务器)客户通过向服务器的IP地址发送分组来与其联系。
P2P 应用程序在间断连接的的主机对之间使用直接通信,这些主机被称为对等方。优:高度可伸缩 缺:难于管理
最大特点:自扩展性 eg.P2P文件共享应用中,每个对等方都请求文件产生工作量,但每个对等方通过向其他对等方分发文件也为系统增加服务能力。 成本有效:不需要庞大的服务器基础设施和服务器带宽。 三个挑战:ISP友好,安全性,激励。
2.1.2进程通信
一个进程可以被认为是运行在端系统中的一个程序。 在两个不同端系统上的进程,通过跨越计算机网络交换报文message而相互通信。 网络应用程序由成对的进程组成,这些进程通过网络相互发送报文。 定义:在给定的一对进程之间的通信会话场景中,发起通信(即在会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器。
进程通过一个叫套接字socket的软件接口向网络发送报文和从网络接收报文。 套接字也成为应用程序和网络之间的应用程序编程接口API
2.1.3 从四方面对应用程序服务要求进行分类:可靠数据传输、吞吐量、定时、安全性
2.1.4 因特网提供的服务 TCP服务: TCP服务模型包括面向连接服务,可靠数据传输服务(无差错,顺序交付,无字节丢失和冗余)
SSL安全套接字层 加强版本的TCP提供进程到进程的安全性服务:加密、数据完整性、端点鉴别 在应用层上实现强化
UDP服务:UDP是一种不提供不必要服务的轻量级运输协议,仅提供最小服务。UDP是无连接的,没有握手过程,不可靠数据传输服务
因特网运输协议不提供的服务:吞吐量、定时保证
2.2 Web & HTTP
Web的应用层协议:HTTP——超文本传输协议,Web的核心 Web按需操作 使用TCP作为支撑运输协议
HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。
Web页面由对象组成,一个对象是一个文件,可通过URL地址寻址
多数Web页面含有一个HTML基本文件和几个引用对象
每个URL(统一资源定位器)地址由两部分组成:存放对象服务器的主机名和对象的路径名
HTTP客户首先发起一个与服务器的TCP连接,B和S进程就可以通过socket接口访问TCP
HTTP是无状态协议:HTTP服务器并不保存关于客户的任何信息。
2.2.2 非持续连接:每个请求/响应对是经一个单独的TCP连接发送 每个TCP连接只传输一个请求报文和一个响应报文 持续连接:同一个TCP
往返时间RTT:一个短分组从客户到服务器然后再返回客户所花费的时间 RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延和分组处理时延。 请求并接受一个HTML文件所需时间:2RTT+file transmission time
2.2.3 HTTP报文格式
request第一行:请求行(响应-状态行) 后继的行:首部行 请求行:方法字段+URL字段+HTTP版本字段
状态行:版本 状态码 短语 200 OK 响应成功 301 Moved Permanently请求对象永久转移,新的URL定义在响应报文的location首部行中,客户会自动获取新的URL 400 Bad Request 404 Not Found 505 HTTP version not supported
2.2.4 用户与服务器的交互-cookie 允许站点对用户进行跟踪
2.2.5 Web缓存
Web缓存器也叫代理服务器proxy server,它是能够代表初始Web服务器来满足HTTP请求的网络实体。一般由ISP架设。
部署Web缓存器的两个原因:
1.Web缓存器可以大大减少对客户请求的响应时间
2.Web缓存器能够大大减少一个机构的接入链路到因特网的通信量。
另外,Web缓存器能从整体上大大减低因特网上的Web流量,从而改善了所有应用的性能。
2.2.6条件get
if-modified-since缓存器在request中声明所持有版本的信息 last-modified
没有修改 返回304 not modified
2.3 FTP 文件传输协议
FTP VS HTTP:FTP使用了两个并行的TCP连接来传输文件,控制连接21与数据连接20
FTP使用独立的控制连接,称FTP控制信息是带外的,HTTP带内控制连接贯穿整个用户会话期间,但是会话中每一次文件传输都要建立新的数据连接----数据连接是非持续d FTP服务器必须在整个会话期间保留用户状态,限制了FTP同时维持的会话总数 HTTP是无状态的。
2.4 电子邮件 互联网中的第一个应用 因特网电子邮件系统:用户代理,邮件服务器,简单邮件传输协议SMTP
SMTP没有重传和差错检测机制。 所有邮件报文体部分只能由7bit ASCII表示 SMTP一般不使用中间邮件服务器发送邮件。
与HTTP对比:1. HTTP推协议 SMTP拉协议 2 SMTP限制报文格式,HTTP不限制 3 处理包含文本和多媒体的文档,HTTP把每个对象封装到相应报文中,SMTP把所有对象封装进一个报文中。
邮件访问协议:POP3,IMAP POP3:特许,事务处理,更新 IMAP:POP3没有给用户提供任何创建远程文件夹并为报文指派远程文件夹的方法。
2.5DNS 因特网的目标服务
2.5.1提供的服务 识别主机的两种方式:通过主机名(人喜欢)/IP地址(路由器喜欢)。
DNS主要任务:进行主机名到IP地址转换的目录服务;其他服务:主机别名、邮件服务器别名、负载分配。
DNS是:1.一个由分层的DNS服务器实现的分布式数据库;2.使主机能够查询分布式数据库的应用层协议。
DNS服务器:运行在BIND软件上的unix机器;DNS协议:UDP之上,53端口。
Eg.用户主机将一个HTTP请求报文发送到Web服务器,该用户主机必须获得服务器IP地址。做法:
1、同一台用户主机上运行着DNS应用的客户端;
2.浏览器从上述URL中抽出主机名,并传给DNS应用的客户端;
3.DNS客户向DNS服务器发送包含主机名的请求;
4.DNS客户收到回答报文,其中含有对应该主机名的IP地址;
5.浏览器接到来自DNS的该IP地址,它能向位于IP地址80端口的HTTP服务器发起一个TCP连接。
会造成额外时延。 DNS:域名空间,域名服务器,解析器。
2.5.2DNS工作机理概述 集中式设计(只用一个DNS服务器,包含所有映射)的问题:单点故障;通信容量;远距离的集中式数据库;维护。 用户看来是简单、直接的黑盒子服务。 转换过程:1.应用程序调用DNS客户端,指明需被转换的主机名;2.用户主机上的DNS接收后想,向网络中发送一个DNS查询报文(都经53);3.用户主机上DNS接收到一个提供所需映射的DNS回答报文;4.映射结果被传递到调用DNS的应用程序。 1.分布式、层次数据库 三类型:根DNS服务器(13:A-M;冗余服务器的网络,以提供安全性可靠性);顶级域(DNS)服务器;权威DNS服务器。 本地DNS服务器(每个ISP都有一台)。 2.DNS缓存 目的:改善实时延性能,减少在因特网上到处传输的DNS报文数量。 原理:在一个请求链中,当某DNS服务器接收到一个DNS回答,它能将回答中的信息缓存在本地存储器中。 2.5.3DNS记录和报文 资源映射提供主机名到IP地址的映射。RR format: (name, value, type, ttl) TYPE=A: Name是主机名,Value是IP地址;TYPE=NS:域;知道如何获取该域中中主机IP地址的权威DNS服务器的主机名;CNAME:;是别名为Name的主机对应的规范主机名;MX:;是别名为Name的邮件服务器的规范主机名。 1.DNS报文 2.插入记录 验证域名唯一性:注册登记机构。
2.6 P2P应用 文件分发:应用程序从单个源向大量的对等方分发一个文件(字扩展性);分布式散列表:分布在大型对等方社区中的数据库。
2.6.1文件分发
1.体系结构的扩展性 分发时间: P2P最小分发时间:
2.BitTorrent 用于文件分发。 一个洪流:参与一个特定文件分发的所有对等发集合。 追踪器:每个洪流有一个基础设施节点(加入后周期性通知)。 最稀缺优先(向谁请求):针对没有的块在邻居中决定最稀缺的块,并首先请求最稀缺的块。 响应谁?根据当前能够以最高速率向自己提供数据的邻居给出优先权。
2.6.2分布式散列表DHT 每个对等方将保持(键、值)对仅占总体的一个小子集,允许任何对等方用一个特别的键来查询该分布式数据库。库则将定位拥有该相应对的对等方,然后向查询的对等方返回对。任何对等方都被允许插入新对。
最邻近分配。
1.环形DHT 每个对等方只知道直接后继和直接前任。 捷径:且联系分布在环上的数量相对少的捷径对等方。
2.对等方扰动 (不加警示的来去)处理:每个对等方联系其第一个和第二个后继。有一个离开时,两个对等方会得知<---更新后继状态。 加入:询问已存在对等方自己的前任后继,报文最后会到达某认为自己是前任/后继的对等方,则回信息,待加入后更新标识。