计算机网络第3章应用层2011-2012-1网络应用•文本电子邮件、计算机远程访问、文件传输、新闻组以及文本聊天•万维网(Web)、流视频、因特网收音机、因特网电话和视频会议•即时讯息和对等(P2P)文件共享几个关键的应用层概念•应用层协议•客户机和服务器•进程•套接字•运输层接口应用程序•远程登录•电子邮件•文件传输•网络新闻•Web•DNS•P2P文件共享进一步要求•开发运行在TCP和UDP上的网络应用程序的方法•套接字API编程•用Java实现的几个简单的客户机/服务器应用•用Java实现一个简单的Web服务器程序一、应用层协议原理流行的网络应用程序的例子:•电子邮件•Web•即时讯息•Telnet和SSH•P2P文件共享•FTP•多用户网络游戏•流式存储视频片段•因特网电话•视频会议一、应用层协议原理研发网络应用程序的核心:•写出能够运行在不同的端系统和通过网络彼此通信的程序。•编写将在多台机器上运行的软件。•不需要写在网络核心设备(如路由器和以太网交换机)上运行的程序。一、应用层协议原理1、网络应用程序体系结构:•应用程序体系结构:由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。•3种主流体系结构:客户机/服务器体系结构、P2P体系结构,以及客户机/服务器和P2P混合的体系结构。一、应用层协议原理(1)客户机/服务器体系结构•有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。•客户机主机可能有时打开,可能总是打开。•在C/S模式中,客户机相互之间不直接通信。一、应用层协议原理(1)客户机/服务器体系结构•服务器有固定的、周知的地址,称为IP地址。•这种模式的著名的应用程序包括:Web、文件传送、远程登录和电子邮件。•在C/S体系结构中,主机群集(serverfarm,服务器场)常被用于创建强大的虚拟服务器。一、应用层协议原理(2)P2P体系结构•应用程序中心没有一个总是打开的服务器。相反,任意一对主机——称为对等方(peer),直接相互通信。•在P2P体系结构中,没有任何一台主机总是打开;此外,参与的主机每当加入时都有可能改变其IP地址。一、应用层协议原理(2)P2P体系结构•具有纯P2P体系结构的应用程序的例子如Gnutella。•P2P体系结构的最大威力之一是它的扩展性。•P2P应用程序高度分布、分散的性质,故而难以管理。一、应用层协议原理(3)客户机/服务器和P2P体系结构的混合体•客户机/服务器和P2P是网络应用程序的两种通用体系结构。然而,许多应用程序组织成客户机/服务器和P2P体系结构的混合体。•如即时讯息。一、应用层协议原理2、进程通信•进行通信的实际上是进程(process)而不是程序。•进程可以被认为是运行在端系统中的程序。•我们关注运行在不同端系统上的进程通信。一、应用层协议原理2、进程通信•不同端系统上的进程通过跨计算机网络交换报文而相互通信。•发送进程创建并向网络发送报文;接收进程接收这些报文并可能负责回送报文。一、应用层协议原理(1)客户机和服务器进程•网络应用程序是由成对的进程组成。•对每对通信进程,将这两个进程之一标示为客户机(client),而另一个进程标示为服务器(server)。•在给定的一对进程之间的通信会话中,发起通信的进程被标示为客户机,在会话开始时等待联系的进程是服务器。一、应用层协议原理(2)套接字•进程通过它的套接字在网络上发送和接收报文。•套接字是同一台主机内应用层与传输层之间的接口。•由于套接字是在网络上建立的网络应用程序的可编程接口,因此也将套接字叫做应用程序和网络之间的应用程序编程接口(API,applicationprogramminginterface)。一、应用层协议原理(3)进程寻址•为了能让一台主机上的进程向另一台主机上的进程发送报文,发送进程必须能够识别接收进程。•通常要定义两种信息:•(1)该主机的名称或地址;•(2)用来指定目的主机上接收进程的标识。一、应用层协议原理(3)进程寻址•目的主机是用IP地址进行标识。•除了知道报文去往的目的主机的IP地址外,发送程序也必须识别运行在主机上的接收进程。因为通常在一台主机上能够运行许多网络应用程序。目的地端口号(portnumber)就是服务于这个目的。一、应用层协议原理(3)进程寻址•已经给流行的应用程序分配了具体的端口号。•例如,Web服务进程用的是80号端口,邮件服务进程用的是25号端口。•所有因特网标准协议所使用的周知端口的列表可在找到。一、应用层协议原理3、应用层协议应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。定义了:•交换的报文类型;•各种报文类型的语法;•字段的语义;•进程何时、如何发送报文及对报文进行响应。一、应用层协议原理4、应用层需要什么样的服务•可靠的数据传输;•带宽;•定时。应用数据丢失带宽时间敏感文件传输不能丢失弹性不电子邮件不能丢失弹性不Web文档不能丢失弹性(几kb/s)不实时音频/视频容忍丢失音频(几kb/s-1Mb/s)视频(10kb/s-5Mb/s)是,100ms存储音频/视频容忍丢失同上是,几秒交互式游戏容忍丢失几kb/s-10kb/s是,100ms即时讯息不能丢失弹性是一、应用层协议原理•5、因特网运输层提供的服务(1)TCP服务TCP服务模型包括面向连接服务和可靠的数据传输服务。•A.面向连接的服务•在应用层数据报文开始流动之前,客户机程序和服务器程序之间互相交换控制信息。•在握手阶段后,一个TCP连接就在两个进程的套接字之间建立了。•这个连接是全双工的。•当应用程序结束报文发送时,必须拆除该连接。一、应用层协议原理•5、因特网运输层提供的服务(1)TCP服务•B.可靠的传输服务•无差错的、按适当顺序交付发送的数据。•当应用程序的一端通过套接字传送一个字节流时,它能够依靠TCP协议将相同的数据流交付给接收方的套接字,而没有字节的丢失和冗余。一、应用层协议原理•5、因特网运输层提供的服务(1)TCP服务•C.TCP协议还具有拥塞控制机制。•D.TCP协议能保证交付所有的数据,但是并不保证这些数据传输的速率以及经受的传输时延。一、应用层协议原理•5、因特网运输层提供的服务(2)UDP服务UDP协议是一个轻量级的传输协议,以一种最小服务模式运行,不提供不必要的服务。•UDP服务是无连接的,在两个进程通信前没有握手过程。一、应用层协议原理•5、因特网运输层提供的服务(2)UDP服务•UDP协议提供的是不可靠的数据传输服务,当进程通过UDP协议的套接字发送报文时,UDP协议并不保证报文能够被接收进程接收到。对于接收进程收到的报文也可能是乱序到达的。•UDP协议没有拥塞控制机制。•UDP协议不提供时延保证。一、应用层协议原理