计算机网络--应用层-应用层协议原理

应用层协议原理

研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。
在Web应用程序中,有两种互相通信的不同的程序:一个是运行在用户主机的浏览器程序,一个是运行在Web的服务器主机上的Web服务器程序。
在P2P文件共享中,每个参与的主机都有一个程序。

网络应用程序体系结构

客户-服务器体系结构

有一个总是打开的主机称为服务器,服务于来自许多其他成为客户的主机的请求。
客户通过服务器的固定的、周知的地址(IP地址)向服务器发送请求,Web服务器接收来自客户的请求,向该客户发送所请求的对象作为响应,客户之间不直接通信。
缺点:对服务器(数据中心)的要求较高,需要大量服务器处理大量请求,并产生互联和宽带费用

P2P体系结构

对位于数据中心的专用服务器有最小的(或没有)依赖,应用程序在主机队之间使用直接通信,这些主机被称为对等方。(个人理解是将服务器的压力分摊到各个用户的主机上)
优点:
成本较低,不需要较高要求的服务器和带宽。
挑战:
1、ISP友好(原来的ISP设计符合下载比上载多,P2P对上载要求同样较高)
2、安全性(P2P更加开放)
3、激励(需要使用用户的主机来完成任务)

进程通信

一个进程可以被认为是运行在端系统中的一个程序。在两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。

客户和服务器进程

网络应用程序有成对的进程组成,这些进程通过网络相互发送报文。对于每对进程,进程之一标识为客户,另一个进程标识为服务器。(发起通信的进程被标识为客户,在会话开始时等待联系的进程是服务器)

进程与计算机网络之间的接口

多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送报文和从网络接收报文必须通过下面的网络。进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
套接字是同一台主机内应用层和运输层之间的接口,是建立网络应用程序的可编程接口,也称为应用层程序和网络之间的应用程序编程接口。应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没有控制权。(1、选择运输层协议 2、也许能设定几个运输层参数,如最大缓存和最大报文段长度)

进程寻址

在一台主机上运行的进程为了向在另一台主机上运行的进程发送分组,接收进程需要有一个地址。为了表示该接收进程,需要定义:
1、主机的地址
2、定义在目的主机中的接受进程的标识符(接受套接字)
在因特网中,主机由其IP地址标识。IP地址是一个32比特的量且它能够唯一的标识该主机。接收进程的标识符是目的地端口号

可供应用程序使用的运输服务

套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字,在套接字的另一侧,运输层协议负责使该报文进入接收进程的套接字。需要选用不同的运输层协议,从四方面对应用程序服务要求分类:可靠数据传输、吞吐量、定时和安全性。

可靠数据传输

一个协议能够是应用程序的一端发送的数据正确、完全地交付给该应用程序的另一端,就认为提供了可靠数据传输。有些应用能够容忍数据丢失,如多媒体应用。

吞吐量

可用吞吐量就是发送进程能够向接受进程交付比特的速率。因为网络路径的带宽共享,吞吐量将随时间波动,运输层协议能够以特定的速率提供确保的可用吞吐量。具有吞吐量要求的应用程序被称为带宽敏感的应用。

定时

运输协议保证从发送到接收低时延

安全性

运输协议对数据加密发送,解密交付

因特网提供的运输服务

因特网为应用程序提供两个运输层协议,即UDP和TCP

TCP服务

包括面向连接服务和可靠数据传输服务。
面向连接服务:在应用层数据报文开始流动之前,TCP让客户和服务器相互交换运输层控制信息。在握手阶段后,一个TCP连接在两个进程的套接字之间建立了。连接双方的进程可以在此连接上同时进行报文收发。在应用程序结束报文发送时,必须拆除该连接。
可靠的数据传输服务:无差错、按适当顺序交付所有发送的数据,没有字节的丢失和冗余。
当发送方和接收方之间的网络出现用拥塞时,TCP的拥塞机制会抑制发送进程(客户或服务器)

UDP服务

是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。无握手过程,提供不可靠数据传输服务,没有拥塞控制机制。

因特网传输协议所不提供的服务

目前的因特网运输协议不提供吞吐量或定时保证服务。电子邮件、远程终端访问、Web、文件传输都使用TCP。因特网电话应用通常设计成如果UDP通信失败就使用TCP作为备份

应用层协议

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值