1. 程式人生 > >數一數網路吞吐量

數一數網路吞吐量

這裡寫圖片描述

提出一個問題

假設有一臺伺服器配了千兆網絡卡,獨佔千兆頻寬,一個業務資料包大小1MB,通過TCP協議傳送,請問這臺服務流量全部跑滿,最大的支援多少吞吐量。

大家可以先思考一下這個問題

瞭解幾個概念

解決這個問題,有必要先了解一下問題中的幾個概念。

千兆網絡卡

網絡卡我們都知道是一種提供計算機與傳輸介質的硬體介面。
這裡寫圖片描述
千兆則是表示傳輸速率,一般傳輸速率是以bit/s為單位,表示每秒傳輸1bit的資料量。
所以千兆網絡卡就是每秒傳輸1000Mb資料量的網絡卡,這裡的資料量都是單向,如果是雙向計算的就是2000Mb/s。
注意這裡的單位都是小b(bit = 位),. 而大B表示位元組(byte) 換算公式1B = 8b

頻寬

頻寬是指在規定時間內從一端流到另一端的資訊量,即資料傳輸率,是一個通訊領域的一個概念。所謂的千兆頻寬也就是每秒的傳輸速率是1000Mb。

TCP協議

我們來簡單看一個簡單協議分層
這裡寫圖片描述
從圖中我們可以看到,應用層協議是最頂層協議,通過TCP協議打包,ip協議包,最後乙太網協議打包這樣生成一個乙太網資料包通過傳輸介質傳輸出去。我們以Http資料協議做為例子,看看整個傳輸流程。
這裡寫圖片描述
所以一個最終發出去的資料不僅只有業務資料包。裡面還有tcp協議,ip協議以及乙太網協議層層打包,如下圖
這裡寫圖片描述
一個乙太網資料包(packet)的大小是固定的,1522位元組。
乙太網資料包(1522Byte) = 乙太網標頭(22B) + IP標頭(20B) + TCP標頭(20B) + 應用層資料包(1460)
這個演算法不包含IP標頭和TCP標頭裡的而外資訊

再來看這個問題

通過以上的概念解釋相信大家已經能計算出來了,只是一個數學問題。
由於業務資料包1MB = 1024 * 1024Byte, 而我們知道乙太網資料包最大隻支援1460B的資料,所以這裡需要分包,1024 * 1024 / 1460 約等於 718
由於網絡卡和頻寬都是千兆所以這裡傳輸速率就是1000Mbps(實際速率以頻寬為準),每個乙太網資料包是1522B,1B = 8b,如果乙太網資料包被填滿,最多可以傳送:1000Mb * 1024 * 1024 / (8 * 1522) = 86118
最終這個每秒吞吐量 86118 / 718 = 119

參考連結

歡迎關注公眾號

這裡寫圖片描述

相關推薦

網路吞吐量

提出一個問題 假設有一臺伺服器配了千兆網絡卡,獨佔千兆頻寬,一個業務資料包大小1MB,通過TCP協議傳送,請問這臺服務流量全部跑滿,最大的支援多少吞吐量。 大家可以先思考一下這個問題 瞭解幾個概念 解決這個問題,有必要先了解一下問題中

(KMP)

sed 思考 ons 技術分享 names while 比賽 post mod 題目鏈接:here 題解:首先找最短的串,長度為minlen, 可知長度更長的串答案一定為0, 而長度等於minlen的串答案相等。 其實稍微想一下就知道了,比賽的時候上來就把K

2019考研數學題源探析經典1000題習題+解析分冊(+二+三)

oss com 圖片 size log type fff process .com 資源鏈接:https://pan.baidu.com/s/1gnDlPrVEQG6bd003Un-5Kg2019考研數學題源探析經典1000題習題+解析分冊(數一+數二+數三)考研數學刷題必

Problem C: 每種字元的個數

0 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 1A : 1B : 1C : 1D : 1E : 1F : 1G : 1H : 1I : 1J : 1K : 1L : 1M : 1N : 1O : 1P : 1Q : 1R : 1S : 1T : 1U : 1

組區間修改,查詢

int strong bit 操作 owb codevs ++ fin 正整數 模板題CODEVS-1082 給你N個數,有兩種操作: 1:給區間[a,b]的所有數增加X 2:詢問區間[a,b]的數的和。 第一行一個正整數n,接下來

NumPy常用函()——構造組函及代碼示例

unp tom 形狀 top instance produce base dom 新的   NumPy是Python的一個科學計算的基本模塊。它是一個Python庫,提供了一個多維數組對象,各種衍生對象(如屏蔽數組和矩陣),以及用於數組,數學,邏輯,形狀操縱,排序,選擇,I

java實現歸據化程序

++ top scan oid mini package void 歸一化 user package org.ansj.test; import java.io.BufferedReader;import java.io.BufferedWriter;import java

10.16輸入一個字符串,內有數字和非字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例如123放在num[0]中,456放在num[1]中……統計共有多少個整數,並輸出這些

tab lnp zip sm2 cuc ycm rds qt5 tft 10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例

重修課程day15(函之內置函

字符串 hashlib模塊 dsa urn 叠代 sys 打開 call class 什麽是內置函數:別人已經定義好了的函數,我們只管拿來調用就好 locals:局部作用域中的變量 globals:全局作用域中的變量 這兩者在全局執行,結果一樣;在局部中locals表示函數

[機器學習系統設計()]據導入,預處理與次二次擬合

畫圖 標簽 參數 殘差 res 模型 pri itl 創建模型 目錄: 1.數據的讀取 2.數據的預處理 3.一次擬合 4.二次擬合 5.分段擬合 6.畫圖 案例:已收集某個網頁每個小時被點擊的次數,第一行數據為小時,第二行數據表示點擊次數。現在需擬合出點擊次數與時間的

Python 函(

外部 odi pre int 結束 uno 中一 utf-8 過去 定義一個函數 函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。 函數內容以冒號起始,並且縮進。 return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶

Hive分析窗口函() SUM,AVG,MIN,MAX

nal text 3.3 如果 htm 相關 com 註意 分析 Hive分析窗口函數(一) SUM,AVG,MIN,MAX Hive分析窗口函數(一) SUM,AVG,MIN,MAX Hive中提供了越來越多的分析函數,用於完成負責的統計分析。抽時間將所有的分析窗口函

python基礎據類型之字典

是你 clear tde city 用戶 bsp upd 存在 2個 摘要:   python基礎一數據類型之一字典,這篇主要講字典。 1,定義字典 2,字典的基礎知識 3,字典的方法 1,定義字典 1,定義1個空字典 dict1 = {} 2,定義字典

Scala學習筆記之基礎語法,條件控制,循環控制,函組,集合

new 增強 指定位置 因此 手動 tex class break 減少 前言:Scala的安裝教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基礎語法學習筆記: 1:聲明val變量:可以使用va

python函

nco span 初識 odin () 字符串 引入 有一個 輸入 函數 一。函數的初識 比如:我們測量一個字符串‘asdfghj’的長度,但是不讓用len()的方法 s = ‘asdfghj‘ count = 0 for i in s: count += 1 p

約瑟夫環-群猴子排成圈,按1,2,…,n依次編號。然後從第1只開始到第m只,把它踢出圈

依次 進行 nbsp log 開始 func unset dump bsp 一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停 的進行下去,直到最後只剩下一只猴子為止,那只猴子就叫

JVM實用參(六) 吞吐量收集器

機制 次數 基於 統計表 周期 間接 討論 建議 reads JVM實用參數(六) 吞吐量收集器 原文鏈接 本文連接 譯者:張軍 校對:梁海艦在實踐中我們發現對於大多數的應用領域,評估一個垃圾收集(GC)算法如何根據如下兩個標準: 吞吐量越高算法越好 暫停時

多對據綁定、template的妙用(微信小程序)

頁面 字母 模擬 exp 後臺 oca emp 監聽 tap (新聞詳情頁面:Detail 新聞首頁:Index 模擬本地數據:posts-data,js) Detail.wxml <image class="head-imag

太多的種簡化方法

work 職責 targe hub git img png 原則 函數參數 我們假設一下,我們有一個方法,擁有多達 20 多個參數,如: 這種情況下,我們可以想象到後續維護時候的痛苦,尤其是,需要增加或者刪除參數的時候。 今天看 Redis 的 Queue 源代碼的時

python學習第十天,函,閉包函,函名,可叠代對象與叠代器globas()l與locals()

技術 占用內存 oba lob port 調用 def 內置函數 報錯 內置函數: dir(str)或dir(‘alex‘) --->看該類型內置的方法有哪些,返回一個列表 dict.__iter__() 或 iter(dict) --->將可叠代對象轉換為叠代