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

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

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:这是一种在网络开发环境中十分常用的远程登陆方式,经常用于远程登陆服务器用以监视服务器状态等工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值