计算机网络:2.1—应用层协议原理

2.1——应用层协议原理

应用层是一般用户使用的软件所在的网络层次。这种设计将一般用户使用的应用软件限制在了端系统中,使得在编写一般的应用软件时,不需要编写在网络核心设备(诸如链路层和路由器)上的软件,促进了大量网络应用的迅速研发和部署。

2.1.1 网络应用程序体系结构

应用程序体系结构是由应用程序开发者设计的,规定了如何在各种端系统上组织该应用程序。现代网络应用程序中所使用的两种主流体系结构为:客户-服务器体系结构 、 对等(P2P)体系结构

客户-服务器体系结构中,有一个总是打开的主机称之为服务器,它服务于来自许多其他称之为客户的主机请求。需要注意的是这个体系结构中,客户相互之间不会直接通信。一个典型的例子就是我们平时用的Web程序。

P2P体系结构中,对位于数据中心的专用服务器有着最小或者没有依赖。和客户服务器体系相反,应用程序在间断连接的主机对之间使用直接通讯,这些主机对被称为对等方。这些体系结构应用于文件共享(比如BitTorrent),对等方协助下载加速器(迅雷),因特网电话和视频会议。P2P最具特色的特性之一就是他们的自拓展性

2.1.2 进程通信

在操作系统中,进行通信实际上是以进程为单位的而不是程序。

在同一个端系统中,进程之间通过由端系统上的操作系统确定的进程间通信机制进行通信

在两个不同端系统上的进程,通过跨越计算机网络交换报文来通信的。

1.客户和服务器进程

网络应用程序由成对的进程组成,这些进程通过网络互相发送报文。我们通常将这两个进程中的一个表示为客户另外一个标识为服务器。一般规定发起通信的进程为客户,等待联系的进程为服务器。由此其实可以发现P2P体系结构中,同一个端系统既可以是客户,也可以是服务器

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

进程通过一个叫做套接字的软件接口向网络发送报文和从网络上接收报文。进程就好比是一座房子,而套接字则是房子上的门。房子里的东西想要移动到门外(发送消息)或者将房外的东西移进房内(接收消息),都需要经过房门(套接字)。

套接字是同一台主机中应用层和运输层之间的接口。由于该套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口。应用开发者可以控制套接字在应用层端的一切,但是对于运输层端几乎没有任何的控制权。仅仅可以选择运输层协议和少许几个参数。

3.进程选址

在一台主机上运行的进程为了向在另外一台主机上的进程发送分组,接收进程需要有一个地址。为了标识该接收进程,需要定义两种信息:①主机的地址;②在目标主机中指定接收进程的标识符

在因特网中,主机地址由其IP地址标识。而一个主机上的进程由端口号进行标识。由IP地址+端口号就可以标识需要接受报文的主机以及该主机上的进程。

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

包括因特网在内的很多网络都提供了不止一种运输层协议。当开发一个应用时,必须选择一种可用的运输层协议。(一般根据协议的特性和应用自身所需选择

运输层协议一般从四个方面队其进行分类:可靠数据传输、吞吐量、定时和安全性

1.可靠数据运输

分组在网络中可能出现丢失。协议必须做一些工作去保证分组不会丢失,如果一个协议提供了这样的确保数据交付的服务,就认定提供了可靠数据传输。当一个运输层协议不提供可靠数据传输时,也可以能被可容忍丢失的应用所接受(比如一些音视频应用是可以承受一定量的数据丢失的)

2.吞吐量

某些协议能够以某种特定的速率提供确保可用的吞吐量。这对于带宽敏感应用十分有用。

弹性应用能够根据当时可用带宽或多或少的利用可供使用的吞吐量。

3.定时

运输层协议也能够提供定时保证。 这种服务对于交互式实时应用程序很有吸引力(比如网络游戏和网络电话)。

4.安全性

2.1.4 因特网提供的运输服务

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

1.TCP服务

·面向连接的服务在应用层数据报文开始流动之前,TCP会让客户和服务器相互交换控制层信息。让他们为大量分组到来做好准备。在握手阶段后,一个TCP连接就创建成功了。

·可靠的数据传输服务 通信进程能够依靠TCP无差错地按照适当顺序地交付所有发送的数据。

TCP协议还拥有拥塞控制机制,能为因特网整体带来好处。这种机制在发送方和接收方之间的网络出现拥塞的时候,会抑制发送进程。

2.UDP服务

UDP是一种不提供不必要服务地轻量级运输协议,他仅提供最小服务。他是无连接的,所以两个进程通信前不会进行握手。UDP提供的是一种不可靠的数据传输服务,并不保证发送的报文到达接收端。

2.1.5应用层协议

应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。特别是定义了:

·交换的报文类型,例如响应报文和请求报文

·各种报文类型的语法

·字段的语义,也就是这些字段中的信息含义

·确定一个进程何时以及如何发送报文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值