logo资料库

TCP发送缓冲区优化方法的分析与实现.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
第卷 第期洛阳工业高等专科学校学报 年 月 12 4 200212 Journal of Luoyang Technology College Dec. 2002 Vol.12 No.4 TCP 发送缓冲区优化方法的分析与实现 ( 洛阳工业高等专科学校计算机系,河南洛阳 许庆功,张永胜 471003) 分析了发送缓冲区的结构,并提出一个动态分配发送缓冲区的方法,保证连接以最大有效 TCPTCPTCP 摘要: 带宽发送数据。 关键词: 中图分类号:文献标识码:文章编号 TP393 HTTPTCP 服务器;发送缓冲区;带宽 A :1008-8814(2002)04-0006-01 HTTPTCPHTTP 服务器的发送缓冲区是服务器的一个重 须大于这个值。当可用空间小于这个值时,如果一个服务 要资源,高效地使用发送缓冲区是提高服务性能 的一个有效方法[1]。随着的发展,在其上运行的 TCPHTTP Internet 进程试图向发送缓冲区添加新的数据时,这个进程将被挂 起。当接收到新的时,这个被挂起的进程将被唤醒。 ACK HTTPHTTP 服务器也以极快的速率增加。每个服务器每时每 当可用空间小于时,进程将处 (sb_hiwat sb_cc)sb_lowat 刻要处理成百上千的请求,每个请求都要在服务 HTTPHTTP 于等待状态;否则一个数据块会被拷入新分配的缓冲区 器和客户机之间建立一条或多条连接。服务器的 性能主要依赖于能否有效地使用服务器的有效资源。 TCPHTTP HTTP 1 TCP 发送缓冲区结构分析 socketsockbuf 一个结构包括两个子结构,即发送缓冲区 (so_snd)mbuf(so_rcv)mbuf 和接收缓冲区 。 每个结构包含一个指向结构的链表的指 sockbufmbuf mbuf128 针,一个结构由个字节组成。这些字节中的某些字 中,这个缓冲区将会被添加到发送缓冲区队列。当流控TCP 进程允许发送一个新的数据段时,发送函数会将这个数 TCP 据块组装成一个带有正确的头的数据段,然后调用 发 TCPIP 送函数将此数据段送入网络接口的发送队列。函数在sosend 将所有收到的数据送入到发送队列后正确返回。 2 TCP 发送缓冲区分配的局部最优化 TCPTCP 发送缓冲区分配最优化的目标是找到使连接工 节用于控制数据如指向链表中下一个的指针,指向数 mbuf 作于最大速率之下的最小缓冲区。发送缓冲区分配的局 TCP 据缓冲区的指针及其它有效数据等等。其余的字节可用于 部最优化考虑的是针对单个连接的性能 TCP [2]。 存贮数据。每个不包含数据的都有一个指针指向一个 mbuf 最优化发送缓冲区大小是局部最优化的主要内容,最优 大的数据缓冲区,这个缓冲区称为簇、扩展缓冲区或映射 化的发送缓冲区大小是保证连接利用最大有效带宽发送 TCP 页,是一个数据存贮单元,其大小为 、 或。图 1KB2KB4KB 1 的最小发送缓冲区尺寸。寻找最优化的发送缓冲区尺寸的 描述了一个包含字节的发送缓冲区,这些数据被存 贮在一个大小为字节的簇和一个中。在发送缓 2148TCP 2048mbufTCP 困难在于,在连接存在的整个期间,甚至网络条件不变的 情况下,它仍处于动态变化之中。发送缓冲区最优化尺寸 冲区中数据是以流的方式存贮的,没有数据包的边界。 直接受以下因素影响: 当一个确认包到达时,包含在或一个簇中 (ACK)mbuf 的所有数据都被确认,这个及其簇将从链表中删除, mbuf 并将其附加到释放缓冲区表中,在发送缓冲区中的数据的 发送方的 cwnd ; 连接的往返时间 (RTT) ; (1) (2) (3) 服务器的读取时间。服务器的读取时间 (ReadTime) 量由以下三个数据成员来规范: sockbuf 是从文件中读取一块数据并将其传送到发送缓冲区所需的 s o c k b u f socket so_end m b u f m_len=2048 m_data 2048 字 节 图发送缓冲区分析 1 TCP m b u f 访问、读取、传输时间。 m_len=100 m_data 100 字 节 由于在每个内,新的数据块只从硬盘中读取 ReadTime 一次,因此发送缓冲区中应保持足够多的待发送段,这样 才能保证连接使用最大带宽。在期间,可发 TCPReadTime 送的待发送段的最大数取决于待确认段数。 假设,在时刻 ReadTime < RTT t启动了新的文件访问过 程,如果在此时刻有n个待确认段且拥塞控制模式为慢启动 方式,那么直到时刻t +ReadTimeACK ,收到的不会超过 n个 ∶在整个发送缓冲区中尚未被确认的字节数。 (1) sb_cc (2) sb_hiwat (3) sb_lowat :缓冲区可容纳的数据最大数。 :缓冲区中可用空间的下 (sb_hiwat sb_cc) 限。发送缓冲区在接收更多待发送数据时,其可用空间必 。每收到一个将会发送个待发送段,在文件访问完成 ACK 2 之前,发送的数据段数不会超过2n。因此为了避免不必要的 延迟,在时刻t,发送缓冲区不仅要包含n个待确认段,还要 (13 ) 下转第 页
第 期4 陈守雄等万用表中的有效值测量电路及应用 13 RD1D2 为限流电阻, 、为双向限幅二极管,超过压保护作 加一级分流器。 用,可选高速开关二极管。 IN4148 4 注意事项 应用该芯片来制作仪表时,应注意以下几个问题: RMS ()当被测交流电压超过时,必须在该芯片前 1200mV 加一级分压器,以将被测电压衰减到以内。在采用 200mV 该芯片制作仪表时,可在该芯片的输出端接级、 RMS1.0 200mV 直流毫伏表,或接位半数字电压表()。 3DVM ()设计高精度有效值时,还应考虑被测电压的 3RMS 波峰因素Kp(波峰因数Kp是被测信号的峰值与真有效值之 比)的影响,应仔细选择合适的。常见的正弦波、言 CAV 波、三角波和锯齿波的Kp≤,此时可取 >2 于窄脉冲或晶闸管的波形,由于Kp ,因此应适当增大 CAV Kp 所>2 的容量,以延长取平均值的时间,从而减少由 μ 。 但 对 2CAV33 F 引起的附加误差。 ()若要测量交流电流的真有效值,应在该芯片前面 2 收稿日期:2002-03-20 The Appliance and the Virtual Value Measuring Circuit in Multimeter CHEN Shou-xiong (Luoyang Technology College, Luoyang 471003, China) Abstract: This article introduces the working principle and using points of the virtual value measuring circuit .It offers an applying circuit composed the core circuit. Key words: Virtual value; Circuit; Appliance 包含 2n个待发送段。同理在[t+RTT,t (6 ) 上接第 页 待发送数据的最大数应为4n,因此,在时刻t启 动 的 文 件 访 问过程应该读取4n个数据段。 +2RTT] , 3 全局最优化 如果服务器提供给所有连接使用的发送 HTTPTCPTCP 缓冲区总数为N,那么系统就不可能为每个连接分配根 TCP 据局部最优化算法计算出的缓冲区数目。这样就存在一个 全局最优化问题。目前,服务器使用的较为原始的方 HTTP 法是让所有连接平等地使用发送缓冲区,即每个 连 TCPTCP 接的是相同的,这对不同速率接入的用户是不公平 sh_hiwat 的,而且是低效的。例如:以接入的用户和以 6MbpsADSL 56Kbps Modem 接入的用户,其所需的缓冲区数显然是不同 则再次入队。 (2) 优先级排队法:等待队列以优先级方法进行排队, 每个连接的优先级按以下方法计算: p = min(P,sb_hiwat/k) 其中:k是该连接已经取得的缓冲区数,P是持有缓冲区 的所有连接的最在优先级。 当建立一个新的连接时,它的优先级被赋于最大值,即 P ,+1 因为新的连接最有可能发送数据,这样就可以提高整个 系统的吞吐量。每当有缓冲区被释放,系统就重新计算各个连 接的优先级,并根据优先级给每个队列分配缓冲区。 结 语4 对于大型网站的HTTP服务器而言,如何提高HTTP服 的,如果给它们分配相同的缓冲区数,则用户则不可 ADSL 务器效率,从而提高网站的服务质量,是一个比较重要的 能工作于其最大带宽,而用户所分配的缓冲区远远 Modem 超出了其所需要的缓冲区数。 问题。本文所提出的方法使连接到HTTP服务器的连接以其 最大带宽发送数据,这在一定程度上可以提高HTTP的 服 务 TCP 发送缓冲区全局最优化是在局部最优化基础上, 效率。当然,关于如何根据不同的用户分配不同的带宽, 采用一种较好的缓冲区分配策略,将可用缓冲区分配给需 还需要进一步研究。 要缓冲区的连接,一般可采用以下两种策略: (1) 轮转法:这种方法与操作系统中进程调度算法中所 使用的轮转法类似。缓冲区按先进先出的方法管理。 (FIFO) 当有一个缓冲区被释放,而等待队列不空时,就将队头连 接出队,并将缓冲区分配给它。如果它还需要其它缓冲区 参 考 文 献 ∶ [1] V.Jacobson,R.T.Braden, and D.A.Borman. TCP Extensions for High Performance[M]. Technical Report RFC 1323, 1992.5. [2] S.Folyd. TCP and Explicit Congestion Notification[J].ACM Computer Comm. Rev. , 1998, 28:(4). 收稿日期:2002-05-10 The Analysis and Implement of the Optimizing Method for TCP Send Buffer XU Qing-gong, ZHANG Yong-sheng (Dep. of Computer. Luoyang Technology college, Luoyang 471003, China) Abstract: This paper analyzes the structure of TCP sending buffer , then proposes a dynamic approach to allocate TCP sending buffer in order to guarantee TCP connection working under the maximum available bandwidth. Key words: HTTP server; TCP send buffer; Bandwidth
分享到:
收藏