2012-11-21 35 views
0

在Linux中,UDP是否使用相同的緩衝區來傳入和傳出數據包?溢出的UDP緩衝區(s)

如果我想溢出這個緩衝區,它應該無關緊要,如果我在C或Python編碼,對不對?

回答

1

linux內核沒有爲每個數據包定義一個或一組緩衝區,但動態創建和銷燬很多緩衝區,因爲數據傳遞到/來自更高層(2和更高層)。

看到Linux網絡在這個非常詳細的文章,並在第4頁特定的外觀上的緩衝如何連接到用於發射網卡,然後儘快銷燬傳輸完成:http://www.linuxjournal.com/article/1312?page=0,0

爲四溢緩衝區,顯然你需要一個能夠手動執行內存操作的語言,但是linux緩衝區是一個帶有控制結構的內存位置,所以如果沒有控制系統的干擾,你可能無法溢出它。

+0

謝謝。我的目標是(以本地方式)將UDP消息發送到服務器的速度,以便服務器在某點之後放棄它們。你認爲這在C和Python中是可行的嗎? (當然,我並不要求代碼,只是爲了得到確認) –

+0

是的,它肯定是可能的,因爲UDP本身並不實現流量控制。然而,你和目標之間的網絡硬件可能會受到干擾。 –

+0

哦,現在它全部在回送接口上,所以它可以工作。謝謝! –