• HTTP权威协议笔记-4.连接管理


    4.1 TCP连接

      TCP为HTTP提供了一条可靠的比特传输管道,按顺序正确的传输,步骤如下:

    1. 浏览器解析主机名。
    2. 查询这个主机名的IP地址(DNS)
    3. 获得端口号。
    4. 浏览器对服务器该端口号发起连接。
    5. 向服务器发送请求报文。
    6. 从服务器获取响应报文。
    7. 连接关闭。

    4.1.2 TCP流是分段的、由IP分组传送

      TCP的数据是通过名为IP分组的小数据块来发送的。Http发送一份报文时,会以流的形式建立一条TCP连接按序传输。

      TCP在接收到流之后会将数据流砍成被称作段的小数据块,封装在IP分组中,通过因特网传输。

      每个TCP段由IP分组承载,每个IP分组包括:

      • 一个IP分组首部(20字节)
      • 一个TCP段首部(20字节)
      • 一个TCP数据块(0个或多个字节)

      IP首部包含源和目的的IP地址、长度和其他一些标记

      TCP段首部包含:TCP端口、控制标记等

    4.1.3 用TCP套接字编程

    1.   s=socket(parameters)                   创建一个新的、未命名的套接字
    2.   bind(s,local IP:Port)                    向套接字赋一个本地IP及端口
    3.       connect(s,remote IP:port)         创建与服务器的连接
    4.       listen(s,...)                                    标识一个本地套接字,使其可以合理接收连接
    5.       s2=accep(s)                                  等待某人建立一条到达本地端口的连接
    6.       n=read(s,buffer,n)                     尝试从套接字缓存区读取n个字节
    7.       n=write(s,buffer,n)                    尝试从缓存区向套接字写入n个字节
    8.       close(s)                                        完全关闭TCP连接
    9.     shutdown(s,side)                         只关闭TCP连接的输入或输出端
    10.   getsocket(s,...)                            读取某个内部套接字配置选项的值
    11.   Setscoket(s,...)                            修改某个内部套接字配置选项的值

       例(盗图):

        

        注:先是请求连接,在连接成功才会发送报文。

    4.2 TCP性能

      TCP连接握手需要以下步骤:

    1. 请求新的TCP连接时客户端向服务端附送笑的TCP分组,这个分组设置了SYN标记,表明是一个连接请求。
    2. 服务器接受连接,返回一个TCP分组。
    3. 客户端向服务端发送一条确认信息,现在可以传送数据了。

    4.2.2 串行事物处理时延

      如果同时请求多个请求报文时,TCP的性能延时会叠加起来。以下几种可提高性能方法:

      1.并行连接

        通过多条TCP连接发起并发的HTTP请求。

      2.持久连接

        重用TCP连接,以消除连接及关闭延时。

      3.管道化连接

         通过共享的TCP连接发起并发HTTP的请求。

      4.复用连接

        交替发送请求和响应报文(试验阶段)

        

  • 相关阅读:
    《Vue.js 2.x实践指南》 已出版
    《H5+移动应用实战开发》已出版
    关于《ASP.NET MVC企业级实战》
    ASP.NET MVC企业级实战目录
    ASP.NET MVC4入门到精通系列目录汇总
    网站服务架构
    ASP.NET MVC搭建项目后台UI框架—1、后台主框架
    webpack介绍—上
    通过一个vue+elementUI的小实例来讲解一下它们是如何使用的
    不要为自己学历低找借口
  • 原文地址:https://www.cnblogs.com/Khan-Sadas/p/6149542.html
Copyright © 2020-2023  润新知