1.1 客户-服务器体系结构
- 有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。
- 配备大量主机的数据中心常被用于创建强大的虚拟服务器。
- 例:Web、FTP、Telnet、电子邮件等。
1.2 P2P体系结构
- 应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。
- 例:文件共享、对等方协助下载加速(迅雷)、英特网电话和视频会议等。
2.1 客户和服务器进程
- 在一对进程之间的通信会话场景中,会话开始时发起与其他进程的联系的进程被标识为客户,会话开始时等待联系的进程是服务器。
2.2 进程与计算机网络之间的接口
- 进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
- 套接字是建立网络应用程序的可编程接口,因此套接字也称为应用策划那个花絮的网络之间的应用城西编程接口。
- 应用程序开发者对应用程序的控制仅限于:选择运输层协议、设定几个运输层参数(最大缓存和最大报文段长度等)。
2.3 进程寻址
- 标识一个接受进程需要定义两种信息:主机地址、在目的主机中指定接收进程的标识符。
- 主机地址用IP地址标识。
- 目的主机中指定接收进程的标识符用目的地端口号来标识。
3.1 可靠数据传输
- 如果一个协议提供应用程序的一端发送数据正确、完全地交付给应用程序另一端这样的确保数据交付服务,就认为是提供了可靠数据传输。
3.2 吞吐量
- 具有吞吐量要求的应用程序被称为带宽敏感应用,如英特网电话、多媒体应用等。
- 能够根据当前可用的带宽或多或少地利用可供使用的吞吐量的应用被称为d性应用,如电子邮件、文件传输、Web传送等。
3.3 定时
- 运输层协议也能提供定时保证,如发送方注入进套接字的每个比特到达接收方的套接字不迟于100ms。
3.4 安全性
- 运输层协议能够为应用程序提供一种或多种安全性服务,如数据加密解密、数据完整性、端点鉴别等。
4.1 TCP服务
- 面向连接的服务:三次握手建立连接,全双工连接,四次挥手断开连接。
- 可靠的数据传送服务:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
- 拥塞控制机制:当发送方和接收方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程。
- 安全套接字(SSL):位于应用层与运输层之间,TCP的加强版,提供安全性服务,包括加密、数据完整性、端点鉴别等。
4.2 UDP服务
- 不提供不必要服务的轻量级运输协议,仅提供最小服务。
4.3 英特网运输协议所不提供的服务
- 现在的英特网能够为时间敏感应用提供满意的服务,但它不能提供任何定时或带宽保证。
- 应用层协议定义了运行在不同端系统上的应用程序进程如何互相传递报文。应用层协议定义了:(1)交换的报文类型;(2)各种报文类型的语法;(3)字段的语义;(4)确定一个进程何时以及如何发送报文,对报文响应的规则。
- 例:HTTP、SMTP、DNS等。
- Web的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP)。
- Web页面(文档)是由对象组成的。一个对象只是一个文件,可以通过一个URL地址寻址。
- Web浏览器(Web browser)实现了HTTP客户端,Web服务器(Web server)实现了HTTP的服务器端。
- HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。
- HTTP使用TCP作为它的支撑运输协议。
- HTTP是一个无状态协议,因为HTTP服务器并不保存关于客户的任何信息。
- 非持续连接:每个请求/响应对是经一个单独的TCP连接发送。
- 持续连接:所有的请求/响应经相同的TCP连接发送。
- 往返时间(Round-Trip Time,RTT):是指一个短分组从客户到服务器然后再返回客户所花费的时间。
3.1 HTTP请求报文
- HTTP请求的第一行叫作请求行,其余的叫首部行。
- 请求行有三个字段:方法字段(GET、POST、HEAD、PUT、DELETe)、URL字段、HTTP版本。
- 首部行Host:指明了对象所在的主机,Connection:告诉服务器是否使用持续连接,User-agent:指明用户代理(向服务器发送请求的浏览器类型),Accept- language:表示拥护想得到的该对象的语言版本(如果没有则发送默认版本)。
- 使用GET方法时实体体为空,数据包含在URL中,使用POST方法时实体体会存放数据。
- HEAD方法类似于GET方法,服务器收到一个使用HEAD方法的请求时,将会用一个HTTP报文进行响应,但是不返回请求对象。
- PUT方法允许用户上传对象到指定的Web服务器指定的路径。
- DELETE方法允许用户或者应用程序删除Web服务器上的对象。
3.2 HTTP响应报文
- HTTP响应报文有三个部分:状态行、首部行、实体体。
- 状态行有三个字段:协议版本字段、状态码、状态信息。
- 首部行Connection:告诉客户发送完报文后是否关闭TCP连接,Date:指示服务器产生并发送响应报文的日期和时间,Server:指示该报文是由什么Web服务器产生的,Last- Modified:指示了对象创建或者最后修改的日期和时间,Content-Length:指示了被发送对象中的字节数,Content-Type:指示了实体体中的文本格式。
- 常见状态码:200 OK(请求成功,信息在响应报文中),301 Moved Permanently(请求的对象被永久转移了,新的URL定义在响应报文的Location:首部行中),400 Bad Request(该请求不能被服务器理解),404 Not Found(被请求的文档不在服务器上),505 HTTP Version Not Supported(服务器不支持请求报文使用的HTTP协议版本)。
- 浏览器和服务器具体有哪些首部行有很多因素。
cookie可以在无状态的HTTP之上建立一个会话层。
4.1 cookie技术的四个组件
- 在HTTP响应报文中的一个cookie首部行。
- 在HTTP请求报文中的一个cookie首部行。
- 在用户端系统中保留有一个cookie文件,由用户的浏览器进行管理。
- 位于Web站点的一个后端数据库。
4.2 机制
5.Web缓存5.1 概述
- Web缓存器(Web cache)也叫代理服务器(proxy server),是能够代表初始Web服务器来满足HTTP请求的网络实体。
- Web缓存器又自己的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本。
- Web缓存器既是服务器也是客户。
5.2 好处
- Web缓存器可以大大减少对客户请求的响应时间。
- Web缓存器能够大大减少一个机构的接入链路到英特网的通信量。
5.3 机制
6.条件GET方法6.1 概述
- 条件GET方法用于让缓存器中的对象保持最新。
- 条件GET请求报文的条件:使用GET方法,请求报文中包含一个If-Modified-Since:首部行。
6.2 机制
- 客户第一次向指定服务器请求对象时,先经过缓存器转发;
- 服务器将请求对象和最后修改日期发送给缓存器;
- 缓存器将对象和最后修改日期存储在缓存器中并将对象转发给客户;
- 客户过一段时间后再次请求该对象时,还是经过缓存器转发;
- 缓存器通过发送带有“If-Modified-Since:最后修改日期”首部行的请求报文给服务器;
- 如果对象没有被修改过,服务器向缓存器发送一个响应报文,报文中不包含请求对象,在状态行中有304 Not Modified;
- 缓存器收到响应报文后将缓存器中的对象发送给客户。
1.1 电子邮件系统的三个组成部分:
- 用户代理:允许用户阅读、回复、转发、保存和撰写报文。
- 邮件服务器:每个接收方在邮箱服务器中有一个邮箱。
- 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)。
2.1 概述
- SMTP是英特网电子邮件中的主要功能,使用TCP可靠数据传输服务。
- SMTP的两个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端。
- SMTP一般不使用中间邮件服务器发送邮件。
2.2 机制
- 用户调用邮件代理程序,将接收方的邮件地址和要发送的报文发送给他的邮件服务器。
- 要发送的报文放在用户的邮件服务器的报文队列中。
- 运行在用户邮件服务器上的SMTP客户端发现了报文队列中的报文,创建一个到运行在接收端邮件服务器上的SMTP服务器的TCP连接。
- SMTP客户端和SMTP服务器会经过一些初始的握手(HELO,MAIL FROM,RCPT TO,DATA、QUIT),然后SMTP客户端通过TCP连接发送报文。
- 在接收端的邮件服务器上,SMTP服务器端接收到报文,接收端邮件服务器将报文放入接收方的邮箱中。
- 接收方可以在任何时候调用用户代理程序阅读报文。
- HTTP协议主要是一个拉协议,SMTP协议主要是一个推协议。
- SMTP要求每个报文采用7比特ASCLL码格式,HTTP数据不受这种限制。
- 处理一个既包含文本又包含图形(或其他媒体类型)的文档时,HTTP把每个对象封装到它自己的HTTP响应报文中,SMTP把所有报文对象放在一个报文中。
- 邮件包括首部行,空行,报文体。
- 必须包括From:首部行和To:首部行,Subject:首部行和其他首部行可有可无。
- 首部行后紧跟这空白行,然后是以ASCLL格式表示的报文体。
5.1 第三版的邮局协议(Post Office Protocol — Version 3,POP3)
- 极为简单的邮件访问协议,SMTP用来将邮件从发送方的邮件服务器传输到接收方的邮件服务器和将邮件从发送方的用户代理传送发送方的邮件服务器,POP3用来将邮件从接收方的邮件服务器传送到接收方的用户代理。
- 用户代理打开一个到邮件服务器端口110的TCP连接后,POP3进行三个阶段:特许、事务处理、更新。
- 在特许阶段,用户代理以明文形式发送用户名(user)和口令(pass)以鉴别用户。
- 在事务处理阶段,用户代理取回报文(retr),还能对报文作删除标记(dele)、取消删除标记、获取邮件统计信息(list)。
- 在更新阶段,在用户代理发送quit命令后,结束POP3会话,并删除被标记删除的报文。
- 服务器会有的两种回答:+OK(有时后面会有服务器到客户的数据),-ERR。
- 用户代理与邮件服务器之间的POP3会话期间,POP3服务器保留了一些状态信息,但是会话过程中不会携带状态信息。
5.2 英特网邮件访问协议(Internet Mail Access Protocol,IMAP)
- 较为的邮件访问协议,SMTP用来将邮件从发送方的邮件服务器传输到接收方的邮件服务器和将邮件从发送方的用户代理传送发送方的邮件服务器,IMAP用来将邮件从接收方的邮件服务器传送到接收方的用户代理。
- IMAP服务器把每个报文与一个文件夹联系起来。
- IMAP服务器维护了IMAP会话的用户状态信息。
- IMAP允许用户代理获取报文某些部分的命令。
5.3 HTTP
- 用户代理就是普通的浏览器,用户和他远程邮箱之间的通信则通过HTTP进行。
- SMTP用来将邮件从发送方的邮件服务器传输到接收方的邮件服务器,HTTP用来将邮件从发送方的用户代理传送到发送方的邮件服务器和将邮件从接收方的邮件服务器传送到接收方的用户代理。
1.1 主机的两种标识方法
- 主机名。
- IP地址。
1.2 域名系统(Domain Name System,DNS)
- 进行主机名到IP地址转换到目录服务。
- 一个由分层的DNS服务器实现的分布式数据库。
- 一个能够使得主机能够查询分布式数据库的应用层协议。
- DNS协议运行在UDP之上,使用53号端口。
- 使用客户-服务器模式运行在通信系统的端系统之间。
1.3 DNS的其他服务
- 应用程序可以调用DNS来获得主机别名(有着复杂规范主机名的主机能有一个或多个别名)对应的规范主机名以及主机IP地址。
- 邮件服务器别名。
- 负载分配。DNS在冗余的服务器之间进行负载分配。繁忙的站点分布在多台不同端系统的服务器上,每个都有不同的IP地址,但只对应一个规范主机名。DNS数据库中存储着IP地址集合,在每次的客户请求中DNS循环的使用这些地址次序,客户通常总是向IP地址排在最前面的服务器发送HTTP请求报文。
2.1 集中式设计的缺点
- 单点故障:集中式的DNS服务器崩溃导致整个英特网瘫痪。
- 通信容量:同时处理所有请求负荷过大。
- 远距离的集中式数据库:数据库无法满足距离较远的请求客户有快的响应速度。
- 维护:数据库总量不断增大难以维护。
2.2 分布式、层次数据库
- 根DNS服务器:全球有400多个根DNS服务器。根DNS服务器提供TLD服务器的IP地址。
- 顶级域DNS服务器(Top- Level Domain,TLD):对于每个顶级域(如com、org、net、edu、gov等)和所有国家的顶级域(如uk、fr、ca、jp等),都有TLD服务器。TLD服务器提供了权威DNS服务器的IP地址。
- 权威DNS服务器:在英特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机名映射为IP地址,存储在这个组织机构的权威DNS服务器中。
- 本地DNS服务器:每个ISP都有一台本地DNS服务器。
- 请求主机到本地本地DNS服务器查询是递归查询,从本地DNS服务器到根DNS服务器、TLD DNS服务器、权威DNS服务器是迭代查询。
2.3 DNS缓存
- 在一个请求链中,当某DNS服务器接收一个DNS回答时,它能将映射缓存在本地存储器中。
- DNS服务器在一段时间(一般设置为两天)后将丢弃缓存的信息。
3.1 资源记录
- 共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record,RR),RR提供了主机名到IP地址的映射。
- 资源记录包含一个4字段的元组:(Name,Value,Type,TTL)。
- TTL是该记录的生存时间,决定了资源记录什么时候从缓存中删除。
- Name和Value的值取决于Type:Type = A,则Name为主机名,Value为该主机名对应的IP地址;Type = NS,则Name是个域,Value是个知道如何获得该域中主机IP地址的权威DNS服务器的主机名;Type = CNAME,则Name是别名,Value是对应别名的规范主机名;Type = MX,则Name是邮件服务器的别名,Value是对应别名的规范主机名。
3.2 DNS报文
- DNS报文分为查询报文和回答报文。
- 前12个字节为首部区域。标识符为一个16比特的数,用于标识该查询,这个标识会复制到对应的回答报文中;标志字段有若干标志,如1比特的“查询/回答”标志位、请求的是否是权威DNS服务器标志位、请求的“希望递归”标志位、回答的“递归可用”标志位等;其余四个字段指出了首部后的4类数据区域出现的数量。
- 问题区域包含正在进行的查询信息,包括:名字字段,即正在被查询的主机名字;类型字段,指出有关该名字的正在被询问的类型。
- 回答区域包含了对最初请求的名字的资源记录。
- 权威区域包含了其他权威服务器的记录。
- 附加区域包含了其他有帮助的记录。
3.3 在DNS数据库中插入记录
- 注册登记机构:是一个商业实体,它验证该域名的唯一性,将该域名输入DNS数据库,对提供的服务收取少量费用。
- P2P体系结构的应用程序能够自扩展,因为每个队等方除了是比特的消费者还是比特的重新分发者。
- BitTorrent是一种用于文件分发的流行P2P协议。
- 参与一个特定文件分发的所有队等方的集合被称为一个洪流。
- 在一个洪流中的队等方彼此下载等长度的文件块,典型的长度为256KB。
- 每个洪流具有一个基础设施节点,称为追踪器。
- 使用最稀缺优先技术决定队等方请求哪些块。
- 使用一种对换算法决定队等方响应哪个请求。
- 视频的一个重要特征就是它能够被压缩,因此可以用比特率来权衡视频质量。
- 现在的压缩算法可以把一个视频压缩为任何所希望的比特率。
- 比特率越高,图像质量越好,用户的总体视觉感受越好。
- 一个视频可以被压缩为多个版本,用户可以根据自己的带宽来选择观看什么比特率的视频。
2.1 HTTP流
- 在HTTP流中,视频只是存储在HTTP服务器中作为一个普通文件,每个文件有一个特定的URL。
- 缺陷:所有客户接收相同编码的视频。
2.2 DASH
- 经HTTP的动态适应性流(Dynamic Adaptive Streaming over HTTP,DASH)。
- 在DASH中,视频编码被分为几个不同的版本,其中每个版本具有不同的比特率,对应于不同的质量水平。
- 每个视频版本存储在HTTP服务器中,每个版本有不同的URL。
- HTTP服务器有一个告示文件,为每个版本提供了一个URL及其比特率。
- DASH允许客户自由地在不同质量等级之间切换。
3.1 概述
- 内容分发网(Content Distribution Network,CDN)。
- CDN管理分布在多个地理位置上的服务器,在它的服务器中存储视频或其他内容的副本,并且所有试图将每个用户请求定向到一个将提供最好的用户体验的CDN位置。
- CDN分类:专用CDN,它由内容供应商自己所拥有;第三方CDN,它代表多个内容供应商分发内容。
- CDN安置原则:深入,即通过在遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中,维护和管理开销高。邀请做客,通过在少量关键位置建造大集群来邀请到ISP做客,对端用户产生较高时延和较低吞吐量。
3.2 CDN截获请求
- 大多数CDN利用DNS来截获和重定向请求。
3.3 集群选择策略
- 动态的将客户定向到CDN中的某个服务器集群或数据中心的机制。
- 一种是指派客户到地理上最为邻近的集群。
- 一种是基于当前流量条件为客户决定最好的集群。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)