TCP實現(xiàn)也必須存儲從它的對等者那里接收的MSS值(默認為536),不發(fā)送任何比MSS大的段,而不管PMTU的值是多少 。在源自4.xBSD的實現(xiàn)中,這需要加入一個附加的字段給TCP狀態(tài)記錄 。
最后,當收到數(shù)據(jù)報太大報文的時候,這意味著一個數(shù)據(jù)報被發(fā)送這個ICMP報文的路由器丟棄 。把它作為任意其它種類被丟棄的段,等待重傳計時器期滿導(dǎo)致這個段重傳,這樣的行為就足夠了 。假如PMTU發(fā)現(xiàn)過程需要一些步驟來估計正確的PMTU,這可能因為要往返許多次數(shù)據(jù)報而造成連接延遲 。
作為選擇,重傳可以在對路徑MTU已改變的通知立即響應(yīng)時發(fā)生,但是這僅僅對于由數(shù)據(jù)報太大報文指定的特定連接 。使用在重傳中的數(shù)據(jù)報尺寸當然應(yīng)該沒有新的PMTU大 。
注重:在響應(yīng)每一個數(shù)據(jù)報太大報文的時候一定不要重傳相同大小的段,因為特大型的段的突發(fā)將造成這樣的報文,所以會重傳同樣的數(shù)據(jù) 。假如新估計的PMTU值仍然錯誤,這個過程重復(fù),送的多余段的數(shù)量將成幾何級增長 。
這意味著當數(shù)據(jù)報太大通知實際上減少已經(jīng)使用在給定的連接中發(fā)送數(shù)據(jù)報的PMTU時,TCP層必須能夠識別,并且忽略任何其它的通知 。
現(xiàn)代的TCP實現(xiàn)把“避免阻塞”和“慢啟動”算法結(jié)合起來提高性能[4] 。不象由TCP重傳超時導(dǎo)致的重傳,由數(shù)據(jù)報太大報文導(dǎo)致的重傳不應(yīng)該改變擁塞窗口 。然而,它應(yīng)該觸發(fā)慢啟動機制(即,只有一個段將被重傳直到確認開始到達) 。
假如發(fā)送者最大窗口的尺寸不是使用中段尺寸的準確的倍數(shù)(這不是擁塞窗口尺寸,它總是段尺寸的倍數(shù)),TCP性能可能降低 。在許多系統(tǒng)中(諸如從4.2BSD中發(fā)展的系統(tǒng)),段尺寸總是設(shè)置為1024字節(jié),最大窗口尺寸(“發(fā)送空間”)總是1024字節(jié)的倍數(shù),所以,這種適當?shù)年P(guān)系保持為默認 。然而,假如PMTU發(fā)現(xiàn)被使用,段尺寸可能不是發(fā)送空間的約數(shù),而且它可能在連接中改變;這意味著當PMTU發(fā)現(xiàn)改變PMTU值時,TCP層可能需要改變傳輸窗口尺寸 。最大窗口尺寸應(yīng)該被設(shè)置為小于或等于發(fā)送者緩沖區(qū)空間尺寸的段尺寸(PMTU-40)的最大倍數(shù) 。
PMTU發(fā)現(xiàn)不影響在TCPMSS選項中發(fā)送的值,因為這個值用在連接的另一端,它可能使用一個不相關(guān)的PMTU值 。
6.5其它傳輸協(xié)議的問題
一些傳輸層協(xié)議(例如ISOTP4[3])在重傳的時候,不答應(yīng)重新打包 。也就是說,一旦試圖傳輸某種尺寸的數(shù)據(jù)報,它的內(nèi)容就不能分成較小的數(shù)據(jù)報重傳 。在這種情況下,原始數(shù)據(jù)報應(yīng)該不設(shè)置DF比特位重傳,答應(yīng)它作必要的分段來到達它的目的地 。當?shù)谝淮蝹鬏數(shù)臅r候,后來的數(shù)據(jù)報應(yīng)該沒有路徑MTU答應(yīng)值大,并且應(yīng)該設(shè)置DF比特位 。
在許多情況下,Sun網(wǎng)絡(luò)文件系統(tǒng)(NFS)使用遠程過程調(diào)用(RPC)協(xié)議[11]發(fā)送必須分段的數(shù)據(jù)報,甚至對第一跳鏈路也是如此 。在某些情況下,這可能提高性能,但是眾所周知它也導(dǎo)致可靠性和性能的問題,尤其是當客戶端和服務(wù)器被路由器分開的時候 。
當涉及到路由器的時候,我們建議NFS實現(xiàn)使用PMTU發(fā)現(xiàn) 。大多數(shù)NFS實現(xiàn)答應(yīng)在安裝的時候改變RPC數(shù)據(jù)報尺寸(間接的,通過改變有效文件系統(tǒng)塊尺寸),但是可能需要一些修改來支持以后的改變 。
而且,因為一個單一的NFS操作不能分開成一些UDP數(shù)據(jù)報,某些操作(主要是在文件名和目錄上的操作)需要可能比PMTU大的最小數(shù)據(jù)報的尺寸 。NFS實現(xiàn)不應(yīng)該減少數(shù)據(jù)報的尺寸小于這個極限值,即使PMTU發(fā)現(xiàn)建議了一個較小的值 。(當然,在這種情況下數(shù)據(jù)報發(fā)送時不應(yīng)該再設(shè)置DF比特位 。)
6.6治理接口
我們建議實現(xiàn)提供一種適合于系統(tǒng)公用程序的方法:
推薦閱讀
- 最大分段 小議TCP的MSS以及MTU
- Z710c的r1jc002版本軟件的新發(fā)現(xiàn)
- vivox23幻彩版怎么去掉照片水印
- P768暫時發(fā)現(xiàn)的不足和我的感覺
- 關(guān)注P768真機以來,發(fā)現(xiàn)的幾個缺點!
- 聯(lián)想z6怎么修改照片存儲路徑
- TCP的路徑MTU發(fā)現(xiàn)問題
- 美顏相機中打馬賽克具體操作流程
- 關(guān)于p768的功能和待機時間
- 世界上最長的蚯蚓是在哪里發(fā)現(xiàn)的
