网站中文章内图片做超链接,嘉兴企业网站排名优化,承德网站推广,wordpress在线教育系统2.1 应用层协议原理#xff08;P54#xff09;
研发网络应用的核心是写出能够运行在不同端系统和通过网络彼此交流的程序。
2.1.1 网络应用程序体系结构
两种主流的应用体系结构#xff1a;客户-服务器体系结构、对等体系结构。
客户-服务器体系#xff1a;服务器是一个…2.1 应用层协议原理P54
研发网络应用的核心是写出能够运行在不同端系统和通过网络彼此交流的程序。
2.1.1 网络应用程序体系结构
两种主流的应用体系结构客户-服务器体系结构、对等体系结构。
客户-服务器体系服务器是一个总是打开的主机它为称为客户的主机提供服务。服务器具有固定的、周知的IP地址。服务器往往有数据中心构成。最典型的例子是web应用。
P2P体系应用程序在主机对之间直接通信。P2P体系结构具有自扩展性每个对等方在享受服务的同时也为系统提供服务能力。
2.1.2 进程通信
2.1.2.1 客户和服务器进程
网络应用程序由成对的进程组成这些进程通过网络相互发送报文。对每对通信的进程通常将两个进程之一称为“客户”另一个进程称为“服务器”。在P2P体系中下载文件的进程称为“客户”上传文件的称为“服务器”。
2.1.2.2 进程与计算机网络之间的接口
进程通过称为套接字的软件接口向网络发送报文和从网络接收报文。
套接字是主机内应用层与运输层之间的接口。
2.1.2.3 进程寻址
IP地址是一个能唯一标识主机的32比特的量。
发送进程必须指定运行在主机上的接收进程。
2.1.3 可供应用程序使用的运输服务
应用程序的服务要求大体有4类可靠数据传输、吞吐量、定时和安全性。
可靠数据传输将数据正确、完整地从一端传输到另一端。邮件、文件传输等需要可靠数据传输多媒体应用一般不需要。
吞吐量在波动的网络中保证吞吐量。
定时控制发送方到接收方地延迟。
安全性
2.1.4 因特网提供地运输服务
因特网为应用程序提供了两个运输层协议UDP、TCP。
2.1.4.1 TCP服务
TCP服务包括面向连接服务和可靠数据传输服务。
面向连接服务在报文开始传输之前TCP让客户和服务器交换运输层控制信息称为“握手”。然后两个进程的套接字之间就建立了TCP联系。连接双方可以同时进行收发报文。应用程序结束报文发送后TCP连接必须拆除。
可靠的数据传输服务无差错、无冗余。
TCP协议还具有拥塞控制机制当发送方和接收方之间出现网络拥塞时TCP会抑制发送进程。
2.1.4.2 UDP服务
UCP服务仅提供最小服务没有握手过程、不保证报文能送达接收进程、报文可能乱序到达、没有拥塞控制机制。
2.1.4.3 因特网运输协议所不提供的服务
因特网运输协议不保证吞吐量和定时。
2.1.5 应用层协议
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。 应用层协议定义了
交换报文的类型请求报文or响应报文交换报文类型的语法字段的语意确定一个进程何时、如何发送报文、如何对报文进行响应的规则。
2.2 Web和HTTPP64
2.2.1 HTTP概况
Web的应用协议是超文本传输协议HTTP。HTTP由一个客户程序和一个服务器程序组成HTTP定义了报文的结构和交换报文的方式。
Web页面是由对象组成的。一个对象只是一个文件如一个HTML文件、一个JPEG图形等且它们可通过一个URL地址寻址。多数Web界面含有一个HTML基本文件和几个引用对象HTML基本文件通过对象的URL地址引用页面中的其他对象。每个URL地址由两部分组成存放对象的服务器主机名、对象的路径名例如http://www.someSchool.edu/someDepartment/picture.gif中www.someSchool为主机名/someDepartment/picture.gif为路径名。
HTTP定义了Web客户向Web服务器请求Web页面的方式以及服务器向客户传送Web页面的方式。 HTTP使用TCP作为它的支撑运输协议。HTTP客户首先发起一个与服务器的TCP连接连接建立后客户和服务器就可以通过自己的套接字发送和接受报文。
HTTP服务器不保存关于客户的任何信息是一个无状态协议。
2.2.2 非持续连接和持续连接
在许多因特网应用程序中客户和服务器在一个相当长的时间内保持通信客户在此期间会对服务器发出一系列请求。如果每个请求是经一个单独的TCP连接发送则该应用程序称为使用非连续连接如果所有请求经同一个TCP连接发送称为持续连接。
HTTP技能使用非持续连接也能使用持续连接默认使用持续连接。
2.2.2.1 采用非持续连接的HTTP 在非持续连接中每个TCP连接在服务器发送一个对象后关闭每个TCP连接只传输一个请求报文和一个响应报文。 定义RRTRound-Trip Time为一个短分组从客户到服务器然后再返回客户所花费的时间。如上图所示浏览器与服务器建立TCP连接涉及一次“三次握手”过程即客户向服务器发送一个小TCP报文段服务器用一个小TCP报文段做出确认和响应最后客户向服务器返回确认。“三次握手”的前两次握手消耗了一个RRT时间客户结合第三次握手向TCP连接发送一个HTTP请求报文请求报文到达服务器后服务器在该TCP连接上发送HTML文件。所以总的响应时间为两个RRT时间加上服务器传输HTML文件的时间。
2.2.2.2 采用持续连接的HTTP
非持续连接有一些缺点
必须为每一个对象建立和维护一个全新的连接而客户和服务器需要为该连接分配TCP缓冲区和保持TCP变量这给Web服务器带来了严重的负担。每一个对象要经历两倍RTT时延。
在采用持续连接的情况下服务器在发送响应后保持TCP连接打开对对象的请求可以连续发出不必等到响应流水线。一段时间未使用后连接关闭。
2.2.3 HTTP报文格式
2.2.3.1 HTTP请求报文
上图为一个典型的HTTP请求报文。该报文由ASCII文本书写由5行组成每行由一个回车和换行符结束最后一行还有一个额外的回车和换行符。HTTP请求报文的第一行称为请求行后面的行称为首部行。请求行有3个字段方法字段、URL字段和HTTP版本字段。 在GET方法中“实体体”为空使用POST方法时需要使用实体体。
2.2.3.2 HTTP响应报文
l
2.2.4 用户与服务器的交互cookie
HTTP使用cookie来允许站点对用户进行跟踪。 如上图所示cookie有4个组件HTTP响应报文中的一个cookie首部行、HTTP请求报文中的一个cookie首部行、客户端系统保留的cookie文件由浏览器管理、位于Web站点的一个后端数据库。假设Susan使用PC上的IE浏览器上网她首次访问Amazon.com当请求报文到达Amazon Web服务器时该Web站点产生一个唯一的识别码并以此索引后端数据库中的一个表项。然后Amazon Web服务器用一个包含Set cookie:首部的HTTP响应报文对Susan的浏览器进行相应。Susan的浏览器收到响应报文时它会根据Set cookie:首部的内容在特定cookie文件中添加一行该行包括服务器主机名和cookie识别码。当Susan再次浏览Amazon网页时浏览器会查询cookie文件并抽取她对这个网站的识别码并放到HTTP报文的cookie:首部行中。这样Amazon就可以跟踪Susan再Amazon站点的活动。
2.2.5 Web缓存 Web缓存器也叫代理服务器。Web服务器有自己的磁盘存储空间保存着最近请求的对象的副本。Web缓存器既是客户也是服务器由ISP购买并安装可以减少客户请求的响应时间减少机构的接入链路到因特网的通信量。
2.2.6 条件GET方法
2.3 因特网中的电子邮件P75 上图展示了电子邮件系统的总体情况。电子邮件系统由3部分组成用户代理、邮件服务器、SMTP协议。
SMTP使用TCP可靠数据传输服务由发送方的客户端和接收方的服务器端组成每台邮件服务器上同时运行着客户端和服务器端。
2.3.1 SMTP协议
SMTP用于从发送方的邮件服务器发送报文到被发送方的邮件服务器。 SMTP一般不使用中间邮件服务器发送邮件。如果上图中Bob的邮件服务器没有开机发送出的报文会留在Alice的邮件服务器上并等待进行新的尝试。
客户SMTP在25号端口建立一个到服务器SMTP的TCP连接。连接建立后进行SMTP的握手阶段SMTP客户指示发送方的邮件地址和接收方的邮件地址。当客户和服务器彼此“介绍”之后客户发送报文。如果另有报文发送就在相同的TCP连接上重复这种处理否则TCP连接关闭。 2.3.2 与HTTP的对比
相同点持续连接。
不同点
HTTP是拉协议TCP连接是由接收文件的一方发起的SMTP是推协议TCP连接是由发送文件的一方发起的。SMTP要求每个报文采用7比特ASCII码格式HTTP无要求。如果一个报文中同时包含图片和文本HTTP会分别将每个对象封装到响应报文中SMTP将所有对象放入一个报文之中。
2.3.3 邮件报文格式
邮件报文由首部行和报文体构成。每个首部必须包含From:和To:首部行首部行和报文体之间用空行分隔。
2.3.4 邮件访问协议 为什么不将报文由Alice的代理通过SMTP直接发送到Bob的邮件服务器呢因为不通过Alice的邮件服务器进行中继如果Bob的邮件服务器处于关闭状态Alice的邮件将不能发送。采用Alice的邮件服务器作为中继后Alice的服务器可以重复尝试向Bob的邮件服务器发送报文。
由于SMTP是推协议所以Bob不能通过SMTP来获取邮件服务器上的邮件。
2.3.4.1 POP3
当用户代理打开了一个到邮件服务器110端口的TCP连接后POP3开始工作。POP3的工作分为三个阶段特许、事务处理、更新。特许阶段中用户代理以明文发送用户名和口令事务处理阶段中用户代理取回报文还可以对报文做删除标记、获取邮件的统计信息更新阶段发生在客户发出quit命令后这时邮件服务器会删除那些有删除标记的报文。 服务器会对用户代理的命令做出回答OK-ERR。 list命令要求邮件服务器列出所有存储的报文的长度。
使用“下载并删除”方式可能导致用户在一台设备上获取邮件后不能再在其他的设备上获取邮件。
在用户代理和邮件服务器进行POP3会话期间POP3服务器会保留一些状态信息如哪些报文被标记删除。但POP3服务器不会再会话过程中携带状态信息。
2.3.4.2 IMAP协议 2.4 DNS因特网的目录服务P83
2.4.1 DNS提供服务
识别主机有两种方式主机名、IP地址。DNS提供了主机名到IP地址转换的目录服务。DNS是一个由分层的DNS服务器实现的分布式数据库是一个使得主机能够查询分布式数据库的应用层协议。DNS运行在UDP协议上使用53号端口。
除了主机名到IP地址的转换外DNS还提供了如下服务
主机别名。邮件服务器别名。负载分配。繁忙的站点可能分布在多台服务器上每台服务器运行在不同的端系统上每个端系统有着不同的IP地址。因此一个主机名可能对应了一个IP地址的集合DNS在每个回答中循环这些地址的次序客户总是向IP地址排在最前面的服务器发送HTTP请求报文。
2.4.2 DNS工作机理概述
如果DNS服务器采用集中式设计可能产生如下问题
单点故障。通信容量。远距离的集中式数据库维护。
2.4.2.1 分布式、层次数据库
有3种类型的DNS服务器根服务器、顶级域TLD服务器、权威服务器。根服务器提供TLD服务器的IP地址TLD服务器提供权威服务器的IP地址权威服务器将主机名映射为IP地址。
本地DNS服务器起代理作用负责将用户的DNS请求转发到DNS服务器层次结构中。 上图为“递归迭代”模式在实践中较为常用 上图为纯递归模式。
2.4.2.2 DNS缓存
当某个DNS服务器接收一个DNS回答时它能将映射关系保存在本地。
2.4.3 DNS记录和报文