1. 程式人生 > >Linux設定TCP傳送報文的大小(SEGMENT)

Linux設定TCP傳送報文的大小(SEGMENT)

為了構造特定payload的tcp報文,算是費了一些功夫。 第一次嘗試: 修改介面MTU。發現然而並沒什麼用。。 第二次嘗試 修改MSS,這個MSS是有範圍的,如果payload需要設定成固定的20就沒有辦法了 第三次嘗試 使用setsocketoption來設定傳送的緩衝區為20。發現有效果,通過抓包發現payload的確變成20了,但是傳送報文的速率又降低了, 所以採用了多執行緒+多少socket的方式來實現payload為20 ,然後速度也保持較高的速率。 每次send的20大小的資料包 總結: MSS是可以影響最大的傳輸單元,但是RFC上有規定MSS的最小值,所以對於較小的報文,這個欄位修改然並卵。 通過setsocketoption修改SNDBUF的方式可以直接影響TCP報文的payload欄位;但是傳送速度會降低,所以要採用多socket+多執行緒的方式