基于混合TCP-UDP的HTTP协议实现方法
② 如果响应的数据很大,无法放进一个UDP数据包中,服务器则要求客户端使用TCP重试。这可以通过添加一个HTTP的头部字段来解决如 TCPRETR。
在客户端,将会出现以下三种情况:
◇ 客户端从服务器接收到响应。如果响应中包含了所需的HTTP响应,客户端将对数据进行处理。如果服务器要求客户端重试,客户端将使用TCP作为传输层重试。
◇ 如果服务器没有处理通过UDP传输的HTTP包,客户端就会收到ICMP错误消息(目的地址无法到达/协议无法到达)。此时客户端将会使用TCP重试。
◇ 如果定时器超时,客户端应使用TCP重试。
图4给出了在定时器超时情况下,客户端和服务器之间数据包的交换。这种超时机制提供了可靠性,以及与未使用混合TCP-UDP方法的服务器的兼容性。javascript:window.open(this.src);" style="cursor:pointer;"/>
图5示意了服务器要求客户端使用TCP重发请求时,客户端和服务器之间的数据包交换。
3 结 语
混合TCP-UDP方法改善了参与HTTP传输的三个方面:客户端、服务器和网络。
◇ 对于客户端而言,可以避免由于TCP而引入的三向握手的时间,从而减少了浏览的延迟时间。
◇ 对于服务器而言,由于所需的TCP的链接数量减少,从而降低了由于建立、维护、撤销TCP链接所带来的服务器的负荷。
◇ 对于网络而言,由于TCP控制数据包的减少从而减少了网络的拥塞。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论