zoukankan      html  css  js  c++  java
  • TCP requires two packet transfers to set up the connection before it can send data

    wHTTP重用现存连接来减少TCP建立时延。

    HTTP The Definitive Guide

    4.2.3 TCP Connection Handshake Delays

    When you set up a new TCP connection, even before you send any data, the TCP software exchanges
    a series of IP packets to negotiate the terms of the connection (see Figure 4-8). These exchanges can
    significantly degrade HTTP performance if the connections are used for small data transfers.

    Here are the steps in the TCP connection handshake:
    1.

    To request a new TCP connection, the client sends a small TCP packet (usually 40-60 bytes)
    to the server. The packet has a special "SYN" flag set, which means it's a connection request.
    This is shown in Figure 4-8a.
    2.

    If the server accepts the connection, it computes some connection parameters and sends a
    TCP packet back to the client, with both the "SYN" and "ACK" flags set, indicating that the
    connection request is accepted (see Figure 4-8b).

    3.

    Finally, the client sends an acknowledgment back to the server, letting it know that the
    connection was established successfully (see Figure 4-8c). Modern TCP stacks let the client
    send data in this acknowledgment packet.
    The HTTP programmer never sees these packets—they are managed invisibly by the TCP/IP
    software. All the HTTP programmer sees is a delay when creating a new TCP connection.
    The SYN/SYN+ACK handshake (Figure 4-8a and b) creates a measurable delay when HTTP
    transactions do not exchange much data, as is commonly the case. The TCP connect ACK packet
    (Figure 4-8c) often is large enough to carry the entire HTTP request message,
    [4]
    and many HTTP
    server response messages fit into a single IP packet (e.g., when the response is a small HTML file of a
    decorative graphic, or a 304 Not Modified response to a browser cache request).
    [4]
    IP packets are usually a few hundred bytes for Internet traffic and around 1,500 bytes for local traffic.
    The end result is that small HTTP transactions may spend 50% or more of their time doing TCP setup.
    Later sections will discuss how HTTP allows reuse of existing connections to eliminate the impact of
    this TCP setup delay.

  • 相关阅读:
    Redis安装使用
    Freeswitch(四):使用java esl写一个FreeSwitchEventListener 服务
    Freeswitch(三):常用配置
    FreeSwitch(一):安装
    常用SQL之:统计重复数据的条数
    常用SQL之:递归查询
    常用SQL之:存储过程事务回滚
    常用SQL之:联表更新
    初学java——关于类、构造方法、变量、属性
    eclipse的一些实用快捷键
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6360310.html
Copyright © 2011-2022 走看看