1计算机网络原理第二章应用层Chapter2ApplicationLayer2.1PrinciplesofApplicationLayerProtocol22.1.1Application-LayerProtocol应用层协议(ApplicationLayerProtocol)应用层协议为网络应用提供服务。网络应用是若干标准、协议等的集合,它采用应用层协议来实现信息的传送。例如:•Web浏览器和Web服务器采用http协议进行网页传送•电子邮件程序采用SMTP协议来发送邮件、采用POP3或IMAP协议来接收邮件•网络管理程序采用SNMP来传送网络设备的状态信息•…………2.1PrinciplesofApplicationLayerProtocol32.1.1Application-LayerProtocol应用层协议(ApplicationLayerProtocol)Anapplication-layerprotocoldefineshowtheapplication’sprocesses,runningondifferenthosts,passmessagestoeachother:Thetypesofmassagesexchanged.Ex.,requestmessagesandresponsemessagesThesyntaxofthevariousmessagetype.SuchasthefieldsinthemessagesandhowthefieldsdelineatedThesemanticsoffields,thatis,themeaningofcontentsinthefieldsRulesfordeterminingwhenandhowaprocesssendsmessagesandrespondstomessages2.1PrinciplesofApplicationLayerProtocol42.1.1Application-LayerProtocol网络协议的共同特点——Client/Server方式•网络协议由Clientside和Serverside组成例如:http既有服务器端(接受请求、给予响应),又有客户端(发出请求、接收数据)•网络应用是Client/Server工作方式Server是守侯进程(Daemonprocess),它倾听并随时接受呼叫,建立会话并进行数据处理和发送;Client总是通信的发起者•一台主机中既可以运行一个或多个Server进程、又可以运行一个或多个Client进程2.1PrinciplesofApplicationLayerProtocol52.1.1Application-LayerProtocol网络上的进程间通信(ProcessesCommunicationAcrossaNetwork)——通过Socket(套接口)来实现NetworkProcessTCPWithBuffer,VariablesSocketProcessTCPWithBuffer,VariablesSocket网络基础设施进程看到的传输通道OS开发者实际传输通道2.1PrinciplesofApplicationLayerProtocol62.1.1Application-LayerProtocol网络上的进程间通信(ProcessesCommunicationAcrossaNetwork)•Socket是一台主机内部的应用层与传送层之间的接口•也是网络应用与网络之间的应用程序接口(API),网络应用通过对API的调用来实现通信2.1PrinciplesofApplicationLayerProtocol72.1.1Application-LayerProtocol进程寻址(ProcessAddressing)•进程寻址是指发送者进程如何标识接收者进程•进程寻址至少需要两个信息接收者进程所在的主机名或地址IP地址接收者进程在该主机上的标识TCPportnumber2.1PrinciplesofApplicationLayerProtocol82.1.1Application-LayerProtocol用户代理(UserAgent)•UserAgent是用户使用网络应用的接口•UserAgent按照应用层协议(一个或多个)规定,调用Socket来完成报文传输任务•UserAgent的例子:IE、NetscapeNavigatorOutlookExpress、Foxmail2.1PrinciplesofApplicationLayerProtocol92.1.2WhatServicesDoseanApplicationNeed?DataLoss•有的应用不允许数据丢失。如文件传输、电子邮件、Web应用等•有的应用能容忍一定量的数据丢失。如实时音频、视频应用,它们允许质量的降低,但不允许时间的延误,它们靠自身的强壮性保证应用不中断、靠编码等手段保证质量因此,实际的网络应用既需要可靠的传输服务,也需要不可靠的传输服务2.1PrinciplesofApplicationLayerProtocol102.1.2WhatServicesDoseanApplicationNeed?Bandwidth•应用可分为带宽敏感应用(Bandwidth-sensitiveapplication)和弹性带宽应用(Bandwidth-elasticapplication)两类。•实时应用是带宽敏感应用,它有基本的带宽要求,如IPPhone、Networkingconference等。•非实时应用是弹性带宽应用,它不明确要求带宽,如E-mail、FTP、Web传输等。Bandwidth当然越宽越好,但必须实事求是。2.1PrinciplesofApplicationLayerProtocol112.1.2WhatServicesDoseanApplicationNeed?Timing(时效性)•应用可以是时效性强的,也可以是时效性弱的。•实时应用是时效性强的应用,数据必须限时送达,如IPPhone、Networkingconference、Multiplayergame等。•非实时应用是时效性弱的应用,如E-mail、FTP、Web传输等时效性与带宽等因素有关,有时必须以质量换取时效。2.1PrinciplesofApplicationLayerProtocol122.1.2WhatServicesDoseanApplicationNeed?applicationDatalossBandwidthTimeSensitiveFileTransferNolossElasticNoE-mailNolossElasticNoWebbrowseNolossElasticNoReal-timeAudio/VideoLoss-tolerantAudio:fewK-1MVideo:10K-5MYes:10sMsecStoredAudio/VideoLoss-tolerantAudio:fewK-1MVideo:10K-5MYes:fewsecondsInteractivegamesLoss-tolerantFewK-10KYes:100sMsecFinancialDataNolossElasticYesandno2.1PrinciplesofApplicationLayerProtocol132.1.3ServicesProvidedbytransport-layerprotocol提供两类服务•TCP服务•UDP服务2.1PrinciplesofApplicationLayerProtocol142.1.3ServicesProvidedbytransport-layerprotocolTCPServices•Connection-orientedservice在数据传输之前,Client和Server之间通过“握手”建立连接,实际上是通信双方确认可以通信的过程,因而是松散的连接互相之间的数据传输(双向的,或全双工的)通信完成后拆除连接•Reliabletransportservice没有数据丢失没有数据错误没有数据重复要进行流控制、拥塞控制•TCP保证数据能送达,但不提供带宽保证和传输时延保证2.1PrinciplesofApplicationLayerProtocol152.1.3ServicesProvidedbytransport-layerprotocolUDPServices•ConnectionlessserviceClient和Server之间不需要建立连接任何时候都可以将报文发送给本机的UDPSocket可以以任何可能的速率将报文发送给本机的UDPSocket•Unreliableservice不保证报文一定到达接收者Socket不保证报文按顺序到达接收者Socket不保证报文及时到达接收者Socket不进行流控制和拥塞控制•best-effortservice2.1PrinciplesofApplicationLayerProtocol162.1.3ServicesProvidedbytransport-layerprotocolApplicationsApplication-layerProtocolUnderlyingTransportProtocolE-mailSMTP(RFC821)TCPRemoteTerminalaccessTelnet(RFC854)TCPWebHTTP(RFC2616)TCPFileTransferFTP(RFC959)TCPRemoteFileServerNFS(NetwokFileSystem)UDPorTCPStreamingMultimediaProprietary(Ex.RealNetworks)UDPorTCPInternetTelephonyProprietary(Ex.Vocaltec)TypicallyUDPRFC:RequestforComments,IETF(InternetEngineeringTaskForce)StandardDocuments2.2TheWorldWideWeb:HTTP172.2.1OverviewofHTTPWebServer’sdocument:版本:HTTP1.0(1997年前,RFC1945)HTTP1.1(1998年开始,RFC2616)2.2TheWorldWideWeb:HTTP182.2.2NonpersistentandPersistentConnectionsNonpersistentConnections:为每个目标(HTML文档及其中链接的对象)建立一个TCP连接PersistentConnections:每个页面中的所有目标共用一个TCP连接(非流水线方式)多个页面中的所有目标共用一个TCP连接(流水线方式)HTTP1.0——NonpersistentConnectionsHTTP1.1——NonpersistentConnections,PersistentConnections2.2TheWorldWideWeb:HTTP192.2.2NonpersistentandPersistentConnectionsRTT(Round-TripTime,周游时间):Client发送请求报文到接收到Server的应答报文之间的时间RTT假定服务器和客户机的处理时延为0,现在来讨论不同HTTP连接方式的传输性能——网页传输所需的时间2.2TheWorldWideWeb:HTTP202.2.2NonpersistentandPersistentConnectionsNonpersistentConnections:一个目标