2016-01-31 64 views
0

我是一名學生,現在我正在學習操作系統課程。在學習考試的時候,我偶然發現了一個奇怪的答案,我找不到解釋。網絡緩衝區的最小尺寸

問題:假設我們有一個運行在低物理內存上的操作系統。因此,設計人員決定讓緩衝區(處理所有連接到網絡的工作)儘可能小。什麼是最小的緩衝區大小?

答案:不能用一個字節來實現,但可以用2字節大小來實現。

我的想法:它有4個答案,其中一個是「3個字節以上的」,所以我認爲這是一個正確的答案,因爲爲了建立你需要在列表中可以發送一個報頭的連接tcp/udp或包含所有連接信息的類似包,所以我不知道爲什麼它是正確的答案(根據參考)。也許一些退化的情況?

感謝您的幫助。

+0

看起來像一個奇怪的答案,也是一個奇怪的問題。還有更多的上下文嗎?一個IP頭是20個字節。 – EJP

+0

不幸的是,這是整個問題..我想我錯過了一些東西..但我想我不得不問問寫這個問題的人。 –

+1

我想有一種說法,即一個字節的緩衝區不會爲你購買任何東西,但是有兩個字節的緩衝區,因爲它將寫入下一個階段的時間減半。但是緩衝區必須被管理:有人必須知道他們的地址和長度,這比兩個字節多得多,所以實際上你會想要在更大的緩衝區中分攤這個開銷。 – EJP

回答

0

緩衝區必須至少與網絡上的數據包大小一樣大。這將取決於硬件接口的類型。我知道沒有網絡系統,甚至可以回到撥號時間,使用接近2個字節的任何東西。

也許理論上你可能有一個使用2字節數據包的網絡系統。同樣的邏輯可以讓你使用1字節的數據包(在數據包中傳輸一個字節的小數部分)。

有時我想知道CS教授提出的問題。我想這就是爲什麼:

  1. 那些誰可以做,做;
  2. 那些誰不能做,教;
  3. 那些不能做,不能教,教PE的人。
+0

'一個字節的分數'? – EJP

+0

對4位數據進行編碼,並且對於1字節封裝具有4位開銷。使用兩個數據包來傳輸一個字節。 – user3344003

+0

有時我猜你對CS教授的評論可能是對的,但對我來說不是那麼多,本學期教過我操作系統的人很聰明,他能做到甚至超出你的想象。他是Zcash加密貨幣背後的開發人員之一,他可能會在一天內改變知名的比特幣。但我同意他們有時會問不清楚和困惑的問題。 –