服务器模型

149 阅读1分钟

C/S模型

TCP/IP协议中的所有的机器都是对等的,但一般数据等资源都是集中存放的,所以网络程序很大一部分采用的就是C/S模型,客户端都通过访问服务器来获取所需的资源。

图片.png

工作流程

  1. 服务端启动后创建一个监听socket,并调用bind函数绑定到服务器端口上

  2. 服务端调用listen函数等待客户连接

  3. 服务器稳定运行后,客户端可以调用connect函数向服务器发起连接

  4. 服务端监听到连接请求后,调用accept函数接受连接,并分配一个新的单元(线程,进程)为新的连接服务。

  5. linux一搬是fork一个进程,该进程对连接进行操作,把结果返回客户端。

图片.png

优缺点

  • 适用于资源比较集中的场合,并且实现简单
  • 服务器是通信中心,当访问量大时,可能所有客户端的响应都会变慢。

P2P模型

P2P模型更符合网络通信的实际情况,所有主机地位对等,不会出现以某台机器为核心的状况。但也可以说P2P是C/S模型的扩展,每台主机既是客户端,又是服务器。

优缺点

  • 主机在消耗服务时也给别人提供服务,这样资源能够充分,自由地共享
  • 用户间传输的请求过多时,网络的负载将加重
  • 还有就是主机之间很难相互发现,一般带有一个专门的发现服务器。

图片.png