多個socket同時傳送資料,網絡卡是輪流傳送每個socket資料報嗎?每個包多大?

時間 2021-05-31 13:09:02

1樓:Sinaean Dean

第二個問題,網絡卡發的包多大取決於它在什麼網路。典型的1.4k左右。也有9k左右的。

第乙個問題,不同的socket資料是怎麼排程的?linux下的話,在協議棧和網絡卡之間有乙個叫做queue discipline的多佇列。這個多佇列有多種實現。

你也可以執行時替換他的實現。queue discipline決定的你的多佇列排程方式。可以搜一下qdisc。

這個鏈結很不錯,英語不好的話只看圖也能看明白。https://www.

2樓:wipan

這個問題從軟體層面貫穿了使用者態,核心態,網絡卡驅動,網絡卡這條線,戰線太長比較難回答,只能嘗試回答一下。從核心的角度來說,dev_queue_xmit或net_tx_action呼叫網絡卡驅動提供的hard_start_xmit函式的過程中,完成了從核心到網絡卡驅動buffer的frame移動,在這個中間的Traffic Control應該是將傳輸佇列裡的資料重新整形的最後機會。如下圖,是Understanding Linux Network Internals中的圖,看右邊的部分,說明了這個過程。

問題本身關心的是併發。在呼叫驅動提供的dev->hard_start_xmit時,返回值可能會是NETDEV_TX_LOCKED,說明其他CPU正在占有這個網絡卡driver的鎖,此時傳輸的資料會重新放回到queue裡面等著軟中斷來的時候繼續嘗試傳輸。

再回頭來看看問題中的socket, socket是提供給使用者態程式的系統呼叫,如果有多個使用者態執行緒同時往多個fd裡面寫資料,假設只有乙個core的情況, 核心會將多個ready to run的執行緒依次排程到這個core上去跑,從時序上還是分時的,對於網絡卡來說還算不上併發。如果有多個core, 核心在排程時可以把多個ready to run的執行緒同時排程到不同的core上執行,才有更大機會出現CPU搶占網絡卡driver鎖的競爭。

3樓:

不專業的回答:

socket和網絡卡按照ISO模型隔了網路層,網絡卡還工作在資料鏈路層和物理層

網路層和資料鏈路層都有各種QoS和排程演算法,都會影響傳送順序包大小不超過MTU大小

4樓:車小胖

在乙太網卡的眼裡,沒有socket的概念,從IP層輸送下來的IP包,是一塊塊資料塊,其中,有資料塊的起始位址、資料塊的長度等。

乙太網卡將資料塊copy到自己的傳送空間,採用先進先出(FIFO)的排程機制,將一塊塊資料按序傳送出去。乙太網卡,遵守一條原則,乙個資料塊(IP包),生成乙個以太幀。

這就好比銀行的排隊系統,先來先服務,對於普通使用者來說,為了獲得先服務,必須先到。

但銀行又把使用者分為普通使用者、金卡、白金卡使用者,搞三條隊伍,分別對應三種使用者,不用說,白金卡使用者獲得最優先服務權。

同理,可以使用ToS將不同的應用IP包設定成不同優先順序,IP包發給網絡卡,網絡卡把不同優先順序的IP包放入不同的排隊系統(Queue),至於每個隊伍能獲得多少服務時間,可以通過配置實現,比如下面要介紹到的WFQ。

這些排隊系統的名稱有:

加權公平佇列(WFQ)

基於類的加權公平佇列(Class-Based WFQ)

低延遲佇列(LLQ)

其中LLQ只服務VIP客戶(通常為語音流量),只要該隊伍有客戶,其它隊伍的客戶必須等該客戶服務完,才能得到服務。這樣就可以讓VIP客戶得到最快的服務。

5樓:est

這問題可以轉換為:

「多個程序同時開始以 0000 填充記憶體,CPU是按照什麼排程演算法來填充的?輪流填充麼?每次填充多大?」

網線和光纖裡是怎麼傳送資料的?

七雲網路 網線在網路中屬於物理層,計算機中所需要傳輸的資料根據這些協議被分解成乙個乙個資料報 其中包括本地機和目的機的位址 後,按照一定的原則最後通過網線傳輸給目的機。光纖的一端的發射裝置使用發光二極體 light emitTIng diode,LED 或一束雷射將光脈衝傳送至光纖,光纖的另一端的接...

多頭資料線同時給多個裝置充電,會損壞充電頭或者裝置嗎?

原野.中國 說不會的你們這麼操作過嗎?我朋友這麼做過乙個5V2A的頭子用這種線給兩個手機同時充電結果充電速度特別慢頭子發熱他發現發熱厲害後給我說我給他訓了一頓說他花小錢想解決大事。你想啊,一根線充倆手機,假如乙個手機充電電流是2A兩個併聯在一起理論上需要4A的電流你用乙個2A的頭子它超負荷運轉肯定不...

同時被多個人表白,是怎麼樣的體驗?

Flamingo 我可能會覺的糟糕吧 說實話從小到大各個年級,都會有人給我告白,但是拒絕人的感覺真的太糟糕了。我是那種性格活潑的女孩,所以男生玩的好的就比較多,然後就有幾個好朋友給我告白,被我拒絕然後再也沒聯絡我的都有,所以 m 我現在跟男生玩耍都很有分寸,聊天就是聊天,不會像以前還會打打鬧鬧,也不...