(使用Linux)如何使用TCP校驗和與RAW插槽
創建使用raw sockets
TCP
包卸載 - 事實證明,計算校驗是我的瓶頸,在高性能網絡。由於NIC將支持校驗和卸載,並且ethtool
也表示它已啓用,所以我希望可以使用校驗和卸載。
但是,當我使用原始套接字時,似乎不計算校驗和。有沒有辦法使用原始套接字啓用tcp校驗和卸載?
編輯:
其實我的機器的行爲/ NIC(Thinkpad的X201)似乎並沒有太邏輯:發送含有正常的TCP套接字數據包時,所有的校驗和錯誤,環回接口上以及機器之間。有趣的是,另一臺機器悄悄地傳遞數據包呢?
編輯2:好吧,現在我只是看着在錯誤的機器上的數據包,卸載工程。但是當我離開tcp_checksum
字段0時,它沒有被填入,它只是保持爲0.