tcpip詳解卷三事務(wù)協(xié)議,http nntp和unix域_第1頁
tcpip詳解卷三事務(wù)協(xié)議,http nntp和unix域_第2頁
tcpip詳解卷三事務(wù)協(xié)議,http nntp和unix域_第3頁
tcpip詳解卷三事務(wù)協(xié)議,http nntp和unix域_第4頁
tcpip詳解卷三事務(wù)協(xié)議,http nntp和unix域_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

附錄 本書正文中用到了分組經(jīng)過網(wǎng)絡(luò)傳輸時(shí)傳輸時(shí)間的測量。本附錄給出其細(xì)節(jié)和我們能夠測種測子要用程序?qū)崿F(xiàn)的TT測量,向上和向下經(jīng)過協(xié)議棧的時(shí)間測量,以及等待時(shí)間與帶寬的差異。采用應(yīng)用程序定時(shí)器。例如,在圖1-1的UDPsendto之前取到了系統(tǒng)時(shí)鐘,在recvfrom函數(shù)返回后又取到了系統(tǒng)時(shí)鐘,其差額就是應(yīng)用程序發(fā)送請(qǐng)求至收到應(yīng)答的時(shí)間。如果內(nèi)核提供了高精度的時(shí)鐘(m數(shù)量級(jí)),則我們所測得的值(幾毫秒或以上)就很精確。卷1的附錄A給出了這類測方法節(jié)。采用軟件工具來監(jiān)視指定分組,并計(jì)算相應(yīng)的時(shí)間差如嵌入到數(shù)據(jù)鏈路層的Tcpdump。在卷1的附錄A中有這些工具的細(xì)節(jié)在這本書中,我們假定數(shù)據(jù)鏈路的嵌入點(diǎn)在Tcpdump中用BSD分組過濾器(BPF)提供。卷2的第31章給出了BPF實(shí)現(xiàn)的許多細(xì)節(jié)。卷2圖4-1和圖4-19說明了在典型以太網(wǎng)驅(qū)動(dòng)程序中哪里要有BPF調(diào)用,圖15-27則說明了在環(huán)路測試驅(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測在卷1的第7章詳細(xì)介紹了無所不在的程序,利用應(yīng)用定時(shí)器來計(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,然后打印出來。圖A-1給出了分組的格式。2020字首8字首圖A- 程序允許我們指定分組中可選用戶數(shù)據(jù)的長度,使我們能夠測量分組長度對(duì)RTT的影響。如果是用來測量RTT,可選數(shù)據(jù)的長度必須至少8字節(jié)(客戶發(fā)出和服務(wù)器應(yīng)答的時(shí)間戳要占用8個(gè)字節(jié))。如果指定的用戶數(shù)據(jù)長度少于8字節(jié),也能工作,但不能計(jì)算并打印RTT。圖A-2畫出了在三個(gè)不同局域網(wǎng)上的主機(jī)間用測得的RTT典型值。圖中間的一條線是 附錄 附錄A測量網(wǎng)絡(luò)時(shí)間計(jì)計(jì) ::用戶數(shù)據(jù)(字節(jié)圖A-2三個(gè)以太網(wǎng)上的主機(jī) 用15個(gè)不同的分組長度進(jìn)行了測量:8字節(jié)用戶數(shù)據(jù)以及從至字節(jié)的用戶數(shù)據(jù)(以100字節(jié)遞增)。加上20字節(jié)的IP首部和8字節(jié)的ICMP首部,IP數(shù)據(jù)報(bào)的長度就在36~1428字節(jié)之間。對(duì)每一個(gè)分組長度都進(jìn)行了10次測量,圖中只畫出了10個(gè)值中最小的那個(gè)。與我們所期望的一致,分組長度增加后RTT也增大。三條線之間的差別是因處理器速度、接口卡和操圖A-3給出了經(jīng)Internet、WAN互連的各種主機(jī)之間典型的RTT值。注意y軸的刻度與圖A-::用戶數(shù)據(jù)(字節(jié)圖A-3經(jīng)Internet(一個(gè)WAN)互連的主機(jī)間RTT與在LAN上測量那樣,對(duì)AN進(jìn)行了同樣的測量:對(duì)15個(gè)不同長度的分組各進(jìn)行了10次量,每分組度只出了1個(gè)值最小那個(gè)。中的括中是對(duì)主之間轉(zhuǎn)發(fā)數(shù)。圖中最上邊的曲線(的RTT)表示Internet上分別位于Arizona()和Netherlands(utwente.n1)的一對(duì)主機(jī)之間需要25段轉(zhuǎn)發(fā)。自上而下的第2條曲線也是大西洋的,是Connecticut( )和London(ucl.ac.uk)之間的一對(duì)主機(jī)。接下來兩條曲線在內(nèi)部,分別是Connecticu和Arizona之間的一對(duì)主機(jī)( 與),以及California和WashingtonD.C.之間的一對(duì)主機(jī)(和)。再接下來的曲地很一機(jī)(Con 的 和的),但從經(jīng)Internet傳送的轉(zhuǎn)發(fā)段數(shù)(16)來衡量,卻是離得很遠(yuǎn)的。圖中底部的兩條線(TT值最小的)是作者所在局域網(wǎng)(圖1-13)上的主機(jī)之間的。其中最底下的那條線是從圖A-2來的,以便對(duì)典型LAN上的TT與典型的AN上的TT進(jìn)行較。在最的第2條線,即bsdi和lapto之間的TT線,后者的以太網(wǎng)卡是插在計(jì)算機(jī)的并行口上的。盡管該系統(tǒng)也是接在以太網(wǎng)上的,但由于并行口的傳輸速率較慢,看上去就像是接在A上一樣。我們也可以用,并加上Tcpdump來測量在協(xié)議棧上花費(fèi)的時(shí)間。例如,圖A-4中就給出了在一臺(tái)主機(jī)上運(yùn)行和Tcpdump,對(duì)環(huán)回測試地址(一般是),的執(zhí)行步驟應(yīng)應(yīng)用定時(shí)用內(nèi)Tcpdump定時(shí)圖A-4在一臺(tái)主機(jī)上運(yùn)行和假設(shè)應(yīng)用程序在就要向操作系統(tǒng)發(fā)出回顯請(qǐng)求分組時(shí)啟動(dòng)定時(shí)器,然后在操作系統(tǒng)返回cpdump測得的時(shí)間差就分別是ICMPIP輸出、IP輸入和ICMP輸入之間所需的時(shí)間。我們也可以測量任何客戶—服務(wù)器應(yīng)用程序之間的類似值。圖A-5給出了1.2節(jié)UDP輸程程Tcpdump圖A-5UDP客戶-服務(wù)器事務(wù)的處理步這個(gè)UDP的客戶-服務(wù)器例子與圖A-4的例子之間的一個(gè)不同之處是,這里的UDP服務(wù)器是一個(gè)用戶進(jìn)程,而服務(wù)器則是ICMP內(nèi)核的一部分(卷2圖11-21),UDP服務(wù)器中在內(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測測得的務(wù)時(shí)間用戶數(shù)據(jù)(字節(jié)圖A- 單個(gè)主機(jī)上(環(huán)回接口)的和Tcpdump測量結(jié)戶-服務(wù)器這兩種方式。圖中yTT通常都是指網(wǎng)絡(luò)的往返時(shí)間或的時(shí)間輸出(在圖A-8中可以看到,它與網(wǎng)絡(luò)的TT非常接近)。在這里的UDP、TCP和T/TCP客戶-服務(wù)器方式中,可以測量應(yīng)用程序的事務(wù)時(shí)間。在TCP和T/TCP的例子中,這可能要包括多個(gè)分組和多次網(wǎng)絡(luò)TT。在這個(gè)圖的測量中采用了23種不同的分組長度:用戶數(shù)據(jù)從100字節(jié)到2000字節(jié)變化,增量為100字節(jié),再加上、和字節(jié)。其中字節(jié)是用來測量RTT的最短用戶數(shù)據(jù)長度,1508是不會(huì)在IP層分段的最大數(shù)據(jù)長度,因?yàn)锽SD/OS采用了1536的MTU作為環(huán)測接在UDP測量中也采用了23種類似長度的分組:用戶數(shù)據(jù)長度從100字節(jié)到2000字節(jié)變化(增量100),再加上、和。字節(jié)的UDP數(shù)據(jù)報(bào)也是允許的。由于UDP的首部與ICMP回顯測試分組的首部一樣長(8字節(jié)),1508又是避免在環(huán)測接口上分段的最大分組,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)測驅(qū)動(dòng)程序”的調(diào)用,每段一次。從到,即使用戶數(shù)據(jù)只增加了一個(gè)字節(jié),應(yīng)用程25%,因?yàn)槎喑鲆粋€(gè)每分組處理時(shí)間。所有4條線中,在200字節(jié)點(diǎn)的時(shí)間增加是由于BSD的mbuf實(shí)現(xiàn)中的非自然處理造成的(卷2的第2章)。對(duì)于最小分組(UDP測量中的0字節(jié)用戶數(shù)據(jù)和測量中的8字節(jié)用戶數(shù)據(jù))據(jù)和分組的首部可以寫入一個(gè)mbuf中,在100字節(jié)點(diǎn)需要第二個(gè)mbuf,在200字節(jié)點(diǎn)則需要第三個(gè)mbuf。最后,在300字節(jié)點(diǎn),內(nèi)核開始采用2048字節(jié)的mbuf簇來代替較小的mbuf來,用一個(gè)mbuf簇比用多個(gè)mbuf會(huì)快一些(例如,在100字節(jié)點(diǎn)),可以減少處理時(shí)間。這是mbuf到采用較大的mbuf簇的切換條件是數(shù)據(jù)量是否超過208字節(jié),這是在許多年前當(dāng)內(nèi)存還很緊張時(shí)設(shè)計(jì)的。圖1-14中的定時(shí)測量是用修改后的BSD/OS內(nèi)核實(shí)現(xiàn)的,其中的常數(shù)MINCLSIZE(卷2圖2-7和圖16-25)從208改為101100字節(jié)就分配mbuf1-14中沒有在200字節(jié)點(diǎn)出現(xiàn)尖角。我們?cè)?411節(jié)也討論過這個(gè)問題,在那里我們看到,許多Web客戶請(qǐng)求都在圖A-6中,開始分段之前,兩條UDP曲線之間的相差在1.5~2ms之間。因?yàn)檫@個(gè)差額已經(jīng)把UDP輸出、IP輸出、IP輸入和UDP輸入(圖A-5)考慮在內(nèi),如果我們假設(shè)協(xié)議的輸出近于1ms的時(shí)間,接收時(shí)分組向上穿過協(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-6中,的Tcpdump曲線幾乎是平坦的,但的應(yīng)用程序測量則Tcpdump則一份也不需要測量(因?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)用,以測量每一次事務(wù)的時(shí)間(見1.6節(jié)的敘述),并對(duì)不同分組長度進(jìn)量。測量結(jié)果見圖A-7(在本附錄余下的事務(wù)測量中,我們測到用戶數(shù)據(jù)長度為1400字節(jié)就結(jié)束了,因?yàn)門CP不分段)。圖A- 單個(gè)主機(jī)上(環(huán)回接口)的TCP和T/TCP客戶-服務(wù)器事務(wù)時(shí)間測量結(jié)cpdump(對(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)用曲線和TCPcpdumpconnect和FIN所需的時(shí)間(圖1-8給出了分組交換)。T/TCP客戶-服務(wù)器的應(yīng)用曲線和cpdumpsendto所需的時(shí)間,其中包括和最后一個(gè)FIN(圖1-12給出了分組交換)。我們可以看到,兩條T/TCP曲線之間的差距(大約4m)大于兩條TCP曲線之間的差距(大約2.5ms),這是合理的,因?yàn)門/TCP的協(xié)議棧處理量(在第一段報(bào)文中要發(fā)送SYN、數(shù)據(jù)和FIN)比TCP的(第一段報(bào)文中只發(fā)送SYN)要大。4條曲線均在200字節(jié)處開始上升,再次說明內(nèi)核應(yīng)該盡快采用mbuf簇。注意,TCP和T/TCP在200字節(jié)處的增加比在圖A-6中和UDP的要大得多。對(duì)于數(shù)據(jù)報(bào)協(xié)議(ICMP和 3個(gè)mbuf來緩存首部和用戶數(shù)據(jù),但內(nèi)核中插口層對(duì)協(xié)議輸出例程的調(diào)用只有一次(卷2的16.7節(jié)稱,該調(diào)用是sosen函數(shù))。而對(duì)流協(xié)議(TCP)來說,對(duì)TCP輸出例程的調(diào)用有兩次:一次是前100字節(jié)用戶數(shù)據(jù),另一次是第2個(gè)100字節(jié)用戶數(shù)據(jù)。確實(shí),Tcpdump證實(shí)了要傳送兩個(gè)100字節(jié)報(bào)文段的事實(shí)。對(duì)協(xié)議輸出例程多了一次調(diào)用就增加了開銷。TCP和T/TCP4msT/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í)間測量,沒有考慮cpdump的時(shí)間測量。UDP:應(yīng)用程UDP:應(yīng)用程:應(yīng)用程務(wù)時(shí)間用戶數(shù)據(jù)(字節(jié)圖A- 單個(gè)主機(jī)上(環(huán)回接口)的、UDP及TCP和T/TCP客戶-服務(wù)器事務(wù)時(shí)間測結(jié)果是預(yù)料之中的。所需的時(shí)間最少,有比它快的了,因?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)榈?章中的測量是在實(shí)際網(wǎng)絡(luò)上進(jìn)行的,而本附錄中的測量是在環(huán)測接口上進(jìn)行的。在網(wǎng)絡(luò)通信中,有兩個(gè)因素在決定交換信息所需的時(shí)間:滯后和帶寬[Bellovin1992]。這RTT不會(huì)低于60ms,除非有人可以提高光速。對(duì)滯后可做的唯一控制是將兩臺(tái)主機(jī)移近,或避免使用高滯后的路徑(如鏈路)。理論上,光波穿越的時(shí)間應(yīng)該是大約16ms,最小的RTT是32ms。60ms是實(shí)際的RTT。作為試驗(yàn),作者曾在分別位于東西海岸的主機(jī)上運(yùn)行過Traceroute,只加州與波士頓之間的RTT是80ms。另一方面,帶寬度量每個(gè)比特進(jìn)入絡(luò)的速度,發(fā)這個(gè)速度順序?qū)?shù)據(jù)送入網(wǎng)絡(luò)。增加帶只要更的網(wǎng)即可例如如果T1線路還嫌不夠快(大約1544000bit/s),你可以租用T3線路(大約45000000bit/s)可以用公園的軟管作恰當(dāng)?shù)谋扔?感謝IanLanceTaylor):滯后是水從水龍頭流到一個(gè)問題是,網(wǎng)絡(luò)越來快(即,帶寬增加),但滯后保持不變。例如,要用橫跨的T1線路發(fā)送100萬字節(jié)的數(shù)據(jù)(假設(shè)單程滯后是30ms),需要5.21秒:5.18秒是帶寬決定的,另外0.03T3線路,則總時(shí)間是208ms:178ms30ms是滯后造成的。這時(shí)滯后是帶寬時(shí)延的1/6。而以150000000b/s發(fā)送則需要82ms:52ms30ms是滯后造成的。在最后這個(gè)例子中,滯在圖A-3中,往返滯后基本上就是每條曲線與y軸的相交點(diǎn)。最上面兩條曲線(大202ms和155ms處相交)是和歐洲之間的,接下來的兩條曲線(在98ms和80ms處相交)是橫跨整個(gè)的,再下面這條(大30ms處相交)是東海岸的兩臺(tái)主機(jī)之間的。隨著帶寬增加,滯后變得越來越重要,這使得T/TCP更顯優(yōu)越。T/TCP至少使滯后減少了如果T1線路租給Internet服務(wù)商,用于向另一臺(tái)以T1線路連接到Internet的主機(jī)發(fā)送數(shù)例如,在圖A-3中,如果我們來研究起始點(diǎn)為80ms、終止點(diǎn)為193ms的曲線,它是位于Con 的 主機(jī)和位于Arizona的oo.ed主機(jī)之間的,它與y軸相交在80ms處,正好反映了東西海岸之間的TT運(yùn)行Traceroute程序,這在卷1的第8章有詳細(xì)介紹,其結(jié)果說明分組的確切路由是從Arizona出發(fā),回到California,然后到exas、WashingtonDC,最后到Connecticut)。但如果我們計(jì)算在T1線發(fā)送1400要7.5m,因此可以估計(jì)1400字節(jié)分組的T應(yīng)該是95ms值193ms。出現(xiàn)這種情況是因?yàn)榘l(fā)送時(shí)延與中間路由器的數(shù)量成線性關(guān)系,因?yàn)槊總€(gè)路由器都必須A-9中的例子,要從左邊的主機(jī)通過中間路由器傳送一個(gè)1428字節(jié)長的分組到右邊的主機(jī)。假設(shè)兩條鏈路都是T11428字節(jié)大約需要7.5ms 1ms圖A-9數(shù)據(jù)的順序發(fā)第1個(gè)箭頭,從時(shí)刻0到1是主機(jī)處理輸出數(shù)據(jù)報(bào),根據(jù)本附錄前面的測量,假設(shè)它需要1ms。然后這些數(shù)據(jù)被發(fā)送到網(wǎng)絡(luò)上,從開始發(fā)出第1個(gè)比特

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論