我目前正在使用VisualBasic.NET中的項目,並正在使用原始套接字來構建通過套接字發送的數據包。這是因爲我必須在IP數據包的標頭中設置服務類型字段,而在現代版本的Windows中,Winsock是不可能的。我無法使用Diffserv,因爲應用程序正在與之交談的嵌入式設備要求我使用完整的TOS字段。Microsoft .NET原始套接字類型的服務字段
當前的代碼實現相當簡單,並且工作得非常好 - 但只能在Windows 8中運行。如果代碼在任何其他Windows操作系統(XP或7)上運行,則TOS字段將被覆蓋爲0,無論如何需要爲我正在使用的設備設置爲2)。
我已經瀏覽了互聯網上的所有關於此的提示,並且發現了幾個註冊表更改(所有這些都試圖無效)以及組策略編輯。其中大部分是爲了使得能夠在Winsock中設置TOS字段,該字段僅適用於XP。
我被引導認爲這個問題是由於Windows操作系統的網絡層設置發生了一些變化而引起的,但很難準確地確定發生了什麼變化。
任何幫助,將不勝感激。
作爲更新,我們已經確定它是明確擁塞通知被清零。當嘗試更大的TOS值時,高位被設置,但低位被Windows清除。 – euantorano