計算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)及協(xié)議之TCP/IP的運(yùn)輸層

字號:

3.6.4TCP/IP的運(yùn)輸層
    TCP/IP這一層提供了兩個主要的協(xié)議:傳輸控制協(xié)議(冗P)和用戶數(shù)據(jù)報協(xié)議(UDP),另外還有一些別的協(xié)議,例如用于傳送數(shù)字化語音的NVP協(xié)議。
    1.傳輸控制協(xié)議TCP
     TCP提供的是一種可靠的數(shù)據(jù)流服務(wù)。當(dāng)傳送受差錯干擾的數(shù)據(jù),或基礎(chǔ)網(wǎng)絡(luò)故障,或網(wǎng)絡(luò)負(fù)荷太重而使網(wǎng)際基本傳輸系統(tǒng)(元連接報文遞交系統(tǒng))不能正常工作時,就需要通過其它的協(xié)議來保證通信的可靠。TCP就是這樣的協(xié)議,它對應(yīng)于OSI模型的運(yùn)輸層,它在IP協(xié)議的基礎(chǔ)上,提供端到端的面向連接的可靠傳輸。
     TCP采用"帶重傳的肯定確認(rèn)"技術(shù)來實(shí)現(xiàn)傳輸?shù)目煽啃?。簡單?帶重傳的肯定確認(rèn)"是指與發(fā)送方通信的接收者,每接收一次數(shù)據(jù),就送回一個確認(rèn)報文,發(fā)送者對每個發(fā)出去的報文分組都留一份記錄,等到收到確認(rèn)之后再發(fā)出下一個報文分組。發(fā)送者發(fā)出一個報文分組時,啟動一個計時器,若計時器計數(shù)完畢,確認(rèn)還未到達(dá),則發(fā)送者重新發(fā)送該報文分組。
    簡單的確認(rèn)重傳嚴(yán)重浪費(fèi)帶寬,TCP還采用一種稱之為"滑動窗口"的流量控制機(jī)制來提高網(wǎng)絡(luò)的吞吐量,窗口的范圍決定了發(fā)送方發(fā)送的但未被接收方確認(rèn)的數(shù)據(jù)報的數(shù)量。每當(dāng)接收方正確收到一則報文時,窗口便向前滑動,這種機(jī)制使網(wǎng)絡(luò)中未被確認(rèn)的數(shù)據(jù)報數(shù)量增加,提高了網(wǎng)絡(luò)的吞吐量。
    TCP通信建立在面向連接的基礎(chǔ)上,實(shí)現(xiàn)了一種"虛電路"的概念。雙方通信之前,/IP在先建立一條連接,然后雙方就可以在其上發(fā)送數(shù)據(jù)流。這種數(shù)據(jù)交換方式能提高效率,但事先建立連接和事后拆除連接需要開銷。TCP連接的建立采用三次握手的過程,整個過程由發(fā)送方請求建立連接、接收方確認(rèn)、發(fā)送方再發(fā)送一則關(guān)于確認(rèn)的確認(rèn)三個過程組成。
    2.用戶數(shù)據(jù)報協(xié)議mp
    用戶數(shù)據(jù)報協(xié)議是對IP協(xié)議組的擴(kuò)充,它增加了一種機(jī)制,發(fā)送方使用這種機(jī)制可以區(qū)分一臺計算機(jī)上的多個接收者。每個UDP報文除了包含某用戶進(jìn)程發(fā)送的數(shù)據(jù)外,還有報文目的端口的編號和報文源端口的編號,從而使UDP軟件可以把報文遞送給正確的接收者,然后接收者要發(fā)出一個應(yīng)答。由于UDP的這種擴(kuò)充,使得在兩個用戶進(jìn)程之間遞送數(shù)據(jù)報成為可能。
    UDP是依靠IP協(xié)議來傳送報文的,因而它的服務(wù)和IP一樣是不可靠的。這種服務(wù)不用確認(rèn)、不對報文排序、也不進(jìn)行流量控制,UDP報文可能會出現(xiàn)丟失、重復(fù)、失序等現(xiàn)象。