国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

為什么你必須得學(xué)些 TCP 的知識(shí)?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
當(dāng)我還在 Recurse Center 的時(shí)候,我用 Python 寫過 TCP 協(xié)議棧(還寫過一篇文章:如果你用 Python 寫 TCP 協(xié)議棧會(huì)遇到什么?)。這是一次有趣的學(xué)習(xí)經(jīng)歷,但是也僅此而已。

這不是指要明白 TCP 的所有東西,也不是說要通讀 《TCP/IP 詳解》。不過懂一點(diǎn) TCP 知識(shí)是很有必要的。理由如下:

當(dāng)我還在 Recurse Center 的時(shí)候,我用 Python 寫過 TCP 協(xié)議棧(還寫過一篇文章:如果你用 Python 寫 TCP 協(xié)議棧會(huì)遇到什么?)。這是一次有趣的學(xué)習(xí)經(jīng)歷,但是也僅此而已。

一年以后,工作中有人在 Slack 上提到:“嘿,我在向 NSQ 發(fā)布消息時(shí),每次要耗費(fèi) 40 毫秒”。我已經(jīng)斷斷續(xù)續(xù)思考了一個(gè)星期,但是沒有任何結(jié)果。

一點(diǎn)背景知識(shí):NSQ 是一個(gè)消息隊(duì)列,你通過本地的一個(gè) HTTP 請(qǐng)求向其發(fā)布消息。發(fā)送本地的一個(gè) HTTP 請(qǐng)求確實(shí)不應(yīng)該花費(fèi) 40 毫秒,有時(shí)候會(huì)更差。NSQ 守護(hù)進(jìn)程的負(fù)載不高,也沒有使用過多的內(nèi)存,也看不到 GC 停頓。這究竟是為什么呢?神吶,救救我吧!

 [[161136]]

突然我記起我一周以前看過的一篇叫做“性能研究(In search of performance)”的文章——我們?nèi)绾螢槊總€(gè) POST 請(qǐng)求節(jié)省 200ms。在這篇文章中,他們說到為什么每個(gè) POST 請(qǐng)求會(huì)花費(fèi)額外的 200 毫秒。就是這個(gè)原因。這是該文章中的關(guān)鍵段落:

延遲確認(rèn)(ACK) 與 TCP_NODELAY

Ruby 的 Net::HTTP 會(huì)將 POST 請(qǐng)求切分為兩個(gè) TCP 包,一個(gè)消息頭,一個(gè)消息體。相反,curl 會(huì)將這兩者合并為一個(gè)包。更糟糕的是,Net::HTTP 在打開 TCP 套接字時(shí)不會(huì)設(shè)置 TCP_NODELAY,這將導(dǎo)致第二個(gè)包需要等到第一個(gè)包的接收確認(rèn)通知之后才能發(fā)送。這是 Nagle 算法導(dǎo)致的。

轉(zhuǎn)換到連接的另一端,HAProxy 需要決定如何確認(rèn)這兩個(gè)包。在 1.4.18 版本中(我們正在用的版本),它是通過 TCP 延遲確認(rèn)通知來實(shí)現(xiàn)的。延遲確認(rèn)對(duì) Nagle 算法有非常糟糕的影響,會(huì)導(dǎo)致請(qǐng)求暫停直到服務(wù)器延遲確認(rèn)超時(shí)。

現(xiàn)在我們解釋這個(gè)段落說的內(nèi)容。

TCP 是一個(gè)通過數(shù)據(jù)包傳輸數(shù)據(jù)的算法

他們的 HTTP 庫將 POST 請(qǐng)求分割成兩個(gè)小的數(shù)據(jù)包發(fā)送

接下來,TCP 采用類似如下的步驟進(jìn)行交互:

application:Hi!這里有一個(gè)數(shù)據(jù)包。

HAProxy:(沉默),等待第二個(gè)包發(fā)送

HAProxy:對(duì)了,我需要返回一個(gè)確認(rèn),不過沒關(guān)系,等會(huì)吧

application: (沉默)

application:好吧,我正在等待確認(rèn),可能現(xiàn)在網(wǎng)絡(luò)延遲比較大

HAProxy:好吧,太煩人了,這是一個(gè)確認(rèn)。

application:好極了,這是第二個(gè)數(shù)據(jù)包!!!

HAProxy:親,我們已經(jīng)搞定了。

這個(gè)過程是不是應(yīng)用程序和 HAProxy 都在消極等待另一方發(fā)送信息?這就是那額外的 200ms。應(yīng)用程序這么做的是因?yàn)?Nagle 算法,而 HAProxy 消息等待的原因是延遲確認(rèn)。

據(jù)我所知,延遲確認(rèn)是所有 Linux 系統(tǒng)的默認(rèn)行為。所以這不是一個(gè)偶然或者異常情況,如果發(fā)送 TCP 數(shù)據(jù)包多一個(gè) 1 個(gè),你就會(huì)遇到這種情況。

現(xiàn)在,我們成為專家了

讀過這篇文章之后我很快就忘了。不過當(dāng)我被額外的 40 毫秒難住的時(shí)候,我又記起來了。

所以我認(rèn)為——這不可能是我的問題,可能嗎?可能嗎??然后我發(fā)了一封郵件給我團(tuán)隊(duì)說:“我想我快要瘋了,但是這可能是 TCP 的問題”。

所以我提交了一次修訂,將我的應(yīng)該調(diào)整為 TCP_NODELAY,然后問題就“嘣”的一聲解決了。

40 毫秒的延遲立馬就消失了。所有的事情都解決了,我就是個(gè)天才。

我們是否應(yīng)該完全停止使用延遲確認(rèn)?

我剛好在 Hacker News 看到 John Nagle (Nagle 算法的創(chuàng)始人)對(duì) @alicemazzy 提到這個(gè)問題的評(píng)論。

本質(zhì)問題是延遲確認(rèn)。200 毫秒的“延遲確認(rèn)”是一個(gè)非常不好的主意,1985 年中,在伯利克(Berkeley)研究 BSD 的人實(shí)際上沒有真正明白這個(gè)問題。延遲確認(rèn)是應(yīng)用層對(duì) 200 毫秒內(nèi)是否響應(yīng)的一場(chǎng)賭博,但是即便每次它都賭輸了,TCP 仍在使用延遲確認(rèn)。

他繼續(xù)說到,確認(rèn)本身是很小并且消耗很低的,延遲確認(rèn)引起的問題可能比它解決的問題還要多。

不懂得 TCP 你就無法解決 TCP 問題

我曾經(jīng)也認(rèn)為,TCP 是一個(gè)相當(dāng)?shù)讓拥膯栴},我不需要明白。大多數(shù)時(shí)候你的確不需要明白。但是有的時(shí)候,當(dāng)你在實(shí)踐中遇到由于 TCP 算法引起的 bug 時(shí),懂點(diǎn) TCP 知識(shí)就變得非常重要了。(正如我們經(jīng)常在博客中討論的,許多事情都是這樣,比如系統(tǒng)調(diào)用和操作系統(tǒng):) )

延遲確認(rèn)及 TCP_NODELAY 的交互非常不好——這對(duì)任何語言實(shí)現(xiàn)的 HTTP 請(qǐng)求都有影響。你不需要很深入的去了解,成為系統(tǒng)程序?qū)<摇5橇私庖稽c(diǎn) TCP 是如何運(yùn)作的,對(duì)我的工作的確大有裨益。通過對(duì) TCP 的學(xué)習(xí),我才意識(shí)到這篇博客所描述的問題也許正好是我所熟悉的領(lǐng)域。我也一直在使用 strace,并且會(huì)一直使用下去。

責(zé)任編輯:何妍 來源: 伯樂在線
相關(guān)推薦

2021-08-04 07:47:19

HTTP網(wǎng)絡(luò)協(xié)議

2014-07-02 16:51:08

WOT2014高效技術(shù)團(tuán)隊(duì)

2020-04-01 17:50:02

Python編程語言

2018-09-25 16:31:35

維諦技術(shù)

2019-08-06 14:54:22

Hadoop數(shù)據(jù)集海量數(shù)據(jù)

2020-10-26 08:34:18

知識(shí)體系普適性

2017-04-29 09:17:28

MySQL優(yōu)化器服務(wù)器

2020-06-01 13:15:57

MySQL優(yōu)化查詢

2017-12-07 15:47:25

2017-12-07 15:28:36

2023-09-19 08:01:33

數(shù)據(jù)格式化程序

2012-12-26 09:25:32

2017-01-18 09:42:11

Go

2017-01-09 12:57:21

Linux

2023-08-30 08:30:09

2024-10-12 14:58:07

2017-10-11 15:50:18

光纖通信傳輸

2021-07-18 08:23:47

校招git編程

2021-03-01 07:34:42

Java泛型ArrayList

2021-07-30 09:32:55

JavaEquals
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产色一区二区| 久久亚洲国产精品| 国产精品视频一区二区图片| 99在线视频精品| 三年中国国语在线播放免费| 97精品视频在线观看自产线路二 | 国产精品麻豆| 久久综合网hezyo| 国产一区二区三区站长工具| 国产精品1234| 天天做综合网| 激情久久av| 久久先锋资源| 国产原创popny丨九色| 久久中文娱乐网| 中国黄色片免费看| 在线观看视频欧美| 日本a在线播放| 中文字幕日韩综合av| 91嫩草国产线观看亚洲一区二区| 欧美成人全部免费| 天天av综合| 欧美污视频久久久| 久久青草欧美一区二区三区| 3d黄动漫网站| 一本一道波多野结衣一区二区| а_天堂中文在线| 两个人的视频www国产精品| 91亚洲国产成人久久精品| 欧美中日韩免费视频| 99热精品一区二区| 国产精品99999| 日韩精品欧美激情| 成人激情免费视频| 中文字幕一区综合| 国产精品私人影院| 交100部在线观看| 91国偷自产一区二区三区的观看方式| 久久精品1区| 色噜噜狠狠一区二区| 欧美三级中文字| 亚洲欧美久久精品| 成人av资源| 成人av网址在线| 最新中文字幕在线| 亚洲精品久久7777777| 精品一区在线| 视频一区二区三区在线观看| 亚洲欧美日韩在线播放| 羞羞的视频在线看| 欧美在线观看日本一区| 久久久久久久波多野高潮日日| 亚洲精品高清国产一线久久| 日韩一区欧美一区| 久久久人成影片一区二区三区在哪下载 | 人人澡人人澡人人看欧美| 蜜桃视频第一区免费观看| 欧美特级aaa| 日韩欧美一级二级三级久久久| 日本成人中文| 亚洲日本无吗高清不卡| 日韩欧美国产成人| 国产精品一区免费在线| 激情伦成人综合小说| 亚洲成人免费电影| 91精品麻豆| 日本a在线天堂| 一本一道波多野结衣一区二区| 国产精品videossex| 欧美一区观看| 午夜精品在线看| 老司机2019福利精品视频导航| 91亚洲精品视频| 久久久综合视频| 日产精品一区| 精品91免费| 亚洲图片激情小说| 亚洲综合网狠久久| 9999在线观看| 亚洲第一精品自拍| 亚洲经典三级| а天堂8中文最新版在线官网| 亚洲3p在线观看| 视频精品二区| 1024精品视频| 亚洲精品视频二区| 狠狠色狠狠色综合| 久久bbxx| 亚洲aa中文字幕| 玉米视频成人免费看| 网站一区二区| 116极品美女午夜一级| 亚洲欧美国产高清va在线播| 国产精品一区二区久久不卡| 国产1区在线| 亚洲精品国产精品国自产| 欧美卡1卡2卡| 日韩欧美中文| 黄网站色大毛片| 久久成人国产精品| 欧美韩日一区二区三区四区| 国产日韩另类视频一区| 国产av人人夜夜澡人人爽麻豆| 亚洲精品成人久久| 狠狠色丁香久久婷婷综| free性欧美| 亚洲精品在线观看免费| 日韩精品在线观| 麻豆成人久久精品二区三区红| 日韩电影毛片| dy888午夜| 欧美裸体男粗大视频在线观看| 不卡av在线网| 国产 日韩 欧美一区| 国产精品欧美激情在线观看 | 色豆豆成人网| 日本黄xxxxxxxxx100| 在线日韩视频| 青草视频在线免费直播| 欧美午夜精品久久久久免费视| 日韩成人免费视频| 国内久久精品视频| 素人啪啪色综合| 777精品久无码人妻蜜桃| 亚洲无限av看| 国产精品入口麻豆原神| 在线精品国产亚洲| 中国在线观看免费国语版电影| 亚洲xxxxx| 亚洲激情中文字幕| 国产成人三级在线观看| 亚洲妇熟xxxx妇色黄| 国产69精品久久久久久久| 久久精品色欧美aⅴ一区二区| 亚洲日本韩国一区| 欧美亚洲国产激情| 综合久久2019| 日韩成人手机在线| 欧美最顶级丰满的aⅴ艳星| 五月激情综合色| 另类小说综合欧美亚洲| 人人精品久久| 久久精品视频91| 欧美与黑人午夜性猛交久久久| 亚洲国产乱码最新视频| 夜夜嗨网站十八久久 | 免费看涩涩视频| www.一区二区三区| 日韩免费视频线观看| 久久久久久一二三区| 精品国产91乱码一区二区三区四区 | 99亚洲伊人久久精品影院红桃| 国产网友自拍视频导航网站在线观看| 久久久久久久香蕉| 久久99热精品| 日韩欧美a级成人黄色| 久久99国产精品麻豆| 国产精品麻豆| 欧美尤物美女在线| 欧妇女乱妇女乱视频| 91久久精品美女高潮| 日韩欧美一级二级三级| 欧美国产日本视频| 国产一区二区三区自拍| 高清一区二区中文字幕| 深夜福利在线视频| 免费国产a级片| 国产精品美女久久| 亚洲缚视频在线观看| 一区二区三区蜜桃网| 奶水喷射视频一区| 国产剧情在线观看一区| av第一福利在线导航| 亚洲精品视频区| 亚洲精品久久久久久久蜜桃臀| 超碰97在线资源| 日韩中文字幕网址| 色综合久久综合中文综合网| 国产凹凸在线观看一区二区| 日韩欧美在线中字| 亚洲欧美在线人成swag| 丝袜美腿av在线| 91黑丝在线| 大陆极品少妇内射aaaaa| 俄罗斯精品一区二区三区| 中文字幕一区二区三中文字幕| 免费人成黄页网站在线一区二区| 福利在线一区| 欧美××××黑人××性爽 | 一区二区三区在线免费| 欧美aa在线视频| 日韩精品电影| 99re成人精品视频| 国产成人欧美日韩在线电影 | 2023国产精品视频| 欧美精品日本| 国产欧美日韩| 久久综合给合| 成人精品视频在线观看| 国产cdts系列另类在线观看|