




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
附錄 本書正文中用到了分組經(jīng)過(guò)網(wǎng)絡(luò)傳輸時(shí)傳輸時(shí)間的測(cè)量。本附錄給出其細(xì)節(jié)和我們能夠時(shí)子紹用程序?qū)崿F(xiàn)的TT測(cè)量,向上和向下經(jīng)過(guò)協(xié)議棧的時(shí)間測(cè)量,以及等待時(shí)間與帶寬的差異。采用應(yīng)用程序定時(shí)器。例如,在圖1-1的UDP客戶程序中,我們?cè)谡{(diào)用sendto之前取到了系統(tǒng)時(shí)鐘,在recvfrom函數(shù)返回后又取到了系統(tǒng)時(shí)鐘,其差額就是應(yīng)用程序發(fā)送請(qǐng)求至收到應(yīng)答的時(shí)間。如果內(nèi)核提供了高精度的時(shí)鐘ms數(shù)量級(jí)),則我們所測(cè)得的值(幾毫秒或以上)就很精確。卷的附錄A給出了一測(cè)量方的細(xì)節(jié)。Tcpdump。在卷1的附錄A中有這些工具的細(xì)節(jié)在這本書中,我們假定數(shù)據(jù)鏈路的嵌入點(diǎn)在cpdump中用BSD分組過(guò)濾器(BPF)卷2的第31章給出了BPF實(shí)現(xiàn)的許多細(xì)節(jié)。卷2圖4-1和圖4-19說(shuō)明了在典型以太網(wǎng)驅(qū)動(dòng)程序中哪里要有BPF調(diào)用,圖15-27則說(shuō)明了在環(huán)路測(cè)試驅(qū)動(dòng)程序中的BPF調(diào)用。我們注意到本例子用到的系統(tǒng)(圖1-13),包括80386上的BSD/OS2.0和SparcstationELC上的Solaris2.4,都給應(yīng)用程序計(jì)時(shí)和Tcpdump時(shí)間戳提供高精度的定時(shí)器。利用的RTT測(cè)在卷1的第7章詳細(xì)介紹了無(wú)所不在的程序,利用應(yīng)用定時(shí)器來(lái)計(jì)算ICMP分組的TT(往返時(shí)間)。程序發(fā)送一個(gè)ICMP回顯請(qǐng)求分組給服務(wù)器,服務(wù)器緊接著向客戶回復(fù)一個(gè)回顯應(yīng)答分組??蛻艨梢栽诨仫@請(qǐng)求分組中將發(fā)送時(shí)的時(shí)鐘值作為用戶可選數(shù)據(jù)記錄在該分組中,然后服務(wù)器會(huì)在應(yīng)答中返回這個(gè)時(shí)鐘值??蛻羰盏交仫@應(yīng)答時(shí),它就取當(dāng)前時(shí)鐘值計(jì)算出TT,然后打印出來(lái)。圖A-1給出了分組的格式。
20字 8字 程序允許我們指定分組中可選用戶數(shù)據(jù)的長(zhǎng)度,使我們能夠測(cè)量分組長(zhǎng)度對(duì)RTT的影響。如果是用來(lái)測(cè)量RTT,可選數(shù)據(jù)的長(zhǎng)度必須至少8字節(jié)(客戶發(fā)出和服務(wù)器應(yīng)答的時(shí)間圖A-2畫出了在三個(gè)不同局域網(wǎng)上的主機(jī)間用測(cè)得的RTT典型值。圖中間的一條線是附錄A測(cè)量網(wǎng)絡(luò)時(shí)間計(jì)計(jì)用戶數(shù)據(jù)(字節(jié)圖A-2三個(gè)以太網(wǎng)上的主機(jī)間RTT用158至字節(jié)的用戶數(shù)據(jù)(以100字節(jié)遞增)。加上20字節(jié)的IP首部和8字節(jié)的ICMPIP數(shù)據(jù)報(bào)的長(zhǎng)度就在36~1428字節(jié)之間。對(duì)每一個(gè)分組長(zhǎng)度都進(jìn)行了1010個(gè)值中最小的那個(gè)。與我們所期望的一致,分組長(zhǎng)度增加后TT也增大。三條線之間的差別是因處理器速度、接口卡和操作系統(tǒng)的不同而造成的。圖A-3給出了經(jīng)Internet、WAN互連的各種主機(jī)之間典型的RTT值。注意y軸的刻度與圖A- 經(jīng)Internet(一個(gè)WAN)互連的主機(jī)間RTT 與在LA上測(cè)量那樣,對(duì)AN進(jìn)行了同樣的測(cè)量:對(duì)15個(gè)不同長(zhǎng)度的分組各進(jìn)行了10次測(cè)量,每分長(zhǎng)度只出1個(gè)值最的那個(gè)。中的括中每對(duì)主之的轉(zhuǎn)發(fā)數(shù)。圖中最上邊的曲線(的RTT)表示Internet上分別位于Arizona()和Netherlands(utwente.n1)的一對(duì)主機(jī)之間需要25第2條曲線也是 大洋的,是Connecticut( )和London(ucl.ac.uk)之間的一對(duì)主機(jī)。接下來(lái)兩條曲線在 內(nèi)部,分別是Connecticu和Arizon之間的一對(duì)主機(jī)( 與),以及California和WashingtonD.C.之間的一對(duì)主機(jī)(和)。再接下來(lái)的曲線是地理上很近的一對(duì)主機(jī)(Con 的 和的),但從經(jīng)Internet傳送的轉(zhuǎn)發(fā)段數(shù)(16)來(lái)衡量,卻是離得很遠(yuǎn)的。圖中底部的兩條線(TT值最小的)是作者所在局域網(wǎng)(圖1-13)上的主機(jī)之間的。其中最底下的那條線是從圖A-2LAN上的TT與典型的AN上的TT在最的第2條線,即bsdi和laptop之間的TT線,后者的以太網(wǎng)卡是插在計(jì)算機(jī)的并行口上的。盡管該系統(tǒng)也是接在以太網(wǎng)上的,但由于并行口的傳輸速率較慢,看上去就像是接在AN我們也可以用,并加上Tcpdump來(lái)測(cè)量在協(xié)議棧上花費(fèi)的時(shí)間。例如,圖A-4中就給出了在一臺(tái)主機(jī)上運(yùn)行和Tcpdump,對(duì)環(huán)回測(cè)試地址(一般是),
圖A-4在一臺(tái)主機(jī)上運(yùn) 假設(shè)應(yīng)用程序在就要向操作系統(tǒng)發(fā)出回顯請(qǐng)求分組時(shí)啟動(dòng)定時(shí)器,然后在操作系統(tǒng)返回cpdump測(cè)得的時(shí)間差就分別是ICMPIP輸出、IP輸入和ICMP輸入之間所需的時(shí)間。我們也可以測(cè)量任何客戶—服務(wù)器應(yīng)用程序之間的類似值。圖A-5給出了1.2節(jié)UDP附錄附錄A測(cè)量網(wǎng)絡(luò)時(shí)間計(jì)計(jì) 圖A-5UDP這個(gè)UDP的客戶-服務(wù)器例子與圖A-4的例子之間的一個(gè)不同之處是,這里的UDP服務(wù)器是一個(gè)用戶進(jìn)程,而服務(wù)器則是ICMP內(nèi)核的一部分(卷2圖1-21),UDP器中在內(nèi)核和用戶進(jìn)程之間要有兩份:服務(wù)器輸入和服務(wù)器輸出。內(nèi)核與用戶進(jìn)程之間數(shù)據(jù)通常都是比較費(fèi)時(shí)的操作。圖A-6給出了在主機(jī)bsdi上進(jìn)行的各項(xiàng),可以比較客戶-服務(wù)器和UDP 單個(gè)主機(jī)上(環(huán)回接口)的和Tcpdump測(cè)量結(jié)戶-服務(wù)器這兩種方式。圖中y軸標(biāo)的是“測(cè)得的事務(wù)時(shí)間”,因?yàn)镽TT通常都是指網(wǎng)絡(luò)的往返時(shí)間或的時(shí)間輸出(在圖A-8中可以看到,它與網(wǎng)絡(luò)的RTT非常接近)。在這里的UDP、TCP和T/TCP客戶-服務(wù)器方式中,可以測(cè)量應(yīng)用程序的事務(wù)時(shí)間。在TCP和T/TCP的例子中,在這個(gè)圖的測(cè)量中采用了23100字節(jié)到2000增量為100字節(jié),再加上、和字節(jié)。其中字節(jié)是用來(lái)測(cè)量TT的最短用戶數(shù)據(jù)1508是不會(huì)在IP層分段的最大數(shù)據(jù)長(zhǎng)度,因?yàn)锽SD/OS采用了1536的MTU作為環(huán)測(cè)接口(1508+20+8)。1509字節(jié)則是會(huì)在IP層進(jìn)行分段的最小數(shù)據(jù)長(zhǎng)度。在UDP測(cè)量中也采用了23種類似長(zhǎng)度的分組:用戶數(shù)據(jù)長(zhǎng)度從100字節(jié)到2000字節(jié)變化(增量100),再加上、和。字節(jié)的UDP數(shù)據(jù)報(bào)也是允許的。由于UDP的首部與ICMP回顯測(cè)試分組的首部一樣長(zhǎng)(8字節(jié)),1508又是避免在環(huán)測(cè)接口上分段的最大分組,1509是需要我們首先注意到的是在用戶數(shù)據(jù)為1509字節(jié)時(shí)的時(shí)間跳變,這時(shí)需要分段。這也是想像之中的。當(dāng)出現(xiàn)分段時(shí),在圖A-4和圖A-5中左邊對(duì)“IP輸出”的一次調(diào)用會(huì)產(chǎn)生兩次對(duì)“環(huán)測(cè)驅(qū)動(dòng)程序”的調(diào)用,每段一次。從到,即使用戶數(shù)據(jù)只增加了一個(gè)字節(jié),應(yīng)用程序就感覺到事務(wù)時(shí)間增加了近25%,因?yàn)槎喑鲆粋€(gè)每分組處理時(shí)間。所有4條線中,在200字節(jié)點(diǎn)的時(shí)間增加是由于BSD的mbuf實(shí)現(xiàn)中的非自然處理造成的(卷2的第2章)。對(duì)于最小分組(UDP測(cè)量中的0字節(jié)用戶數(shù)據(jù)和測(cè)量中的8字節(jié)用戶數(shù)據(jù)),數(shù)據(jù)和分組的首部可以寫入一個(gè)mbuf中,在100字節(jié)點(diǎn)需要第二個(gè)mbuf,在200字節(jié)點(diǎn)則需要第三個(gè)mbuf。最后,在300字節(jié)點(diǎn),內(nèi)核開始采用2048字節(jié)的mbuf簇來(lái)代替較小的mbuf來(lái),用一個(gè)mbuf簇比用多個(gè)mbuf會(huì)快一些(例如,在100字節(jié)點(diǎn)),可以減少處理時(shí)間。這是mbuf到采用較大的mbuf簇的切換條件是數(shù)據(jù)量是否超過(guò)208字節(jié),這是在許多年前當(dāng)內(nèi)存還很緊張時(shí)設(shè)計(jì)的。圖1-14中的定時(shí)測(cè)量是用修改后的BSD/OS內(nèi)核實(shí)現(xiàn)的,其中的常數(shù)MINCLSIZE(卷2圖2-7和圖16-25)從208改為101100字節(jié)就分配mbuf1-14中沒(méi)有在200字節(jié)點(diǎn)出現(xiàn)尖角。我們?cè)?411節(jié)也討論過(guò)這個(gè)問(wèn)題,在那里我們看到,許多Web客戶請(qǐng)求都在圖A-6中,開始分段之前,兩條UDP曲線之間的相差在1.5~2ms之間。因?yàn)檫@個(gè)差額已經(jīng)把UDP輸出、IP輸出、IP輸入和UDP輸入(圖A-5)考慮在內(nèi),如果我們假設(shè)協(xié)議的輸出 近于協(xié)議輸入,那么就相當(dāng)于分組發(fā)送時(shí)向下穿過(guò)協(xié)議棧要花不到1ms的時(shí)間,接收時(shí)分組向上穿過(guò)協(xié)議棧又要花不到1ms的時(shí)間。這些時(shí)間包括了發(fā)送時(shí)要將多份數(shù)據(jù)從進(jìn)程傳遞給內(nèi)核,以及數(shù)據(jù)返回時(shí)從內(nèi)核傳遞到進(jìn)程。我們可以預(yù)計(jì)到UDPTcpdump的兩條曲線相差也在1.5~2ms之間(只考慮發(fā)生分段前的值)。與第一個(gè)數(shù)據(jù)點(diǎn)不同,圖A-6中其余的數(shù)據(jù)也在1.5~2ms之間。如果我們考慮發(fā)生了分段以后的值,圖A-6中兩條UDP曲線之間相差2.5~3ms。跟預(yù)期的一樣,UDPTcpdump的值也在2.5~3ms之間。附錄A測(cè)量網(wǎng)絡(luò)時(shí)間計(jì)計(jì)237最后可以看到,圖A-6中,的Tcpdump曲線幾乎是平坦的,但的應(yīng)用程序測(cè)量則Tcpdump則一份也不需要測(cè)量(因?yàn)榉?wù)器是內(nèi)核的ICMP實(shí)現(xiàn)的一部分)。另外,的Tcpdump曲線非常輕微的正斜率很可能是由于內(nèi)核服務(wù)器的兩次操作造成的,這些操作對(duì)我們也可以修改1.3節(jié)和1.4節(jié)的TCP和T/TCP客戶-服務(wù)器應(yīng)用,以測(cè)量每一次事務(wù)的時(shí)間(見1.6節(jié)的敘述),并對(duì)不同分組長(zhǎng)度進(jìn)量。測(cè)量結(jié)果見圖A-7(在本附錄余下的事務(wù)測(cè)量中,我們測(cè)到用戶數(shù)據(jù)長(zhǎng)度為1400字節(jié)就結(jié)束了,因?yàn)門CP不分段)。 cpdump曲線測(cè)量的是從客戶發(fā)出第一個(gè)報(bào)文段(對(duì)TCP客戶是一個(gè)SYN,對(duì)T/TCP則是SYN、數(shù)據(jù)和FIN的組合)至收到服務(wù)器發(fā)回的最后一個(gè)報(bào)文段(對(duì)TCP客戶是一個(gè)FIN,對(duì)T/TCP客戶則是數(shù)據(jù)和FIN的組合)TCP應(yīng)用曲線和TCPcpdump曲線之間的差別也就是協(xié)議棧用于處理connect和FIN所需的時(shí)間(圖1-8給出了分組交換)。T/TCP客戶-服務(wù)器的應(yīng)用曲線和cpdumpsendto所需的時(shí)間,其中包括和最后一個(gè)FIN(圖1-12給出了分組交換)。我們可以看到,兩條T/TCP曲線之間的差距(大約4ms)大于兩條TCP曲線之間的差距大約2.5ms),這是合理的,因?yàn)門/TCP的協(xié)議棧處理量(在第一段報(bào)文中要發(fā)送SYN、數(shù)據(jù)和FIN)比TCP的(第一段報(bào)文中只發(fā)送SYN)4條曲線均在200字節(jié)處開始上升,再次說(shuō)明內(nèi)核應(yīng)該盡快采用mbuf簇。注意,TCP和T/TCP在200字節(jié)處的增加比在圖A-6中和UDP的要大得多。對(duì)于數(shù)據(jù)報(bào)協(xié)議(ICMP和UDP)來(lái)說(shuō),盡管分配了3個(gè)mbuf來(lái)緩存首部和用戶數(shù)據(jù),但內(nèi)核中插口層對(duì)協(xié)議輸出例程的調(diào)用只有一次(卷2的16.7節(jié)稱,該調(diào)用是sosend函數(shù))。而對(duì)流協(xié)議(TCP)來(lái)說(shuō),對(duì)TCP輸出例程的調(diào)用有兩次:一次是前100字節(jié)用戶數(shù)據(jù),另一次是第2個(gè)100字節(jié)用戶數(shù)據(jù)。確實(shí),cpdump證實(shí)了要傳送兩個(gè)100字節(jié)報(bào)文段的事實(shí)。對(duì)協(xié)議輸出例程多了一次調(diào)用就增加了開銷。TCP和T/TCP4ms,對(duì)所有分組長(zhǎng)度幾乎都一樣,因?yàn)門/TCP處理的報(bào)文。圖1-8和圖1-12給出了9個(gè)TCP報(bào)文段和3個(gè)TCP報(bào)文段。報(bào)文段數(shù)的減少明顯減輕了兩端主機(jī)的處理開銷。圖A-8總結(jié)了圖A-6和圖A-7中的、UDP以及T/TCP和TCP客戶-服務(wù)器的應(yīng)用時(shí)間測(cè)量,沒(méi)有考慮cpdump的時(shí)間測(cè)量。 結(jié)果是預(yù)料之中的。所需的時(shí)間最少,沒(méi)有比它更快的了,因?yàn)榉?wù)器是在內(nèi)核中的。UDP需時(shí)間略大于的時(shí)間,因?yàn)閿?shù)據(jù)要在內(nèi)核與服務(wù)器之間兩次以上,但并不大,是UDP所需的最小處理時(shí)間。T/TCP需的時(shí)間大約是UDP的兩倍,因?yàn)楸M管分組數(shù)量與UDP相同,但需要的協(xié)議處理時(shí)間(我們的應(yīng)用程序定時(shí)器并不包括圖1-12中最后的ACK)。TCP的事務(wù)時(shí)間大約比T/TCP多50%,因?yàn)閰f(xié)議需要處理的分組數(shù)較多。圖A-8中UDP、T/TCP和TCP之間的相對(duì)時(shí)間差與圖1-14中的不一樣,因?yàn)榈?章中的測(cè)量是在實(shí)際網(wǎng)絡(luò)上進(jìn)行的,而本附錄中的測(cè)量是在環(huán)測(cè)接口上進(jìn)行的。在網(wǎng)絡(luò)通信中,有兩個(gè)因素在決定交換信息所需的時(shí)間:滯后和帶寬[Bellovin1992]。這附錄A測(cè)量網(wǎng)絡(luò)時(shí)間計(jì)計(jì) RTT不會(huì)低于60ms,除非有人可以提高光速。對(duì)滯后可做的唯一控制是將兩臺(tái)主機(jī)移近,或避 理論上,光波穿越的時(shí)間應(yīng)該是大約16ms,最小的RTT是32ms。60ms是實(shí)際的RTT。作為試驗(yàn),作者曾在分別位于東西海岸的主機(jī)上運(yùn)行過(guò)Traceroute,只觀察橫跨的直達(dá)鏈路兩端的路由器之間的RTT。加州 加州與波士頓之間的RTT是80ms 更快的網(wǎng)絡(luò)即可。例如,如果T1線路還嫌不夠快(大約1544000bit/s),可以租用T3線路(大約45000000bit/s)可以用公園的軟管作恰當(dāng)?shù)谋扔?感謝IanLanceTaylor)一個(gè)問(wèn)題是,網(wǎng)絡(luò)越來(lái)越快(即,帶寬增加),但滯后保持不變。例如,要用橫跨的T1線路發(fā)送100萬(wàn)字節(jié)的數(shù)據(jù)(假設(shè)單程滯后是30ms),需要5.21秒:5.18秒是帶寬決定的,另外0.03秒是滯后造成的。這時(shí)帶寬是主要影響。但是,如果采用T3線路,則總時(shí)間是208ms:178ms30ms是滯后造成的。這時(shí)滯后是帶寬時(shí)延的1/6。而以150000000b/s發(fā)送則需要82ms:52ms30ms是滯后造成的。在最后這個(gè)例子中,滯在圖A-3中,往返滯后基本上就是每條曲線與y軸的相交點(diǎn)。最上面兩條曲線(大202ms和155ms處相交)是和歐洲之間的,接下來(lái)的兩條曲線(在98ms和80ms處相交)是橫跨整個(gè)的,再下面這條(大30ms處相交)是東海岸的兩臺(tái)主機(jī)之間的。隨著帶寬增加,滯后變得越來(lái)越重要,這使得T/TCP更顯優(yōu)越。T/TCP至少使滯后減少了如果T1線路租給Internet服務(wù)商,用于向另一臺(tái)以T1線路連接到Internet的主機(jī)發(fā)送數(shù)例如,在圖A-3為80ms、終止點(diǎn)為193ms的曲線,它是位于Con 的 主機(jī)和位于Arizona的主機(jī)之間的,它與軸相交在80ms處,正好反映了東西海岸之間的TT(運(yùn)行raceroute程序,這在卷1的第8章有詳細(xì)介紹,其結(jié)果說(shuō)明分組的確切路由是從Arizona出發(fā),回到California,然后到exas、WashingtonDC,最后到Connecticut)。但如果我們計(jì)算在T1線發(fā)送1400要7.5ms,因此可以估計(jì)1400字節(jié)分組的T應(yīng)該是95ms值193ms。出現(xiàn)這種情況是因?yàn)榘l(fā)送時(shí)延與中間路由器的數(shù)量成線性關(guān)系,因?yàn)槊總€(gè)路由器都必須在轉(zhuǎn)發(fā)之前接收到整個(gè)數(shù)據(jù)報(bào)??紤]圖A-9中的例子,要從左邊的主機(jī)通過(guò)中間路由器傳送一個(gè)1428字節(jié)長(zhǎng)的分組到右邊的主機(jī)。假設(shè)兩條鏈路都是T1線路,發(fā)出14287.5ms
1ms圖A-9第1個(gè)箭頭,從時(shí)刻0到1是主
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路開挖合同范本
- 買衣服購(gòu)銷合同范本
- 養(yǎng)殖配件小窗采購(gòu)合同范本
- 京津冀外包合同范本
- 農(nóng)民承包樹苗合同范本
- 企業(yè)定制酒合同范本
- 出售農(nóng)機(jī)全套紙合同范本
- 半日制合同范本
- 單位門衛(wèi)聘用合同范本
- 北京正規(guī)購(gòu)車合同范本
- 2025版新能源汽車充電站建設(shè)合同含政府補(bǔ)貼及稅收優(yōu)惠條款
- 初驗(yàn)整改報(bào)告格式范文
- 2025年北京國(guó)資公司招聘筆試參考題庫(kù)含答案解析
- 2023青島版數(shù)學(xué)三年級(jí)下冊(cè)全冊(cè)教案
- 建設(shè)工程總承包EPC建設(shè)工程項(xiàng)目管理方案1
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- (2024)竹產(chǎn)業(yè)生產(chǎn)建設(shè)項(xiàng)目可行性研究報(bào)告(一)
- 《零起點(diǎn)學(xué)中醫(yī)》課件
- 2024年度酒店智能化系統(tǒng)安裝工程合同
- 2025年春部編版四年級(jí)語(yǔ)文下冊(cè)教學(xué)計(jì)劃
- 中建校園招聘二測(cè)題庫(kù)
評(píng)論
0/150
提交評(píng)論