计算机网络之应用层_part -1

应用层协议原理

一、网络应用程序体系结构

  网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种:

1.客户--服务器体系结构:

  有一个总是打开的主机(称为服务器),他服务于来自许多的其他的称为客户的主机的请求,客户--服务器体系结构德 一个典型的例子是:Web应用程序,其中总是打开的Web服务器接收到来自其他客户的对某对象的请求时,它会向该客户发送所请求的对象作为响应。值得注意的是客户--服务器体系结构有两个重要特征:

  a.客户之间不直接通信

  b.服务器具有固定的、周知的地址(IP地址)

当然现实中 ,在一个客户--服务器体系结构中,常常会出现一台单独的服务器跟不上他的客户请求的情况。为此,配备大量主机的数据中心常常被用于创建强大的虚拟服务器 。如谷歌就有分布在全世界的30-50个数据中心,这些数据中心共同处理搜索、Gmail和其他服务。

2.对等(P2P)体系结构:

  在一个P2P体系结构中,对于数据中心的专用服务器有最小的(或没有)依赖,相反,应用程序在间断连接的主机之间使用直接通信,这些主机对称为对等方。许多目前流行的、流量密集型的应用都是P2P体系结构,如这些应用包括文件共享(BitTorrent)、对等方协助下载器(迅雷)、因特网电话(Skype)和IPTV(迅雷看看)。

需要提及的是某些应用具有混合的体系结构,结合了客户--服务器和P2P的元素。

二、进程通信

在操作系统的主术语中,进行通信的实际上是进程而不是程序,进程间的通信可以分为两种,一种为运行在同一端系统上的,一种是运行在不同端系统上的。在这里我们只关注后者。

1.客户与服务器进程

  我们定义客户与服务器进程如下:

  在给定的一对进程之间的通信会话场景中,发起通信的(即在该会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程被标识为服务器。

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

  多数应用程序是由通信进程对组成的,每对中的两个进程相互发送报文。从一个进程向另一个进程发送报文必须通过下面的网络。进程通过一个称为套接字(Socket)的软件接口向网络中发送报文或从网络中接收报文。我们用一个类比来理解进程与套接字。进程可以类比于一座房子,而他的套接字可以类比于它的门。当一个进程想向位于另外一台主机上的另外一个进程发送报文时,它把报文推出该门(套接字)。该发送进程假定该门到另外一侧之间有运输的基础设施,该设施将把报文传送到目的进程的门,一旦该报文抵达目的主机,它通过接受进程的门(套接字)传送,然后接收进程对该报文进行处理。

  由于该套接字是建立网络应用程序的可编程接口,所以套接字也称为应用程序与网络之间的应用程序编程接口(API)。应用程序开发者可以控制套接字在网络层端的一切,而对套接字在运输层端几乎没有控制权。

3.进程寻址

  为了向特定目的地发送邮政邮件,目的地需要有一个地址。类似地,在一台主机上运行的进程为了向另外一台主机上的运行的进程发送分组,接受进程需要有一个地址。为了表示该接受进程,需要定义两种信息:a.主机地址 (IP地址)b.定义在目的主机中的接受进程的标识符(端口号)。

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

1.可靠数据传输

2.吞吐量

3.定时

4.安全性

四、因特网提供的运输服务

1.TCP服务

当某个应用程序选择TCP作为其运输层协议是,该应用程序就能获得来自于TCP的这两种服务:

(1)面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息,也就是握手过程。在握手过程后,一个TCP连接就在两个进程的套接字之间建立了。

(2)可靠的数据传输服务:通信进程能依靠TCP,无差错、按适当顺序交付所有发送的数据报文,并且没有字节的丢失和冗余。

TCP协议还基友拥塞控制机制,当发送方和接收方之间的网络出现拥塞是,TCP的拥塞控制机制会抑制发送进程发送数据。

2.UDP服务

UDP是一种不提供不必要的服务的轻量级运输协议,仅提供最小服务。UDP是无连接的,即在两个进程通信之前没有握手过程。UDP协议也只是提供一种不可靠的数据传输服务,也就是说,当进程发送一个报文进UDP套接字时,UDP协议不保证这个报文一定能到达接收进城。不仅如此,到达接受进程的报文也可能是乱序到达的。

3.因特网运输协议所不提供的服务

运输协议服务主要有四个方面:可靠地数据传输,吞吐量,定时,安全性。

我们可以注意到TCP提供了端到端的可靠地数据传输服务,并且我们可以在应用层用SSL来加强以提供安全性服务。显然,TCP和UDP缺少了定时和吞吐量的服务,这也是因特网运输服务协议并没有提供的。

时间: 2024-10-09 01:17:32

计算机网络之应用层_part -1的相关文章

计算机网络之应用层_part -3

应用层协议之文件传输协议:FTP 在一个典型的FTP会话中,用户坐在一台主机(本地主机)前面,向一台远程主机传输(或者接受来自远程主机的)文件.为使用户能访问它的远程账户,用户必须提供一个用户标识和口令.用户首先提供远程主机的主机名,使本地主机的FTP客户进程建立一个到远程主机FTP服务器进程的TCP连接.该用户接着提供用户标识和口令,作为FTP命令的一部分在该TCP连接上传输.一旦该服务器向该用户授权,该用户可以将存放在本地的文件系统中的一个或者多个文件复制到远程的文件系统中. FTP文件传输

计算机网络 2. 应用层

应用架构application architecture.一般网络应用,有两种结构,客户机/server建筑建筑及同行(P2P). 顾客/server架构client-server architecture于.称为server,它为来自客户机的请求提供服务.客户机之间不进行直接通信.server拥有固定的周知的地址,称为IP地址,且总是处于打开状态.常会出现一台server主机跟不上其全部客户机请求的情况.常使用主机群集a cluster of hosts或者称为server场server fa

计算机网络之应用层

应用层作文协议栈的最高层,与用户亲密打交道的的协议层也就是应用层.场景的组件:浏览器,http服务器等. 主要内容 1网络应用体系结构 2.进程通信 3 需要传输层提供服务 4 应用层协议 2种网络应用体系结构 客户-服务器体系结构 代表协议为HTTP.特点:(1)客户端之间不可直接通信:(2)服务器有已知的IP,服务器总是打开的. 容易出现性能问题:一台服务器往往跟不上海量的客户请求. P2P体系结构 对服务器要求相对不高:应用程序间可以直接通信.直接通信的主机叫peers,一般是用户控制的主

计算机网络的应用层简单介绍:

应用层的常用的两种网络结构: client-server 结构和 P2P结构(即peer to peer): 在这一层要涉及到端口与进程:各应用之间的通信实际上为各进程之间的通信:用端口号来区分同一台机器上的不同进程: socket:为进程之间的接口,又称为API(application programming interface), 它可以看信息在出进程中的出入口: 整个结构大致如下图所示: WEB与HTTP: HTTP为超文本传输协议,(HyperText transfer protocol

【计算机网络】应用层1

咱看书没有顺序,喜欢哪里看哪里,so,先看跟我平时使用网络最相关的应用层~ 域名与url 域名是IP的别名,比如www.baidu.com,其中越靠后的就越表示域名等级越高,com是顶级域名,baidu是二级域名,但是www是不是三级域名我就搞不懂了.还有,一个域名对应一个ip,那这么多信息都放在一个ip上啊,是说有很多个牛掰的服务器都用这一个ip吗?为了把域名和ip对应起来,DNS服务器就要起作用了,配置ip时的DNS就是我们查询域名时询问的服务器,不过这么多信息不会都存在一个DNS上的,这个

计算机网络之应用层初识

一,定义 应用层是直接为用户提供服务的,两个应用层的通信之中有一个逻辑连接(有主机a的应用层...-物理层-交换机a-路由器-交换机b-主机b的物理层-...应用层),也就是说我们可以假想成一个直接的连接,也就是我们可以使用应用层发送和接收报文. 二,标准应用层协议和非标准 在应用层上的协议并且被internet官方标准化和归档的协议陈为标准应用层协议,比如http,ftp,ssh等 非标准应用层协议是用户自定义在应用层上的一些协议,因为有时候对应官方规定的协议对于程序员来说有可能不好用,或者太

<计算机网络>计算机网络和应用层

1.端系统通过通信链路和分组交换机连接在一起,构成网络.网络和网络之间通过路由器相连,组成了因特网. 2.ISP(Internet Service Provider)因特网服务提供商.端系统通过ISP接入互联网,每个ISP是由一个或者多个分组交换机和多段通信链路组成的网络.为了允许因特网用户之间互相通信,允许用户访问世界范围的因特网内容,这些低层ISP通过国家的.国际的高层ISP互联起来.高层ISP是由通过高速光纤链路互联的高速路由器组成.每个ISP都是独立管理的,运行IP协议,遵从一定的命名和

Git的原理简介和常用命令

Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件.图片文件等等.早期SVN占据了绝大部分市场,而后来随着Git的出现,越来越多的人选择将它作为版本控制工具,社区也越来越强大.相较于SVN,最核心的区别是Git是分布式的VCS,简而言之,每一个你pull下来的Git仓库都是主仓库的一个分布式版

读书笔记:计算机网络8章:应用层

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP