基于混合 TCP-UDP 的 HTTP 协议实现方法
摘要:目前,用于 Web 页面访问应用都是基于 HTTP 应用协议,而在下层则使用传输控制
协议(TCP)[1]作为传输协议;但 TCP 并不适合于短会话,即只有少量数据交换情况。因
为建立、撤销 TCP 链接开销即使对于短会话也是必需。 在用于 PDA(个人数字助理)中
浏览器设计中,根据无线网络延迟大、带宽窄特点提出了一种混合 TCP-UDP 传输协议方
法来解决这一问题。本方法使用 UDP[2]作为短会话时传输层协议,而对于有大量数据需要
传输时则使用 TCP 作为传输层协议。这样,对于短会话可以避免 TCP 额外开销,而对于长
会话又可以得到由 TCP 提供可靠传输和拥塞控制。
关键词:TCP UDP HTTP PDA
引 言
超文本传输协议(HTTP)是目前通过 Internet 进行信息交换最主要方式。HTTP 协议
是建立在请求/响应(request/response)模型上。PCbfans.cn 提示请看下图:首先由客户建立一
条与服务器 TCP 链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本
以及相关 MIME(Multipurpose Internet Mail Extensions)样式消息。服务器响应一个状态行,
包含消息协议版本、一个成功和失败码以及相关 MIME 式样消息(包含服务器信息、资源实
体信息和可能资源内容)。图 1 给出了 HTTP 协议实现一个简单模型。HTTP/1.0[3]为每一次
HTTP 请求/响应建立一条新 TCP 链接,因此一个包含 HTML 内容和图片页面将需要建立多
次短期 TCP 链接。一次 TCP 链接建立将需要 3 次握手。另外,为了获得适当传输速度,则
需要 TCP 花费额外回路链接时间(RTT)。每一次链接建立需要这种经常性开销,而其并
不带有实际有用数据,只是保证链接可靠性,因此 HTTP/1.1[4]提出了可持续链接实现方法。
HTTP/1.1 将只建立一次 TCP 链接而重复地使用它传输一系列请求/响应消息,因此减少了
链接建立次数和经常性链接开销。
可持续链接减少了每次 TCP 链接建立时间,但是一个空闲 TCP 链接将需要一个 Socket 和
相应存储缓冲区。一个 Socket 缓冲区最小长度必须大于一个 TCP 包最大长度,即 64 KB,
而且很多实现方法在链接建立时将预分配一些缓冲区。可用 Socket 数量是有限,很多基于
BSD 操作系统对于能够同时打开链接数都有一个缺省最大值。PCbfans.cn 提示请看下图:
无线掌上设备 PDA 应用(如浏览器)[5]特点表现在:① 因为页面是针对掌上设备制
作,一般在 1 K~2 K 字节,比较小;② 目前无线通信网络带宽很窄,GSM 数据信道带宽只
有 9.6 K。当前 Web 页面访问大多通过 HTTP 协议,并使用 TCP 作为下层传输控制协议。
但不幸是,TCP 并不适合短会话应用情况,不同于现在采用使用单一 TCP 传输协议进行数
据传输方式。本文提出了采用动态选择传输层协议(TCP、UDP)方法来改善取回页面延
迟、网络拥塞以及服务器负荷。
这种混合 TCP-UDP 方法结合两个方面优点:首先,对于需要比较少数据传输情况,
它将使用 UDP 作为传输层协议,从而避免了 TCP 链接多次握手开销;另外,对于需要较
多数据传输情况,它将使用可靠带有重排序和拥塞控制 TCP 协议作为传输层协议。混合
TCP-UDP 实现方法只需要对应用层改动,而操作系统核心代码不用任何更改。仅采用
评论1