我正在處理與網絡相關的項目,並使用DTLS(TLS/UDP)來保護通信。發現最大數據包大小
閱讀DTLS的規範,我注意到DTLS要求設置DF標誌(不要碎片)。
在本地網絡上,如果我嘗試發送大於1500字節的消息,則不會發送任何消息。這很有道理。在Windows上,sendto()報告成功,但沒有發送。
我明明不能手動取消設置DF標誌,因爲它對於DTLS是強制性的,我不確定1500字節限制(MTU?)是否可以在某些情況下更改。我想可以。
所以,我的問題是:「有沒有辦法發現這個限制?」使用API?
如果不是,那麼可能的最低值是多少?
我的軟件UNIX(Linux的/ MAC OSX)和Windows操作系統爲每個操作系統,所以不同的解決方案,歡迎下運行;)
非常感謝。
你是否正在推出自己的DTLS實施或其他? RFC建議他們檢查「需要的碎片和DF設置」錯誤並相應地修改估計的MTU。 http://www.rfc-editor.org/rfc/rfc4347.txt – 2010-03-26 10:51:07
不,我不是在滾動我自己的DTLS實現。我正在使用OpenSSL。我需要讓MTU在發送數據包之前對數據包進行分片。 所以,我需要一種方法來確保我的數據包足夠小,不會被丟棄。 – ereOn 2010-03-26 11:03:33