首页 > 编程知识 正文

基于tcp协议的应用层协议,应用层协议定义了

时间:2023-05-04 18:02:58 阅读:176162 作者:4308

APP应用层协议——原理APP应用层协议的实现可以运行在不同的终端系统(服务器、移动电话、个人计算机等等)中,仅仅写可以经由网络彼此通信的程序。 网络核心设备(路由器、交换机等终端系统设备除外)在APP应用层不起作用,而只在网络层及其下一层起作用,因此不需要为网络核心设备写相应的APP应用程序这意味着在开发APP应用程序时,只考虑自适应系统,而不需要考虑网络核心设备。

网络APP应用体系结构目前主流的网络APP应用体系结构有客户-服务器体系结构(client-server architecture )和对等体系结构(P2P )两种。

客户-服务器体系结构(client-server architecture):客户-在服务器体系结构中,至少有一个打开的主机,称为服务器,以满足许多其他称为客户的主机的请求。 web APP应用程序是一个典型的示例,始终至少有一个web服务器在运行以响应浏览器请求。 客户端-服务器体系结构的一个特征是服务器具有固定和已知的IP地址。对等体系结构(P2P):P2P体系结构对数据中心的专用服务器依赖度最低或没有。 APP应用在间断连接的主机对(称为对等方)之间使用直接通信。 这些对等点不属于服务提供商,而是用户管理的台式机、笔记本电脑等。 此系统被对等方称为对等方,因为此类对等方通信不需要通过专用服务器。 进程通信进程的定义是操作系统,进行通信的实际上是进程(process ),而不是程序。 可以将进程视为在最终系统上运行的程序。

两个不同系统上的进程通过跨越计算机网络交换消息来相互通信。 发送进程生成消息并将其发送到网络的接收进程可能会接收这些消息,并通过消息回复进行响应。

对于每个通信进程,通常将这两个进程之一标识为客户端(client ),另一个标识为服务器(server )。 在P2P文件共享的某些APP应用中,一个进程可能同时是客户端和服务器。 因此,您可以按如下方式定义客户和服务器流程:在给定的一对进程之间的通信回话场景中,发起通信(即在该会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器

进程与计算机网络的直接接口进程通过被称为套接字(socket )的软件接口向网络发送和接收消息。 套接字是同一主机内的APP传输层和传输层之间的接口,并且发送方的APP应用将消息前进到套接字,并在套接字的另一端,传输层协议负责进入该消息的接收过程由于套接字是用于建立网络APP应用的可编程接口,因此套接字也称为APP应用程序和网络之间的APP位置编程接口(API )。 APP应用程序开发人员可以控制APP应用层的所有套接字,但对更改套接字的传输层没有很少的控制权。 开发商对运输层的管理包括:选择运输层协议; 也许可以设置一些传输层参数,包括最大缓存和最大消息段长度。 当开发者选择传输层协议时,将在该协议提供的传输层服务上构建APP应用程序。

进程地址接收进程需要一个地址,以使在一台主机上运行的进程将包发送到在另一台主机上运行的进程。 为了识别接收流程,主机地址; 定义目标主机上接收进程的标识符。

在internet中,主机由IP地址(IP address )标识。 IP地址是32位的量,可以唯一识别主机。 由于可以在一台主机上执行多个web APP,所以发送消息时,发送过程除了知道目的地的主机地址外,还需要指定在接收主机上执行的接收过程(接收插口)。 目前流行的端口有Web服务器的80个端口、SMTP的25个端口等。

运输服务在APP应用中可以使用的运输服务网络中有多种运输层协议,开发APP应用时需要根据需求选择相应的运输层协议。 根据传输层服务的要求,可以将传输层服务大致分为四类:可靠的数据传输、吞吐量、定时和安全。

由于可靠的数据传输可能会因数据丢失而造成灾难性后果,因此必须执行几项操作才能确保从APP应用程序的一端发送的数据正确、完整地传递到APP应用程序的另一端。 如果某个协议提供了这样的数据分发服务,则认为它提供了可靠的数据传输(reliable data transfer )。 如果运输协议提供这种服务,那么完全可以相信发送过程只需要把数据传递到插口,它就会无错误地到达接收过程。

此外,某些进程无法提供可靠的数据传输,从发送进程发送的某些数据可能无法到达接收进程。 这种传输层协议通常用于多媒体APP应用,如音频、视频等。 这些APP应用程序可以承受一定量的数据丢失,而不是致命的。

吞吐量在沿网络路径的两个进程之间的通信会话情形中,可用吞吐量是指发送进程可以为接收进程提供的比特率。 由于其他会话沿网络路径共享带宽,并且由于这些会话是发送和接收的,所以可用吞吐量会随时间而变化。 因此,传输层协议必须能够提供以特定速度确保的可用吞吐量和吞吐量服务。 使用这样的服务,APP应用可以请求达到r比特/秒的吞吐量,并且传输协议可以保证可用吞吐量总是至少为r比特/秒。

定时传输层协议可以提供定时保证,例如,在发送侧注入套接字的每一位到达接收套接字后100ms。 该服务团队的交互式实时APP应用具有很大的吸引力,包括网络电话、网络互动游戏等。 这些APP应用程序如下

了有效性而要求数据交付有严格的时间限制。

安全性

  运输协议能够为应用程序提供一种或多种安全性服务。例如,在发送主机中,运输协议能够加密由发送进程传输的所有数据,在接收主机中,运输层协议能够在数据交付给接收进程之前解密这些数据。运输协议还能提供机密性以外的其他安全性服务,包括数据完整性和端点鉴别。

因特网提供的运输服务

  因特网(更一般的是TCP/IP网络)为应用程序提供两个运输层协议,即UDP和TCP。当为因特网创建一个新的应用时,受限要做出的决定是选择UDP还是TCP。每个协议为调用它们的应用程序提供了不同的服务集合。下表为一些应用程序的服务要求。

应用数据丢失带宽时间敏感文件传输不能丢失弹性不电子邮件不能丢失弹性不Web文档不能丢失单行(几kbps)不因特网电话/视频会议容忍丢失音频(几kbps~1Mbps)、视频(10kbps~5Mbps)是,100ms存储音频/视频容忍丢失同上是,几秒交互式游戏容忍丢视几kbps~10kbps是,100ms即时讯息不能丢失弹性是和不是 TCP服务

  TCP服务模型包括面向连接服务和可靠数据传输服务。当某个应用程序调用TCP作为运输协议时,该应用程序就能获得来自TCP的两种服务。

面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提示客户和服务器,使它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接就在两个进程的套接字之间建立了。这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文的收发。当应用程序结束报文发送时,必须拆除该连接。

可靠的数据传送服务:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。当应用程序的一端将字节流传进套接字时,它能够依靠TCP将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。

  TCP协议还具有拥塞控制机制,这种服务不一定能为通信进程带来直接好处,但能为因特网带来整体好处。当发送方和接收方之间的网络出现拥塞时,TCP的拥塞控制机制会抑制发送进程(客户或服务器)。

UDP服务

  UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP是无连接的,因此在两个进程通信前没有握手过程。UDP协议提供一种不可靠数据传送服务,也就是说,当进程将一个报文发送进UDP套接字时,UDP协议并不保证该报文将到达接收进程。不仅如此,达到接收进程的报文也可能是乱序到达的。
  UDP没有包括拥塞控制机制,所以UDP的发送端可以用它选定的任何速率向其下层(网络层)注入数据。

  下表指出了一些流行的因特网应用所使用的运输协议:

应用应用层协议支撑的运输协议电子邮件SMTP [RFC 5321]TCP远程终端访问Telnet [RFC 854]TCPWebHTTP [RFC 2616]TCP文件传输FTP [RFC 959]TCP流式多媒体HTTP (如 YouTube)TCP因特网电话SIP [RFC 3261]、RTP [RFC 3550]或专用的(如 Skype)UDP 或 TCP 因特网运输协议所不提供的服务

  运输层协议服务有可靠数据传输、吞吐量、定时、安全性4个方面的服务。TCP提供了可靠的端到端数据传送,并且TCP在应用层可以很容易地用SSL来加强已提供安全服务。但是,TCP却没有提供吞吐量服务和定时服务,或者说因特网运输协议没有提供这两种服务。

应用层协议定义

  应用层协议(application-layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。主要有以下的定义:

交换的报文类型,例如请求报文和响应报文各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的字段的语义,即这些字段中包含的信息的含义一个进程何时以及如何发送报文,对报文进行响应的规则

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。