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

全面了解TCP/IP知識體系結構總結

網絡 通信技術
我們從三個維度去分析服務器開發的TCP知識體系,分別為性能法則、設計法則和避坑法則。

一、TCP知識體系

我們從三個維度去分析服務器開發的TCP知識體系,分別為性能法則、設計法則和避坑法則。

全面了解TCP/IP知識體系結構總結(干貨)

二、性能法則

性能法則大致總結如下:

全面了解TCP/IP知識體系結構總結(干貨)

1. 減少數據傳遞

下面引用了左耳朵的"程序員如何用技術變現"文章中的一部分:

全面了解TCP/IP知識體系結構總結(干貨)

從上面我們可以看出減少數據傳遞對于性能是非常重要的。

2. 根據場景設置MTU

如果是內網應用,通過合理設置MTU來提升性能是不能忽視的一種手段;對于移動應用,一般可以設置MTU為1492;對于外網應用,則設置通用的1500。

3. 利用TCP offload

帶寬消耗高的應用,可以考慮利用TCP offload來提升性能。

4. TCP NODELAY

目前服務器程序一般建議設置NODELAY為true,如果需要對小數據包合并,則可以考慮在應用層做數據合并(參考下圖Wikipedia中內容)。

全面了解TCP/IP知識體系結構總結(干貨)

詳細內容請參考:"https://en.wikipedia.org/wiki/Nagle%27s_algorithm"

5. 采用合適的擁塞控制算法

下圖展示了數據包經過路由器Queue的場景。

全面了解TCP/IP知識體系結構總結(干貨)

第一種是最理想的情況,數據包到達路由器,無需等待就能直接轉發出去;第二種是等待一段時間,才能發送出去;第三種是因為路由器queue滿,數據包被路由器丟掉。

發送數據過猛可能導致第三種情況發生。

下面展示了Linux默認算法CUBIC和BBR算法在丟包情況下的吞吐量對比:

全面了解TCP/IP知識體系結構總結(干貨)

從上圖可以看出,BBR擁塞控制算法可以在20%丟包率以下保持吞吐量,因此BBR的抗網絡抖動性比CUBIC要好。

BBR算法優異的根本原因如下:

  • 在有一定丟包率的網絡鏈路上充分利用帶寬
  • 降低路由器的queue占用率,從而降低延遲

一般建議在非網絡擁塞導致丟包的場合使用BBR算法,例如移動應用。

對于帶寬比較大,RTT時間比較長的應用場景,可以參考。

6. 使用REUSEPORT

針對短連接應用(例如PHP應用),為防止服務器應用來不及接收連接請求,可以采用Linux REUSEPORT機制。我們開發的數據庫中間件Cetus利用REUSEPORT機制成功避開了應用短連接的沖擊。

三、設計法則

1. 規避TCP HOL問題

盡量采用多連接,不要采用單個連接來傳遞大量數據。

2. 傳輸盡量平穩,不抖動

如果數據傳輸比較抖動,那么容易導致如下問題:

  • 內存膨脹
  • 性能不穩定
  • 壓縮算法效率低下

在開發數據庫中間件Cetus的時候,我們控制了每次數據傳輸的傳輸量,在采用同樣壓縮算法的情況下,cetus壓縮比遠遠好于MySQL的壓縮比。

3. TCP stream流式傳輸

TCP stream主要用在中間件服務。

下圖是沒有采用TCP stream的交互圖。中間件接收完Server端的響應后,才開始發送給客戶端。不少數據庫中間件采用這樣的工作方式,導致中間件內存消耗巨大。

全面了解TCP/IP知識體系結構總結(干貨)

下圖采用了TCP stream方式后,不僅降低了延遲,也降低了內存消耗(因為無需保留所有響應)。

全面了解TCP/IP知識體系結構總結(干貨)

服務器中間件程序最好實現TCP stream,否則易發生內存炸裂等問題。

4. 上層應用pipeline機制

TCP本身并不具備pipeline機制,但上層應用可以利用pineline機制來提升服務器應用的吞吐量。

下圖是沒有采用pipeline的交互圖,客戶端需接收到服務器響應后才能發送下一個請求。

全面了解TCP/IP知識體系結構總結(干貨)

下圖是采用pipeline的交互圖。客戶端無需等待響應就可以連續發送多個請求。

對于TCP來說,請求1、請求2和請求3看成一個請求,響應1、響應2和響應3看成一個響應;對于上層應用來說,則是3個請求,3個響應。

全面了解TCP/IP知識體系結構總結(干貨)

目前,很多協議或者軟件采用pipeline機制來提升應用的吞吐量,例如HTTP v2協議支持pipeline發送請求,Redis采用pipeline機制來提升應用的吞吐量。

5. 合并小數據

運行TCPCopy的時候,intercept返回響應包的TCP/IP header給tcpcopy。一般TCP/IP header只有幾十字節,如果每次write操作只傳輸一個響應包的TCP/IP header,那么效率就會非常低。為了提升傳輸效率,intercept合并若干個響應包的TCP/IP header信息一起發送。

四、避坑法則4.1 加上keepalive機制

TCP keepalive機制可以用來檢測連接是否還存活,具體可以參考"對付Reset流氓干擾:TCP keepalive"。

1. MTU

參考:"https://wiki.archlinux.org/index.php/Jumbo_frames"

2. 確保網絡通暢

云環境、中途設備程序、TCP offload和負載均衡器或多或少存在一些問題,而這些問題如果不及時解決,會極大影響程序的性能和問題排查。

這方面一般可以通過抓包的方式去查明問題。

下面展示了負載均衡器自身bug導致了網絡不通暢。

由于負載均衡器沒有嚴格按照TCP session的方式進行負載均衡,有些TCP session的數據包跑到了不同的機器,進而導致應用端報請求超時。

最初連接的數據包跑到了180機器。

全面了解TCP/IP知識體系結構總結(干貨)

后來這個連接的數據包跑到了176機器(參考下圖)。

全面了解TCP/IP知識體系結構總結(干貨)

負載均衡器出現這種bug,會造成用戶的極大困擾,很難查明問題原因。

這時要么更換負載均衡器,要么找廠商解決負載均衡器的bug,否則上層應用會一直報網絡超時等問題。

五、總結

對于服務器開發人員,只有了解了TCP知識體系后,開發起來才能夠得心應手,同時可以規避一些潛在的坑。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2010-04-23 09:13:05

Oracle體系結構

2019-09-02 10:20:27

TCPIP協議

2017-03-21 14:16:43

編程體系結構

2015-07-16 10:15:44

web前端知識體系

2020-03-09 10:31:58

vue前端開發

2015-07-28 17:52:36

IOS知識體系

2017-07-25 17:34:54

大數據機器學習數據

2010-06-12 15:49:54

TCP IP協議基礎知

2010-04-20 10:23:06

Oracle入門

2012-03-08 11:13:23

企業架構

2017-06-22 13:07:21

2017-02-27 16:42:23

Spark識體系

2017-04-03 15:35:13

知識體系架構

2012-02-06 17:22:44

MySQL

2014-07-23 09:33:52

2009-07-15 13:46:26

Swing體系結構

2009-06-26 15:58:28

EJB

2009-09-11 10:38:03

LINQ體系結構

2018-06-11 08:46:01

高性能Lustre體系

2016-03-02 15:09:57

Java虛擬機體系結構
點贊
收藏

51CTO技術棧公眾號

国产麻豆9l精品三级站| 亚洲视频福利| 91精品国产色综合久久ai换脸| 亚洲天堂2018av| 欧美aⅴ一区二区三区视频| 国产精品日韩电影| 卡通动漫国产精品| 欧美精品一区二区三区蜜桃视频 | 蜜桃999成人看片在线观看| 国产成人午夜片在线观看高清观看| 神马久久资源| 午夜精品福利一区二区三区蜜桃| 国产肥臀一区二区福利视频| 高清成人免费视频| 偷拍亚洲欧洲综合| xxxx性欧美| 国产精品18久久久久久首页狼| 日韩精品专区在线| 一区二区三区视频免费| 亚洲xxx自由成熟| wwwwww99| 亚洲乱码免费伦视频| 久久九九亚洲综合| 欧美videossex另类| 777久久久精品| 性欧美1819sex性高清大胸| 69堂成人精品免费视频| 米奇777四色精品人人爽| 欧美三级三级三级| 在线观看的网站你懂的| 欧美福利视频一区| 黄色污污视频在线观看| 亚洲国产精品资源| 国产精品成人3p一区二区三区| 鬼打鬼之黄金道士1992林正英| 在线激情小视频| 午夜在线视频观看日韩17c| 一本色道**综合亚洲精品蜜桃冫| 91精品国产乱码久久久久久久久| 日韩欧美看国产| 秋霞午夜av一区二区三区| 国产精品久久久久天堂| 久久久av亚洲男天堂| 久久精品.com| 国内精品久久久久久久影视简单| 国产精品免费视频网站| 日韩av电影在线免费播放| 日韩欧美在线番号| 亚洲破处大片| 欧美男女性生活在线直播观看| 日本精品一区| 毛片网站在线免费观看| 久久99蜜桃精品| 精品视频在线导航| 日韩av资源在线| 国产精品视屏| 狠狠色狠狠色综合日日五| 欧美日韩精品不卡| 欧美最新精品| 亚洲夂夂婷婷色拍ww47| 免费不卡亚洲欧美| 欧美电影免费看| 亚洲综合男人的天堂| 成人免费在线观看入口| 国产精品大片wwwwww| 曰本人一级毛片免费完整视频| 日本一区精品视频| 日韩欧美中文一区二区| 亚洲ww精品| 日韩中文字幕亚洲| 国产精品成人一区二区不卡| 国产一区二区在线视频播放| 欧美精品1区2区| 日本一本不卡| 国产a级网站| 欧美激情视频在线免费观看 欧美视频免费一| 好看的亚洲午夜视频在线| 天天槽夜夜槽| 91精品国产成人www| 成人深夜在线观看| 黑人巨大精品| 日韩视频在线免费播放| 欧美日韩精品电影| 久久机这里只有精品| 日韩av不卡电影| 黄页在线观看免费| 亚洲色图制服诱惑| 97在线资源在| 七七婷婷婷婷精品国产| 国产在线观看不卡| 日韩精品丝袜美腿| 久久伊99综合婷婷久久伊| 国产一区视频在线播放| 国产男女猛烈无遮挡91| 国产一级性片| 粉嫩久久99精品久久久久久夜| 69精品小视频| 加勒比久久高清| 欧美成人激情视频| 欧美美女被草| 亚洲福利在线视频| 成人三级网址| 日韩欧美高清一区| h短视频大全在线观看| 最新国产精品久久精品| 成人在线观看毛片| 久久国产麻豆精品| 午夜欧美性电影| 亚洲综合国产激情另类一区| 96久久精品| 日韩黄色一级片| 午夜宅男在线视频| 亚洲女女做受ⅹxx高潮| 日韩写真在线| 在线电影欧美成精品| ****av在线网毛片| 久久夜色精品国产欧美乱| www.国产精品一区| 日本久久久久久久久| 亚洲成人一区| 欧洲精品在线一区| 久久人人超碰精品| 日本在线天堂| 亚洲成人久久久| 美女网站视频在线| 国产精品久久久久久久久久尿| 成人小视频在线| rebdb初裸写真在线观看| 亚洲影院污污.| 伊人开心综合网| 精品久久ai| 在线观看高清免费视频| 久久精品国产成人| 成人的网站免费观看| 中文字幕在线视频久| 中文字幕一区二区三区精彩视频| 欧美精品一级二级| 亚洲国产电影| 亚洲福利视频在线| 一本一道久久a久久精品| 国产综合网站| 精品久久久中文| 久久男人av| 男裸体无遮挡网站| 91成人免费观看网站| 欧美激情在线一区二区三区| 亚洲图色一区二区三区| 99免费视频观看| 久久在线播放| 超级碰碰视频| 国产成人精品久久二区二区| 亚洲欧美一区二区不卡| 欧美伦理在线视频| 中文字幕在线视频免费观看| 国产精品久久久久久久7电影| 亚洲最快最全在线视频| 欧洲杯什么时候开赛| 国产区在线视频| 欧美一区二区三区四区五区六区| 欧美日韩亚洲综合在线| 国产精品一二| 丁香花在线影院| 男女激情免费视频| 欧美精品一区在线播放| 一区二区三区四区不卡视频 | 91老师片黄在线观看| 视频91a欧美| 免费福利片在线观看| 国产精品白嫩美女在线观看 | 精品无码久久久久久久动漫| 欧美日韩在线一区二区| 亚洲女优在线| 最新日韩精品| jizz欧美激情18| 日产精品99久久久久久| 一本到高清视频免费精品| 国产日韩精品视频一区二区三区| 草美女在线观看| 成年人黄色片视频| 成人国产精品一区| 日韩精品一区二区三区四区视频| 国产精品99久久久久久似苏梦涵| fc2在线中文字幕| www.-级毛片线天内射视视| 欧美激情视频网| 91官网在线免费观看| 国产精品正在播放| 91精品久久久久久综合五月天| 在线看片你懂得| 色综合影院在线观看| 欧美激情极品视频| 欧美性色欧美a在线播放| av日韩在线网站| 一区二区三区午夜探花| 搜成人激情视频| 亚洲欧洲成人| 日韩一级特黄毛片| 91精品中文在线| 中文字幕精品久久久久| 亚洲成人资源在线|