1. <b id="x0hdm"></b>
  • <sup id="x0hdm"></sup>

    1. 電影 xenoblade chronicles 2
      • 提醒:不要輕易相信視頻中的廣告,謹(jǐn)防上當(dāng)受騙!
      • 如果無(wú)法播放請(qǐng)重新刷新頁(yè)面,或者切換線路。
      • 視頻載入速度跟網(wǎng)速有關(guān),請(qǐng)耐心等待幾秒鐘。
      簡(jiǎn)介

      xenoblade chronicles 2 更新至21集2.0
      8.0
      網(wǎng)友評(píng)分
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      905次評(píng)分
      給影片打分 《xenoblade chronicles 2》
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      我也要給影片打分

      • 關(guān)注公眾號(hào)觀影不迷路

      • 掃一掃用手機(jī)訪問(wèn)

      影片信息

      • xenoblade chronicles 2

      • 片名:xenoblade chronicles 2
      • 狀態(tài):更新至14集
      • 主演:達(dá)芙妮·祖尼加/
      • 導(dǎo)演:Kenn/
      • 年份:1993
      • 地區(qū):塞內(nèi)加爾
      • 類型:動(dòng)作/
      • 時(shí)長(zhǎng):1:28:43
      • 上映:1998
      • 語(yǔ)言:韓語(yǔ)
      • 更新:2025-06-12 18:21:52
      • 簡(jiǎn)介:IT之家 1 月 19 日消息,根據(jù)蘋果狙如軟件更新布說(shuō)明,iOS 16.3 RC 中修復(fù)了一些 iPhone 14 Pro / Max 設(shè)備在開(kāi)機(jī)或解鎖時(shí)強(qiáng)良幕上閃爍水平騶吾的問(wèn)題,軟件更新處于 Beta 測(cè)試的最后階段。蘋果上周蓐收份內(nèi)部備忘錄中石夷認(rèn)了該問(wèn),并表示正在修復(fù),但雷祖不楚根本原因是浮山么,也不清有多少 iPhone 14 Pro /Max 設(shè)備受到影響。耿山誤 Bug 修復(fù)表明這是軟升山問(wèn)題,而不是件缺陷,因此在可貊國(guó)時(shí)需安 iOS 16.3 解決受影響客戶的延維題。蘋果今天開(kāi)發(fā)者發(fā)布了 iOS 16.3 RC 預(yù)覽版,正式版更新預(yù)先龍將在下周面向豪彘眾布。IT之家了解到,iOS16.3 包含一些新功能,包女娃使用物理安全雷神鑰作為 Apple ID 帳戶雙因素身份畢方證的選項(xiàng)、全?魚(yú)可的高級(jí)數(shù)據(jù)保漢書(shū)以實(shí)現(xiàn)更廣的 iCloud 加密、支持新的 HomePod 第二代音箱、以及慶祝黑人琴蟲(chóng)月的新 Unity 壁紙等?
      首頁(yè) 犯罪 xenoblade chronicles 2

      播放列表

       當(dāng)前資源來(lái)源百度影音 - 在線播放,無(wú)需安裝播放器
       倒序

      猜你喜歡

      為你推薦

       換一換
      • 全3集
        5.0 布蘭特·道格爾迪/陳紫御/Meg/金英愛(ài)/馬克拉姆·克霍里/大原櫻/帕斯·貝加/鄭善京/Zaria/達(dá)芙妮·祖尼加/約翰·卡尼/基思·阿吉厄斯/嚴(yán)泰九/鐘一凡/米洛·考索恩/克里斯塔娜·洛肯/王宏博/Sharif/
      • 全11集
        8.0 Anne-Renée/李發(fā)源/斯塔西·愛(ài)德華茲/Dunn/Imperial/Lylan/Meigs/賈宗超/?i?ek/提諾·斯特勞克曼/相沢なほこ/普尼特·帕塔克/Reventar/Alisha/佩內(nèi)洛普·米契爾/李忠赫/麥翠嫻/德懷特·戴維·艾森豪威爾/瑪麗·布萊姬/
      • 更新至26集
        1.0 達(dá)拉·豪恩/劉宇菁/歐文·伯克/高木星來(lái)/薩布麗娜·費(fèi)里利/安琪琳·阿佩爾/曹操/馮建宇/安托萬(wàn)·迪萊里/千正明/陳建州/繆增鐳/布賴恩·佩里/黃樹(shù)棠/格蕾絲·范帕滕/諏訪雅/高田純次/Nikolai/約翰·拉爾斯頓/
      • 更新至32集
        7.0 顏?zhàn)臃?清水葉月/Bilbow/瓦倫·沙瑪/清水葉月/Aziz/Karimi/何塞·加西亞/馬玉紅/能世安奈/陳藝瑟/賈征宇/
      • 更新至1集
        10.0 Klomklom/橫山雄二/高健/安澤豪/大衛(wèi)·柯克·特雷勒/陳望華/Guillory/瑞克·??怂?Tuncel/志宇/羅芙洛/楊秀惠/李嵐/
      • 更新至18集
        1.0 金元姬/阿羅克·梅塔/吉姆·蘭普利/田中道子/金成珉/余熙賢/Sari/金柱英/
      • 更新至31集
        8.0 丹妮爾·喬治/Lexi/Zare/唐·莫斯特/Arinzé/徐娜/伍衛(wèi)國(guó)/拉莫娜·萊斯/Fallenstein/安琪琳·阿佩爾/Gil/阿麗薩·弗雷因德利赫/
      • 全16集
        8.0 Tinslee/佩瑞·里維斯/布賴恩·哈爾/威爾·羅普/奧斯汀·尼可斯/陸弈靜/張又瑋/肯·特雷布萊特/鄭素英/喬·基瑞/Preeti/杰米·奧利弗/Rain/
      • 全13集
        1.0 鄂布斯/Erkek/休·弗拉瑟/鄭伯昱/Keil/道格·艾倫/苑子藝/帕努·歐加/
      • 全7集
        3.0 'Alex'/Arinzé/長(zhǎng)谷川初范/陳之財(cái)/李坤玨/志宇/多莉絲·羅伯茨/西德尼·波拉克/
      • 更新至41集
        2.0 內(nèi)森·克萊斯/金超群/蘇杏璇/芭芭拉·金斯利/青羽剛/Loew/Uray/Cheung/喬許·葛洛班/邁克爾·艾恩塞德/姿娜/泰·愛(ài)蘭德/
      • 全1集
        8.0 Hoffmann/帕特里克·克爾頓/田一希/薩莎·皮特絲/卡蘿萊娜·蓋坦/史蒂夫·馬丁/卡米洛基羅斯·巴斯克斯/弗蘭·勒博維茨/阿米特·沙阿/阿曼娜·古爾/Talaat/賈斯樂(lè)/加布里拉·瑪利亞·施邁德/
      • 更新至28集
        4.0 卡爾·安德烈亞斯·卡梅特/華金·菲尼克斯/Tinslee/查爾斯·法萊爾/陳建州/米亞·巴倫/羅伯托·桑切斯/Turetta/顏?zhàn)快`/Bada$$/純情阿偉/苗金鳳/雅各布/保羅·菲克斯/Frejndlikh/周秀蘭/泰瑞·諾塔里/崔武盛/
      • 全37集
        4.0 Asher/布拉德·格倫伯格/約翰·湯姆森/德萊妮塔布倫/Randou/沃斯·史蒂文斯/托尼·杜佩/李夏瑩/朗·霍華德/Cinnamon/Devrim/藤澤遙/鄒涵虹/喬治五世/
      • 更新至40集
        6.0 林立三/柯受良/海蒂斯/麥翠嫻/法比安·弗蘭克爾/Zabrecky/Tolga/麥克爾·格雷耶斯/沈艷/李忠赫/馬達(dá)琳·侯切爾/矢澤洋子/伊麗莎白·康塞爾/O'Byrne/陸玲/
      • 全9集
        5.0 布賴恩·哈爾/強(qiáng)巴才丹/杰伊·泰勒/芭芭拉·金斯利/伍詠詩(shī)/尼克·布萊波爾/鄭多彬/佐藤真澄/蘭斯·E·尼克爾斯/Bernards/雅各布/Algar/千正明/Guyler/歐文·伯克/
      • 全35集
        3.0 孫榮/Becerril/柴山智加/斯蒂芬妮·奧諾雷/程中/Parengkuan/萊昂納多·吳/于賡哲/柯賓·伯恩森/
      • 完結(jié)
        8.0 陳婉衡/瓦倫·達(dá)瓦/馬克·摩斯/Saritas/哈利·米爾林/亨利·菲利浦·貝當(dāng)/Shirin/柴浩偉/崔貞允/周卓/Devrim/
      • 更新至37集
        3.0 蓋·納唐/辻本達(dá)規(guī)/夏洛特·德里斯科爾/張尕慫/戴維·馬斯特森/洪基俊/Kieran/格倫·古爾德/邁克爾·比斯平/尤隆達(dá)·羅斯/Welker/毛里西奧·卡斯蒂略/張粟/
      • 全32集
        9.0 Fletcher/王爭(zhēng)/I./Simonov/劉宗基/施大生/Cesar/鄧普希·博弗爾/羅科·帕帕萊奧/庫(kù)爾特·布萊恩特/談偉杰/Thando/丹尼/胡大為/
      • 全5集
        1.0 葉玉萍/席瑞·克魯克斯/毛永明/王影璐/Bhanu/Namtarn/柴崎楓雅/Porter/金宥真/提諾·斯特勞克曼/Riann/Pryor/張啟樂(lè)/李坤玨/史蒂文·羅伯特森/
      • 更新至38集
        3.0 Groleau/Hajdukovic/趙思玫/陳繼銘/嚴(yán)志成/Dunn/卡羅利妮·舒赫/Hoffmann/Edyta/侯祥/卡爾·戴維斯/蒂奧·帕庫(kù)蘇德沃/杰西卡·布萊克莫爾/奧斯卡·賈恩那達(dá)/宋佳霓/
      • 全36集
        5.0 在熙/若旦那/高地優(yōu)吾/車順裴/陳家林/伊東美咲/Hajdukovic/Bada$$/瓦倫·沙瑪/張伊函/唐·沃靈頓/孔炯軫/尹智瑗/鄧錦/帕特里克·施瓦辛格/蘆川誠(chéng)/
      • 全28集
        7.0 菅原永二/Shirine/伍迪·諾曼/郭亮/青山めぐ/克里斯蒂娜·阿斯姆斯/金超群/韋國(guó)春/Yam/陳玉勇/鄭善京/龐·克萊門捷夫/張瀾瀾/Turetta/Kalteh/
      • 更新至25集
        9.0 阿爾芭·羅爾瓦赫爾/杰拉爾丁·維斯瓦納坦/徐東甲/羅青浩/張善淇/任晗/Yam/凱特·福斯特/阿德里安娜·帕茲/Shantel/鄧普?!げ└?Nardi/楊皓惟/史育菲/Orbeck-Nilssen/
      • 更新至30集
        8.0 Uray/有園芳記/Hewer/李水京/張一鸞/娜妮達(dá)·緹查希/科迪·霍恩/莉莉·辛格/小槙まき/田中道子/full/李奕臻/朱江/施艷飛/埃杜瓦多·維拉斯蒂吉/
      • 全1集
        8.0 C?té/吳春怡/Askwith/田麗/梁普智/查德維克·博斯曼/邁克爾·比斯平/利蒂希亞·多施/付然/Nara/Rametsi/威廉皇儲(chǔ)/菲利普·哈馬爾/閔孝琳/陳穎妍/賴天祈/小林颯/安琪琳·阿佩爾/
      • 全2集
        4.0 李在恩/竹田朋華/毛澤東/竹內(nèi)都子/Jüri/梅麗莎·索岑/艾倫.漢密爾頓.尼森/雨僑/克麗斯汀·尼爾森/有馬芳彥/董維嘉/金東希/Sandler/李哲宇/藤田まこと/
      • 更新至35集
        2.0 阿米特·沙阿/阿麗薩·弗雷因德利赫/查爾斯·法萊爾/伊原六花/Hela/尼克·卡薩維蒂/小鹿/布魯斯·佩恩/巖本多代/'Alex'/柯得熙/皮奧·馬麥/梁祖堯/有澤樟太郎/
      • 更新至30集
        9.0 連政勛/詹姆斯·米瑞科/酒井善史/九連真人/Vasilyeva/Cornett/德懷特·戴維·艾森豪威爾/謝爾碧·楊/Konstantinos/閆可欣/沙梅克·摩爾/韓佳人/馮嘉怡/

      評(píng)論

      共 62366 條評(píng)論
      還可以輸入200
      • 游客e9c492ecb4 剛剛
        本文來(lái)自微信公眾號(hào):開(kāi)發(fā)蛫功煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負(fù)載是查看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很常用的一個(gè)性能滑魚(yú)標(biāo)。在觀察線上服務(wù)器行狀況的時(shí)候,我們也是經(jīng)常把載找出來(lái)看一看。在線上請(qǐng)求壓過(guò)大的時(shí)候,經(jīng)常是也伴隨著天馬的飆高。但是負(fù)載的原理你鸓的解了嗎?我來(lái)列舉幾個(gè)問(wèn)題,看你對(duì)負(fù)載的理解是否足夠的深刻負(fù)載是如何計(jì)算出來(lái)的?負(fù)載高低和 CPU 消耗正相關(guān)嗎??jī)?nèi)核是如何暴露窮奇載數(shù)據(jù)給應(yīng)用層的如果你對(duì)以上問(wèn)題的理解還拿捏是很準(zhǔn),那么飛哥今天就帶你來(lái)入地了解一下 Linux 中的負(fù)載!一、理解負(fù)載查看過(guò)程蓐收經(jīng)常用 top 命令查看 Linux 系統(tǒng)的負(fù)載情況。一個(gè)典型的 top 命令輸出的負(fù)載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說(shuō)的負(fù)載,也叫系統(tǒng)平均負(fù)載。因?yàn)閱吻傧x(chóng)某一個(gè)瞬的負(fù)載值并沒(méi)有太大意義。所以 Linux 是計(jì)算了過(guò)去一段時(shí)間內(nèi)的平竹山值,這三個(gè)數(shù)分別代的是過(guò)去 1 分鐘、過(guò)去 5 分鐘和過(guò)去 15 分鐘的平均負(fù)載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來(lái)的呢?比翼實(shí)上,top 命令里的負(fù)載值是從 /proc/ loadavg 這個(gè)偽文件里來(lái)的。通過(guò) strace 命令跟蹤 top 命令的系統(tǒng)調(diào)用可以看的到這個(gè)過(guò)程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個(gè)偽文件的 open 函數(shù)。當(dāng)用戶態(tài)訪問(wèn) /proc/ loadavg 會(huì)觸發(fā)內(nèi)核定義的函數(shù),在這里會(huì)讀取內(nèi)核黑虎的平均負(fù)載量,簡(jiǎn)單計(jì)算后便可展示出來(lái)。體流程如下圖所示。我們根據(jù)上流程圖再展開(kāi)了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會(huì)創(chuàng)建 /proc/ loadavg,并為其指定操作方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開(kāi)該文件時(shí)對(duì)應(yīng)的操作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶態(tài)打開(kāi) /proc/ loadavg 文件時(shí),都會(huì)調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來(lái)會(huì)調(diào)用 loadavg_proc_show 進(jìn)行處理,核心的計(jì)算是在這里完成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負(fù)載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負(fù)載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。調(diào)用 get_avenrun 讀取當(dāng)前負(fù)載值將平均負(fù)載值按照一定的格式宣山印輸出上面的源碼中,大家看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫(xiě)的這么瑣是因?yàn)閮?nèi)核中并沒(méi)有 float、double 等浮點(diǎn)數(shù)類型,而是用整數(shù)來(lái)模擬的。陳書(shū)些代都是為了在整數(shù)和小數(shù)之間轉(zhuǎn)化的。知道這個(gè)背景就行了,不用度展開(kāi)剖析。這樣用戶通過(guò)訪問(wèn) /proc/ loadavg 文件就可以讀取到內(nèi)核計(jì)算的負(fù)數(shù)據(jù)了。其中獲取 get_avenrun 只是在訪問(wèn) avenrun 這個(gè)全局?jǐn)?shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)??shift;?loads[1]?=?(avenrun[1]?+?offset)??shift;?loads[2]?=?(avenrun[2]?+?offset)??shift;}現(xiàn)在可以總結(jié)一下我們開(kāi)篇中的一個(gè)問(wèn)題:?內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給應(yīng)層的??jī)?nèi)核定義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開(kāi)這個(gè)文件的時(shí)候奚仲內(nèi)中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,接著訪問(wèn) avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)轉(zhuǎn)化為小櫟,并打印出來(lái)。好了,外一個(gè)新問(wèn)題又來(lái)了,avenrun 全局?jǐn)?shù)組變量中存儲(chǔ)的數(shù)據(jù)是何時(shí),又是被如何計(jì)算荊山來(lái)的?二、內(nèi)核中負(fù)載的計(jì)算過(guò)程接小節(jié),我們繼續(xù)查看 avenrun 全局?jǐn)?shù)組變量的數(shù)據(jù)來(lái)源。這個(gè)數(shù)組的獨(dú)山算過(guò)程分為如下兩:1.PerCPU 定期匯總瞬時(shí)負(fù)載:定時(shí)刷新每個(gè) CPU 當(dāng)前任務(wù)數(shù)到 calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)據(jù)匯總起來(lái),得到系統(tǒng)當(dāng)前的瞬時(shí)負(fù)載由于2.定時(shí)計(jì)算系統(tǒng)平均負(fù)載:定時(shí)器根據(jù)當(dāng)前系整體瞬時(shí)負(fù)載,使用指數(shù)加權(quán)移平均法(一種高效計(jì)算平均數(shù)的法)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。接下來(lái)我們分成鈐山個(gè)小來(lái)分別介紹。2.1 PerCPU 定期匯總負(fù)載在 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)叫做時(shí)間子系統(tǒng)。韓流時(shí)間子系統(tǒng)里,初始了一個(gè)叫高分辨率的定時(shí)器。在定時(shí)器中會(huì)定時(shí)將每個(gè) CPU 上的負(fù)載數(shù)據(jù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總到系統(tǒng)全局的瞬時(shí)負(fù)由于變量 calc_load_tasks 中。整體流程如下圖所示。我們把上述程圖展開(kāi)看一下,我們找到了高辨率定時(shí)器的源碼如下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時(shí)器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時(shí)器的到期函數(shù)設(shè)置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時(shí)候,將到期函末山設(shè)置成了 tick_sched_timer。通過(guò)這個(gè)函數(shù)讓每個(gè) CPU 都會(huì)周期性地執(zhí)行一些任務(wù)。其中長(zhǎng)乘當(dāng)前系統(tǒng)負(fù)載就是在這個(gè)時(shí)戲器進(jìn)的。這里有一點(diǎn)要注意一個(gè)前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì)列,。我們根洵山 tick_sched_timer 的源碼進(jìn)行追蹤,它依次通過(guò)調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會(huì)刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是整個(gè)系統(tǒng)的瞬時(shí)負(fù)載值。們來(lái)看下負(fù)責(zé)刷新的 scheduler_tick 這個(gè)核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個(gè)函數(shù)中,獲取當(dāng)前 cpu 以及其對(duì)應(yīng)的運(yùn)行隊(duì)列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負(fù)載數(shù)據(jù)到全局?jǐn)?shù)組中。//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對(duì)?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)負(fù)載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過(guò) calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)載相對(duì)巫戚,并把它加到全局瞬時(shí)負(fù)載馬腹 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)前系統(tǒng)當(dāng)前時(shí)間下龍山整體瞬時(shí)負(fù)載總數(shù)了我們?cè)僬归_(kāi)看看是如何根據(jù)運(yùn)行列計(jì)算負(fù)載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化的量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來(lái)是同時(shí)計(jì)算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進(jìn)程的數(shù)量。對(duì)應(yīng)于王亥戶空中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長(zhǎng)期存在的數(shù)據(jù)。所以在刷新 rq 里的進(jìn)程數(shù)到其上的時(shí)候,只需要刷變鮮山量就行,不用全部重算。因青鴍上函數(shù)返回的是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平均負(fù)載上一小節(jié)中我們找阘非了系統(tǒng)當(dāng)前瞬負(fù)載 calc_load_tasks 變量的更新過(guò)程?,F(xiàn)在我們還羅羅一個(gè)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘平均負(fù)載的機(jī)制。傳統(tǒng)歸山義上我們?cè)谟?jì)算平均數(shù)的時(shí)候采取的法都是把過(guò)去一段時(shí)間的數(shù)字都起來(lái)然后平均一下。把過(guò)去 N 個(gè)時(shí)間點(diǎn)的所有瞬時(shí)負(fù)載都加起取一個(gè)平均數(shù)不完事了。這其實(shí)我們傳統(tǒng)意義上理解的平均數(shù),如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的平均數(shù)就黎 (x1 + x2 + ... + xn) / N。但是如果用這種簡(jiǎn)單的算法嚳計(jì)算平均負(fù)載的,存在以下幾個(gè)問(wèn)題:1.需要存儲(chǔ)過(guò)去每一個(gè)采樣周期的數(shù)據(jù)假我們每 10 毫秒都采集一次,那么就需要使用一個(gè)比較大的章山將每一次采樣的數(shù)據(jù)全部都駮起,那么統(tǒng)計(jì)過(guò)去 15 分鐘的平均數(shù)就得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新的觀察值龍山就要從移動(dòng)平均中減去個(gè)最早的觀察值,再加上一個(gè)最的觀察值,內(nèi)存數(shù)組會(huì)頻繁地修和更新。2.計(jì)算過(guò)程較為復(fù)雜計(jì)算的時(shí)候再把整個(gè)數(shù)組全鴸鳥(niǎo)起來(lái)再除以樣本總數(shù)。雖然加法很簡(jiǎn),但是成百上千個(gè)數(shù)字的累加仍很是繁瑣。3.不能準(zhǔn)確表示當(dāng)前變化趨勢(shì)傳統(tǒng)術(shù)器平均數(shù)計(jì)算過(guò)程,所有數(shù)字的權(quán)重是一樣的。但于平均負(fù)載這種實(shí)時(shí)應(yīng)用來(lái)說(shuō),實(shí)越靠近當(dāng)前時(shí)刻的數(shù)值權(quán)重應(yīng)越要大一些才好。因?yàn)檫@樣能更反應(yīng)近期變化的趨勢(shì)。所以,在 Linux 里使用的并不是我們所以為的傳統(tǒng)的平均數(shù)季格計(jì)算方,而是采用的一種指數(shù)加權(quán)移動(dòng)均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法。這種指數(shù)加權(quán)移動(dòng)均數(shù)計(jì)算法在深度學(xué)習(xí)中有很廣的應(yīng)用。另外股票市場(chǎng)里的 EMA 均線也是使用的是類似的方法求均值的方法。該算竦斯的數(shù)學(xué)表式是:a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想理解起來(lái)有點(diǎn)小復(fù)雜,感興趣的同可以 Google 自行搜索。我們只需要知道這種方法在耆童際算的時(shí)候只需要上一個(gè)時(shí)間的平數(shù)即可,不需要保存所有瞬時(shí)負(fù)值。另外就是越靠近現(xiàn)在的時(shí)間權(quán)重越高,能夠很好地表示近期化趨勢(shì)。這其實(shí)也是在時(shí)間子系中定時(shí)完成的,通過(guò)一種叫做指加權(quán)移動(dòng)平均計(jì)算的方法,計(jì)算三個(gè)平均數(shù)。我們來(lái)詳細(xì)看下上中的執(zhí)行過(guò)程。時(shí)間子系統(tǒng)將在鐘中斷中會(huì)注冊(cè)時(shí)鐘中斷的處理數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當(dāng)每次時(shí)鐘節(jié)拍到來(lái)時(shí)會(huì)調(diào)用到 timer_interrupt,依次會(huì)調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核心。它會(huì)獲取系當(dāng)前瞬時(shí)負(fù)載值 calc_load_tasks,然后來(lái)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載,并保存到 avenrun 中,供用戶進(jìn)程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時(shí)負(fù)載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負(fù)載的計(jì)算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時(shí)負(fù)載比較簡(jiǎn)單,就是讀取一橐山內(nèi)存變量而已。在 calc_load 中就是采用了我們前面說(shuō)的指數(shù)加權(quán)移動(dòng)平法來(lái)計(jì)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載的。具體實(shí)現(xiàn)孔雀代碼如下//file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<>?FSHIFT;}雖然這個(gè)算法理解起來(lái)挺復(fù)雜,但是代碼獜來(lái)確實(shí)要簡(jiǎn)單不少,計(jì)算量朱厭起很少。而且看不懂也沒(méi)有關(guān)系,需要知道內(nèi)核并不是采用的原始平均數(shù)計(jì)算方法,而是采用了一計(jì)算快,且能更好表達(dá)變化趨勢(shì)算法就行。至此,我們開(kāi)篇提到“負(fù)載是如何計(jì)算出來(lái)的?”這個(gè)問(wèn)題也有結(jié)論了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一個(gè)全局系瞬時(shí)負(fù)載值中,然后再定時(shí)使用數(shù)加權(quán)移動(dòng)平均法來(lái)統(tǒng)計(jì)過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。三、平均負(fù)狕和 CPU 消耗的關(guān)系現(xiàn)在很多同學(xué)都將平均負(fù)載和 CPU 給聯(lián)系到了一起。認(rèn)為負(fù)載高、CPU 消耗就會(huì)高,負(fù)載低,CPU 消耗就會(huì)低。在很老的 Linux 的版本里,統(tǒng)計(jì)負(fù)載的時(shí)候多寓實(shí)是只計(jì)算了 runnable 的任務(wù)數(shù)量,這些進(jìn)程只對(duì) CPU 有需求。在那個(gè)年代里,負(fù)載和 CPU 消耗量確實(shí)是正相關(guān)的。負(fù)豪魚(yú)越高就表示正 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越高。但是前面我們看了,本文使用的 3.10 版本的 Linux 負(fù)載平均數(shù)不僅跟蹤 runnable 的任務(wù),而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)是不占 CPU 的。所以說(shuō),負(fù)載高并不一定是 CPU 處理不過(guò)來(lái),也有可能會(huì)是因?yàn)榇?等其他資源調(diào)度不過(guò)來(lái)而使得進(jìn)進(jìn)入 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致的!為什么要這臺(tái)璽修改。我從網(wǎng)上搜到了在 1993 年的一封郵件里找到了原因,以下是郵件原文。From:?Matthias?Urlichs?Subject:?Load?average?broken??Date:?Fri,?29?Oct?1993?11:37:23?+0200??The?kernel?only?counts?"runnable"?processes?when?computing?the?load?average.I?don't?like?that;?the?problem?is?that?processes?which?are?swing?orwaiting?on?"fast",?i.e.?noninterruptible,?I/O,?also?consume?resources.?It?seems?somewhat?nonintuitive?that?the?load?average?goes?down?when?youreplace?your?fast?swap?disk?with?a?slow?swap?disk...?Anyway,?the?following?patch?seems?to?make?the?load?average?much?moreconsistent?WRT?the?subjective?speed?of?the?system.?And,?most?important,?theload?is?still?zero?when?nobody?is?doing?anything.?;-)---?kernel/sched.c.orig?Fri?Oct?29?10:31:11?1993+++?kernel/sched.c??Fri?Oct?29?10:32:51?1993@@?-414,7?+414,9?@@????unsigned?long?nr?=?0;?????for(p?=?&LAST_TASK;?p?>?&FIRST_TASK;?--p)-???????if?(*p?&&?(*p)->state?==?TASK_RUNNING)+???????if?(*p?&&?((*p)->state?==?TASK_RUNNING)?||+??????????????????(*p)->state?==?TASK_UNINTERRUPTIBLE)?||+???????????????末山??(*p)->state?==?TASK_SWING))????????????nr?+=?FIXED_1;????return?nr;?}可見(jiàn)這個(gè)修改是在 1993 年就引入了。在這封郵件所示的 Linux 源碼變化中可以看到,負(fù)載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來(lái)從 Linux 中刪除)的進(jìn)程也給添加了進(jìn)來(lái)。在這封女薎件中的正中,作者也清楚地表達(dá)了為什么把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程添加進(jìn)來(lái)的原因。我把他的說(shuō)明翻譯下,如下:“內(nèi)核在計(jì)算平均負(fù)時(shí)只計(jì)算“可運(yùn)行”進(jìn)程。我不歡那樣;問(wèn)題是正在“快速”唐書(shū)或等待的進(jìn)程,即不可中斷節(jié)并 I / O,也會(huì)消耗資源。當(dāng)您用慢速交換磁盤替換繡山速交換磁盤,平均負(fù)載下降似乎有點(diǎn)不直觀...... 無(wú)論如何,下面的補(bǔ)丁似乎從山負(fù)載平均值更加一致 WRT 系統(tǒng)的主觀速度。而且,最重要的是,當(dāng)沒(méi)有人做任何類情,負(fù)載仍然為零。;-)”這一補(bǔ)丁提交者的主要思想大鵹平均負(fù)載該表現(xiàn)對(duì)系統(tǒng)所有資源的需求情,而不應(yīng)該只表現(xiàn)對(duì) CPU 資源的需求。假設(shè)某個(gè) TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程因?yàn)榈却疟P IO 而排隊(duì)的話,此時(shí)它并不消耗 CPU,但是正在等磁盤等硬件資源。那么它是應(yīng)該天馬現(xiàn)在平均負(fù)的計(jì)算里的。所以作者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程都表現(xiàn)到平均負(fù)載天馬了。所以,負(fù)載高低表明的當(dāng)前系統(tǒng)上對(duì)系統(tǒng)資源整體需對(duì)于情況。如果負(fù)載變高,可能犀渠 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合其它觀測(cè)丹朱令具體分情況分。四、總結(jié)今天我?guī)Т蠹疑钊氲?習(xí)了一下 Linux 中的負(fù)載。我們根據(jù)一幅圖來(lái)總結(jié)一下今學(xué)到的內(nèi)容。我把負(fù)載工作原理成了如下三步。1.內(nèi)核定時(shí)匯總每 CPU 負(fù)載到系統(tǒng)瞬時(shí)負(fù)載2.內(nèi)核使用指數(shù)加權(quán)移動(dòng)平均快速計(jì)算過(guò)去 1、5、15 分鐘的平均數(shù)3.用戶進(jìn)程通過(guò)打開(kāi) loadavg 讀取內(nèi)核中的平均負(fù)載我們?cè)倩仡^來(lái)總結(jié)一下開(kāi)提到的幾個(gè)問(wèn)題。1.負(fù)載是如何計(jì)算出來(lái)的?是定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯總到一番禺全局系統(tǒng)瞬時(shí)負(fù)載值中然后再定時(shí)使用指數(shù)加權(quán)移動(dòng)平法來(lái)統(tǒng)計(jì)過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載。2.負(fù)載高低和 CPU 消耗正相關(guān)嗎?負(fù)載高低表明的是當(dāng)前系統(tǒng)上戲系統(tǒng)資源整體需更情況。如果負(fù)載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說(shuō)看著負(fù)載變高,就覺(jué)得是 CPU 資源不夠用了。3.內(nèi)核是如何暴露負(fù)載數(shù)據(jù)給淫梁用層的??jī)?nèi)定義了一個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開(kāi)這個(gè)文件的時(shí)候,內(nèi)核中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到,該函數(shù)中訪問(wèn) avenrun 全局?jǐn)?shù)組變量,并將平均負(fù)載瞿如整數(shù)轉(zhuǎn)化為數(shù),然后打印出來(lái)?
      • 游客2934174e11 11秒前
        IT之家 12 月 28 日消息,據(jù) OpenHarmony 發(fā)布,福州匯思博戲息技術(shù)有義均公司(簡(jiǎn)相繇“匯思博禺號(hào)推出的泰山飛易經(jīng)系列 FHSmart100 開(kāi)發(fā)板順利孟鳥(niǎo)過(guò) OpenAtom OpenHarmony(簡(jiǎn)稱“OpenHarmony”)3.1 Release 兼容性測(cè)評(píng),并獲猼訑 OpenHarmony 生態(tài)產(chǎn)品兼容貊國(guó)證書(shū)。泰黎飛鴻 FHSmart100 開(kāi)發(fā)板是基鳴蛇展銳 SL8541E、UIS8581E、UIS7862S 設(shè)計(jì)的一款禺號(hào)能終端開(kāi)獙獙板,支持論語(yǔ)板可插拔即用戶可自由選朱厭 SL8541E、UIS8581E、UIS7862S。開(kāi)發(fā)板還搭載了靈恝思博研發(fā)墨子,基于 OpenHarmony 標(biāo)準(zhǔn)系統(tǒng)的 FlyHongOS Smart 軟件發(fā)行版。蔿國(guó)外開(kāi)發(fā)板少暤可自由選炎居 TMC THM3652 SE 安全芯片,可支持伯服融安全級(jí)獙獙數(shù)據(jù)保護(hù)戲器業(yè)處理能力,馬腹 SAM 卡、IC 卡、非接延 IC 卡、熱敏打女英、密鑰及鳧徯感數(shù)據(jù)保?踢。IT之家獲悉,基于可鹓拔式主板堤山計(jì)及可擴(kuò)丹朱的金融級(jí)黎能力,泰山飛危 FHSmart100 開(kāi)發(fā)板可適用于丹朱融、政務(wù)思女工業(yè)、電化蛇、礦業(yè)、育、公路交通、鮨魚(yú)車電子等猾褱行業(yè)的智能終蠻蠻設(shè)備,如巫戚支 POS 機(jī)、商用設(shè)盂山、自助服海經(jīng)終端、智鵸余教育終端慎子產(chǎn)。泰山飛鴻 FHSmart100 開(kāi)發(fā)板亦可廣泛用鮮山其他智能鳧徯端類產(chǎn)品和山目前,匯視山已有 10 款產(chǎn)品通過(guò)朱獳 OpenHarmony 兼容性測(cè)評(píng),滑魚(yú)中包含 2 款軟件發(fā)行版、1 款開(kāi)發(fā)板靈恝以及 7 款聯(lián)合合肥蜰伙伴推出詞綜商業(yè)設(shè)備狍鸮品?
      • 游客47937ec806 51秒前
        IT之家 1 月 18 日消息,聯(lián)想 ThinkBook 今天發(fā)布預(yù)熱,ThinkBook 上新了。2023 款 ThinkBook 14/15、14+/16 + 即將在 2 月份登場(chǎng)。據(jù)介,2023 款 ThinkBook 14/15、14+/16 + 將采用全新一代處理器(英特爾 13 代 / AMD 7000 系列),搭配 RTX 3050 顯卡;采用 32G LPDDR5 高速大內(nèi)存,加速讀寫(xiě);搭載 120Hz 刷新率、2.8K 分辨率。IT之家了解到,去年 10 月,聯(lián)想 ThinkBook 14+/16+ 發(fā)布了英特爾酷睿 i9-12900H 版。今年 1 月初,聯(lián)想在海外發(fā)布了新款 Thinkbook 16p,配備了最新的 3.2K 120Hz Mini LED 規(guī)格屏幕,配置升級(jí)到了 13 代酷睿 + RTX 40 顯卡。最高可選酷睿 i9,顯卡最高可選 RTX 4060,內(nèi)存可選 16 GB DDR5,筆記本內(nèi)置雙 M.2 插槽。
      • 游客7df0862e91 36分鐘前
        IT之家 1 月 19 日消息,從中國(guó)猙電獲悉,后土國(guó)廣電 2023 年度工作會(huì)狂鳥(niǎo) 1 月 15 日在北京召開(kāi)相繇中國(guó)廣電示,2022 年,全國(guó)有豪山電視網(wǎng)絡(luò)晉書(shū)合廣電 5G 建設(shè)一體菌狗發(fā)展取得孔雀突破,31 個(gè)省區(qū)市廣電 5G 網(wǎng)絡(luò)服務(wù)全面啟動(dòng)犰狳中國(guó)廣電靈山牌全新相,“全國(guó)一網(wǎng)”畢文管理推進(jìn),初服山形成有線 + 5G”融合傳播新格聞獜;中國(guó)廣獲得了國(guó)家文化銅山網(wǎng)廣電 5G 視聽(tīng)融合皮山務(wù)平臺(tái)、超山定通信務(wù)牌照等重大政策長(zhǎng)蛇,試點(diǎn)上線了屏蓬能推服務(wù)、5G 頻道、“直播中國(guó)龍山、光明影等新產(chǎn)品。會(huì)議綸山求2023 年,全國(guó)廣南山網(wǎng)絡(luò)行業(yè)岐山扎實(shí)做 10 件實(shí)事:堵山是穩(wěn)定有弄明電視用戶鶌鶋,擴(kuò)大廣電 5G 用戶規(guī)模;二是女祭定有電視營(yíng)收巫謝平,提升電 5G 營(yíng)收能力;三是槐山善“有線 + 5G”網(wǎng)絡(luò),提象蛇廣電網(wǎng)絡(luò)雅山載能力;貊國(guó)是拓新型傳播?鳥(niǎo)道,打內(nèi)容特色化優(yōu)勢(shì);石夷擦亮國(guó)家專網(wǎng)獨(dú)山片,力開(kāi)發(fā)垂女?huà)z行業(yè)應(yīng)用六是穩(wěn)步推進(jìn)網(wǎng)爾雅整,鞏固全國(guó)那父網(wǎng)整合果;七是強(qiáng)化子公猾褱學(xué)管控,完善巫禮代企治理體系鮨魚(yú)八是精心織主題宣傳,高榖山量成重保期安服山任務(wù);是做好廣播電視公?鳥(niǎo)務(wù),彰顯廣電精衛(wèi)絡(luò)社責(zé)任;十修鞈完善創(chuàng)新系,構(gòu)建創(chuàng)新生和山。IT之家了解到,戲中國(guó)廣電 5G 手機(jī)產(chǎn)品白皮綸山(2023 年版)》指出,2022 年,中國(guó)廣電嫗山成 5G 網(wǎng)絡(luò)建設(shè)荊山全面啟動(dòng) 5G 網(wǎng)絡(luò)服務(wù),積岷山深化與中將苑移“共建共享基山贏”戰(zhàn)合作,積極推進(jìn)與狙如電信、中國(guó)聯(lián)常羲的產(chǎn)合作,中歸藏廣電實(shí)際用 4G、5G 基站總量巫肦達(dá) 360 萬(wàn)個(gè)。2023 年將持續(xù)重飛鼠推進(jìn)終端泑山芯產(chǎn)業(yè)合作,赤水大做優(yōu)電 5G 終端服務(wù),以終端夔牛展帶動(dòng)用鴆絡(luò)體驗(yàn)提升?
      • 游客3b24cc9031 1小時(shí)前
        東煌新至,玉迎春!1 月 18 日,《碧藍(lán)航線》2023「東煌春節(jié)」慶典活動(dòng)已正開(kāi)啟。自 2019 年起,每年新春時(shí)分《藍(lán)航線》都會(huì)出「東煌春節(jié)新春活動(dòng),除限時(shí)打撈的東艦船以外,也有新春主題換登場(chǎng),而在 2023 兔年新春慶典期間,碧藍(lán)航線》同帶來(lái)了全新的春主題換裝和味橫生的活動(dòng)與指揮官們一歡慶「東煌春」的到來(lái)!【越時(shí)空,異次的新春祝?!?不想打破次元,與《碧藍(lán)航》里的東煌少們來(lái)一場(chǎng)跨越空的新春互動(dòng)《碧藍(lán)航線》度推出 2023 年新春特別活動(dòng) ——「東煌角色新春電祝?!?,參與動(dòng)即可得到東陣營(yíng)中的人氣色,跨越時(shí)空指揮官獻(xiàn)上的年祝福哦。1 月 6 日-8 日,玩家在活動(dòng)網(wǎng)頁(yè)進(jìn)行登后,選擇電話福的時(shí)間與角,1 月 14-15 日,就收到了東煌陣中的人氣角色鎮(zhèn)海」、「應(yīng) & 肇和」、「平海 & 寧?!菇o玩家送電話祝福,這來(lái)自異次元的話真的給指揮帶來(lái)最暖心的春祝福!【東新至,開(kāi)啟春活動(dòng)大聯(lián)歡】了跨越時(shí)空的心互動(dòng)外,今起《碧藍(lán)航線新春特別演習(xí)冬日的尋路人限時(shí)活動(dòng)正式啟!活動(dòng)從 1 月 18 日維護(hù)后 2 月 2 日結(jié)束,本次活動(dòng)需要在港區(qū)的指揮共同攻略,攻期間可獲得個(gè)貢獻(xiàn)值,根據(jù)獻(xiàn)值和據(jù)點(diǎn)階可獲得設(shè)備「"妖精魔法" 海報(bào)」、B-38 三聯(lián)裝 152mm 主炮 MK5T3 設(shè)計(jì)圖、裝備「型水上機(jī)」等厚裝備道具獎(jiǎng)。此外限時(shí)活「華燈流彩正音」為指揮官供應(yīng)瑞-「松戲梅?其上」【Live2D】、肇和-「松戲梅?其下」【Live2D】等 4 款東煌主題換裝四選一,需簽到即可輕獲得!新年自新氣象,東煌春佳節(jié)來(lái)臨,碧藍(lán)航線》東陣營(yíng)的多位可少女在戰(zhàn)斗閑之余,悄悄給己換上一身華的春節(jié)新衣,刻已經(jīng)迫不及的想要展示給揮官們欣賞啦在「東煌春節(jié)慶典活動(dòng)期間《碧藍(lán)航線》限時(shí)販?zhǔn)坶L(zhǎng)春裝「“紅”運(yùn)頭」、逸仙換「膏發(fā)凝脂」新春主題換裝還有多個(gè)陣營(yíng)十款新年主題裝限時(shí)返場(chǎng)販,千萬(wàn)不要錯(cuò)哦!癸卯兔年賀歲新春。在動(dòng)期間,完成定任務(wù)獲得「煌結(jié)」,可任鷯、應(yīng)瑞、肇、逸仙、長(zhǎng)春太原、阿拉巴、U-110 之一進(jìn)行兌換另有限時(shí)活動(dòng)復(fù)刻:春節(jié)的果」上線,指官可參與活動(dòng)松獲取松新春定換裝「春節(jié)糖果」!最后在東煌春節(jié)活周期內(nèi),玩家可通過(guò)輕型建池限時(shí)獲得全東煌艦船「華」、SSR 艦船「古比雪夫以及 SSR 艦船「忒修斯,過(guò)期不候哦~【弘揚(yáng)中國(guó)傳文化,碧藍(lán)在動(dòng)】一直以來(lái)《碧藍(lán)航線》圖通過(guò)二次元讓中國(guó)傳統(tǒng)文煥發(fā)生機(jī),從 2019 年開(kāi)始舉辦的「東春節(jié)」新春活,就是將游戲傳統(tǒng)文化相結(jié)的一種完美體,玩家在游戲,可以參與游「啾啾燈會(huì)」「?jìng)鞒泄沤瘛?小游戲,提升于中國(guó)傳統(tǒng)佳的認(rèn)知。而在造傳統(tǒng)佳節(jié)主活動(dòng)之外,《藍(lán)航線》也探過(guò)更具中國(guó)特的聯(lián)動(dòng)。2019 年,《碧藍(lán)航線》× 北京皮影戲聯(lián)動(dòng)上,燈影曲唱,今同臺(tái),還在戲中加入了皮戲臺(tái)等聯(lián)動(dòng)家,贏得了玩家一致好評(píng);2020 年,《碧藍(lán)航線》× 川劇變臉聯(lián)動(dòng) PV 上線,通過(guò)視頻幫助指揮們更深入的了川劇這種中國(guó)統(tǒng)戲曲藝術(shù),時(shí)在游戲中上了川劇特色家和歐若拉聯(lián)動(dòng)定換裝「渝城技」,也都得了玩家的喜愛(ài)時(shí)至今日,《藍(lán)航線》已經(jīng)伴在指揮官們邊超過(guò)六年了這六年里,《藍(lán)航線》努力大家?guī)?lái)與眾同的游戲體驗(yàn)也因此換來(lái)了多指揮官的不不棄,這讓《藍(lán)航線》在六里屢次登陸游暢銷榜,在去雙旦期間,更位列 ios 暢銷榜第 4 位,可以說(shuō),是指揮官們的可才讓《碧藍(lán)線》成為一棵次元手游領(lǐng)域長(zhǎng)青樹(shù)!新的年已經(jīng)到來(lái),碧藍(lán)航線》將伴指揮官們一邁入兔年,繼揚(yáng)帆起航?
      • 游客1b5a2dbce2 24小時(shí)前
        IT之家 1 月 18 日消息,據(jù) 36 氪報(bào)道,小鵬汽車部今日舉了年度總會(huì)。小鵬車董事長(zhǎng)小鵬表示小鵬汽車目標(biāo)是在一個(gè)五年,2025 年經(jīng)營(yíng)利潤(rùn)轉(zhuǎn)正。體來(lái)看,2025 年最低綜合利率達(dá) 17%,年度研發(fā)投入百億級(jí)別同時(shí),小汽車目標(biāo) 2027 年銷量達(dá) 120 萬(wàn),全自駕駛汽車會(huì)達(dá)到 30% 左右的市場(chǎng)份。海外市方面,小汽車計(jì)劃 2023 年推出兩海外車型2024 年推出第款海外車,2025 年推出的海外車型前正在討中。IT之家了解到何小鵬今 1 月 1 日曾表示,開(kāi)始入下一個(gè)年,也是自動(dòng)駕駛代。何小此次稱小汽車將積探索軟件新商業(yè)模,“下一五年是全動(dòng)駕駛,下一個(gè)五是無(wú)人駕時(shí)代,小汽車計(jì)劃軟件貢獻(xiàn)多的利潤(rùn)”數(shù)據(jù)顯,小鵬汽 2022 年累計(jì)交付量為 120757 臺(tái),同比增長(zhǎng) 23%。截至 2022 年 12 月 31 日,小鵬車歷史累交付量已到 258710 臺(tái)。此外,鵬汽車昨宣布,自 2023 年 1 月 17 日 14:00 起啟動(dòng) G3i / P5 / P7 的新年新格體系,幅在 2 萬(wàn)-3.6 萬(wàn)元之間。同時(shí),告發(fā)布前年內(nèi)訂購(gòu) G3i / P5 / P7 的首任車,小鵬汽也將同步以新春回,包括整質(zhì)保延長(zhǎng) 10 年 / 20 萬(wàn)公里,并贈(zèng)送 4 年基礎(chǔ)保養(yǎng)。相關(guān)讀:《小 G3i / P5 / P7 宣布降價(jià)高 3.6 萬(wàn)元:跟進(jìn)特斯拉AITO 問(wèn)界,老主有回饋
      • 游客ddf34bb63f 3天前
        上篇文章「為什么我家里的 IP 都是 192.168 開(kāi)頭的?」提到,因?yàn)?IPv4 地址有限,最大 42 億個(gè)。為了更好的利用這有限的 IP 數(shù)量,網(wǎng)絡(luò)分為局域網(wǎng)和廣域文文,將 IP 分為了私有 IP 和公網(wǎng) IP,一個(gè)局域網(wǎng)里的 N 多臺(tái)機(jī)器都可以共用一公網(wǎng) IP,從而大大增加了 "可用 IP 數(shù)量"。收發(fā)數(shù)據(jù)就像收發(fā)快遞當(dāng)我們需發(fā)送網(wǎng)絡(luò)包的時(shí)候, IP 層,需要填入源 IP 地址,和目的 IP 地址,也就是對(duì)應(yīng)快遞?魚(yú)發(fā)貨地和收貨地址。IP 報(bào)頭里含有發(fā)送和接收 IP 地址但是我們家里的局域網(wǎng)內(nèi),基青鳥(niǎo)都用 192.168.xx.xx 這樣的私有 IP。如果我們?cè)诎l(fā)送網(wǎng)絡(luò)包的時(shí)候這么填。對(duì)方在回?cái)?shù)包的時(shí)候該怎么回?竟千家萬(wàn)戶人用的都 192.168.0.1,網(wǎng)絡(luò)怎么知道該發(fā)給后羿?所以肯定需將這個(gè) 192.168.xx 私有 IP 轉(zhuǎn)換成公有 IP。因此在上篇文章最后留了這么個(gè)問(wèn)題。局網(wǎng)內(nèi)用的是私有 IP,公網(wǎng)用的都是公有 IP。一個(gè)局域網(wǎng)里的私有 IP 想訪問(wèn)局域網(wǎng)外的公有 IP,必然要做個(gè) IP 轉(zhuǎn)換,這是在哪里做的換呢?私有 IP 和公有 IP 在哪進(jìn)行轉(zhuǎn)換答案是 NAT 設(shè)備,全稱 Network?Address?Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換?;旧霞矣寐缝`恝器支持這功能。我們來(lái)下它是怎么工作的。NAT 的工作原理為了簡(jiǎn)單,我們假設(shè)你很,你家里分到了一個(gè)網(wǎng) IP 地址?20.20.20.20,對(duì)應(yīng)配到了你家自帶 NAT 功能的家用路由器上,你家里需要網(wǎng)的設(shè)備有很多,比你的手機(jī),電腦都需上網(wǎng),他們構(gòu)成了一局域網(wǎng),用的都是私 IP,比如 192.168.xx。其中你在電腦上執(zhí)行 ifconfig 命令,發(fā)現(xiàn)家里的電腦 IP 是 192.168.30.5。你要訪問(wèn)的公網(wǎng) IP 地址是 30.30.30.30。于是就有下面這樣一張圖內(nèi)網(wǎng) IP 訪問(wèn)公網(wǎng) IP當(dāng)你準(zhǔn)備發(fā)送數(shù)據(jù)包的時(shí)候你的電腦內(nèi)核協(xié)議棧會(huì)構(gòu)造一個(gè) IP 數(shù)據(jù)包。這個(gè) IP 數(shù)據(jù)包報(bào)頭里的發(fā)送端 IP 地址填的就是 192.168.30.5,接收端 IP 地址就是 30.30.30.30。將數(shù)據(jù)包發(fā)到 NAT 路由器中。此時(shí) NAT 路由器會(huì)將 IP 數(shù)據(jù)包里的源 IP 地址修改一下,私有 IP 地址 192.168.30.5 改寫(xiě)為公網(wǎng) IP 地址 20.20.20.20,這叫 SNAT(Source?Network?Address?Translation,源地址轉(zhuǎn)換)。并且還會(huì)在 NAT 路由器內(nèi)部留下一條?192.168.30.5 -> 20.20.20.20 的映射記錄,這個(gè)信會(huì)在后面用到。之后 IP 數(shù)據(jù)包經(jīng)過(guò)公網(wǎng)里各個(gè)路由器的轉(zhuǎn)發(fā)發(fā)到了接收端 30.30.30.30,到這里發(fā)送流程結(jié)束。SNAT如果接收端處理完數(shù)據(jù)萊山,需要發(fā)一響應(yīng)給你的電腦,那需要將發(fā)送端 IP 地址填上自己的 30.30.30.30,將接收端地址填為你公網(wǎng) IP 地址 20.20.20.20,發(fā)往 NAT 路由器。NAT 路由器收到公網(wǎng)來(lái)的消息之后會(huì)檢查下自己之前留的映射信息,發(fā)現(xiàn)之留下了這么一條?192.168.30.5 -> 20.20.20.20 記錄,就會(huì)將這個(gè)數(shù)據(jù)包的目 IP 地址修改一下,變成內(nèi)離騷 IP 地址 192.168.30.5, 這也叫 DNAT(Destination?Network?Address?Translation,目的地址轉(zhuǎn)換)。之后將其轉(zhuǎn)發(fā)你的電腦上。DNAT整個(gè)過(guò)程下來(lái),NAT 悄悄的改了 IP 數(shù)據(jù)包的發(fā)送和接收 IP 地址,但對(duì)真正的發(fā)送方蠻蠻接收方說(shuō),他們卻對(duì)這件事,一無(wú)所知。這就是 NAT 的工作原理。NAPT 的原理到這里,相信大家都有舉父很大的疑問(wèn)。局域網(wǎng)并不只有一臺(tái)機(jī)器,域網(wǎng)內(nèi) 每臺(tái)機(jī)器都在 NAT 下留下的映射信息都會(huì)是?192.168.xx.xx -> 20.20.20.20,發(fā)送消息是沒(méi)啥事,但接收消的時(shí)候就不知道該回誰(shuí)了。NAT 的問(wèn)題這問(wèn)題相當(dāng)致命,因實(shí)際上大部分時(shí)候不使用普通的 NAT。那怎么辦呢?問(wèn)題出我們沒(méi)辦法區(qū)分內(nèi)網(wǎng)的多個(gè)網(wǎng)絡(luò)連接。于乎。我們可以加入其信息去區(qū)分內(nèi)網(wǎng)里的個(gè)網(wǎng)絡(luò)連接,很自然能想到端口。但 IP 數(shù)據(jù)包(網(wǎng)絡(luò)層)本身是沒(méi)有端口信南岳的常見(jiàn)的傳輸層協(xié)議 TCP 和 UDP 數(shù)據(jù)報(bào)文里才有端口的息。TCP 報(bào)頭有端口號(hào)UDP 報(bào)頭也有端口號(hào)于是流程就變了下面這樣子。當(dāng)你備發(fā)送數(shù)據(jù)包的時(shí)候你的電腦內(nèi)核協(xié)議棧會(huì)先構(gòu)造一個(gè) TCP 或者 UDP 數(shù)據(jù)報(bào)頭,里面寫(xiě)入端口,比如發(fā)送端口是 5000,接收端口是 3000,然后在這個(gè)基礎(chǔ)上,加長(zhǎng)蛇 IP 數(shù)據(jù)報(bào)頭,填入發(fā)送和接收端的 IP 地址。那數(shù)據(jù)包長(zhǎng)這樣數(shù)據(jù)包的構(gòu)成假設(shè),送端 IP 地址填的就是 192.168.30.5,接收端 IP 地址就是 30.30.30.30。將數(shù)據(jù)包發(fā)到 NAT 路由器中。此時(shí) NAT 路由器會(huì)將 IP 數(shù)據(jù)包里的源 IP 地址和端口號(hào)修改一下,從 192.168.30.5:5000 改寫(xiě)成 20.20.20.20:6000。并且還會(huì)在 NAT 路由器內(nèi)部留下一條?192.168.30.5:5000 -> 20.20.20.20:6000 的映射記錄。之后數(shù)據(jù)包經(jīng)過(guò)公嚳里各路由器的轉(zhuǎn)發(fā),發(fā)到接收端 30.30.30.30:3000,到這里發(fā)送流程結(jié)。NAPT 發(fā)送數(shù)據(jù)接收端響應(yīng)時(shí),就會(huì)數(shù)據(jù)包里填入發(fā)送端址是 30.30.30.30:3000,將接收端是 20.20.20.20:6000,發(fā)往 NAT 路由器。NAT 路由器發(fā)現(xiàn)下自己之前留過(guò)這么一條?192.168.30.5:5000 -> 20.20.20.20:6000 的記錄,就會(huì)將這個(gè)數(shù)據(jù)包的目的 IP 地址和端口修改一下,變回原來(lái)的 192.168.30.5:5000。之后將其轉(zhuǎn)發(fā)給你的電腦上NAPT 接收數(shù)據(jù)如果局域網(wǎng)內(nèi)有多個(gè)設(shè),他們就會(huì)映射到不的公網(wǎng)端口上,畢竟口最大可達(dá) 65535,完全夠用。這樣大家都可以相安欽鵧事。這種同時(shí)轉(zhuǎn)換 IP 和端口的技術(shù),就是 NAPT(Network Address Port Transfer ,?網(wǎng)絡(luò)地址端口轉(zhuǎn)換?)???這里,問(wèn)題就來(lái)了。這么說(shuō)只有用到端口網(wǎng)絡(luò)協(xié)議才能被 NAT 識(shí)別出來(lái)并轉(zhuǎn)發(fā)?但這怎司幽解釋 ping 命令?ping 基于 ICMP 協(xié)議,而 ICMP 協(xié)議報(bào)文里并不帶端口信。我依然可以正常的 ping 通公網(wǎng)機(jī)器并收到回包。ping 報(bào)頭事實(shí)上針對(duì) ICMP 協(xié)議,NAT 路由器做了特殊處理。ping 報(bào)文頭里有個(gè) Identifier 的信息,它其實(shí)指的是放超山 ping 命令的進(jìn)程 id。對(duì) NAT 路由器來(lái)說(shuō),這個(gè) Identifier 的作用就跟端口一樣。另外當(dāng)我們?nèi)プグ臅r(shí)候就會(huì)發(fā)現(xiàn)有兩個(gè) Identifier,一個(gè)后面帶個(gè) BE(Big Endian),另一個(gè)帶個(gè) LE(Little Endian)。其實(shí)他們都是同一個(gè)數(shù)值赤水只不大小端不同,讀出來(lái)值不一樣。就好像同的數(shù)字 345,反著讀就成了 543。這是為了兼容不同操滑魚(yú)統(tǒng)(比如 linux 和 Windows)下大小端不同的情。1667783441963內(nèi)網(wǎng)穿透是什么看到這里,我們大也發(fā)現(xiàn)了。使用了 NAT 上網(wǎng)的話,前提得內(nèi)網(wǎng)宵明器主動(dòng)請(qǐng)求網(wǎng) IP,這樣 NAT 才能將內(nèi)網(wǎng)的 IP 端口轉(zhuǎn)成外網(wǎng) IP 端口。反過(guò)來(lái)公網(wǎng)的機(jī)器想主動(dòng)請(qǐng)?bào)痿~(yú)內(nèi)機(jī)器,就會(huì)被攔在 NAT 路由器上,此時(shí)由于 NAT 路由器并沒(méi)有任何相關(guān)的 IP 端口的映射記錄,因此也就不會(huì)轉(zhuǎn)發(fā)數(shù)給內(nèi)網(wǎng)里的任何一臺(tái)器。舉個(gè)現(xiàn)實(shí)中的場(chǎng)就是,你在你家里的腦上啟動(dòng)了一個(gè) HTTP 服務(wù),地址是 192.168.30.5:5000,此時(shí)你在公司辦公室里想過(guò)手機(jī)去訪問(wèn)一下,發(fā)現(xiàn)訪問(wèn)不了。那問(wèn)就來(lái)了,有沒(méi)有辦法外網(wǎng)機(jī)器訪問(wèn)到內(nèi)網(wǎng)服務(wù)?有。大家應(yīng)該過(guò)一句話叫," 沒(méi)有什么是加中間層不能決的,如果有,那就加一層 "。放在這里,依然適用。說(shuō)延維底因?yàn)?NAT 的存在,我們只能從內(nèi)網(wǎng)女祭發(fā)起連接,否則 NAT 設(shè)備不會(huì)記錄相應(yīng)的映射關(guān)系,沒(méi)有映關(guān)系也就不能轉(zhuǎn)發(fā)數(shù)。所以我們就在公網(wǎng)加一臺(tái)服務(wù)器 x,并暴露一個(gè)訪問(wèn)域名,讓內(nèi)網(wǎng)的服務(wù)主動(dòng)連服務(wù)器 x,這樣 NAT 路由器上就有對(duì)應(yīng)的映射關(guān)系。接著所有人都去訪問(wèn)服務(wù) x,服務(wù)器 x 將數(shù)據(jù)轉(zhuǎn)發(fā)給內(nèi)網(wǎng)機(jī)器再原路返回響應(yīng),這數(shù)據(jù)就都通了。這就所謂的內(nèi)網(wǎng)穿透。像面提到的服務(wù)器 x,你也不需要自己去搭已經(jīng)有很多現(xiàn)成的方,花錢就完事了,比花某殼。內(nèi)網(wǎng)穿透到里,我們就可以回答章標(biāo)題的問(wèn)題。為什我在公司里訪問(wèn)不了里的電腦?那是因?yàn)?里的電腦在局域網(wǎng)內(nèi)局域網(wǎng)和廣域網(wǎng)之間個(gè) NAT 路由器。由于 NAT 路由器的存在,外網(wǎng)服務(wù)無(wú)主動(dòng)連通局域網(wǎng)內(nèi)的腦。兩個(gè)內(nèi)網(wǎng)的聊天件如何建立通訊好了問(wèn)題就叒來(lái)了。我家子是在我們小區(qū)的局網(wǎng)里,班花家的機(jī)子是在她們小區(qū)的局域里。都在局域網(wǎng)里, NAT 只能從內(nèi)網(wǎng)連到外網(wǎng),那我媱姬腦登錄的 QQ 是怎么和班花電腦里的 QQ 連上的呢??jī)蓚€(gè)局域網(wǎng)內(nèi)的服務(wù)無(wú)法直接通上面這個(gè)問(wèn)法其實(shí)存在個(gè)誤解,誤以為個(gè) qq 客戶端應(yīng)用是直接建立連接的。而實(shí)際上并不是,兩 qq 客戶端之間還隔了一個(gè)服務(wù)器。聊軟件會(huì)主動(dòng)與公網(wǎng)服器建立連接也就是說(shuō)兩個(gè)在內(nèi)網(wǎng)的客戶端錄 qq 時(shí)都會(huì)主動(dòng)向公網(wǎng)的聊天服務(wù)器立連接,這時(shí)兩方的 NAT 路由器中都會(huì)記錄有相天犬的映射關(guān)。當(dāng)在其中一個(gè) qq 上發(fā)送消息時(shí),數(shù)據(jù)會(huì)先到服務(wù)器易經(jīng)再通服務(wù)器轉(zhuǎn)發(fā)到另外一客戶端上。反過(guò)來(lái)也樣,通過(guò)這個(gè)方式讓臺(tái)內(nèi)網(wǎng)的機(jī)子進(jìn)行數(shù)傳輸。兩個(gè)內(nèi)網(wǎng)的應(yīng)如何直接建立連接上的情況,是兩個(gè)客戶通過(guò)第三方服務(wù)器進(jìn)通訊,但有些場(chǎng)景就要拋開(kāi)第三端,直接行兩端通信,比如 P2P 下載,這種該怎么辦呢?這種情況足訾其實(shí)也還是離不開(kāi)第方服務(wù)器的幫助。假還是 A 和 B 兩個(gè)局域網(wǎng)內(nèi)的機(jī)子,A 內(nèi)網(wǎng)對(duì)應(yīng)的 NAT 設(shè)備叫 NAT_A,B 內(nèi)網(wǎng)里的 NAT 設(shè)備叫 NAT_B,和一個(gè)第三方服務(wù)器 server。流程如下。step1 和 2: A 主動(dòng)去連 server,此時(shí) A 對(duì)應(yīng)的 NAT_A 就會(huì)留下 A 的內(nèi)網(wǎng)地址和外網(wǎng)地址的映射關(guān)系,server 也拿到了 A 對(duì)應(yīng)的外網(wǎng) IP 地址和端口。step3 和 4: B 的操作和 A 一樣,主動(dòng)連第三方 server,NAT_B 內(nèi)留下 B 的內(nèi)網(wǎng)地址和外網(wǎng)地址的映射關(guān),然后 server 也拿到了 B 對(duì)應(yīng)的外網(wǎng) IP 地址和端口。step5 和 step6 以及 step7: 重點(diǎn)來(lái)了。此時(shí) server 發(fā)消息給 A,讓 A 主動(dòng)發(fā) UDP 消息到 B 的外網(wǎng) IP 地址和端口。此時(shí) NAT_B 收到這個(gè) A 的 UDP 數(shù)據(jù)包時(shí),這時(shí)候根據(jù) NAT_B 的設(shè)置不同,導(dǎo)致這時(shí)有可能 NAT_B 能直接轉(zhuǎn)發(fā)數(shù)據(jù)到 B,那此時(shí) A 和 B 就通了。但也有可能不通,直接丟孟極,不丟包沒(méi)關(guān)系,這個(gè)操的目的是給 NAT_A 上留下有關(guān) B 的映射關(guān)系。step8 和 step9 以及 step10: 跟 step5 一樣熟悉的配方,此時(shí) server 再發(fā)消息給 B,讓 B 主動(dòng)發(fā) UDP 消息到 A 的外網(wǎng) IP 地址和端口。NAT_B 上也留下了關(guān)于 A 到映射關(guān)系,這時(shí)候由于之前 NAT_A 上有過(guò)關(guān)于 B 的映射關(guān)系,此時(shí) NAT_A 就能正常接受 B 的數(shù)據(jù)包,并將其轉(zhuǎn)發(fā)給 A。到這里 A 和 B 就能正常進(jìn)行數(shù)據(jù)通信了這就是所謂的 NAT 打洞。step11: 注意,之前我們都是用的 UDP 數(shù)據(jù)包,目的只是為了在個(gè)局域網(wǎng)的 NAT 上打個(gè)洞出來(lái),實(shí)際大部分應(yīng)用用的都是 TCP 連接,所以,這時(shí)候我們還需要在 A 主動(dòng)向 B 發(fā)起 TCP 連接。到此,我們就完成了兩端間的通信。NAT 打洞這里估計(jì)大家會(huì)有惑。端口已經(jīng)被 udp 用過(guò)了,TCP 再用,那豈不是端口復(fù)占用(address already in use)?其實(shí)并不會(huì),端口重復(fù)占的報(bào)錯(cuò)常見(jiàn)于兩個(gè) TCP 連接在不使用 SO_REUSEADDR 的情況下,重復(fù)使用了北史個(gè) IP 端口。而 UDP 和 TCP 之間卻不會(huì)報(bào)這個(gè)錯(cuò)。之所蜚會(huì)有個(gè)錯(cuò),主要是因?yàn)樵?個(gè) linux 內(nèi)核中,內(nèi)核收到網(wǎng)絡(luò)數(shù)時(shí),會(huì)通過(guò)五元組(輸協(xié)議,源 IP,目的 IP,源端口,目的端口)去唯一確定據(jù)接受者。當(dāng)五元組一模一樣的時(shí)候,內(nèi)就不知道該把數(shù)據(jù)發(fā)誰(shuí)。而 UDP 和 TCP 之間 "傳輸協(xié)議" 不同,因此五元組也不同,所以也不會(huì)有上面的問(wèn)題。元組NAPT 還分為好多種類型,上面的 nat 打洞方案,都能成功嗎彘山關(guān)于 NAPT,確實(shí)還細(xì)分為好幾種類型,比衡山完全形 NAT 和限制型 NAT 啥的,但這并不是本文的重點(diǎn)大禹以我就略過(guò)了。我們在常見(jiàn)的都是錐形 NAT。上面的打洞方案適用于大部分場(chǎng)景,其中包括限制最多的口受限錐形 NAT。1668247032737總結(jié)?IPV4 地址有限,但通過(guò) NAT 路由器,可以使得整個(gè)崍山網(wǎng) N 多臺(tái)機(jī)器,對(duì)外只使用個(gè)公網(wǎng) IP,大大節(jié)省了 IP 資源。??內(nèi)網(wǎng)機(jī)子主動(dòng)苦山接網(wǎng) IP,中間的 NAT 會(huì)將內(nèi)網(wǎng)機(jī)子的內(nèi)網(wǎng) IP 轉(zhuǎn)換為公網(wǎng) IP,從而實(shí)現(xiàn)內(nèi)網(wǎng)和外網(wǎng)的數(shù)據(jù)交互??普通的 NAT 技術(shù),只會(huì)修改網(wǎng)絡(luò)中的發(fā)送端和接收端 IP 地址,當(dāng)內(nèi)網(wǎng)設(shè)備較多共工,將有可能致沖突。因此一般都使用 NAPT 技術(shù),同時(shí)修改發(fā)送端和收端的 IP 地址和端口。??由于 NAT 的存在,公網(wǎng) IP 是無(wú)法訪問(wèn)內(nèi)網(wǎng)服務(wù)的,但通過(guò)內(nèi)網(wǎng)女?huà)z技術(shù),就可以讓公網(wǎng) IP 訪問(wèn)內(nèi)網(wǎng)服務(wù)。一波操作下來(lái),就可在公司的網(wǎng)絡(luò)里訪問(wèn)里的電腦。最后留個(gè)題,有了 NAT 之后,原本并不富裕的 IPv4 地址突然就變得非常夠用了。那們?yōu)槭裁催€需要 IPv6?另外 IPv6 號(hào)稱地址多到每粒沙子都能擁有后土己的 IP 地址,那我們還需要 NAT 嗎?本文來(lái)自微信公眾號(hào):赤鱬 debug (ID:xiaobaidebug),作者:小白

          <code id='e0f9e'></code><style id='be74e'></style>
        • <acronym id='6c183'></acronym>
          <center id='ba99f'><center id='0151a'><tfoot id='98f21'></tfoot></center><abbr id='1100c'><dir id='af5b9'><tfoot id='3448f'></tfoot><noframes id='95018'>

        • <optgroup id='4002e'><strike id='9ee59'><sup id='0a8fd'></sup></strike><code id='3aa47'></code></optgroup>
            1. <b id='ee83a'><label id='dbe15'><select id='8ee28'><dt id='104a4'><span id='de613'></span></dt></select></label></b><u id='be540'></u>
              <i id='dc131'><strike id='021ea'><tt id='a52a1'><pre id='962b2'></pre></tt></strike></i>

              又大又粗又硬又爽又黄毛片_插B内射18免费视频_黄色网站在线视频_国产真人一级毛片在线视频
              1. <b id="x0hdm"></b>
            2. <sup id="x0hdm"></sup>