Linux —— 网络服务模型

独立的守护进程工做模式

原理

  • 在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户链接。链接成功后服务器和客户端经过端口进行数据通讯。
  • 守护进程的工做就是打开一个端口,而且等待(Listen)进入链接。
  • 若是客户端发起一个链接请求,守护进程就建立(Fork)一个子进程响应这个链接,而主进程继续监听其余的服务请求。
  • 运行独立的守护进程工做方式称做:stand-alone。它是Unix传统的C/S模式的访问模式。
  • 在负载很大服务器上,预先建立子服务器,能够提升客户的服务速度。

基于 xinetd 的工做模式

原理

  • xinetd 可以同时监听多个指定的端口,在接受用户请求时,它可以根据用户请求的端口不一样,启动不一样的网络服务进程来处理这些用户请求。
  • 能够把xinetd看作一个管理启动服务的管理服务器,它决定把一个客户请求交给那个程序处理,而后启动相应的守护进程。
  • 运行单个xinetd就能够同时监听全部服务端口,这样就下降了系统开销,保护系统资源。
  • 可是对于访问量大、常常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会致使系统性能降低。

特色

  • 支持对TCP、UDP、RPC服务的管理
  • 能够实施基于时间段的访问控制
  • 功能完备的log功能,能够记录链接成功、链接失败的行为
  • 可以有效地防止拒绝服务(DoS)的攻击
  • 可以限制同时运行的同一类型的服务器的数目
  • 可以限制log文件大小
  • 可以将某个服务绑定在特定的系统接口上,从而实现只能容许私有网络访问某项服务。
  • 可以实现做为其它系统的代理。