




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章 網(wǎng)絡(luò)流量控制與擁塞控制的測(cè)試及分析第六章 網(wǎng)絡(luò)流量控制與擁塞控制的測(cè)試及分析 6.1 網(wǎng)絡(luò)流量控制 6.1.1流量控制與滑動(dòng)窗口 流量控制是指通過接收方的反饋來控制發(fā)送方發(fā)送速率的技術(shù)。當(dāng)接收方接收數(shù)據(jù)時(shí),將數(shù)據(jù)存放在接收緩沖區(qū)內(nèi),由于緩沖區(qū)的大小總是有限的,當(dāng)接收的數(shù)據(jù)量來得過快過多,接收方來不及處理,接收數(shù)據(jù)很快充滿緩沖區(qū)以致超過容量限度時(shí),會(huì)產(chǎn)生接收緩沖區(qū)溢出,造成數(shù)據(jù)丟失。使用流量控制技術(shù),可以防止接收方的緩沖區(qū)溢出。在接收方將要發(fā)生緩沖區(qū)溢出時(shí),由接收方發(fā)送反饋信息給發(fā)送方:“我的接收緩沖將要溢出,請(qǐng)停止發(fā)送”,發(fā)送方收到反饋信息后會(huì)停止發(fā)送。當(dāng)接收方經(jīng)過一段時(shí)間的處理使接收緩沖騰空、能夠再接收數(shù)據(jù)時(shí),會(huì)向發(fā)送方發(fā)送另一個(gè)反饋信息:“我的接收緩沖已有空,請(qǐng)繼續(xù)發(fā)送”,此時(shí)發(fā)送方就會(huì)繼續(xù)向接收方發(fā)送數(shù)據(jù)。 常用的流量控制方法有停等法和滑動(dòng)窗口法,如果TCP協(xié)議在傳輸數(shù)據(jù)時(shí)采用停等法,每次發(fā)送端發(fā)送一個(gè)TCP報(bào)文段就必須等遠(yuǎn)方的接收端確認(rèn)后才能發(fā)送下一個(gè)報(bào)文段的話,由于網(wǎng)絡(luò)端端傳輸?shù)臅r(shí)延,將耗費(fèi)大量時(shí)間用于等待對(duì)方確認(rèn),這樣會(huì)導(dǎo)致傳輸效率低下。TCP沒有采用停等法,而是采用了滑動(dòng)窗口法進(jìn)行流量控制。 和停等法相比,滑動(dòng)窗口機(jī)制可以提高數(shù)據(jù)傳輸?shù)男?,其一般工作原理如? , 發(fā)送的每個(gè)信息幀都有一個(gè)序號(hào),設(shè)幀序號(hào)用n個(gè)二進(jìn)制位表示,則幀序號(hào)從0到n2,1依次循環(huán)使用; , 發(fā)送方和接收方都具有一定容量的緩沖區(qū)(即窗口),允許發(fā)送站連續(xù)發(fā)送多個(gè)幀而不需要等待應(yīng)答; , 發(fā)送窗口就是發(fā)送端允許連續(xù)發(fā)送的幀的序號(hào)表,發(fā)送端可以不等待應(yīng)答而連續(xù)發(fā)送的最大幀數(shù)稱為發(fā)送窗口的尺寸,其大小W表示在收到對(duì)方確認(rèn)的信息之前,可T以連續(xù)發(fā)出的最多數(shù)據(jù)幀數(shù),只有序號(hào)在窗口內(nèi)的幀才可以發(fā)送; , 接收窗口是接收方允許接收的幀的序號(hào)表,凡落在接收窗口內(nèi)的幀,接收方都必須處理,落在接收窗口外的幀被丟棄。接收方每次允許接收的幀數(shù)稱為接收窗口的尺寸,其大小W為可以連續(xù)接收的最多數(shù)據(jù)幀數(shù),只有序號(hào)在窗口內(nèi)的幀才可以接收,R否則丟棄; , 發(fā)送方可連續(xù)發(fā)送多幀,每次發(fā)送的幀序號(hào)數(shù)為上次幀序號(hào)數(shù)加1,它必須位于發(fā)送窗口內(nèi)。發(fā)送方保存所有已發(fā)送、但未確認(rèn)的數(shù)據(jù)幀,以備出錯(cuò)重發(fā)。連續(xù)發(fā)出多幀后,因還未收到對(duì)方確認(rèn)信息,發(fā)送窗口縮小;當(dāng)收到對(duì)方確認(rèn)回答后,清除已確認(rèn)的幀所占的幀緩沖區(qū),因而發(fā)送窗口擴(kuò)大; , 接收方接收數(shù)據(jù)幀后若未回答,表示此時(shí)幀數(shù)據(jù)還未交上層、其幀緩沖未釋放,故接收窗口縮小;若接收方對(duì)接收的數(shù)據(jù)幀確認(rèn)回答后,表示幀數(shù)據(jù)已交上層,接收緩沖區(qū)空出,因此接收窗口相應(yīng)擴(kuò)大; 圖6.1給出了窗口大小為7,幀序號(hào)為0,7的滑動(dòng)窗口工作過程的示意圖,其中: (a) 為初始狀態(tài)時(shí),發(fā)送方的發(fā)送窗口大小,7,接收方的接收窗口大小,7; (b) 為發(fā)送方發(fā)完0,1,2號(hào)幀、接收方收完0,1,2號(hào)幀后,發(fā)送窗口和接收窗口分別縮小3幀; (c) 為接收方處理完收到的0,1,2號(hào)幀后向發(fā)送方發(fā)出ACK n,3確認(rèn)0,1,2號(hào)幀,接收窗口擴(kuò)大3幀;發(fā)送方收到ACK n,3確認(rèn)了0,1,2號(hào)幀,發(fā)送窗口也擴(kuò)大3幀; (d) 為發(fā)送方發(fā)完3,4,5號(hào)幀后,發(fā)送窗口縮小3幀;接收方收到3,4號(hào)幀后向發(fā)送方發(fā)出ACK n,5確認(rèn)3,4號(hào)幀,接收窗口擴(kuò)大2幀; 圖6.1 滑動(dòng)窗口的工作過程 TCP采用了與上圖類似的滑動(dòng)窗口法進(jìn)行流量控制,但流量控制不用幀序號(hào)計(jì)算而以數(shù)據(jù)字節(jié)的序號(hào)計(jì)算,接收窗口的大小以接收端接收緩沖區(qū)中的空余字節(jié)數(shù)計(jì)算,而不是以接收端可以接收的幀數(shù)計(jì)算,發(fā)送窗口的大小也是以發(fā)送緩沖區(qū)落在發(fā)送窗口內(nèi)可以發(fā)送的字節(jié)數(shù)計(jì)算。接收端用接收窗口中的空余字節(jié)數(shù)及時(shí)地向發(fā)送端作出反饋報(bào)告,以控制發(fā)送端的發(fā)送流量。 6.1.2 ITS-101滑動(dòng)窗口機(jī)制的模擬 為了進(jìn)行網(wǎng)絡(luò)的流量控制實(shí)驗(yàn),在ITS-101協(xié)議分析儀上設(shè)計(jì)了一種與TCP協(xié)議相近的KDP協(xié)議,來直觀地模擬TCP流量控制與擁塞控制等過程。KDP協(xié)議由調(diào)用本實(shí)驗(yàn)預(yù)先設(shè)計(jì)的MDDL程序?qū)崿F(xiàn),用戶不必了解它的實(shí)現(xiàn)方法。下面以兩臺(tái)ITS-101之間的數(shù)據(jù)流傳輸為例說明滑動(dòng)窗口進(jìn)行流量控制的工作過程。 (1)連通兩臺(tái)ITS-101的兩個(gè)Interface1接口,打開Network Message Browser并開啟IP數(shù)據(jù)包的監(jiān)聽功能,如圖6.2所示。 (2)將其中的一臺(tái)ITS1的Interface1接口IP地址設(shè)置為“192.168.1.1”,子網(wǎng)掩碼設(shè)置為“255.255.255.0”,模式選擇“Host”;另一臺(tái)ITS2的Interface1接口IP地址設(shè)置為“192.168.1.2”,子網(wǎng)掩碼也設(shè)置為“255.255.255.0”,模式也選擇“Host”。 圖6.2 開啟IP數(shù)據(jù)包的監(jiān)聽功能 (3)在Host1打開“C:XClientDataMddlTutorialEx12SlidingWindowSender.mddl”文件,按照(2)的設(shè)置修改源IP地址與目標(biāo)IP地址,如圖6.3所示,并“Save”保存。 圖6.3 修改SlidingWindowSender.mddl程序 (4)在Host2打開“C:XClientDataMddlTutorialEx12SlidingWindowReceiver.mddl”文件,也按照(2)的設(shè)置修改源IP地址與目標(biāo)IP地址,如圖6.4所示,并“Save”保存。 (5)在兩臺(tái)主機(jī)上分別點(diǎn)擊Reactor-Reset Reactor菜單,清除掉兩臺(tái)ITS內(nèi)的MDDL程序,然后將SlidingWindowSender.mddl用“Upld”按鈕上載到ITS1,將SlidingWindowReceiver.mddl上載到ITS2。 (6)打開ITS1的IP報(bào)文的發(fā)送窗口(IP Datagram Sender)。在第9欄協(xié)議(Protocol) 部分按下拉箭頭,選擇“User Defined”,并鍵入定義號(hào)“7”,這是ITS設(shè)計(jì)的KDP所使用的編號(hào),不能用其它值代替。將目標(biāo)IP地址設(shè)置為 “192.168.1.2”,數(shù)據(jù)段部分輸入“check”。如圖6.5所示,輸入完成后點(diǎn)擊Send按鈕,發(fā)送該IP報(bào)文。 圖6.4 修改SlidingWindowReceiver.mddl程序 圖6.5 發(fā)送的IP報(bào)文格式 (7)在ITS1觀察Network Message Browser窗口,出現(xiàn)如圖6.6所示的記錄1,6。其中,第1條記錄是ITS-101在數(shù)據(jù)傳輸過程中產(chǎn)生的雜包,這里不需要考慮,用黑線劃掉(注意:下文中用黑線劃掉的傳輸記錄也是沒有意義的雜包)。以下介紹其余5條記錄的含義: , 2號(hào)記錄表示ITS1向ITS2正常發(fā)送了一個(gè)內(nèi)容為“check”的KDP報(bào)文(用戶自定義協(xié)議號(hào)7在報(bào)文瀏覽窗口TYPE欄顯示為“/C8”),該報(bào)文的編號(hào)為“0x00”; , 4號(hào)記錄表示ITS2向ITS1發(fā)送“ACK01”報(bào)文,確認(rèn)“0x00”號(hào)KDP報(bào)文已收到,希望ITS1下次發(fā)“0x01”號(hào)報(bào)文; , 3號(hào)記錄時(shí)間在4號(hào)記錄發(fā)生的時(shí)間之后,表示狀態(tài)為對(duì)方“ACK01”; , 5號(hào)記錄表示狀態(tài)為下面將發(fā)送編號(hào)為“0x01”的KDP報(bào)文; , 6號(hào)記錄表示狀態(tài)為當(dāng)前發(fā)送窗口可用大小(UWND:Usable Window Size)是3。 。 本實(shí)驗(yàn)中,最大發(fā)送窗口和接收窗口都為3圖6.6 啟用滑動(dòng)窗口后發(fā)送端觀測(cè)到的記錄 (8)再點(diǎn)擊圖6.5窗口的Send按鈕,發(fā)送一個(gè)相同的KDP報(bào)文,觀察到如圖6.6所示的記錄7,12,各記錄的含義與(1),(7)中的描述相似,UWND的大小仍為3。 (9)斷開ITS1與ITS2之間的連線,連續(xù)點(diǎn)擊圖6.5窗口的Send按鈕三次,發(fā)送三個(gè)內(nèi)容為“check”的KDP報(bào)文,再迅速重新連通ITS1與ITS2的Interface1接口,可以觀察到如圖6.6所示的記錄13,33,各條記錄的含義如下: , 14、16、18號(hào)記錄分別表示ITS1向ITS2先后發(fā)送了三個(gè)編號(hào)分別為“0x02”、“0x03”、“0x04”的KDP報(bào)文; , 19,21號(hào)記錄表示三個(gè)報(bào)文都沒有收到ACK報(bào)文,都先后進(jìn)行了超時(shí)重傳,如果仍未連通,會(huì)繼續(xù)進(jìn)行重傳; , 22,25號(hào)記錄表示此后鏈路重新連通,ITS1接收到ITS2發(fā)送的確認(rèn)收到“0x02”號(hào)報(bào)文的“ACK03”報(bào)文,此時(shí)由于還未收到“0x03”、“0x04”號(hào)報(bào)文的ACK報(bào)文,UWND的大小變?yōu)?; , 26,29號(hào)記錄表示ITS1接收到ITS2發(fā)送的確認(rèn)收到“0x03”號(hào)報(bào)文的“ACK04”報(bào)文,UWND的大小成為2; , 30,33號(hào)記錄表示ITS1接收到ITS2發(fā)送的確認(rèn)收到“0x04”號(hào)報(bào)文的“ACK05”報(bào)文,UWND的大小恢復(fù)為3; (10)為了便于以下步驟的觀察,點(diǎn)擊工具欄的Reset按鈕,清除Network Message Browser窗口的記錄。 (11)再次斷開ITS1與ITS2之間的連線,發(fā)送一個(gè)編號(hào)為“0x05”的KDP報(bào)文,超時(shí)重傳4次(注意每次重傳的間隔時(shí)間),此后丟棄該報(bào)文,不再重發(fā),如圖6.7所示的記錄17。 (12)重新連通ITS1與ITS2的Interface1接口,發(fā)送一個(gè)編號(hào)為“0x06”的KDP報(bào)文,得到如圖6.7所示的記錄819,各條記錄的含義如下: 圖6.7 出現(xiàn)丟包后發(fā)送端觀測(cè)到的記錄 , 9號(hào)記錄表示ITS1向ITS2發(fā)送了“0x06”號(hào)的KDP報(bào)文; , 12號(hào)記錄表示ITS2向ITS1發(fā)送“ACK05”報(bào)文,希望ITS1發(fā)送“0x05”號(hào)報(bào)文; , 10號(hào)記錄的SACK06表示ITS1本應(yīng)該收到“0x06”號(hào)KDP報(bào)文的ACK,實(shí)際沒有收到,因?yàn)椤?x05”號(hào)KDP報(bào)文沒有到達(dá)ITS2; , 11號(hào)記錄表示狀態(tài)為對(duì)方“ACK05”; , 13號(hào)記錄表示狀態(tài)為本方下次將發(fā)送“0x07”號(hào)KDP報(bào)文; , 14號(hào)記錄表示由于未收到“0x05”號(hào)和“0x06”號(hào)報(bào)文的ACK報(bào)文,這兩個(gè)報(bào)文仍然保持在發(fā)送窗口中,所以可用窗口UWND只有1; , 15,19號(hào)記錄表示ITS1四次超時(shí)重發(fā)“0x06”號(hào)報(bào)文,由于前面“0x05”號(hào)報(bào)文已被ITS1丟棄,而ITS2希望收“0x05”號(hào)報(bào)文,因此ITS1重傳4次“0x06”號(hào)報(bào)文失敗后也將其丟棄; (13)ITS1發(fā)送一個(gè)編號(hào)為“0x07”的KDP報(bào)文,得到如圖6.7所示的記錄2131,各條記錄的含義與(12)中的記錄相似。ITS2發(fā)給ITS1“ACK05”,仍然希望收“0x05”號(hào)報(bào)文。ITS1收不到ITS2的“ACK07”,因此四次超時(shí)重發(fā)“0x07”號(hào)報(bào)文,直到丟棄。由于ITS1發(fā)送窗口中“0x05”、“0x06”、“0x07”號(hào)報(bào)文都沒有收到ACK報(bào)文,都保持在發(fā)送窗口中,所以可用窗口UWND大小為0。 注意:如果重新進(jìn)行實(shí)驗(yàn)時(shí),必須點(diǎn)擊Reactor-Reset Reactor菜單清除兩臺(tái)ITS內(nèi)的MDDL程序,然后將MDDL程序”Upld”重新上載一遍再進(jìn)行實(shí)驗(yàn)。這是因?yàn)樵搶?shí)驗(yàn)中KDP報(bào)文的傳送是有序的,重新執(zhí)行后才會(huì)得到較好的效果。 6.2 網(wǎng)絡(luò)擁塞控制 6.2.1擁塞控制的方法 擁塞是由于網(wǎng)絡(luò)中的數(shù)據(jù)包傳輸過度,如大量數(shù)據(jù)包集中于一個(gè)或者多個(gè)路由節(jié)點(diǎn)引起傳輸延時(shí)過大。當(dāng)擁塞發(fā)生時(shí),除了延時(shí)增加外,路由器還會(huì)保持?jǐn)?shù)據(jù)包,直到它可以發(fā)送,這樣就浪費(fèi)了大量的網(wǎng)絡(luò)資源。為了避免擁塞出現(xiàn),TCP協(xié)議使用了下述機(jī)制:慢啟動(dòng)(Slow-Start)、擁塞避免(Congestion Avoidance)和乘法減少(Multiplicative Decrease),三個(gè)階段互相關(guān)聯(lián)、相結(jié)合使用。 TCP一方面保存每一個(gè)連接的接收窗口大小(對(duì)方接收緩沖區(qū)還有多少空間會(huì)在它送來的反饋報(bào)文里反映)。另一方面,為了進(jìn)行擁塞控制,TCP在擁塞發(fā)生時(shí),使用擁塞窗口(CWND,Congestion Window)來限制發(fā)送端發(fā)送數(shù)據(jù)的多少,公式6-1給出了發(fā)送窗口上限值的計(jì)算方法,實(shí)際允許的發(fā)送窗口應(yīng)等于擁塞窗口與接收窗口兩個(gè)窗口的小者。 (6-1) Allowed_Window,min(Receiver_advertisement, Congestion_window)TCP使用三個(gè)階段進(jìn)行擁塞控制: (1)慢啟動(dòng)階段:每當(dāng)一個(gè)新的TCP連接建立或是經(jīng)過一個(gè)擁塞期之后,如果要增加TCP報(bào)文段的流量,擁塞窗口CWND的計(jì)算都必須由CWND,1開始,即一開始先發(fā)送1個(gè)TCP報(bào)文段(以最大數(shù)據(jù)字段長(zhǎng)度的報(bào)文段為單位計(jì)算,下同),經(jīng)過報(bào)文往返后若沒有超時(shí)情況下收到ACK報(bào)文,擁塞窗口CWND的大小便增加1,變?yōu)?,因此第二次發(fā)送端發(fā)送2個(gè)TCP報(bào)文段,如果在超時(shí)前又收到ACK報(bào)文,則發(fā)送端對(duì)每一個(gè)發(fā)出報(bào)文的確認(rèn)應(yīng)答擁塞窗口CWND便增加1,這樣CWND變?yōu)?,于是發(fā)送端第三次發(fā)送4個(gè)TCP報(bào)文段,依次類推,按每次2倍即指數(shù)增長(zhǎng)的速度遞增擁塞窗口CWND。 (2)擁塞避免階段:當(dāng)擁塞窗口CWND增長(zhǎng)到超過閾值SSTHRESH(Slow Start Threshod)時(shí),便不再按指數(shù)增長(zhǎng)而按照線性增長(zhǎng)。如SSTHRESH,8,則擁塞窗口CWND為8時(shí),發(fā)送端發(fā)出8個(gè)TCP報(bào)文段,當(dāng)8個(gè)報(bào)文確認(rèn)應(yīng)答在超時(shí)前收到,則擁塞窗口只增加1,變?yōu)?,依次類推,擁塞窗口CWND每次按線性增長(zhǎng),變?yōu)?0,11,12,。隨著每次發(fā)送端發(fā)送注入到網(wǎng)絡(luò)里的TCP報(bào)文段增加,發(fā)送通路中的各段鏈路里報(bào)文段越來越多,這個(gè)過程不可能永遠(yuǎn)持續(xù)下去,當(dāng)某次發(fā)送導(dǎo)致發(fā)送通路中的某段鏈路上出現(xiàn)飽和時(shí),TCP報(bào)文段便會(huì)出現(xiàn)丟失,從而導(dǎo)致在發(fā)送端出現(xiàn)超時(shí)、收不到確認(rèn)應(yīng)答。此時(shí)進(jìn)入第三階段:乘法減少階段。 (3)乘法減少階段:當(dāng)發(fā)送超時(shí)發(fā)生后,TCP將閾值SSTHRESH減為當(dāng)時(shí)擁塞窗口CWND值的一半,并且將擁塞窗口CWND急速減小,重新置為1,此后又進(jìn)入新一輪的慢啟動(dòng)增長(zhǎng)。 6.2.2 ITS-101擁塞控制機(jī)制的模擬 本實(shí)驗(yàn)中,仍然使用KDP來直觀地模擬TCP擁塞控制機(jī)制。下面還是以兩臺(tái)ITS-101之間的數(shù)據(jù)流傳輸為例說明利用慢啟動(dòng)、擁塞避免和乘法減少進(jìn)行擁塞控制的工作過程。 (1)連通兩臺(tái)ITS-101的兩個(gè)Interface1接口,打開Network Message Browser并開啟IP數(shù)據(jù)包的監(jiān)聽功能,如圖6.2所示。 (2)將其中的一臺(tái)ITS1的Interface1接口IP地址設(shè)置為“192.168.1.1”,子網(wǎng)掩碼設(shè)置為“255.255.255.0”,模式選擇“Host”;另一臺(tái)ITS2的Interface1接口IP地址設(shè)置為“192.168.1.2”,子網(wǎng)掩碼也設(shè)置為“255.255.255.0”,模式也選擇“Host”。 (3)在Host1打開“C:XClientDataMddlTutorialEx13CongestionWindowSender.mddl”文件,按照?qǐng)D6.8所示進(jìn)行修改并保存。 圖6.8 修改CongestionWindowSender.mddl程序 (4)在Host2打開“C:XClientDataMddlTutorialEx13CongestionWindowReceiver.md dl”文件,按照?qǐng)D6.9所示進(jìn)行修改并保存。 圖6.9 修改CongestionWindowReceiver.mddl程序 (5)在兩臺(tái)主機(jī)上分別點(diǎn)擊Reactor-Reset Reactor菜單,清除掉兩臺(tái)ITS內(nèi)的MDDL程序,然后將CongestionWindowSender.mddl和CongestionWindowReceiver.mddl分別“Upld”上載到ITS1和ITS2。 (6)打開ITS1的IP Datagram Sender窗口。在第9欄協(xié)議(Protocol)部分按下拉箭頭,選擇“User Defined”,并鍵入定義號(hào)“7”,將目標(biāo)IP地址設(shè)置為 “192.168.1.2”,數(shù)據(jù)段部分輸入“check”。與圖6.5所示相同,輸入完成后點(diǎn)擊Send按鈕,發(fā)送該KDP報(bào)文。 (7)在ITS1上觀察Network Message Browser窗口,出現(xiàn)如圖6.10所示的記錄1,5。本節(jié)中用黑線劃掉的傳輸記錄也是沒有意義的雜包。各條記錄的含義如下: , 2號(hào)記錄表示ITS1向ITS2發(fā)送了一個(gè)內(nèi)容為“check”、編號(hào)為“0x00”的KDP報(bào)文(用戶自定義協(xié)議號(hào)7在報(bào)文瀏覽窗口TYPE欄顯示為“/C8”); , 4號(hào)記錄表示ITS2向ITS1發(fā)送確認(rèn)“0x00”號(hào)KDP報(bào)文的“ACK01”報(bào)文,該記錄發(fā)生的時(shí)間在3號(hào)記錄發(fā)生的時(shí)間之前; , 3號(hào)記錄表示狀態(tài)為對(duì)方“ACK01”; , 5號(hào)記錄表示當(dāng)前擁塞窗口(CWND)的大小是1,即慢啟動(dòng)初始值為1。 (8)點(diǎn)擊圖6.5窗口的Send按鈕,再發(fā)送一個(gè)KDP報(bào)文,觀察到如圖6.10所示的記錄6,10,各記錄的含義與(7)相似,CWND的值按指數(shù)增長(zhǎng),結(jié)果變?yōu)榱?012,002。 (9)再發(fā)送一個(gè)KDP報(bào)文,觀察到如圖6.10所示的記錄11,15,CWND的值仍然按指數(shù)增長(zhǎng),結(jié)果變?yōu)榱?022,004。 (10)再發(fā)送一個(gè)KDP報(bào)文,觀察到如圖6.10所示的記錄16,20,此時(shí)CWND的值成線性增長(zhǎng)增加1,變?yōu)?04,1,005。說明已過慢啟動(dòng)門限(SSTHRESH)值4,進(jìn)入擁塞避免階段。 (11)再依次發(fā)送KDP報(bào)文,觀察到如圖6.10所示的記錄21,30,CWND的值仍然按線性增長(zhǎng),每次增加1,依次變?yōu)?06、007。 圖6.10 KDP擁塞控制時(shí)ITS1觀測(cè)到的記錄 圖6.11 連續(xù)發(fā)送KDP報(bào)文后ITS1觀測(cè)到的記錄 (12)再依次發(fā)送14個(gè)KDP報(bào)文,共計(jì)觀測(cè)到100條記錄,最后10條記錄如圖6.11所示。此時(shí)CWND的大小依然按線性增長(zhǎng),每次加1,最后一次為007,114,21。 (13)斷開ITS1與ITS2之間的連線,用來人工模擬擁塞現(xiàn)象發(fā)生,再發(fā)送一個(gè)KDP報(bào)文,此時(shí)收不到對(duì)方確認(rèn)的ACK。當(dāng)出現(xiàn)SSTHRESH的值后,再迅速重新連通ITS1與ITS2的Interface1接口,可以觀察到如圖6.12所示的記錄101,107,各條記錄的含義如下: , 102號(hào)記錄表示ITS1向ITS2發(fā)送了一個(gè)編號(hào)為“0x14”的KDP報(bào)文; , 103號(hào)記錄表示連接斷開,ITS1發(fā)送超時(shí)未收到ACK,認(rèn)為產(chǎn)生了擁塞,向ITS2重發(fā)編號(hào)為“0x14”的KDP報(bào)文; , 104號(hào)記錄表示ITS1將SSTHRESH的值調(diào)整為CWND/2=21/2?11; , 105號(hào)記錄表示連接重新連通,ITS1狀態(tài)為“ACK021”(即希望下次發(fā)送“0x15”號(hào)報(bào)文); , 106號(hào)記錄表示ITS2向ITS1發(fā)送“ACK0x15”報(bào)文; , 107號(hào)記錄表示擁塞發(fā)送后,擁塞窗口CWND的值又調(diào)整為慢啟動(dòng)的初始值1。 圖6.12 擁塞發(fā)生后發(fā)送端觀測(cè)到的記錄 圖6.13 CWND超過閾值后發(fā)送端觀測(cè)到的記錄 (14)再依次發(fā)送三個(gè)相同的KDP報(bào)文,觀察到如圖6.12所示的記錄108,122,此時(shí)由于CWND小于SSTHRESH,它的值成指數(shù)增長(zhǎng),依次變?yōu)?012,002、0022,004、0042,008。 (15)再發(fā)送一個(gè)KDP報(bào)文,觀察到如圖6.12所示的記錄123,127,此時(shí)CWND2,0082,016將會(huì)超過SSTHRESH值011,它的值調(diào)整為011。 (16)再依次發(fā)送5個(gè)KDP報(bào)文,觀察到如圖6.13所示的記錄,此時(shí)由于CWND的值超過SSTHRESH值,它的值按線性增長(zhǎng),每次增加1,依次變?yōu)榱?11、012、013、014、015、016。 注意:在如果重新進(jìn)行該實(shí)驗(yàn)時(shí),也必須點(diǎn)擊Reactor-Reset Reactor菜單清除兩臺(tái)ITS內(nèi)的MDDL程序,然后將MDDL程序重新上載一遍再進(jìn)行實(shí)驗(yàn),才會(huì)得到正確的效果。 6.3 網(wǎng)絡(luò)干擾模擬 6.3.1 網(wǎng)絡(luò)干擾 這里的網(wǎng)絡(luò)干擾可以是由外界各種因素對(duì)通信線路或者通信設(shè)備產(chǎn)生的干擾,也可以是由于網(wǎng)絡(luò)流量的變化對(duì)線路與設(shè)備的傳輸能力產(chǎn)生的干擾。流量控制與擁塞控制一般需要在受到干擾的網(wǎng)絡(luò)中進(jìn)行測(cè)試,用前述方法測(cè)試網(wǎng)絡(luò)時(shí),只是在發(fā)送端與接收端之間使用手工斷開連接的方式來模擬網(wǎng)絡(luò)干擾?使得接收端收不到報(bào)文、發(fā)送端也收不到接收端的ACK確認(rèn)報(bào)文,因而導(dǎo)致發(fā)送端超時(shí)重發(fā)。使用這樣的測(cè)試方法,發(fā)送端既不容易控制,也與實(shí)際網(wǎng)絡(luò)有一定差距。 為了模擬一種更為真實(shí)的網(wǎng)絡(luò)環(huán)境,可在前述實(shí)驗(yàn)中,在兩臺(tái)ITS-101實(shí)驗(yàn)儀中間再插入一臺(tái)ITS-101實(shí)驗(yàn)儀,設(shè)置為Gateway工作方式,模擬通路中的路由器。并編制相應(yīng)的mddl程序“Upld”到該臺(tái)實(shí)驗(yàn)儀中,模擬通路中路由器可能遭受到的各種網(wǎng)絡(luò)干擾。編制相應(yīng)程序名的mddl程序,分別用來模擬以下干擾情形之一: , Packet Lost:網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí)報(bào)文丟失; , Packet Delay:網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí)報(bào)文延遲; , Packet Error:網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí)候報(bào)文損壞; , Bandwidth Limit:網(wǎng)絡(luò)在某時(shí)段某鏈路上所能發(fā)送的報(bào)文數(shù)量與大小受限。 下面以數(shù)據(jù)包丟失和數(shù)據(jù)包延遲為例,說明通路中加插一臺(tái)ITS-101以模擬路由器及相連鏈路受干擾情形的實(shí)現(xiàn)方法,為流量和擁塞控制實(shí)驗(yàn)提供一個(gè)更逼真的網(wǎng)絡(luò)測(cè)試環(huán)境。 6.3.2 運(yùn)用ITS-101模擬數(shù)據(jù)包丟失 下面以一臺(tái)ITS-101模擬中間路由器丟包,首尾兩臺(tái)ITS-101分別模擬數(shù)據(jù)包發(fā)送端和接收端,說明數(shù)據(jù)包丟失的模擬過程。 (1)按照?qǐng)D6.14所示的拓?fù)浣Y(jié)構(gòu)連接三臺(tái)ITS-101,打開Network Message Browser并開啟IP數(shù)據(jù)包和以太幀的監(jiān)聽功能。 圖6.14 本實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) (2)設(shè)置ITS1的IP地址和路由表,如圖6.15所示,點(diǎn)擊“Set&Close”按鈕保存。 圖6.15 ITS1的網(wǎng)絡(luò)配置 (3)設(shè)置ITS3的IP地址和路由表,如圖6.16所示,點(diǎn)擊“Set&Close”按鈕保存。 圖6.16 ITS3的網(wǎng)絡(luò)配置 (4)設(shè)置ITS2的IP地址,并選定“Gateway”模式,點(diǎn)擊“Set&Close”按鈕保存。 (5)在Host2打開“C:XClientDataMddlTutorialEx10PktLost.mddl”文件,該文件中的圖6.18所示的語句可以產(chǎn)生50,的丟包率,點(diǎn)擊“Upld”按鈕將該文件上載到ITS2。 (6)在Host1上編輯ICMP數(shù)據(jù)報(bào)文,如圖6.19所示,輸入完成后點(diǎn)擊“Send”按鈕將該報(bào)文從ITS1的Interface1接口發(fā)送向ITS3的Interface2接口。 (7)連續(xù)點(diǎn)擊“Send”按鈕,發(fā)送多個(gè)圖6.19所示的ICMP報(bào)文,可以發(fā)現(xiàn)有許多報(bào)文收不到回復(fù),這是因?yàn)镮TS1發(fā)送的報(bào)文和從ITS3回復(fù)的報(bào)文有50,的概率被丟棄。 圖6.17 ITS2的網(wǎng)絡(luò)配置 圖6.18 上載PktLost.mddl程序 6.3.3 運(yùn)用ITS-101模擬數(shù)據(jù)包延遲 下面以一臺(tái)ITS-101模擬中間路由器上數(shù)據(jù)包延遲,首尾兩臺(tái)ITS-101分別模擬數(shù)據(jù)包發(fā)送端和接收端,說明數(shù)據(jù)包延遲的模擬過程。 (1),(4)與6.3.2中的(1),(4)操作相同。 (5)在Host2點(diǎn)擊Reactor-Reset Reactor菜單清除ITS2內(nèi)存中以前的MDDL程序,然后打開“C:XClientDataMddlTutorialEx10PktDelay.mddl”文件。該文件使用與PktLost.mddl相同的方法產(chǎn)生了50,的概率,但是這50,概率的數(shù)據(jù)包沒有被丟棄,而是被延遲了1秒傳送。點(diǎn)擊“Upld”按鈕將該文件上載到ITS2。 圖6.19 發(fā)送的ICMP報(bào)文格式 (6)由ITS1向ITS3連續(xù)發(fā)送6個(gè)圖6.19所示的ICMP報(bào)文,得到如圖6.20所示的數(shù)據(jù)包檢測(cè)記錄??梢钥闯?,第2、3個(gè)ICMP報(bào)文的回復(fù)報(bào)文基本沒有延遲;第1、5、6個(gè)ICMP報(bào)文的回復(fù)報(bào)文延遲了大約1秒;第4個(gè)ICMP報(bào)文的回復(fù)報(bào)文延遲了大約2秒。 圖6.20 延遲發(fā)生后發(fā)送端觀測(cè)到的記錄 6.4 實(shí)驗(yàn)六 網(wǎng)絡(luò)流量控制與擁塞控制的測(cè)試及分析 6.4.1 實(shí)驗(yàn)?zāi)康?掌握運(yùn)用滑動(dòng)窗口機(jī)制進(jìn)行流量控制的方法,掌握運(yùn)用慢啟動(dòng)、擁塞避免和乘法減小三階段機(jī)制進(jìn)行擁塞控制的方法。 6.4.2 實(shí)驗(yàn)準(zhǔn)備 (1)實(shí)驗(yàn)設(shè)備 , TCP/IP通信協(xié)議實(shí)驗(yàn)系統(tǒng)一套; , 裝有ITS-101軟件的PC機(jī)3臺(tái)。 (2)預(yù)備知識(shí) , 熟悉TCP流量控制的工作原理,學(xué)習(xí)運(yùn)用ITS-101模擬滑動(dòng)窗口機(jī)制進(jìn)行流量控制的方法; , 熟悉TCP擁塞控制的工作原理,學(xué)習(xí)運(yùn)用ITS-101模擬慢啟動(dòng)、擁塞避免和乘法減小三階段機(jī)制進(jìn)行擁塞控制的方法; , 學(xué)習(xí)運(yùn)用在通路中間加插ITS-101、模擬路由器上數(shù)據(jù)包丟失和數(shù)據(jù)包延遲的方法。 6.4.3 實(shí)驗(yàn)內(nèi)容 圖6.21 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) (1)ITS-101路由器丟包模擬 , 按照?qǐng)D6.21拓?fù)溥B接網(wǎng)絡(luò),設(shè)置IP地址和路由。 , 在ITS2上載“C:XClientDataMddlTutorialEx10PktLost4.mddl”文件。該程序上載后,從ITS1發(fā)出的報(bào)文經(jīng)過ITS2向ITS3轉(zhuǎn)發(fā)時(shí),第4,5n個(gè)報(bào)文會(huì)被丟棄(n,0, 1, 2, 3, 4, )。 , 從ITS1向ITS3發(fā)送圖6.19所示的ICMP報(bào)文,觀察數(shù)據(jù)包丟棄情況,檢查結(jié)果是否與上述說明相符。 (2)ITS-101流量控制測(cè)試 , 參照?qǐng)D6.3,按圖6.21拓?fù)渖辖o出的新地址,將“SlidingWindowSender.mddl”程序中發(fā)送信包的源、目的地址修改為新的ITS1、ITS3地址,然后上載到ITS1。 , 將“PktLost4.mddl”上載到ITS2。 , 參照?qǐng)D6.4,按圖6.21拓?fù)渖辖o出的新地址,將“SlidingWindowReceiver.mddl” 程序中發(fā)送確認(rèn)信包的源、目的地址修改為新的ITS3、ITS1地址,然后上載到ITS3。 , 使用ITS1發(fā)送如圖6.5所示的KDP報(bào)文,在發(fā)送端和接收端觀察數(shù)據(jù)包傳輸狀況,記錄UWND的值。 , 連續(xù)發(fā)送相同的KDP報(bào)文,記錄發(fā)送端UWN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)鏈成本管理實(shí)踐考核試卷
- 2025?;钒踩芾砼嘤?xùn)
- 公司保安工作總結(jié)14篇
- 青春健康與你同行
- 中秋節(jié)給員工的感謝信(15篇)
- 《科學(xué)家的故事》讀書筆記
- 人生的選擇演講稿范文
- 管道工程施工方案
- 歌唱家活動(dòng)策劃方案
- 江蘇省技師學(xué)院活動(dòng)方案
- 嬰幼兒配方乳粉市場(chǎng)銷售管理規(guī)范
- 教科版四年級(jí)下冊(cè)科學(xué)期末測(cè)試卷含完整答案(各地真題)
- 放化療相關(guān)口腔黏膜炎預(yù)防及護(hù)理課件
- 2024時(shí)事政治必考試題庫(kù)附答案(完整版)
- 金融計(jì)量學(xué)智慧樹知到期末考試答案章節(jié)答案2024年山東管理學(xué)院
- 04SG518-3-門式剛架輕型房屋鋼結(jié)構(gòu)(有吊車)
- 基于“教-學(xué)-評(píng)”一體化的初中語文有效教學(xué)策略
- 安全隱患排查月報(bào)
- 硬核贏創(chuàng)新智慧樹知到期末考試答案2024年
- SIYB游戲模塊Ⅱ 學(xué)習(xí)供給與需求
- 科學(xué)認(rèn)識(shí)天氣智慧樹知到期末考試答案2024年
評(píng)論
0/150
提交評(píng)論