读书人

Traffic Server Net分系统分析

发布时间: 2012-08-16 12:02:15 作者: rapoo

Traffic Server Net子系统分析

Traffic Server设计的思想是将一个大系统划分为若干个小的子系统,每个子系统负责专门的任务或应用。比如,Event子系统负责提供任务调度服务,Net子系统负责提供网络服务。每个子系统抽象为一个Processor,如图1所示。这种高内聚低耦合的设计原则使系统具有更好的重用性,维护性和扩展性。例如,如果hostDBProcessor需要进行DNS解析,可以直接调用dnsProcessor的相关函数,而无需关注DNS解析的细节;dnsProcessor也只需封装DNS请求和解析DNS应答,和网络相关的功能可以调用netProcessor来完成。Event子系统已经在 “Traffic Server多线程异步事件处理模型”中说明过了,下面简单介绍一下Net子系统。
Traffic Server Net分系统分析

图1 Traffic Server子系统划分

Net子系统是一个封装网络API的模块,提供接收和新建TCP和UDP连接以及读写这些连接的接口。Net子系统可以高效地管理大量的连接。使用 Net子系统的另一个好处是SM(状态机)不用关心不同操作系统网络API的差异。SM使用Net子系统的全局对象netProcessor来创建新的连接或接收传入的连接。SM创建连接时会获得一个用来处理底层的连接的NetVConnection。使用NetConnection可以获得连接的属性,读写数据等。

netProcessor是Net子系统的核心,提供通用的网络API,如accept、connect等。它通过一个状态机来完成网络I/O。

netProcessor提供的函数:

读书人网 >开源软件

热点推荐