网络程序模型与应用层其他协议简介

Posted zkccnb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络程序模型与应用层其他协议简介相关的知识,希望对你有一定的参考价值。

网络程序模型与应用层其他协议简介

HTTP和DNS是应用层最常用的两个协议,但还有很多其他协议处在应用层,它们各负责一个业务领域向用户提供各种服务。

另外,我们考察基于应用层开发的网络程序时,应该首先确定它的网络程序模型:CS模型或P2P模型,然后再对其具体架构和技术细节进行研究!

一、 网络程序模型

现在的网络程序中,主要使用两大类模型:**CS模型(client-Server,客户端-服务器模型)**和 P2P(Peer to Peer,对等体模型)。其中最常用的还是前者,CS模型。

1. CS模型

CS模型是构成网络世界的主流,绝大部分网络程序使用它。用以从服务器获取资源,在客户端本地显示。比如几乎所有网站应用。

CS模型的逻辑非常简单,服务器先启动后,等待客户端的连接请求,并与之建立连接,开始通信,客户端获取服务器的资源。待通信结束后,一方主动请求断开,从而关闭这个会话连接。CS模型的显著特点是:**一个服务器应该可以同时为多个客户端提供服务。**为达到此效果,很多的技术被应用起来以优化性能。

可遗憾的是,不论采取何种策略,都是缓兵之计:随着与服务器建立连接的服务端数量越来越多,终究在物理上会占用大量的资源,性能将有所下降。当并发数量达到一定量后,这种模型在设计思想上的局限性就显现出来了。

图1 CS模型的设计结构

另外,还有一种说法叫BS模型(Browser-Server,浏览器服务器模型)。设计思想上说,这和CS模型没啥区别。重点是用浏览器来取代了之前的客户端。但这确实掀起了互联网应用程序的一股浪潮,浏览器这种客户端应用以非常棒的跨平台兼容性,和开发模式的规范性,短时间吸引了大量的开发者和使用者。现代的网络应用程序部署者显然更喜欢将自己的产品部署在浏览器上打开市场,等占有一定市场份额之后才会考虑开发APP形式的客户端应用。微信的“小程序”正是一个像“浏览器”一样的应用部署平台,相当于下一代“浏览器”。

2. P2P模型

P2P的应用尽管是一种更巧妙的设计理念,但现在P2P模型的应用似乎并没有CS模型那么广泛。但一些需要占用大量带宽下载资源的应用(比如迅雷、六维空间。。)、同时在线客户端数量极其惊人,但并不都需要请求同一份资源的应用(各种聊天工具等)首选仍是P2P模型。

既然CS模型在设计理念上有着不可填补的缺陷,那么P2P的设计正填补了这种不足。在P2P模型中,所有接入者都被视为“对等体”——既是客户端,又是服务器。每个对等体享受他人服务的同时,在背后也默默为他人提供了服务。把CS模型中的服务压力分流到所有对等体上,有效地分散了整个系统的压力。

图2 P2P模型设计机构

但上图这种P2P结构也会有一点问题:每一个对等体怎么再网络中寻找其他对等体呢?

想象在网络中有一些对等体上线了,那么这些对等体找到其他上线对等体的方式应该是通过广播泛洪,以找到其IP地址,并与其建立连接。但明显,这种泛洪极其浪费网络带宽,相当于再网络的海洋中闭眼摸索。。很不精确。

为了解决这个问题,有一种更合理的方式:CS+P2P模型。

图3 CS+P2P模型设计结构

所有对等体上线后先与发现服务器建立连接,这样,发现服务器就可以很轻松地告知各对等体其他对等体的IP甚至其持有资源的hash键。这样,再与对方hash键匹配的若干个对等体建立连接、传输资源,就节约了大量的带宽资源和时间。而这种模型也正是目前大部分下载工具或聊天软件使用的模型。

二、应用层其他协议简介

  • 简单邮件协议SMTP:(Simple Mail Transfer Protocol),建立在FTP协议之上的一种专门用于传送电子邮件的协议。
  • 文件传输协议FTP:(File Transfer Protocol),一种用于传输各种文件的协议。一般用于web服务器开发和传输大文件。
  • 简单网络管理协议SNMP:(Simple Network Management Protocol),用于管理与监视网络设备。
  • 远程登陆协议Telnet:这是一种在网络开发环境中十分常用的远程登陆方式,经常用于远程登陆服务器用以监视服务器状态等工作。

以上是关于网络程序模型与应用层其他协议简介的主要内容,如果未能解决你的问题,请参考以下文章

RPC简介与hdfs读过程与写过程简介

OSI 参考模型简介

网络通信与IO:网络模型与协议

ssh服务简介及应用与服务的进程的类型

Java基础学习 网络编程简介

专题一:网络协议简介