应用层协议原理(一)

半腔热情 提交于 2019-12-04 21:19:33

应用层协议原理(一)

分层体系结构的优点可以很好地在这里体现,应用层应用程序的开发不需要关心网络核心设备上运行的要求,因为网络核心设备只能对网络层及以下起作用,够不到应用层。

1. 网络应用程序体系结构

不同于网络体系结构

1.对于研发者来说,网络体系结构是固定的,其提供的服务集合能为之所用。

2.网络应用程序体系结构就是研发者设计的,规定如何在各种端系统上组织该应用程序。

两种主流应用体系结构

客户-服务器体系结构

  • 服务器具有固定周知的地址,且总时打开。

  • 客户之间不直接通信,客户只通过服务器的IP地址与服务器通信。

  • 解决一服务器对多用户的问题:配备大量的数据中心,创建强大的虚拟服务器。

  • 例如:Web,FTP,telnet,电子邮件等等。

P2P体系结构

  • 不通过专门的服务器,是对等方和对等方之间的通信

  • 应用程序对位于数据中心的专用服务器又很小的依赖,甚至没有。

  • 例如许多流量密集型应用:共享文件(Bit Torrent、对等方协助下载加速器(迅雷)等。

当然还有混合的,比如许多即时讯息应用

  • 服务器跟踪用户的IP地址--->L客户-服务器体系结构

  • 用户与用户之间的报文在主机之间直接发送--->P2P体系结构

2. 进程通信

进行通信实际上就是进程(process),而不是程序。一个进程可以被认为是运行在端系统上的一个程序

  • 多个进程在同一端系统上时,直接使用进程间通信机制进行通信,且通信规则由操作系统来决定。

  • 当进程在不同端系统上,相互之间进行通信,需要怎么办呢?就是发送端生成报文并向网络中发送,接收端接受报文并可能通过回送报文进行响应。

客户和服务器进程

网络应用程序由好多好多进程对组成,进程对中两个重要的角色,客户(client)服务器(server)

  • Web应用程序中,web服务器->服务器进程,浏览器是客户进程。

  • P2P文件共享系统中,上传文件的为服务器,下载文件的是客户。

注:尽管P2P中某个进程既是客户又是服务器,但在任何一个给定进程对之中,他的身份总时确定的

在一对 进程之间的通信会话场景中,发起通信的进程被标识为客户,在绘画开始时等待联系的是服务器。

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

首先要先清楚一个很重要的概念:套接字(socket)。

套接字是应用层和运输层之间的接口。

由于套接字是建立网络应用程序的可编程接口,所以套接字也被称为应用程序编程接口(Application Programming Interface)。

注意:应用程序开发者可以控制套接字在应用层端的一切,但是对运输层端几乎没有控制权。对运输层端的控制仅限于

1.选择传输协议。

2.设定几个运输层参数(最大缓存和最大报文长度等)。

一旦选择了一个运输层协议,应用程序就建立在由该协议提供的运输层服务之上。

进程寻址

从一台主机将分组发到另外一台主机,需要标识接收进程的地址,不然怎么找得到哦。如何定义呢?

1.目的地主机地址(由IP地址(IP address)唯一标识)。

2.指定运行在接收主机上的接收进程,具体地说,是接收套接字。(通过端口号(port number)标识)

大概就像去图书馆找书,图书馆的地址就是所谓的主机地址,是自己学校的图书馆而不是其他学校的,找的书也有属于自己的书单号,图书馆中那么多的书,以不同的编号区分,这就类似与端口号。一台主机上运行的多个进程,就好比一个图书馆里的多本书,一样一样的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!