網頁圖片加載慢的求解指南

網頁/圖片加載慢的求解指南

一、前言與問題描述

今天剛換上華為的HUAWEI AX3 Pro New,連上WIFI后測速雖然比平時慢,但是也不算太離譜,如下圖所示:

在這里插入圖片描述

估計讀者們有也和作者一樣,還沒意識到事情的嚴重性😁。

直到晚上刷六級真題時使用有道查詞,竟然延遲好高:幾乎是輸入詞匯點確定后需要1秒才能顯示結果,偶爾還會顯示網絡錯誤,這我真受不了。

然后上QQ空間刷動態時,發現一張圖片要轉9-10秒才能加載出來,嚴重影響我的用機體驗,勢必要解決這個問題。

二、解決方案

主要辦法是關閉IPv6網絡,關閉方法主要有兩種:

2.1 方法1:從路由器上關閉IPv6

讀者需要簡單的網絡管理知識,找到路由器管理的IP地址,比如我的是:

192.168.1.3	

在瀏覽器中輸入該地址就會進入路由器管理頁的登錄界面,以我的為例,為如下界面:

在這里插入圖片描述

然后登錄路由器即可,如果你不知道管理員密碼,一般在路由器的背面有寫上,如果沒寫(比如我的就沒寫),那么一般是與你的WiFi密碼一致。再不濟,讀者可以上網查,查詢提示語句是:

XX路由器默認管理員密碼是什么?

登錄進去后,讀者自行尋找IPv6的按鈕(不同路由器管理頁不一樣,俺就不演示了),例如我找到時是這樣的:

讀者找到類似按鈕后,將其關閉即可。

2.2 方法2:在終端上關閉IPv6(僅適用于電腦)

按住Win+R快捷鍵,打開“運行”窗口,輸入control并回車即可打開控制面板。如下圖所示:
在這里插入圖片描述

然后在控制面版中單擊網絡和Internet”接著單擊網絡和共享中心打開如下頁面:

然后在中間右邊點擊你的網絡,比如我將點擊WLAN(HUAWEI AX3 Pro New),然后看到如下頁面

單擊屬性,打開如下頁面:

取消勾選Internet 協議版本 6(TCP/IPv6)確定后即可完成操作。

搞完之后我再次嘗試發現加載什么的都不卡了,然后我測了下網速如下圖所示:

三、附錄

以下內容需要讀者具備一定計算機網絡的相關知識才能看懂,望讀者周知

3.1 為什么開了IPv6會慢?
3.1.0 DNS解析問題

如果您啟用了 IPV6,則 DNS 查找速度比 IPV4 慢 2 到 3 倍。這就是為什么您的計算機似乎“無法連接”網站。當您發起與任何站點的連接時,它所做的第一件事就是在 DNS 中查找 IP 地址。

由于多種原因,IPV6 上的 DNS 查找速度很慢。 首先,DNS 目前是串行處理的,而不是并行處理的。始終首先處理 IPV4 查找,然后處理 IPV6,因此至少需要兩倍的時間。 其次,由于 IPV6 查找頻率較低,因此它們不會經常緩存在 DNS 服務器上,從而導致進一步的延遲。 這就是為什么啟用 IPV6 時網站看起來需要更長的時間才能開始加載,因為它們確實需要更長的時間才能開始加載!

另外,請記住,大多數網頁會從許多不同的 URL 加載內容,并且每次瀏覽器必須查找圖像、Flash 對象或頁面上其他任何內容的地址時,頁面速度都會加快。 您無法在操作系統中執行任何操作來加快速度。它影響所有操作系統,包括 Windows、Mac 和 Linux 最好暫時禁用 IPV6,除非您對此有特定要求(幾乎沒有人這樣做)

3.1.1 關于 PMTU 黑洞

目前國內確實存在支持 IPv6 的服務器、CDN 節點不夠多,IPv6 國際帶寬比 IPv4 帶寬小的問題,但也不至于會打開國內網站都卡。通常情況下遇到這個問題說明你到目標服務器的鏈路上存在 PMTU 黑洞。

MTU (Maximum transmission unit) 是一條鏈路上可以通過的三層數據包的最大尺寸(包含 IP 包頭)。以太網上默認的 MTU 是 1500 字節,但是你和目標服務器之間的路徑上可能存在小于 MTU 1500 的鏈路。這條路徑上最小的 MTU 值就是整條路徑的 PMTU 值。路由器在轉發包時,超過 MTU 大小的包會被分片( Fragmentation ),也就是一個大包會被分切為多個不超過 MTU 的小包進行傳輸,傳輸效率會下降。

終端設備在發包時,也可以設置 DF ( Don’t Fragment )標記來告訴路由器不要分片。這時中間路由器會丟掉超過 MTU 的包,回復一條 ICMP Fragmentation Needed 消息。發送者收到這個包后,下次就會發小一點的包,這個過程叫做 PMTU Discovery 。現實中可以看到 HTTPS ( TLS )的流量大都是帶 DF 標記的。

然而,互聯網上有大量的中間設備為了所謂的“安全”或者沒有正確配置,不回應 ICMP Fragmentation Needed 包,這使得訪問某些網站時如果某個包的大小超過了 PMTU,會被無聲地丟棄,直到 TCP 協議發現超時丟包進行重傳,這非常緩慢。遇到這種情況,我們可以說你和目標服務器的路徑上存在 PMTU 黑洞。

此外,IPv6 不支持分片,換句話說可以理解為 IPv6 下所有的包都是帶 DF 標記的。中間路由器在遇到包尺寸大于 MTU 的情況時,應該回應 ICMPv6 Packet Too Big 消息。同樣的,由于種種原因,某些中間設備可能會直接丟包而不回應 ICMPv6 Packet Too Big 消息,直到 TCP 協議發現超時丟包進行重傳。。。

3.1.2 為什么 IPv4 沒有這個問題

其實 IPv4 也有這個問題,我不只一次見網友說自己搭的軟路由訪問某些網站非常慢,而換回硬路由就正常。這是因為多數家用路由器默認對 IPv4 下的 TCP 開啟了 MSS (maximum segment size) Clamping (使用 OpenWRT 軟路由的朋友們可以在防火墻設置中找到 MSS Clamping 開關)。MSS Clamping 是針對 PMTU 黑洞的 Workaround,簡單來說就是 TCP 握手時有個 MSS 字段決定單個 TCP 包的最大尺寸。路由器可以通過嗅探 TCP 握手包,把 MSS 值改小,使最終的三層 IP 包的尺寸( MSS+TCP 頭大小+IP 頭大小)不超過某個特定的值。

3.1.3 總結

現在國內 ISP 一般都是通過 PPPoE 虛擬撥號建立 WAN 口連接的。Ethernet 的默認 MTU 是 1500,但是 PPPoE 隧道有 8 個 bytes 的開銷,所以 PPPoE 虛連接的 MTU 就是 1500-8=1492,減掉 IPv4 包頭( 20 字節)和 TCP 包頭( 20 字節),可以得知 IPv4 下需要把 MSS 設為 1452 以下。

IPv6 的包頭是 40 字節,所以 IPv6 下需要把 MSS 設為 1432 以下。

這時問題來了,目前很多光貓、家用路由器對 IPv6 的優化很差,不支持對 IPv6 下的 TCP 包進行 MSS Clamping,這就導致訪問 IPv6 網站時,若路徑中存在 PMTU 黑洞,則打開很慢。

四、參考文獻

[1] windows 7 - IPv6 feature in Network Adaptor is Slowing Internet - Super User

[2] 開啟 IPv6 后網速變得很慢?可能是 PMTU 黑洞的問題 - V2EX

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17331.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17331.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17331.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

08Django項目--用戶管理系統--查(前后端)

對應視頻鏈接點擊直達 TOC 一些朋友加我Q反饋,希望有每個階段的完整項目代碼,那從今天開始,我會上傳完整的項目代碼。 用戶管理,簡而言之就是用戶的增刪改查。 08項目點擊下載,可直接運行(含數據庫&…

PHP框架 Laravel

現在因為公司需求,需要新開一個Laravel框架的項目,毫無疑問,我又被借調過去了,最近老是被借調,有點陰郁,不過反觀來看,這也是好事,又可以復習和鞏固一下自己的知識點,接下…

大數據開發面試題【Spark篇】

115、Spark的任務執行流程 driver和executor,結構式一主多從模式, driver:spark的驅動節點,用于執行spark任務中的main方法,負責實際代碼的執行工作;主要負責:將代碼邏輯轉換為任務、在executo…

編譯qt5.15.2(mac/windows)的mysql驅動(附帶編譯好的文件)

文章目錄 0 背景1 編譯過程2 福利 0 背景 因為需要連接到mysql數據庫,所以需要連mysql驅動。 1 編譯過程 1,打開文件/Users/mac/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/sqldrivers.pro,注釋掉QMAKE_USE mysql; 如…

國產【Jetson Xavier NX】——從裸機到深度學習開發環境配置

1、設置系統從固態硬盤啟動 英偉達官方NX出廠是直接將SD卡(64/128G)燒錄系統作為系統盤使用,國產NX出廠是將系統配置在8G內存中,在后續使用中需配置大量開發包,故將系統設置為從固態硬盤啟動。 參考鏈接 https://blo…

vue3中使用svg圖標

安裝依賴 npm i vite-plugin-svg-icons -D vite.config.ts中添加配置 主要為指定svg圖標存放路徑以及命名方式 import { defineConfig } from vite import vue from vitejs/plugin-vue import { createSvgIconsPlugin } from vite-plugin-svg-icons import path from path;…

總結力學_3

參考: 陳曦<<力學講義>>http://ithatron.phys.tsinghua.edu.cn/downloads/mechanics.pdf 10 非慣性系 10.1 勻加速平動非慣性系 10.2 定軸勻速轉動非慣性系 可以更好刻劃總結力學_2的有心力運動、質點系的運動的工具! 11 線性系統 11.1 線性系統、11.2 受迫…

【深入理解Python中的裝飾器】

文章目錄 前言裝飾器的基本概念帶參數的裝飾器類作為裝飾器結論 前言 裝飾器是Python中一個非常強大且靈活的特性&#xff0c;它允許程序員在不修改原函數代碼的情況下&#xff0c;增加或修改函數的行為。裝飾器本質上是一個接受函數作為參數并返回一個新函數的函數。本文將深…

點擊登錄按鈕先檢測輸入框的規則檢測(vue組合式)

<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用戶名" prop"name"><el-input v-model"…

【Linux-LCD 驅動】

Linux-LCD 驅動 ■ Framebuffer 簡稱 fb■ LCD 驅動程序編寫■ 1、LCD 屏幕 IO 配置■ 2、LCD 屏幕參數節點信息修改■ 3、LCD 屏幕背光節點信息■ 4、使能 Linux logo 顯示 ■ 設置 LCD 作為終端控制臺■ 1、設置 uboot 中的 bootargs■ 2、修改/etc/inittab 文件 ■ LCD 背光…

ROS的noetic版本

設置 sources.list 執行下面命令&#xff0c;設置從清華源下載 ROS 軟件包。 sudo sh -c echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list設置密鑰 sudo apt-key adv --keyse…

鴻蒙知識點總結

1 Stage模型應用程序包結構 在開發態&#xff0c;一個應用包含一個或者多個Module&#xff0c;可以在DevEco Studio工程中創建一個或者多個Module。Module是HarmonyOS應用/服務的基本功能單元&#xff0c;包含了源代碼、資源文件、第三方庫及應用/服務配置文件&#xff0c;每一…

快速上手 HuggingFace

HuggingFace HuggingFace 是類似于 GitHub 的社區&#xff0c;它主要提供各種的模型的使用&#xff0c;和 github 不同的是&#xff0c;HuggingFace 同時提供了一套框架&#xff0c;進行模型推理&#xff0c;模型訓練、和模型庫文件的管理等等。本文將介紹&#xff0c;如何快速…

【MySQL精通之路】全文搜索(9)-全文解析器-MeCab

主博客&#xff1a; 【MySQL精通之路】全文搜索功能-CSDN博客 目錄 1.介紹 2.安裝MeCab Parser插件 3.創建使用MeCab分析器的FULLTEXT索引 4.MeCab Parser空間處理 5.MeCab分析程序停止字處理 6.MeCab Parser術語搜索 7.MeCab分析程序通配符搜索 8.MeCab語法分析器短語…

echarts學習篇

一、使用echarts 1.引入 Apache ECharts <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <!-- 引入剛剛下載的 ECharts 文件 --> <script src"echarts.js"></script> </head> </html> 2.…

深度神經網絡——什么是自動編碼器?

自動編碼器 自動編碼器&#xff08;Autoencoders&#xff09;是無監督學習領域中一種重要的神經網絡架構&#xff0c;它們主要用于數據壓縮和特征學習。 自動編碼器的定義&#xff1a; 自動編碼器是一種無監督機器學習算法&#xff0c;它通過反向傳播進行訓練&#xff0c;目標…

【夏之以寒-Kafka專欄 02】什么情況下會發生 QueueFullException?

作者名稱&#xff1a;夏之以寒 作者簡介&#xff1a;專注于Java和大數據領域&#xff0c;致力于探索技術的邊界&#xff0c;分享前沿的實踐和洞見 文章專欄&#xff1a;夏之以寒-kafka專欄 專欄介紹&#xff1a;本專欄旨在以淺顯易懂的方式介紹Kafka的基本概念、核心組件和使用…

2023山東ICPC省賽Problem B.建筑公司(拓撲排序)

2023 山東 I C P C 省賽 P r o b l e m B . 建筑公司 \Huge{2023山東ICPC省賽Problem B.建筑公司} 2023山東ICPC省賽ProblemB.建筑公司 文章目錄 題意思路標程 比賽鏈接&#xff1a;Dashboard - The 13th Shandong ICPC Provincial Collegiate Programming Contest - Codeforce…

OWASP top10--SQL注入(三、手工注入)

目錄 access數據庫 手工注入過程&#xff1a; 猜解數據庫表名 猜解數據庫表名里面的字段 猜解字段內容 SQL注入中的高級查詢 mssql數據庫 手工注入過程&#xff1a; sa權限 ?編輯dbowner權限 public權限 mysql數據庫 1、對服務器文件進行讀寫操作(前提條件) 需要知…

文刻創作ai工具官網免費工具

文刻創作ai工具官網免費工具 Docshttps://iimenvrieak.feishu.cn/docx/O0UedptjbonN4UxyEy7cPlZknYc 文刻是一種可以幫助用戶進行創作的AI工具。 它使用自然語言處理和機器學習技術&#xff0c;可以生成文章、故事、詩歌等文本內容。 用戶可以通過輸入一些關鍵詞或指定一定的…