版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
計算機網(wǎng)絡(luò)1中科院研究生院授課教師:魯士文2003.12.11計算機網(wǎng)絡(luò)1中科院研究生
第六章傳輸層學(xué)習(xí)要點傳輸層的功能TCP/IP體系中的傳輸層協(xié)議2中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層學(xué)習(xí)要點2中科院研究生院授課教師:魯?shù)诹聜鬏攲?.1OSI傳輸協(xié)議6.2Internet傳輸協(xié)議 6.2.1 TCP的基本概念6.2.2 TCP報文段的格式
6.2.3 TCP連接的建立、拆除和重置
6.2.4 TCP擁塞控制 6.2.5Internet傳輸協(xié)議UDP
6.2.6Internet關(guān)于端口號的約定
3中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層6.1OSI傳輸協(xié)議3中科院研究生院為什么需要運輸層1、在一個網(wǎng)絡(luò)連接上復(fù)用多對進程的通信。2、解決多互連的通信子網(wǎng)的通信協(xié)議的差異和提供的服務(wù)功能的不同。3、解決網(wǎng)絡(luò)層及下兩層自身不能解決的傳輸錯誤。4中科院研究生院授課教師:魯士文2003.12.11為什么需要運輸層1、在一個網(wǎng)絡(luò)連接上復(fù)用多對進程的通信。4中運輸層與上下層之間的關(guān)系
5中科院研究生院授課教師:魯士文2003.12.11運輸層與上下層之間的關(guān)系5中科院研究生院授課教師:魯士第六章傳輸層在OSI參考模型中,傳輸層的職責(zé)是在兩個不同系統(tǒng)的進程之間提供一種交換數(shù)據(jù)的可靠機制,由于傳輸層僅關(guān)心會話實體之間的數(shù)據(jù)傳輸,所有它的協(xié)議都具有端到端的意義。某些用戶應(yīng)用程序需要絕對保證所有的協(xié)議數(shù)據(jù)單元都被安全地投遞到目的地,而且一個會話實體可以請求一定質(zhì)量的服務(wù),一旦傳輸層提供具有這種質(zhì)量的傳輸連接,它就必須維持這種連接。在傳輸層不能再維持所提供質(zhì)量的情況下,它必須把這一事實明確地通知會話實體。也許,想像傳輸層的最好方法是把它看成一種安全保護罩,不管下面的基礎(chǔ)網(wǎng)絡(luò)發(fā)生什么事件,它都要負責(zé)照料傳輸?shù)臄?shù)據(jù)。
6中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層在OSI參考模型中,傳輸層的職責(zé)是在兩個不同第六章傳輸層傳輸層還執(zhí)行許多其它功能。它的主要作用之一是為更高層協(xié)議屏蔽下層操作的細節(jié)。確實,用戶可以完全不了解支持用戶活動的物理網(wǎng)絡(luò),因為有傳輸層在用戶和網(wǎng)絡(luò)之間提供透明的接口。傳輸層使得高層協(xié)議不用操心如何去獲得所需級別的網(wǎng)絡(luò)服務(wù)。傳輸層的目標(biāo)是在源端機和目的地機之間提供性能可靠、價格合理的數(shù)據(jù)傳輸,而與當(dāng)前實際使用的網(wǎng)絡(luò)無關(guān),任何用戶進程或應(yīng)用程序可以直接訪問傳輸服務(wù),而不必經(jīng)過會話層和表示層,實際上,Internet的傳輸層協(xié)議就是以這種方式工作的。7中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層傳輸層還執(zhí)行許多其它功能。它的主要作用之一是第六章傳輸層傳輸服務(wù)有兩大類:面向連接的傳輸服務(wù)和無連接的傳輸服務(wù)。面向連接的傳輸服務(wù)與面向連接的網(wǎng)絡(luò)服務(wù)十分相似,兩者都向用戶提供連接的建立、維護和釋放。無連接的傳輸服務(wù)與無連接的網(wǎng)絡(luò)服務(wù)也十分相似。在這里,我們不禁要問:“既然傳輸服務(wù)與網(wǎng)絡(luò)服務(wù)如此相似,為什么還要把它們劃分為兩層呢?”這是一個微妙而又關(guān)鍵的問題。事實上。網(wǎng)絡(luò)層是通信子網(wǎng)的一個組成部分,假如網(wǎng)絡(luò)服務(wù)質(zhì)量不可靠,頻繁地丟失分組,網(wǎng)絡(luò)層系統(tǒng)崩潰或不停地發(fā)出網(wǎng)絡(luò)重置,試想將會發(fā)生什么樣的情況呢?
8中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層傳輸服務(wù)有兩大類:面向連接的傳輸服務(wù)和無連接第六章傳輸層因為用戶不能對通信子網(wǎng)加以控制,故無法采用更好的通信處理機來解決網(wǎng)絡(luò)層服務(wù)質(zhì)量低劣的問題,更不可能通過改進數(shù)據(jù)鏈路層糾錯能力來改善低層的條件。解決這一問題的唯一可行辦法就是在網(wǎng)絡(luò)層上面增加一層即傳輸層。傳輸層的存在使得傳輸服務(wù)比網(wǎng)絡(luò)服務(wù)更可靠,分組的丟失、殘缺甚至網(wǎng)絡(luò)重置都可以被傳輸層檢測到,并采取相應(yīng)的補救措施。而且,由于傳輸服務(wù)獨立于網(wǎng)絡(luò)服務(wù),故可以采用一個標(biāo)準(zhǔn)的原語集提供傳輸服務(wù)。而網(wǎng)絡(luò)服務(wù)則因不同的網(wǎng)絡(luò)可能有很大的差異。因為傳輸服務(wù)是標(biāo)準(zhǔn)的,所以用傳輸服務(wù)原語編寫的應(yīng)用程序就能廣泛地適用于各種網(wǎng)絡(luò)。9中科院研究生院授課教師:魯士文2003.12.11第六章傳輸層因為用戶不能對通信子網(wǎng)加以控制,故無法采用更6.1OSI傳輸協(xié)議如果下層的網(wǎng)絡(luò)很可靠,那么用于完成數(shù)據(jù)傳送的傳輸層協(xié)議就不需要做太多工作。如果下層的網(wǎng)絡(luò)是不可靠的,那么就要使用稍微復(fù)雜一點的傳輸協(xié)議機制。為提供面向連接的傳輸服務(wù),ISO定義了5類傳輸協(xié)議。它還定義了一個無連接的傳輸協(xié)議,盡管沒有一個OSI應(yīng)用協(xié)議使用無連接傳輸服務(wù)。我們首先考察面向連接的傳輸服務(wù)COTS(Connection-OrientedTransportService)。有意設(shè)計得很簡單的COTS可使用戶得到一個易于使用的、可靠的傳輸服務(wù)。另一方面,用來提供COTS的傳輸協(xié)議都很復(fù)雜,因為它們要能應(yīng)付不可靠的網(wǎng)絡(luò)。面向連接的傳輸服務(wù)僅含有4個服務(wù)元素:T-CONNECT,T-DATA,T-EXPEDITED-DATA和T-DISCONNECT。傳輸服務(wù)TS的用戶使用T-CONNECT與其對等實體建立全雙工的傳輸連接。在傳輸連接建立期間,兩個TS用戶和傳輸服務(wù)提供者可以協(xié)商服務(wù)質(zhì)量QOS參數(shù)和快速數(shù)據(jù)選項。10中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議如果下層的網(wǎng)絡(luò)很可靠,那么用于完成6.1OSI傳輸協(xié)議有兩個數(shù)據(jù)傳輸服務(wù)元素:T_DATA和T_EXPEDITED_DATA。T_DATA服務(wù)元素為非證實型,但它們能在TS用戶間可靠地傳遞數(shù)據(jù)。如果發(fā)生傳輸故障,傳輸服務(wù)提供者將會向用戶通知故障。沒有證實肯定也就沒有同步,但不一定不可靠。從傳輸用戶的觀點來看,傳輸服務(wù)不會產(chǎn)生錯誤。對實際的網(wǎng)絡(luò)來說,傳送數(shù)據(jù)時當(dāng)然會有錯誤產(chǎn)生,但是,在不可靠的網(wǎng)絡(luò)之上為用戶提供一個可靠的服務(wù)正是傳輸層要達到的目標(biāo)。傳輸層實體接受從網(wǎng)絡(luò)層來的數(shù)據(jù)確認(rèn)和N_RESET服務(wù)原語,并由傳輸層糾正產(chǎn)生的錯誤。當(dāng)一個網(wǎng)絡(luò)連接重置時,傳輸層可以再另建一個新的網(wǎng)絡(luò)連接,并從原網(wǎng)絡(luò)連接中斷處開始繼續(xù)執(zhí)行。如果快速數(shù)據(jù)選項被選擇,那么T_EXPEDITED_DATA服務(wù)元素就用來傳遞快速數(shù)據(jù)。實現(xiàn)者常常約定一次最多可攜帶10個字節(jié)的快速數(shù)據(jù)。11中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議有兩個數(shù)據(jù)傳輸服務(wù)元素:T_DAT6.1OSI傳輸協(xié)議在連接建立后,TS用戶或傳輸服務(wù)提供者都可以使用T_DISCONNECT服務(wù)元素釋放連接。一旦調(diào)用該服務(wù),傳遞中的任何TSDU(傳輸服務(wù)數(shù)據(jù)單元)或ETSDU(快速傳輸服務(wù)數(shù)據(jù)單元)都可能丟失。因此,T_DISCONNECT具有破壞性,它可由傳輸服務(wù)提供者或被呼用戶用于拒絕連接。COTS服務(wù)定義非常簡單。COTS僅是一個抽象的定義,而不是一個接口規(guī)范。接口規(guī)范中含有本地的處理原語和通信原語,例如,它可能包括TS用戶使用什么手段聯(lián)結(jié)到TSAP(傳輸服務(wù)訪問點),TS用戶怎樣檢測從網(wǎng)絡(luò)層進入事件的到來等原語。
12中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議在連接建立后,TS用戶或傳輸服務(wù)提6.1OSI傳輸協(xié)議下面我們再考察一下無連接傳輸服務(wù)CLTS(ConnectionlessTransportService)。CLTS僅提供一個服務(wù)元素T_UNIT_DATA。T_UNIT_DATA有4個參數(shù):源傳輸?shù)刂罚康牡貍鬏數(shù)刂?,TS用戶數(shù)據(jù)和QOS。因為沒有連接建立階段,TS用戶不可能和其服務(wù)提供者協(xié)商QOS。在這種服務(wù)方式中,無法保證可靠的數(shù)據(jù)傳輸,需要靠上層進行適當(dāng)?shù)牟铄e恢復(fù)。圖6-1(a)和(b)分別列出了OSI面向連接的傳輸服務(wù)原語和OSI無連接傳輸服務(wù)原語。其中的參數(shù)含義如下:callee:被呼方傳輸?shù)刂罚═SAP)caller:
呼方傳輸實體使用的傳輸?shù)刂罚═SAP)exp_wanted:
表明是否要發(fā)送加速數(shù)據(jù)的布爾標(biāo)志。QOS:希望的服務(wù)質(zhì)量。User_data:傳輸?shù)拇笥诘扔诹銈€字節(jié)的數(shù)據(jù),這些數(shù)據(jù)不受檢查。Reason:事件發(fā)生的原因。Responder:連接到的目標(biāo)方的傳輸?shù)刂贰?3中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議下面我們再考察一下無連接傳輸服務(wù)C6.1OSI傳輸協(xié)議
14中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議14中科院研究生院授課教師6.1OSI傳輸協(xié)議網(wǎng)絡(luò)服務(wù)和傳輸服務(wù)一個重要的區(qū)別是它們的服務(wù)對象不同。網(wǎng)絡(luò)服務(wù)為傳輸層實體所用,這些傳輸層實體通常是操作系統(tǒng)的一部分,或者裝在一個特殊的硬件板或芯片上,幾乎沒有用戶自己書寫傳輸層實體,因此很少有用戶或應(yīng)用程序能直接看到網(wǎng)絡(luò)服務(wù)。相反,很多用戶并不使用會話層和表示層,他們直接看到傳輸層原語。正如我們早先提到的那樣,Internet網(wǎng)甚至根本就沒有會話層和表示層,因此,所有使用網(wǎng)絡(luò)的應(yīng)用程序都與傳輸原語接口(這些傳輸原語雖然與OSI的傳輸原語不同,但大致相似)。為了說明這一點,可以考慮用UNIX的管道連接起來的進程,這些進程認(rèn)為它們之間的連接是完美的,它們并不想知道有關(guān)數(shù)據(jù)確認(rèn)、N_RESET服務(wù)原語、網(wǎng)絡(luò)擁塞或者任何類似的細節(jié)問題。它們想要的僅是一個完美的連接。進程A從管道的一端放入數(shù)據(jù),進程B從另一端將數(shù)據(jù)取出,這就是面向連接的傳輸服務(wù)的全部意義——將不完善的網(wǎng)絡(luò)服務(wù)隱蔽起來,使得用戶進程能假定存在著一個可靠的無錯的比特流傳送。15中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議網(wǎng)絡(luò)服務(wù)和傳輸服務(wù)一個重要的區(qū)別是6.1OSI傳輸協(xié)議圖6-2示出了OSI各種傳輸層服務(wù)原語之間的關(guān)系。在該圖的8個分圖中,一個傳輸用戶在雙線的左邊,另一個在雙線的右邊,傳輸服務(wù)提供者(即傳輸層本身)則在雙線之間。時序是從上到下,頂上的事件要比底下的事件先發(fā)生。圖6-2(a)說明正常的連接建立過程。圖中用了4個原語。一個傳輸實體執(zhí)行一個稱為T_CONNECT·request的原語,表示它想和這個服務(wù)原語中指定的傳輸服務(wù)訪問點(TSAP)地址相連的傳輸用戶建立連接。T_CONNECT·request服務(wù)原語導(dǎo)致在目的地端產(chǎn)生T_CONNECT.indication服務(wù)原語。與目的端的TSAP地址相連的傳送用戶收到這一indication原語后,如圖6-2(a)所示,既可以發(fā)出T_CONNECT.response服務(wù)原語來表示接受它,也可以如圖6-2(b)所示,發(fā)出T_DISCONNECT.request來拒絕它。接受的結(jié)果返回到連接發(fā)起端為T_CONNECT.confirm服務(wù)原語。拒絕的結(jié)果為T_DISCONNECT·indication服務(wù)原語。16中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議圖6-2示出了OSI各種傳輸層服務(wù)6.1OSI傳輸協(xié)議
17中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議17中科院研究生院授課教師6.1OSI傳輸協(xié)議當(dāng)試圖建立連接時,另外一種情況也可能發(fā)生,如圖6-2(c)所示,這是在傳輸服務(wù)提供者本身拒絕建立連接的情況下發(fā)生的。這也許是由于傳輸層用戶的過錯(如T_CONNECT.request原語中的無效參數(shù)),或者是由于傳輸提供者的原因(如,傳輸服務(wù)提供者的內(nèi)部表空間已使用完)。在這種情況下,網(wǎng)絡(luò)中并沒有傳送任何東西,所以遠端實體對此失敗了的建立連接請求一無所知。18中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議當(dāng)試圖建立連接時,另外一種情況也可6.1OSI傳輸協(xié)議
19中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議19中科院研究生院授課教師6.1OSI傳輸協(xié)議從圖6-2(d)至12-2(f)我們可以看到連接釋放的3種方式。正常的方式是連接的一方發(fā)出一個T_DISCONNECT.request原語,而連接的另一方則收到T_DISCONNECT.indication。無論是連接的建立方或者響應(yīng)方都可以率先發(fā)起釋放連接。當(dāng)連接的雙方同時發(fā)出T_DISCONNECT.request原語時,雙方無需收到斷連指示,連接即可釋放。20中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議從圖6-2(d)至12-2(f)我6.1OSI傳輸協(xié)議
21中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議21中科院研究生院授課教師6.1OSI傳輸協(xié)議最后,如圖6-2(f)所示,傳輸服務(wù)提供者可以通過向連接的雙方直接發(fā)送T_DISCONNECT.indication原語而終止連接。從某種程度上講,最后這種情況有點類似于網(wǎng)絡(luò)層發(fā)送N_RESET.indication原語的情況。顯然,一個設(shè)計良好的傳輸服務(wù)提供者不應(yīng)該輕易地發(fā)T_DISCONNECT.indication原語,只有在沒有其它措施可用的情況下才這樣做。例如,在下層網(wǎng)絡(luò)崩潰而對不斷發(fā)出的通信請求置若罔聞時,傳輸服務(wù)提供者除了斷開所有連接外別無選擇。如果會話層對這一情況未采取任何預(yù)防措施,那么就必須將出錯信息報告給最高層,并且可能要求人工干預(yù),以再次嘗試不成功的命令。
22中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議最后,如圖6-2(f)所示,傳輸服6.1OSI傳輸協(xié)議圖6-2中的最后兩個圖顯示了普通數(shù)據(jù)和加速數(shù)據(jù)的傳輸過程。兩種情況下都沒有顯式的數(shù)據(jù)確認(rèn)或指示送回給數(shù)據(jù)發(fā)送者。傳輸層使用同網(wǎng)絡(luò)層一樣的隊列模型,數(shù)據(jù)通常按順序遞交。但是,傳輸層加速數(shù)據(jù)服務(wù)元素T_EXPEDITED_DATA都可以比已在隊列中的其它數(shù)據(jù)更先一步傳送。這一服務(wù)元素通常僅用于傳送BREAKDEL或中斷鍵等信息,這些信息是用戶為了中斷當(dāng)前程序的執(zhí)行而從終端上輸入的。假如沒有加速數(shù)據(jù),那么試想一下,如果一個用戶從遠地通過傳輸連接與主機相連的遠程終端上啟動一個程序,然后在等待此程序終止之前輸入一行,這時會產(chǎn)生什么樣情況。如果程序進入無限循環(huán)而用戶鍵入的是中斷字符BREAK,那么,此BREAK信息將被加到隊列的末尾,直到運行的進程終止,并且在此BREAK信息之前的隊列項被取走之后它才能遞交給主機。這就造成了死循環(huán)。而使用了加速數(shù)據(jù)請求之后,不管隊列中有什么數(shù)據(jù),此BREAK中斷信息均可立即遞交給主機。
23中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議圖6-2中的最后兩個圖顯示了普通數(shù)6.1OSI傳輸協(xié)議
24中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議24中科院研究生院授課教師6.1OSI傳輸協(xié)議ISO定義了5類面向連接的傳輸協(xié)議,從簡單的到最復(fù)雜的都有。在連接建立時,TE(傳輸實體)在主呼TS用戶請求的QOS基礎(chǔ)上,協(xié)商所使用的傳輸協(xié)議。當(dāng)用戶和一些簡單的網(wǎng)絡(luò)實現(xiàn)打交道時,就可以使用一些復(fù)雜的傳輸協(xié)議,以便能提供更優(yōu)質(zhì)的服務(wù)。5類傳輸協(xié)議的定義與網(wǎng)絡(luò)服務(wù)的類型有關(guān)。ISO定義了3種類型的網(wǎng)絡(luò)服務(wù)。
25中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議ISO定義了5類面向連接的傳輸協(xié)議6.1OSI傳輸協(xié)議
-----3種類型的網(wǎng)絡(luò)服務(wù)(1)A型網(wǎng)絡(luò)服務(wù):A型網(wǎng)絡(luò)服務(wù)本質(zhì)上很完善,其分組丟失、重復(fù)或竄改的概率可以忽略不計。N_RESET很少使用,從而可以忽略。A型服務(wù)僅需要盡可能簡單的傳輸協(xié)議,提供A型服務(wù)的公用廣域網(wǎng)幾乎沒有,但一些小范圍的局部網(wǎng)絡(luò)(如單位內(nèi)部的面向連接的SNA或DECnet網(wǎng)絡(luò)層)提供的服務(wù)卻相當(dāng)接近A型服務(wù)。(2)B型網(wǎng)絡(luò)服務(wù):B型網(wǎng)絡(luò)服務(wù)提供的網(wǎng)絡(luò)連接具有可接受的殘留差錯率和不可接受的被告知的故障率。殘留差錯是指未糾正的而且是網(wǎng)絡(luò)服務(wù)提供者沒有檢測到的差錯,被告知的故障是指網(wǎng)絡(luò)層檢測到的并通知TE予以糾正的故障??筛嬷墓收侠佑校簝?nèi)部擁擠,硬件問題,軟件故障等。它需要傳輸協(xié)議建立新的網(wǎng)絡(luò)連接和重新同步。也就是說,B型網(wǎng)絡(luò)服務(wù)具有完美的分組遞交,但有N_RESET指示存在。公共X.25網(wǎng)提供的服務(wù)屬于B型網(wǎng)絡(luò)服務(wù)。26中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
-----3種類型的網(wǎng)絡(luò)服務(wù)(6.1OSI傳輸協(xié)議
-----3種類型的網(wǎng)絡(luò)服務(wù)(3)C型網(wǎng)絡(luò)服務(wù):C型網(wǎng)絡(luò)服務(wù)相當(dāng)不可靠,具有不可接受的殘留差錯率和不可接受的被告知故障率的網(wǎng)絡(luò)連接。即使發(fā)生了數(shù)據(jù)丟失、重復(fù)、失序或被篡改等事件,這種網(wǎng)絡(luò)也不可能檢測到差錯。因此,駐留在C型網(wǎng)絡(luò)服務(wù)之上的傳輸協(xié)議是最為復(fù)雜的。提供單純的無連接(數(shù)報報)服務(wù)的廣域網(wǎng)、無線電分組交換網(wǎng)和很多互連網(wǎng)(如IP)均屬此類。
27中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
-----3種類型的網(wǎng)絡(luò)服務(wù)(6.1OSI傳輸協(xié)議
--5類傳輸協(xié)議基于3種類型的網(wǎng)絡(luò)服務(wù),ISO定義了5類運輸協(xié)議:·0類:簡單類·1類:基本差錯恢復(fù)類·2類:多路復(fù)用類·3類:差錯恢復(fù)與多路復(fù)用類·4類:差錯檢測與恢復(fù)類
0類和2類用于A型網(wǎng)絡(luò),1類和3類用于B型網(wǎng)絡(luò),4類用于C型網(wǎng)絡(luò)。
28中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
--5類傳輸6.1OSI傳輸協(xié)議
--5類傳輸協(xié)議(1)TP0:由CCITT為智能用戶電報終端研制的0類協(xié)議,提供了最簡單的協(xié)議機制,以支持A型網(wǎng)絡(luò)。它為一個傳輸連接建立一個網(wǎng)絡(luò)連接,要求并假定網(wǎng)絡(luò)連接不會出錯。依靠下面網(wǎng)絡(luò)層對數(shù)據(jù)的正確傳送,傳輸協(xié)議不再進行排序和流控。它只提供建立和釋放連接的機制。29中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
--5類傳6.1OSI傳輸協(xié)議
--5類傳輸協(xié)議(2)TP1:為能在X.25網(wǎng)絡(luò)(B類)高層上運行設(shè)計的1類協(xié)議,提供了具有最小服務(wù)的連接,即從網(wǎng)絡(luò)可通告的故障中恢復(fù)的能力。1類除包括從N_RESET中恢復(fù)的功能外與0類相似。如果一個給定的傳輸連接使用的網(wǎng)絡(luò)連接受到N_RESET的影響,那么傳輸連接兩端的兩個傳輸實體就進行一次重新同步,然后從中斷處開始繼續(xù)運行。為了進行重新同步,它們必須跟蹤數(shù)據(jù)的順序號,而這在0類中是不需要的。除了從N-RESET中恢復(fù)的能力以外,1類傳輸協(xié)議在網(wǎng)絡(luò)提供的功能之上不再提供任何錯誤控制或流控制。
30中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
--5類傳6.1OSI傳輸協(xié)議
--5類傳輸協(xié)議(3)TP2:2類傳輸協(xié)議也是為使用可靠的網(wǎng)絡(luò)(A型)而設(shè)計的。它基本上是對0類的增強,允許多路復(fù)用(幾個傳輸連接使用同一條網(wǎng)絡(luò)連接)。它與0類不同,在其協(xié)議中允許兩個或多個傳輸連接向同一個網(wǎng)絡(luò)連接發(fā)送數(shù)據(jù)。當(dāng)存在著許多個傳輸連接時,每個連接的流量都相對較?。划?dāng)通信公司對每個打開的網(wǎng)絡(luò)連接的連接時間收費很高時,這一特性很有用處。例如,3個全是飛機預(yù)售票終端的辦公室里,本地主機的每個終端都有一個獨立的傳輸層連接與遠程計算機交互,這時可以把所有傳輸連接都復(fù)用到一條網(wǎng)絡(luò)連接上,以減少網(wǎng)絡(luò)開銷。為實現(xiàn)復(fù)用,2類協(xié)議提供了直接的(顯式)流量控制手段。這是因為,借助于網(wǎng)絡(luò)層的間接(隱式)流量控制不可能控制參與復(fù)用的多個傳輸連接中的每一個數(shù)據(jù)流。
31中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
--5類傳6.1OSI傳輸協(xié)議
--5類傳輸協(xié)議(4)TP3:3類傳輸協(xié)議基本上是1類和2類的組合。它允許多路復(fù)用,提供從N_RESET中恢復(fù)功能,也使用顯式流量控制。它用于支持B型網(wǎng)絡(luò)。
(5)TP4:4類傳輸協(xié)議是針對C型網(wǎng)絡(luò)服務(wù)設(shè)計的。它反映了對傳輸不可靠的擔(dān)心,并且相信莫爾非(Murphy)定律:如果什么事可能出錯則一定會出錯。為此,該協(xié)議必須能處理分組的丟失、重復(fù)、殘損分組、N-RESET和網(wǎng)絡(luò)拋給它的任何錯誤。不用說,4類協(xié)議要比其它幾類協(xié)議復(fù)雜得多,它類似于Internet的TCP。
32中科院研究生院授課教師:魯士文200OSI傳輸協(xié)議
--5類傳6.2Internet傳輸協(xié)議Internet在IP層之上使用了兩個傳輸協(xié)議:一個是傳輸控制協(xié)議TCP,它是面向連接的;另一個是用戶數(shù)據(jù)報協(xié)議UDP,它是無連接的(參見圖6-3)33中科院研究生院授課教師:魯士文200Internet傳輸協(xié)議Internet在IP層之6.2.1 TCP的基本概念TCP并不對高層協(xié)議的數(shù)據(jù)產(chǎn)生影響。它對待來自高層的協(xié)議數(shù)據(jù)就像它們是不間斷的數(shù)據(jù)“流”一樣。因此,對這些數(shù)據(jù)的所有處理工作都是由高層協(xié)議進行的。但是,TCP仍試圖將這些數(shù)據(jù)“流”分隔成一些不連續(xù)的單元,以便以獨立的報文段形式進行發(fā)送和接收。TCP被用于在各種網(wǎng)絡(luò)上提供有序可靠數(shù)據(jù)傳輸能力的虛電路服務(wù)。TCP在不可靠的分組傳輸子網(wǎng)上(這種子網(wǎng)隨時都有可能出現(xiàn)數(shù)據(jù)丟失、損壞、重復(fù)傳送、延遲和錯序)提供可靠的進程間的通信機制。為取得可靠傳送,TCP必須檢測分組丟失,收不到確認(rèn)時自動重傳,以及諸如處理延遲的重復(fù)數(shù)據(jù)報的問題等許多操作。34中科院研究生院授課教師:魯士文200.1 TCP的基本概念TCP并不對高層協(xié)議的數(shù)據(jù)產(chǎn)生6.2.1TCP的基本概念由于TCP具有獨立于特定網(wǎng)絡(luò)的特性,故它有一個關(guān)于它的報文段長度(65K字節(jié))的規(guī)定。TCP之間彼此能發(fā)送小于這一最大長度的段。假如對等的兩個TCP實體之間交換的段長度較大,大多數(shù)IP層都會將這些報文段劃分成小的分段,以滿足實際網(wǎng)絡(luò)對它的最大物理分組長度的要求。實際上,大多數(shù)TCP軟件在處理它的段長度時,總是很好地進行選擇,使得它恰好滿足實際網(wǎng)絡(luò)的要求。TCP是面向字節(jié)流的。當(dāng)兩個應(yīng)用程序轉(zhuǎn)移大量數(shù)據(jù)時,我們把數(shù)據(jù)看成字節(jié)流。流投遞服務(wù)將源機器上發(fā)送方交給它的字節(jié)序列不加改變地在目的機器上傳給接收方。TCP為它的高層協(xié)議數(shù)據(jù)“流”中的每一字節(jié)都分配一個順序號。在與對等的TCP交換報文段時,TCP給這些段附加的控制信息包括該段中第1個字節(jié)的順序號以及該段中所有數(shù)據(jù)字節(jié)的個數(shù)。這樣就使得接收端TCP能將這些段還原成一個不間斷的數(shù)據(jù)“流”送給它自己的高層協(xié)議。35中科院研究生院授課教師:魯士文200.1TCP的基本概念由于TCP具有獨立于特定網(wǎng)絡(luò)的特6.2.1TCP的基本概念當(dāng)需要重傳一系列報文段時,TCP可以方便地對數(shù)據(jù)進行重新封裝。例如,它能將傳送的兩個較小的段合并成一個較大的段。這種情況往往出現(xiàn)在廣域網(wǎng)中。為了提高線路通信效率,往往需要傳輸?shù)亩伪M可能大一些,從而降低報文段頭部信息相對于用戶數(shù)據(jù)的比例。這樣做的同時也增加了TCP協(xié)議的復(fù)雜性,因為接收方必須處理一些這樣的段:在重復(fù)報文段的情況下既包含以前曾接收到的信息,也包含一些新的信息。36中科院研究生院授課教師:魯士文200.1TCP的基本概念當(dāng)需要重傳一系列報文段時,TCP6.2.1TCP的基本概念圖6-4示出了從發(fā)送方的高層協(xié)議通過TCP到達接收方的高層協(xié)議數(shù)據(jù)傳輸?shù)耐暾^程。
37中科院研究生院授課教師:魯士文200.1TCP的基本概念圖6-4示出了從發(fā)送方的高層協(xié)6.2.1TCP的基本概念現(xiàn)將該圖說明如下:(1)發(fā)送方的高層協(xié)議發(fā)出一個數(shù)據(jù)“流”給它的TCP實體進行傳輸。(2)TCP將此數(shù)據(jù)流分成段??赡芴峁┑膫鬏敶胧┌ǎ喝p工的定時重傳,順序傳遞,安全性指定和優(yōu)先級指定,流量控制,錯誤檢測等。然后將這段交給IP。(3)IP對這些報文段執(zhí)行它的服務(wù)過程,包括創(chuàng)建IP分組、數(shù)據(jù)報分割等,并在數(shù)據(jù)報通過數(shù)據(jù)鏈路層和物理層后經(jīng)過網(wǎng)絡(luò)傳給接收方的IP。(4)接收方的IP在可能采取檢驗和重組分段的工作后,將數(shù)據(jù)報變成段的形式送給接收方的TCP。(5)接收方的TCP完成它自己的服務(wù),將報文段恢復(fù)成它原來的數(shù)據(jù)“流”形式,送給接收方的高層協(xié)議。38中科院研究生院授課教師:魯士文200.1TCP的基本概念現(xiàn)將該圖說明如下:38中科院研究6.2.1TCP的基本概念
---TCP服務(wù)為了使你對TCP的功能可以有一個較為清晰的概念,下面我們先對過程(2)中敘述的TCP服務(wù)作簡要說明。*全雙工——一個TCP的連接支持兩個通信的高層協(xié)議之間同時的雙向數(shù)據(jù)傳遞。*定時——當(dāng)系統(tǒng)的條件不能按用戶定義的超時參數(shù)及時傳遞數(shù)據(jù)時,TCP通知自己的高層協(xié)議,告訴它服務(wù)失敗。高層協(xié)議隨后可能會中止該連接或采取其它一些措施。*排序——TCP按照發(fā)送方高層協(xié)議提供的同樣的數(shù)據(jù)順序,將數(shù)據(jù)送給接收方的高層協(xié)議。39中科院研究生院授課教師:魯士文200.1TCP的基本概念
6.2.1TCP的基本概念*標(biāo)記——TCP在建立連接時,相互之間協(xié)商由高層協(xié)議提出的安全性和優(yōu)先級要求。當(dāng)高層協(xié)議未對此作出規(guī)定時,TCP按缺省值進行處理。TCP建立連接的一個必要條件,就是由互相通信的高層協(xié)議所提供的安全性部分的信息能夠互相匹配起來。每個TCP段中都指定有經(jīng)協(xié)商后的安全性的值。假如在連接期間出現(xiàn)了安全性的值不匹配情況,TCP將中斷該連接。*流量控制——TCP在其連接的通信過程中,能夠調(diào)整流量,以防止內(nèi)部的TCP數(shù)據(jù)傳遞出現(xiàn)擁擠,從而導(dǎo)致服務(wù)質(zhì)量下降和出錯。*錯誤控制——TCP能在它的檢驗和所允許的范圍內(nèi)保證數(shù)據(jù)的無差錯傳遞。40中科院研究生院授課教師:魯士文200.1TCP的基本概念*標(biāo)記——TCP在建立連接時,相6.2.1TCP的基本概念所有的網(wǎng)絡(luò)通信都可以看作是進程之間的通信。進程在調(diào)用TCP時,通過作為參數(shù)的數(shù)據(jù)緩沖區(qū)將數(shù)據(jù)送出。TCP從該數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)并分成段,然后調(diào)用IP模塊,將這些段依次送往目標(biāo)站點的TCP。接收方TCP在收到的段中將數(shù)據(jù)取出,裝入供接收用的緩沖區(qū),并通知接收方的用戶。發(fā)送方TCP在段中插入了為保證可靠傳輸而必須的控制信息,所以接收方在收到段時要將這些控制信息除去,取出真正的數(shù)據(jù)。
41中科院研究生院授課教師:魯士文200.1TCP的基本概念所有的網(wǎng)絡(luò)通信都可以看作是進程之6.2.1TCP的基本概念TCP一般是作為操作系統(tǒng)內(nèi)部的一個模塊安裝的。TCP的用戶接口,是通過對TCP連接的OPEN、CLOSE,數(shù)據(jù)的SEND、RECEIVE或調(diào)用連接的狀態(tài)信息來實現(xiàn)的。實際上,它們與文件的打開、關(guān)閉、寫入、讀出十分相似。在TCP的調(diào)用接口中,作為參數(shù)必須指定地址(端口號)、服務(wù)類型、優(yōu)先級、安全性的值及其它控制信息等。TCP與實際網(wǎng)絡(luò)的接口亦與普通的設(shè)備驅(qū)動模塊一樣。但是,TCP不能直接調(diào)用設(shè)備驅(qū)動模塊,一般是通過IP模塊來調(diào)用設(shè)備驅(qū)動模塊。42中科院研究生院授課教師:魯士文200.1TCP的基本概念TCP一般是作為操作系統(tǒng)內(nèi)部的一6.2.1TCP的基本概念在TCP的連接中,數(shù)據(jù)“流”必須以正確的順序送達對方。TCP的可靠性是通過順序編號和ACK來實現(xiàn)的。前面我們已經(jīng)提到過,數(shù)據(jù)“流”上的各字節(jié)都有自己的編號,各段第1個數(shù)據(jù)的順序編號和該段一起傳送,我們稱它為段順序編號。而且,在送回的ACK信息中,含有指示下一個應(yīng)該發(fā)送的順序編號。TCP在開始傳送一個段時,為準(zhǔn)備重傳而首先將該段插入到發(fā)送隊列之中,同時啟動時鐘。其后,如果收到了該段的ACK信息,就將該段從隊列中刪去。如果在時鐘規(guī)定的時間內(nèi)ACK未返回,那么就再次送出這一個段。TCP中的ACK應(yīng)答并不保證數(shù)據(jù)已到達對方的用戶進程,它僅僅是對TCP模塊收到信息的確認(rèn)。43中科院研究生院授課教師:魯士文200.1TCP的基本概念在TCP的連接中,數(shù)據(jù)“流”必須6.2.1TCP的基本概念為控制流量,TCP模塊間通信采用了窗口機制。這里,窗口是接收方接收字節(jié)數(shù)量能力的表示。在ACK應(yīng)答信息中,TCP把ACK加上接收方允許接收數(shù)據(jù)范圍的信息回送給發(fā)送方。發(fā)送方除非以后又收到來自接收方的最大數(shù)據(jù)允許接收范圍信息,否則總是使用由接收方提供的這一范圍發(fā)送數(shù)據(jù)。TCP為實現(xiàn)多路復(fù)用使用了端口號。因為端口號是在各個TCP實體上獨立使用的,因此從網(wǎng)絡(luò)整體看來,端口號并非具有唯一性的標(biāo)識符。構(gòu)造套接號后,網(wǎng)絡(luò)上具有唯一性的IP地址和端口號結(jié)合在一起,才構(gòu)成唯一能識別的標(biāo)識符。44中科院研究生院授課教師:魯士文200.1TCP的基本概念為控制流量,TCP模塊間通信采用6.2.1TCP的基本概念一個TCP連接由通信雙方的套接號確定。而且,套接號為通信雙方的輸入和輸出所用,因而是全雙工的。從TCP的規(guī)定來看,端口與任何進程可自由進行連接,這是實現(xiàn)TCP的各操作系統(tǒng)環(huán)境自己的事情。不過還是有一些基本的約定。例如,對一些公共的服務(wù)統(tǒng)一規(guī)定使用固定的端口號,稱為周知口。規(guī)范指定,小于256的端口號用于周知口,其余的編號留給操作系統(tǒng)分配,用于其它任意程序。45中科院研究生院授課教師:魯士文200.1TCP的基本概念一個TCP連接由通信雙方的套接號6.2.1TCP的基本概念在調(diào)用TCP的OPEN來建立連接時,應(yīng)將自己的端口號和對方的套接號作為參數(shù)指定。TCP模塊返回為標(biāo)識這條連接在本地使用的名字。為了使用已連接好的套接號,必須保存一些相關(guān)的信息。為此,構(gòu)造一個稱之為傳輸控制塊(TCB)的數(shù)據(jù)區(qū),并將本地使用的標(biāo)識該連接的名字作為指向這個TCB數(shù)據(jù)區(qū)的指針。此外,在OPEN中還需指定連接是主動進行的還是被動進行的。在被動的OPEN請求中,進程不能從自己發(fā)起連接,只能接受外來的連接請求。對于被動的OPEN而言,必須能接受來自任何進程的連接請求。在這種情況下,由于不必指明對方的套接號,故將目標(biāo)方套接號這一參數(shù)域全部置成0。這樣的用法只能在被動的OPEN請求中使用。這種被動OPEN請求,可以用于形成為接收來自各方用戶請求而提供服務(wù)的套接號。當(dāng)然,在采用被動OPEN請求的情形下,即使指定了對方的套接號,也沒有什么關(guān)系。46中科院研究生院授課教師:魯士文200.1TCP的基本概念在調(diào)用TCP的OPEN來建立連接6.2.1TCP的基本概念在網(wǎng)絡(luò)虛擬終端Telnet服務(wù)器和文件傳送、遠程作業(yè)訪問等般應(yīng)用服務(wù)的情況下,往往需要預(yù)先定義一些端口號。在UNIX4BSD中,服務(wù)和端口號的對應(yīng)關(guān)系可以從/etc/services文件中以對照表的形式查到。執(zhí)行被動OPEN的進程等待來自主動OPEN的請求,而且即使雙方同時使用主動的OPEN進行連接,也能保證最終連接順利建成。這種連接的靈活性,在一些非同步的分布式環(huán)境中十分有用。
47中科院研究生院授課教師:魯士文200.1TCP的基本概念在網(wǎng)絡(luò)虛擬終端Telnet服務(wù)器6.2.1TCP的基本概念在已經(jīng)建立起來的連接上的數(shù)據(jù)傳輸,可以看成是字節(jié)“流”的運動。發(fā)送方用戶每當(dāng)用SEND函數(shù)發(fā)送數(shù)據(jù)時,為了使它盡快到達接收方,可以使用PUSH標(biāo)志。對于發(fā)送方的TCP來說,當(dāng)它接收到PUSH標(biāo)志時,就立即將其發(fā)送隊列中準(zhǔn)備發(fā)送的數(shù)據(jù)全部發(fā)出。對于接收方的TCP來說,一旦收到PUSH信號,它就不再等待后續(xù)到來的數(shù)據(jù),而直接轉(zhuǎn)向接收數(shù)據(jù)的接收進程。寫入一個TCP報文段中的數(shù)據(jù)是一次或多次SEND調(diào)用的結(jié)果。PUSH的功能和TCP/用戶接口間交換數(shù)據(jù)的緩沖區(qū)的使用有關(guān)。假如收到了PUSH標(biāo)志,TCP模塊就不管該數(shù)據(jù)區(qū)是否裝滿,立即將數(shù)據(jù)發(fā)送出去。相反,未收到PUSH標(biāo)志時,只有在用戶緩沖區(qū)已用完的情況下,才會向接收方發(fā)送數(shù)據(jù)。
48中科院研究生院授課教師:魯士文200.1TCP的基本概念在已經(jīng)建立起來的連接上的數(shù)據(jù)傳輸6.2.1TCP的基本概念PUSH標(biāo)志迫使TCP盡快將數(shù)據(jù)發(fā)送出去,而不必等待后續(xù)數(shù)據(jù)的到來。一個使用PUSH的典型例子是:假如有一臺虛終端,它以網(wǎng)絡(luò)上另一臺主機作為其服務(wù)器,則該終端一般會在每一行輸入回車換行時發(fā)送PUSH標(biāo)志。從而與服務(wù)器取得聯(lián)系。TCP還定義了通知接收方有緊急數(shù)據(jù)到達的服務(wù)。但是,對接收到的緊急數(shù)據(jù)如何進行處理,在TCP中并沒有規(guī)定。一般推薦接收方盡快作出處理。
49中科院研究生院授課教師:魯士文200.1TCP的基本概念PUSH標(biāo)志迫使TCP盡快將數(shù)據(jù)6.2.2 TCP報文段的格式
TCP軟件在兩臺計算機之間傳輸?shù)臄?shù)據(jù)單元稱為報文段。報文段交換涉及到建立連接、傳輸數(shù)據(jù)、發(fā)送確認(rèn)、通知窗口尺寸,直到關(guān)閉連接。由于TCP使用捎帶技巧,一個從機器A傳往機器B的確認(rèn)可能跟從機器A發(fā)給機器B的數(shù)據(jù)在同一個報文段中傳輸,但這個確認(rèn)的對象是從機器B到機器A的數(shù)據(jù)。圖6-5示出TCP報文段(segment)的格式,前面是TCP頭,后面是數(shù)據(jù)。報文段既可以用來建立連接,也可以運載數(shù)據(jù)和應(yīng)答。
50中科院研究生院授課教師:魯士文200.2 TCP報文段的格式TCP軟件在兩臺計算機之間6.2.2 TCP報文段的格式
51中科院研究生院授課教師:魯士文200.2 TCP報文段的格式51中科院研究生院6.2.2 TCP報文段的格式每個報文段分為兩部分,前面是TCP頭,后面是數(shù)據(jù)。在TCP頭中的SOURCEPORT(源端口)段和DESTINATIONPORT(目標(biāo)端口)段各包含一個TCP的端口號,分別標(biāo)識連接兩端的兩個應(yīng)用程序。而SEQUENCENUMBER(序列號)標(biāo)識本報文段中的數(shù)據(jù)在發(fā)送者字節(jié)流中的位置。ACKNOWLEDGEMENTNUMBER(確認(rèn)號)標(biāo)識本報文段的源發(fā)方下一個期待接收的字節(jié)的編號。注意,序列號是指與本數(shù)據(jù)報文段同向流動的數(shù)據(jù)流,而確認(rèn)號是指與本數(shù)據(jù)報文段反向流動的數(shù)據(jù)流。
52中科院研究生院授課教師:魯士文200.2 TCP報文段的格式每個報文段分為兩部分,前面是6.2.2 TCP報文段的格式偏移(offset)段包含一個整數(shù),指明報文段頭的長度,單位是32位。需要這個段是因為為頭中的任選項段長度可變,視包括哪些選項而定。因此,這個TCP報頭的長度隨所選的選項而變化。標(biāo)有保留(RESERVED)的段為6位,留給將來使用。有的報文段只載送應(yīng)答,而另外的報文段載送數(shù)據(jù)。還有的報文段請求建立或關(guān)斷一條連接。TCP軟件使用標(biāo)有編碼位的6位段確定報文段的目的與內(nèi)容。這6位解釋報文段頭中的其它段(見表6-1)53中科院研究生院授課教師:魯士文200.2 TCP報文段的格式偏移(offset)段包含一6.2.2 TCP報文段的格式
54中科院研究生院授課教師:魯士文200.2 TCP報文段的格式54中科院研究生院授6.2.2 TCP報文段的格式TCP軟件每次發(fā)送一個報文段時,通過在窗口段中指定它的緩沖區(qū)大小通告它愿意接收多少數(shù)據(jù)。該段包含一個網(wǎng)絡(luò)標(biāo)準(zhǔn)字節(jié)順序表示的32位無符號整數(shù)。窗口通告給出了稍帶機制的又一個例子,因為它們伴隨所有的TCP報文段,既包括那些運載數(shù)據(jù)的報文段,也包括那些僅運載應(yīng)答確認(rèn)的報文段。
55中科院研究生院授課教師:魯士文200.2 TCP報文段的格式TCP軟件每次發(fā)送一個報文段6.2.2 TCP報文段的格式盡管TCP是面向流的協(xié)議,但有時候處在連接的一端的程序也需要立即發(fā)送帶外數(shù)據(jù),而不用等待連接的另一端上的程序消耗完數(shù)數(shù)據(jù)流中正傳輸?shù)臄?shù)據(jù)。例如,當(dāng)使用TCP進行遠程登錄會話時,用戶可能決定發(fā)送一個鍵盤序列,去中斷或終止在另一端的程序。當(dāng)遠方機器上的程序運行不正確時常常需要這樣的信號。發(fā)送這樣的信號就不能等待另一端的程序讀取完已經(jīng)處在TCP流中的所有字節(jié),否則你就不可能中斷已經(jīng)停止讀取輸入的程序。
56中科院研究生院授課教師:魯士文200.2 TCP報文段的格式盡管TCP是面向流的協(xié)議,但6.2.2 TCP報文段的格式為了提供帶外信令,TCP允許發(fā)送者把數(shù)據(jù)指定成是緊急的,意味著接收程序應(yīng)被盡可能快地通知緊急數(shù)據(jù)到達,而不管緊急數(shù)據(jù)處在流中什么位置。當(dāng)發(fā)現(xiàn)緊急數(shù)據(jù)時,接收方的TCP便通知與連接相關(guān)的應(yīng)用程序進入“緊急”方式。在所有緊急數(shù)據(jù)都被消耗完畢之后,TCP又告訴應(yīng)用程序返回正常運行方式。當(dāng)在一個報文段中發(fā)送緊急數(shù)據(jù)時用以標(biāo)志緊急數(shù)據(jù)的機制由CODE段中的URG位和緊急指針段組成。當(dāng)URG位置1時,緊急指針(URGENTPOINTER)指出窗口中緊急數(shù)據(jù)結(jié)束的位置。緊急指針的值是從序列號段值開始算起的數(shù)據(jù)段中的正偏移。將緊急指針值與序列號相加就得到最后一個緊急數(shù)據(jù)字節(jié)的編號。
57中科院研究生院授課教師:魯士文200.2 TCP報文段的格式為了提供帶外信令,TCP允許6.2.2 TCP報文段的格式TCP頭中的任選項(OPTIONS)段用以處理其它各種情況。目前被正式使用的任選項可用于定義通信過程中最大報文段長,它只能在連接之時使用。任選項可分成兩種類型:①僅表示任選項類型的1個字節(jié)的任選項。②表示任選項類型的1個字節(jié)、表示任選項長度的1個字節(jié)及實際的任選項內(nèi)容等三部分構(gòu)成的任選項。任選項的長度指任選項真正內(nèi)容的字節(jié)數(shù),加上表示任選項種類的1個字節(jié)及表示任選項長度的1個字節(jié)。任選項的長度是可變的,我們只要求它以字節(jié)為單位,因此有可能不一定是32位的整數(shù)倍。在不是32位的整數(shù)倍的情況下,為使任選項長度成為32位整數(shù)倍,可在表示任選項的結(jié)束的任選項后面填充一些位(PADDING)來滿足要求。
58中科院研究生院授課教師:魯士文200.2 TCP報文段的格式TCP頭中的任選項(OPTI6.2.2 TCP報文段的格式
----任選項在所有TCP軟件的實現(xiàn)中,都應(yīng)該支持所有的任選項。目前使用的任選項定義有:
(1)
任選項結(jié)束內(nèi)容:00000000類型:0表示任選項結(jié)束。在任選項結(jié)束位置與TCP包頭結(jié)束位置不一致時使用。
59中科院研究生院授課教師:魯士文200.2 TCP報文段的格式
----6.2.2 TCP報文段的格式
----任選項(2)
NOP內(nèi)容:00000001類型:1該任選項可出現(xiàn)在任選項域中的任何位置,為使任選項為32位的整數(shù)倍,可利用它來填充。(3)最大段長度內(nèi)容:0000001000000100<2字節(jié)表示的最大 段長度>類型:2;長度:460中科院研究生院授課教師:魯士文200.2 TCP報文段的格式
----6.2.2 TCP報文段的格式TCP頭中的CHECKSUM(檢驗和)用于頭和數(shù)據(jù)中的所有16位字。檢驗和也覆蓋了在概念上附加在TCP包頭前的偽頭,該偽頭(參見圖6-6)含有源地址、目標(biāo)地址、協(xié)議標(biāo)識符和TCP段長。61中科院研究生院授課教師:魯士文200.2 TCP報文段的格式TCP頭中的CHECKSUM6.2.2 TCP報文段的格式在偽頭內(nèi),標(biāo)有發(fā)送方IP地址和接收方IP地址的段分別包含報源互連網(wǎng)地址和報宿互連網(wǎng)地址。這兩個地址在發(fā)送TCP報文段時都要用到。協(xié)議標(biāo)識符段包含IP分組的協(xié)議類型碼,對于TCP是6(對于UDP應(yīng)該是17),標(biāo)明TCP長度的段含有報文段長度(不包括偽頭)。為了計算檢驗和,TCP把偽頭加到TCP報文段上,再對全部內(nèi)容(包括偽頭,TCP報文段頭及用戶數(shù)據(jù))求出16位的反碼之和,檢驗和的初始值設(shè)成0,然后每兩個字節(jié)為1個單位相加,若相加的結(jié)果有進位,那么將和加1。如此反復(fù),直到全部內(nèi)容都相加完為止。將最后的和值對1求補,即取二進制反碼,便得到16位的檢驗和。62中科院研究生院授課教師:魯士文200.2 TCP報文段的格式在偽頭內(nèi),標(biāo)有發(fā)送方IP地址6.2.3 TCP連接的建立、拆除和重置要建立一條連接,TCP要使用3次握手動作,如圖6-7所示,進行連接建立的TCP雙方通過交換3個報文段來同步順序號。握手中的第1個報文段可以被識別,因為它在其CODE段中有SYN位置1。第2個報文段將SYN位和ACK位都置成1,表明它應(yīng)答第1個SYN同時繼續(xù)握手過程,最后一個握手報文段僅僅是一個應(yīng)答,只是用以通知目的地雙方一致認(rèn)為連接已經(jīng)建立。通常,一臺機器上的TCP軟件被動地等待握手,另一臺機器上的TCP軟件發(fā)起連接過程。握手過程設(shè)計得很周到,使得即使在雙方機器試圖同時啟動連接的情況下也能正常工作。因此,連接的建立可以從任一端起始或者從兩端同時啟動。一旦連接建成了,數(shù)據(jù)就可以同等地在兩個方向上流動。這里沒有主或從的區(qū)別。63中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置要建立一條連接,TC6.2.3 TCP連接的建立、拆除和重置
64中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置64中科院研究生6.2.3 TCP連接的建立、拆除和重置3次握手對于在連接的兩端之間的正確同步既是必要的,也是充分的。由于TCP是建立在一種非可靠的分組投遞服務(wù)基礎(chǔ)上,因此信息可能被丟失、延遲、重復(fù)或投遞無序。TCP協(xié)議必須使用一種超時機制重發(fā)丟失的請求。如果重復(fù)的請求到達時連接仍在建立過程中,或者如果重傳的請求被延遲,直到連接被建立、使用和終止之后才到達,那么都會引起故障。3次握手過程(再加上一條連接建立后TCP就忽略要求再建立這條連接的多余請求這一規(guī)則)正是為了解決這類問題而建立的。
65中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置3次握手對于在連接的6.2.3 TCP連接的建立、拆除和重置3次握手完成兩個重要功能。既要雙方做好發(fā)送數(shù)據(jù)的準(zhǔn)備工作(雙方都知道彼此已準(zhǔn)備好),也要允許雙方就初始序列號進行協(xié)商。這個序列號在握手過程中被發(fā)送與確認(rèn)。每個機器選擇一個初始順序編號,這個編號在要發(fā)送的數(shù)據(jù)流中用來標(biāo)識字節(jié)。順序號不需要從1開始。當(dāng)然雙方都同意一個初始號是重要的,這樣在確認(rèn)中所使用的字節(jié)編號與數(shù)據(jù)段中使用的字節(jié)編號就一致了。
66中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置3次握手完成兩個重要6.2.3 TCP連接的建立、拆除和重置為了弄明白機器怎樣在僅僅3個報文段之后就可商定2個數(shù)據(jù)流的順序編號,我們不妨回想一下,每個數(shù)據(jù)段中既包含一個序列編號段,又包含一個確認(rèn)編號段。發(fā)起握手動作的計算機,比如A,把它的起始序號x放到3次握手中第1個SYN報文段的序列號域中,第2個計算機,比如稱作B,收到這個SYN,記錄下這個順序號。B計算機還在回答中在序列號域內(nèi)給出自己的序列號以及一個確認(rèn),表明它期待字節(jié)號x+1。在握手的最后一個報文段中,A確認(rèn)從B收到了直接y的全部字節(jié)。在所有情況下,確認(rèn)都遵從使用所期望的下一個字節(jié)號這一約定(商定為x+1和y+1)
。67中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置為了弄明白機器怎樣在6.2.3 TCP連接的建立、拆除和重置我們已經(jīng)敘述了一般情況下TCP是如何通過交換含最少量信息的報文段來執(zhí)行3次握手的。正是因為這樣的協(xié)議設(shè)計,握手報文段中隨同初始序列號發(fā)送數(shù)據(jù)是可能的。在這些情況下,TCP軟件一定要保持?jǐn)?shù)據(jù),直到握手完成。一旦建立了連接,TCP軟件就可以釋放所保持的數(shù)據(jù),并把這些數(shù)據(jù)迅速傳遞給正在等待的應(yīng)用程序。使用TCP進行通信的兩個程序可以使用CLOSE(關(guān)斷)操作從容地終止對話。在內(nèi)部,TCP使用一種修改的3次握手關(guān)斷連接。
68中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置我們已經(jīng)敘述了一般情6.2.3 TCP連接的建立、拆除和重置TCP連接是全雙工的,因為我們把種連接看成包含兩個獨立的流傳送,每個方向上一個。當(dāng)一個應(yīng)用程序告訴TCP它沒有更多的數(shù)據(jù)要發(fā)送時,TCP將關(guān)閉在一個方向上的連接。正在發(fā)送的TCP為了關(guān)掉一條連接上的方向的那一半,把剩余數(shù)據(jù)發(fā)送完畢,等待接收方對它應(yīng)答,然后發(fā)送一個FIN位置1的報文段,接收方TCP確認(rèn)這個FIN報文段,并通知自己這一邊的應(yīng)用程序沒有更多的數(shù)據(jù)可提供(例如,使用操作系統(tǒng)的文件結(jié)束機制)。一旦一條連接關(guān)掉一個方向,TCP便拒絕再接受這個方向上的數(shù)據(jù)。同時,數(shù)據(jù)可以繼續(xù)在相反方向上流動,直到發(fā)送方關(guān)掉那個方向的連接為止。當(dāng)然,即便是連接已經(jīng)關(guān)斷了,確認(rèn)還是繼續(xù)流回到發(fā)送端。當(dāng)兩個方向都已關(guān)斷時,在每一端點上的TCP軟件便刪除各自的連接記錄。69中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置TCP連接是全雙工的6.2.3 TCP連接的建立、拆除和重置關(guān)斷連接的詳細情況比上面敘述的還要復(fù)雜一些,因為TCP是使用一種修改的3次握手去關(guān)斷連接,圖6-8示出了這個關(guān)斷過程。
70中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置關(guān)斷連接的詳細情況比6.2.3 TCP連接的建立、拆除和重置用以建立和關(guān)斷連接的3次握手之間的差別發(fā)生在機器接收到初始的FIN報文段之后,TCP不是立即產(chǎn)生第2個FIN報文段,而是發(fā)送一個應(yīng)答(ACK),然后關(guān)斷連接的請求通知應(yīng)用程序。將請求通知應(yīng)用程序并獲得響應(yīng)可能需要相當(dāng)長的時間(例如,可能涉及到與人的交互作用)。上述確認(rèn)防止在等待期間重發(fā)初始的FIN報文段。最后,當(dāng)應(yīng)用程序指示TCP完全關(guān)斷連接時,TCP發(fā)送第二個FIN報文段,并且源場點以第二個報文段即ACK應(yīng)答。通常,應(yīng)用程序在用完一條連接時就使用關(guān)斷操作把連接關(guān)掉。因此,關(guān)斷連接可以看成是正常使用的一部分,就像關(guān)閉文件那樣。71中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置用以建立和關(guān)斷連接的6.2.3 TCP連接的建立、拆除和重置有時候,非正常條件的出現(xiàn)會迫使應(yīng)用程序或網(wǎng)絡(luò)軟件斷開一條連接。TCP為這樣的非正常斷連提供了一個重置設(shè)施。為重置一條連接,一側(cè)發(fā)送一個報文段,將其CODE段中的RST位置1,以此來啟動一次終止過程。另一側(cè)立即使連接非正常中止,以此來響應(yīng)重置報文段。TCP還通知應(yīng)用程序發(fā)生了重置。重置是一種立即的非正常中止,這就意味著在兩方向上的傳遞都立即停止,像緩沖區(qū)這樣的資源也被釋放。72中科院研究生院授課教師:魯士文200.3 TCP連接的建立、拆除和重置有時候,非正常條件的6.2.4 TCP擁塞控制TCP使用滑動窗口協(xié)議做端到端的流控制。該協(xié)議的實現(xiàn)是讓接收方在它的應(yīng)答中指定它在未來愿意接收的字節(jié)數(shù)量。通告的窗口保證接收方緩沖區(qū)將永遠不會溢出,因為發(fā)送方發(fā)送的數(shù)據(jù)不會超過在其通告窗口中指定的數(shù)量。然而,通告窗口不能防止在中間路由器上的緩沖區(qū)產(chǎn)生溢出,也就是說不能防止擁塞的發(fā)生。當(dāng)路由器在其緩沖區(qū)中必須處理太多的分組時,路由器就會變得過載。因為IP不提供任何控制擁塞的機制,所以它依靠高層檢測擁塞和采取應(yīng)對措施。也可以使用TCP窗口機制來控制在網(wǎng)絡(luò)中的擁塞。73中科院研究生院授課教師:魯士文200.4 TCP擁塞控制TCP使用滑動窗口協(xié)議做端到端的6.2.4 TCP擁塞控制TCP擁塞控制的基本思想是讓每個發(fā)送方僅發(fā)送正確數(shù)量的數(shù)據(jù),保持網(wǎng)絡(luò)資源被利用但又不會被過載。如果發(fā)送方搶占資源,發(fā)送太多的分組,網(wǎng)絡(luò)將經(jīng)歷擁塞。在另一方面,如果TCP發(fā)送方太保守,網(wǎng)絡(luò)又會得不到充分利用。TCP在不會引起網(wǎng)絡(luò)擁塞的條件下,其發(fā)送方可以發(fā)送的最大字節(jié)數(shù)量是用另一個稱作擁塞窗口的窗口指定的。為了避免網(wǎng)絡(luò)擁塞和接收方緩沖區(qū)溢出,TCP發(fā)送方在任一時間可以發(fā)送的最大數(shù)據(jù)量是通告窗口和擁塞窗口中的最小值。74中科院研究生院授課教師:魯士文200.4 TCP擁塞控制TCP擁塞控制的基本思想是讓每個6.2.4 TCP擁塞控制TCP擁塞控制算法根據(jù)網(wǎng)絡(luò)狀態(tài)動態(tài)地調(diào)節(jié)擁塞窗口。TCP擁塞控制算法的操作可以劃分成三個階段。第一階段在算法啟動或重啟動時運行,并且假定管道是空的。該技術(shù)被稱作慢啟動,其執(zhí)行是首先把擁塞窗口設(shè)置成一個最大尺寸的段。每當(dāng)發(fā)送方接收到來自接收方的一個應(yīng)答時,發(fā)送方把擁塞窗口增加一個段。在發(fā)出第一個段之后,如果發(fā)送方在超時之前接收到應(yīng)答,發(fā)送方就把擁塞窗口增加到兩個段。如果這兩個段被應(yīng)答,擁塞窗口增加到四個段,等等。在這一階段擁塞窗口呈指數(shù)增長。指數(shù)增長的原因是慢啟動需要盡快充滿空的管道。名字“慢啟動”也許是一個誤稱,因為該算法暴跳得很快。75中科院研究生院授課教師:魯士文200.4 TCP擁塞控制TCP擁塞控制算法根據(jù)網(wǎng)絡(luò)狀態(tài)動6.2.4 TCP擁塞控制慢啟動不會長久地增加擁塞窗口,因為管道最終將被充滿。特別地,當(dāng)擁塞窗口達到一個稱作擁塞門檻的指定值時,慢啟動停止。擁塞門檻起初被設(shè)置成65535字節(jié)。在這一點上擁塞避免階段取而代之。這一階段假定管道的運行接近被充分利用。該算法減少增長速率是明智的,因為這樣做將不會過量超出。特別地,在擁塞避免期間線性地,而不是指數(shù)地,增加擁塞窗口。其實現(xiàn)是對于每一往返時間增加擁塞窗口一個段。76中科院研究生院授課教師:魯士文200.4 TCP擁塞控制慢啟動不會長久地增加擁塞窗口,因6.2.4 TCP擁塞控制顯然,擁塞窗口不可以無限制地增加。當(dāng)TCP檢測到網(wǎng)絡(luò)擁塞的時候擁塞窗口停止增加。該算法現(xiàn)在進入第三階段。在這一點上,首先把擁塞門檻設(shè)置成當(dāng)前窗口尺寸(擁塞窗口和通告窗口中的最小值,但至少兩個段)的一半。接著把擁塞窗口設(shè)置成一個最大尺寸的段。然后再使用這種慢啟動技術(shù)重新啟動。77中科院研究生院授課教師:魯士文200.4 TCP擁塞控制顯然,擁塞窗口不可以無限制地增加6.2.4 TCP擁塞控制TCP如何檢測網(wǎng)絡(luò)擁塞呢?當(dāng)由于段丟失在超時期滿之前應(yīng)答沒有到達時,TCP就假定在網(wǎng)絡(luò)中發(fā)生了擁塞。該算法所做的基本假定是由于擁塞而不是由于差錯引起丟失。這一假定在有線網(wǎng)絡(luò)中相當(dāng)有效,在這里傳輸錯誤引起的段丟失百分比一般較低(小于1%)。TCP在接到重復(fù)ACK時也認(rèn)為發(fā)生了擁塞,重復(fù)ACK由段的重新排序或段丟失引起。TCP對重復(fù)ACK的反應(yīng)跟前述一樣把擁塞門檻減少到當(dāng)前窗口大小的一半。然而,此時不把擁塞窗口置成1。如果擁塞窗口小于新的擁塞門檻,那么擁塞窗口按照慢啟動的公式增加。否則擁塞窗口按照擁塞避免的方式增加。78中科院研究生院授課教師:魯士文200.4 TCP擁塞控制TCP如何檢測網(wǎng)絡(luò)擁塞呢?當(dāng)由于6.2.4 TCP擁塞控制總之,TCP的擁塞窗口隨時間進展呈動態(tài)特性。作為示例,起初,慢啟動急劇上升,直至到達擁塞門檻(比如說,16個段)。然后擁塞避免階段線性地增加窗口,直至發(fā)生超時時,表明網(wǎng)絡(luò)擁塞了。此時,把擁塞門檻置成10段,把擁塞窗口置成1段。然后算法再次慢啟動。79中科院研究生院授課教師:魯士文200.4 TCP擁塞控制總之,TCP的擁塞窗口隨時間進展6.2.5Internet傳輸協(xié)議UDPUDP(UserDatagramProtocol)采取無連接的方式提供高層協(xié)議間的事務(wù)處理服務(wù),允許它們互相發(fā)送數(shù)據(jù)報。也就是說,UDP是在計算機上規(guī)定用戶以數(shù)據(jù)報方式進行通信的協(xié)議。UDP與IP的差別在于,IP對于系統(tǒng)管理的網(wǎng)絡(luò)軟件可以使用,一般用戶無法直接使用,而UDP是普通用戶可直接使用的,故稱為用戶數(shù)據(jù)報協(xié)議。UDP必須在IP上運行,即它的下層協(xié)議是以IP作為前提的。既然UDP是一種無連接的數(shù)據(jù)報投遞服務(wù),它就不保證可靠投遞。它跟遠方的UDP實體不建立端到端的連接。而只是將數(shù)據(jù)報送上網(wǎng)絡(luò),或者從網(wǎng)上接收數(shù)據(jù)報。UDP根據(jù)端口(Port)號對若干個應(yīng)用程序進行多路復(fù)用,并能利用檢驗和檢查數(shù)據(jù)的完整性。
80中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDPUDP(User6.2.5Internet傳輸協(xié)議UDP與傳輸控制協(xié)議TCP類似,一臺計算機上的應(yīng)用程序和UDP的接口是UDP端口。這些端口用從0開始的數(shù)字編號,每種應(yīng)用程序都在屬于它的固定端口上等待來自其它計算機的客戶的服務(wù)請求。例如SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)服務(wù)方(又稱代理)總是在161號端口上等待遠方客戶的服務(wù)請求。一臺計算機只能有一個SNMP代理程序,因為SNMP服務(wù)方只能使用161這一個端口號。這個端口號是人們約定好的,它只能為SNMP服務(wù)方利用。當(dāng)某臺計算機的客戶請求SNMP服務(wù)時,它就把請求發(fā)到備有這一服務(wù)的目標(biāo)計算機的161號UDP端口。81中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP與傳輸控制協(xié)議T6.2.5Internet傳輸協(xié)議UDPUDP保留應(yīng)用程序定義的報文邊界,它從不把兩個應(yīng)用報文組合在一起,也不把單個應(yīng)用報文劃分成幾個部分。也就是說,當(dāng)應(yīng)用程序把一塊數(shù)據(jù)交給UDP發(fā)送時,這塊數(shù)據(jù)將作為獨立的的單元到達對方的應(yīng)用程序。例如,如果應(yīng)用程序把5個報文交給本地UDP端口發(fā)送,那么接收方的應(yīng)用程序就需要從接收方的UDP端口讀5次,而且接收方收到的每個報文的大小都和發(fā)出的大小完全一樣。
82中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDPUDP保留應(yīng)用程6.2.5Internet傳輸協(xié)議UDP一個TCP/IP主機的UDP模塊必須具備產(chǎn)生和驗證UDP檢驗和的功能。一個應(yīng)用程序使用服務(wù)時可以選擇是否產(chǎn)生UDP檢驗和,缺省值是需要產(chǎn)生。當(dāng)IP模塊收到一個IP分組并且發(fā)現(xiàn)該分組的頭部類型(type)段標(biāo)明為UDP時,它就將其中的UDP數(shù)據(jù)報傳給UDP模塊。UDP模塊接收由IP模塊傳來的UDP數(shù)據(jù)報,并檢查UDP檢驗和。如果檢驗和是0,就表明發(fā)送方?jīng)]有計算UDP檢驗和。如果檢驗和非0,并且檢證的結(jié)果不正確,則UDP模塊必須拋棄該數(shù)據(jù)報。如果檢驗和有效(或0),UDP模塊就檢查該數(shù)據(jù)報的目標(biāo)端口號,如果其端口號與本地的一個應(yīng)用程序被指定的端口號符合,就將數(shù)據(jù)報中的應(yīng)用報文放入隊列,讓那個應(yīng)用程序來讀取。83中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP一個TCP/IP6.2.5Internet傳輸協(xié)議UDP對UDP來說,不具備諸如接收保證和避免重復(fù)等有序投遞功能,故對那些要求數(shù)據(jù)必須按順序到達的應(yīng)用程序,最好采用TCP;或者用戶自己想辦法解決順序到達的問題。例如,TFTP(TrivialFileTransferProtocol)作為文件傳送協(xié)議之一就在應(yīng)用層做這方面的工作。UDP數(shù)據(jù)報的格式如圖6-9所示。下面對各個域分別加以說明。
84中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP對UDP來說,不6.2.5Internet傳輸協(xié)議UDP85中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP85中科院研究生6.2.5Internet傳輸協(xié)議UDP(1)UDP源端口號發(fā)送端端口號是任選項。該端口號若被指定,當(dāng)接收進程返回數(shù)據(jù)時,這些應(yīng)用數(shù)據(jù)就不會被別人得到。不指定這個域時,將其值設(shè)置為0。(2)UDP目標(biāo)端口號該端口號用以在等待數(shù)據(jù)報的進程之間進行多路分離,也就是具有作為接收主機內(nèi)與特定應(yīng)用進程相關(guān)聯(lián)的地址的意義。(3)UDP報文長度表示數(shù)據(jù)報頭及其后面數(shù)據(jù)的總長度。最小值是8字節(jié),即UDP數(shù)據(jù)報頭長度。86中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP(1)UDP源6.2.5Internet傳輸協(xié)議UDP(4)檢驗和根據(jù)IP分組頭中的信息作出偽數(shù)據(jù)報頭,跟UDP數(shù)據(jù)報頭和數(shù)據(jù)一起進行16位的檢驗和計算。對數(shù)據(jù)為奇數(shù)字節(jié)的情況,增加全0字節(jié)使其成為偶數(shù)字節(jié)后再行計算。檢驗和計算的方法與IP中所使用的相同。當(dāng)檢驗和的結(jié)果為0時,將它的所有位都置成1(對1求補)。當(dāng)檢驗和域的所有位都是0時,對接收方而言就不再具有檢驗和的意義,這在debug和高層協(xié)議認(rèn)為檢驗和沒有問題的情況下使用。偽報頭假想是放在UDP報頭前邊的,其格式如圖6-10所示(生成時間段置0)。
87中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP(4)檢驗和876.2.5Internet傳輸協(xié)議UDP88中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP88中科院研究生6.2.5Internet傳輸協(xié)議UDP使用偽報頭的目的在于驗證UDP數(shù)據(jù)報是否已到達它的正確報宿。領(lǐng)悟這個偽報頭的關(guān)鍵是,要認(rèn)識到正確報宿的組成包括互連網(wǎng)中一個唯一的計算機和這個計算機上唯一的協(xié)議端口。UDP報頭本身只是確定了協(xié)議端口的編號。因而,為驗證報宿,發(fā)送計算機的UDP要計算一個檢驗和,這個檢驗和包括了報宿主機的IP地址,也包括了UDP數(shù)據(jù)報。在最終目的地,UDP軟件使用從運載UDP報文的IP分組頭中得到的目標(biāo)IP地址驗證檢驗和。如果檢驗和一致,那么數(shù)據(jù)報確實到達所希望的報宿主機和這個主機內(nèi)的正確協(xié)議口。89中科院研究生院授課教師:魯士文200.5Internet傳輸協(xié)議UDP使用偽報頭的目的6.2.5Internet傳輸協(xié)議UDP在偽報頭內(nèi)標(biāo)有發(fā)送方IP地址和接收方IP地址的段內(nèi),分別包含報源
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)保公益活動策劃執(zhí)行合同
- 2024年物流人才培養(yǎng)與交流合同
- 系統(tǒng)開發(fā)課程設(shè)計日志
- 托班喂飯課程設(shè)計
- 蘇教版小學(xué)數(shù)學(xué)課程設(shè)計
- 藝術(shù)治療繪畫課程設(shè)計
- 廣東電網(wǎng)公司110kV車載移動式變電站技術(shù)規(guī)范書
- 洗滌廢水處理課程設(shè)計
- 編輯文章課程設(shè)計意圖
- 網(wǎng)頁設(shè)計課程設(shè)計總結(jié)
- 2024中國近海生態(tài)分區(qū)
- 山東省濟南市2023-2024學(xué)年高一上學(xué)期1月期末考試化學(xué)試題(解析版)
- 企業(yè)節(jié)能獎懲管理制度(3篇)
- 統(tǒng)編版2024-2025學(xué)年三年級上冊語文期末情景試卷 (無答案)
- 2024年時事政治試題【有答案】
- 造價咨詢部組織架構(gòu)及基本工作流程
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識
- MT 285-1992縫管錨桿
- GB 18613-2020 電動機能效限定值及能效等級
- 水稻幼穗分化八個時期的劃分表
- 卡特彼勒生產(chǎn)體系手冊(PDF62頁)
評論
0/150
提交評論