首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入浅出理解网络应用程序体系结构

网络应用程序它主要包含两种体系结构:一种是客户端服务器体结构,另一种是p to p体系结构,下面分别进行详细讲述并比较他们的异同。

客户端服务器体系结构就是有一个服务器,它提供服务,其他人都通过对服务器进行请求来获取资源数据。举个例子,上课答疑的时候,老师往那一坐,下面有很多学生。如果哪个学生有问题,他会首先举手。举手之后老师看到了。老师说你有什么问题请讲,然后学生就会说我有什么什么问题,把自己的问题描述给老师,老师听到学生的问题之后再给学生答复。如果有其他学生有问题的话,也是这样,先举手,老师问他有什么问题,学生讲问题,老师回答问题,这就是客户端服务器模型。它有个特点就是服务器等待客户端的连接请求,就像刚才的类比中,老师等待学生举手提问问题。当服务器收到连接请求的时候。服务器会向客户端发生一个确认报文,类比于刚才就是老师问学生你有什么问题请讲。然后学生再说自己有什么问题相当于对老师说的“你有什么问题”进行确认,同时把自己的问题发给老师。老师进行一定的处理,也就说老师要首先想这道问题怎么解答。类比于计算机网络就是,服务器首先需要进行一定的处理,得到一定的结果,然后服务器把结果传送给客户端,类比于刚才的例子就是老师把答案传给学生。当然。客户服务器模型有一个跟刚才例子不太一样的地方,就是服务器可以同时接受多个客户端的请求,而老师一次只能接受一个学生的问题,也就是说a学生在提问问题的时候,b学生当然也能提问问题,但是这样的话就会打扰老师的思考,老师也不可能一下想好几个问题,所以老师一次只能处理一个问题。但是客户服务器模型在a进行连接的时候,b也可以进行连接。A给服务器发消息的时候,b也可以给服务器发消息。服务器给a发消息的时候,也可以给b发消息。所以说服务器可以同时连接多个客户端。比如说。我们给百度要答案的时候。百度会给我们返回相应的答案,但是我在给百度要答案的同时,还有成千上万个人也在给百度要答案,所以说我们都是同时进行的。服务器就是这样也可以同时返回给我们答案。

以上是客户端服务器体系结构。那么P2P体系结构是什么样的呢,p的意思是端点,也就是说端点对端点(终端对终端,终端就是我们使用的计算机),在这种模型里面没有一个老师,也就是说没有一个中心的服务器。他有什么好处呢?就是消除了服务器成本(加快了数据传输),刚才说了客户端可以多个同时连接到服务器,但是当数量达到很多的时候,服务器就反应不过来了。如果采用P2P结构的话,比如说我需要一个资源,正好另一个终端有,类比刚才的例子就是我有一个问题不会,正好另一个学生他会,那么我们之间就可以建立一个连接。比如说小王学习非常好,我呢就直接问小王,我说小王这道题你会吗?然后小王说什么问题请讲,然后我把问题说给小王,小王给我解答,这样呢,我就和小王之间单独建立了联系,如果再有一个同学b,他也有一个不会的问题,小李呢学习也非常好,他就会问小李,小李再给他解答,所以说呢,这样就不需要老师的参与了,不会的同学直接去问会的同学。那么我怎么知道哪些同学会我的问题呢,所以说我就需要问谁会这道题。这个问的过程有好几种实现方式,具体先不阐述,结合刚才的客户端服务器模型,我阐述一种需要服务器参与的方式。这时我把我的问题告诉服务器。同时呢,学习好的同学,他会把自己会的东西也告诉服务器,这样呢服务器就会进行一个匹配。放在计算机网络中,就是我需要某个资源,我会向服务器请求,如果某个人呢,他有这个资源,他会告诉服务器说我有这个资源。这样的话,服务器里面就会维护两张表,一张是哪些同学会哪些东西,另一张是哪些同学问了哪些问题请求了哪些资源。这样服务器就会把他们进行匹配。这种情况下当然也需要服务器,但是显着降低了服务器的压力,因为服务器只起到一个联系人的作用,在刚才的类比中就是,我提问“老师”,老师说请讲,我说我要问这个问题,老师说小明会这个问题,你去问他吧,然后剩下的就是我跟小明的事了,这样呢,老师只起到一个中转的作用,其他什么都没干,因此占用他时间比较少,如果再有一个同学b,他问另一个问题,这个时候老师就能腾出来时间给B说。也就是说在原来的时候,老师讲一道题可能需要三分钟,现在呢老师只需要三秒钟的时间说谁会这个问题,你去找他,显著降低了服务器(老师)的压力(时间)。

所以这就是两种网络应用程序的体系结构的差异,一种是客户端服务器模型,一种是p to p模型,总结一下就是,客户端服务器是有一个中心服务器,客户端都去对他请求资源,服务器给每个客户端返回资源,p to p就是两个终端之间直接建立联系进行传输数据,不需要服务器的参与,当然也可以需要服务器的参与,比如说我刚才的类比中,老师起到中转作用就是需要服务器参与,还有不需要服务器参与,直接就是点对点的。这个以后再进行讲解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191105A0MEOC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券