zoukankan      html  css  js  c++  java
  • 计算机网络-自定向下积累(2)-应用层-非持续连接和持续连接

      在很多应用中,服务器端和客户端长时间通信,其中客户发出一系列请求并且服务器对每个请求进行相应。

      那么每个请求/相应对是经一个单独的TCP连接发送,还是所有的请求/相应都用相同TCP连接发送呢?

      前一种方法,称为非持续连接;后一种方法,称为持续连接。

      HTTP既能够  使用非持续连接,也能够 使用持续连接。尽管HTTP在其默认的方式下使用持续连接,HTTP客户和服务器也能配置

    成使用非持续连接。下面简单的讨论一下这两种连接:

      1.采用非持续连接的HTTP

      HTTP客户接收响应报文后,TCP连接关闭。每个TCP连接只传输一个请求报文和一个响应报文,这样产生的TCP连接就会很多。

      实际上,浏览器可以打开5~10个并行的TCP连接,而每条连接处理一个请求响应事务,很明显,这样能够节省时间。

      往返时间RTT:指的是一个短分组从客户到服务器然后再返回客户所花费的时间。RTT包括分组传播时延、分组在中间路由器和交换机上的排队时延以及分组处理时延。粗略来说,请求并接收一个HTML文件所需的时间就是两个RTT加上服务器传输HTML文件的时间,如下图。

                 

      

      2.采用持续连接的HTTP

      很明显第1种方法,客户和服务器都要分配TCP的缓冲区和保持TCP变量,web服务器的负担会大;而且每个对象会遭受两倍的RTT的交付时延,即一个RTT用于创建TCP,另一个RTT用于请求和接收一个对象。

      采用持续连接时,服务器发送响应后保持该TCP连接打开。在相同的客户与服务器之间的后续请求和响应报文能够通过相同的TCP连接进行传送。那么,如果一条连接经过一定的时间间隔(一个可配置的超时间隔)仍未被使用,HTTP服务器就关闭该连接。HTTP的默认模式是使用带流水线的持续连接。

      

      

  • 相关阅读:
    HTML/CSS的学习过程一览
    C++ MFC实现基于RFID读写器的上位机软件
    Java实现UDP之Echo客户端和服务端
    Java实现TCP之Echo客户端和服务端
    Java实现Socket之WhoisClient
    Java实现Socket之TimeClient
    openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理
    openWRT自学计划安排
    openWRT自学---对官方的开发指导文档的解读和理解 记录2:如何控制内核模块的编译
    openWRT自学---对官方的开发指导文档的解读和理解 记录1:编译一个package
  • 原文地址:https://www.cnblogs.com/xiaobai-2017/p/9336757.html
Copyright © 2011-2022 走看看