zoukankan      html  css  js  c++  java
  • 从tcp的角度看,打开一个网页到底发生了什么

    使用wireshark进行抓包分析:新建表达式过滤器,选择协议,字段,匹配方式,应用就能筛选出想要的数据包。

    一个示例:(tcp.srcport == 1523 or tcp.dstport == 1523)。 其中1523是tcp连接的本机端口

    tcp基础知识:

    tcp在传输大量数据时,以mss为单位对数据分块传输。在3次握手时,由通信双方商议确定mss。

    Seq:本机维持的数据计数器;Ack:远程主机的数据计数器

     

    本机ip:192.168.43.106 目的ip:183.232.231.17

    主线:

    1. 输入网址,按下回车,浏览器通过3次握手建立tcp连接,协商mss字段。

    2. 利用tcp连接,传输http文本。由于网页的大小超过了mss,所以分多个段进行传输。

    从本机发http请求,到接收完整的http响应,中间接收了多个tcp segment,并且本机对于tcp段的确认是批量的,即收到了2个段,只需要确认1次。

    3. 传输完后,服务器主动关闭了连接。

    副线:

    需要注意的是,打开一个网页,浏览器会建立多个tcp连接。

    下图是其中一个请求图片的连接:

    本机发送rst包,直接断了连接。

  • 相关阅读:
    图片懒加载原理-实例二
    节流函数(throttle)的原理
    防抖动函数(debounce)的原理
    立即执行函数(immediate)的原理
    图片懒加载原理-实例三
    图片懒加载原理-实例四:首屏加载
    js运算符优先级
    java实现链栈
    java实现栈
    静态链表以及几种表的比较
  • 原文地址:https://www.cnblogs.com/allenwas3/p/8592773.html
Copyright © 2011-2022 走看看