2017計算機(jī)等考三級網(wǎng)絡(luò)技術(shù)輔導(dǎo):Internet基礎(chǔ)8

字號:


    九、傳輸控制協(xié)議(TCP)與用戶數(shù)據(jù)報協(xié)議(UDP)—(傳輸層)
    1、端對端通信
    傳輸層需要提供從一臺主機(jī)到另一遠(yuǎn)程主機(jī)的端對端通信控制。傳輸層利用互聯(lián)層發(fā)送數(shù)據(jù),每一傳輸層都需要封裝在一個互聯(lián)層的數(shù)據(jù)報中通過互聯(lián)網(wǎng),到達(dá)目的地后,互聯(lián)層再將數(shù)據(jù)提交給傳輸層。
    注意:傳輸層雖然使用互聯(lián)層來攜帶報文,但互聯(lián)層并不閱讀或干預(yù)報文。傳輸層僅把互聯(lián)層看作一個包通信系統(tǒng),這一通信系統(tǒng)負(fù)責(zé)連接兩端的主機(jī)。
    2、傳輸控制協(xié)議(TCP)
    保證可靠性是傳輸層的主要責(zé)任。
    (1)TCP提供的服務(wù):從TCP用戶的角度看,TCP可以提供面向連接、可靠的、全雙工的數(shù)據(jù)流傳輸服務(wù),保證數(shù)據(jù)在連接關(guān)閉之前被可靠地投遞到目的地。
    TCP提供的服務(wù)有如下特征:
    面向連接:發(fā)送數(shù)據(jù)前,應(yīng)用程序首先建立一個到目的主機(jī)的連接。
    完全可靠性:TCP確保通過一個連接發(fā)送數(shù)據(jù)正確到達(dá)目的地,不會發(fā)生數(shù)據(jù)丟失或亂序?!碓?考試大網(wǎng)
    全雙工通信:TCP允許任意一方,任意時刻發(fā)送數(shù)據(jù)。
    流接口:TCP提供了一個流接口,應(yīng)用程序利用它可以發(fā)送連續(xù)的數(shù)據(jù)流。
    連接的可靠性與優(yōu)雅關(guān)閉:建立連接的過程中,TCP保證新連接不會與其他連接混淆;連接關(guān)閉時,TCP確定之前傳遞的所有數(shù)據(jù)都可靠地到達(dá)目的地。
    (2)TCP的可靠性實現(xiàn)
    TCP建立在IP協(xié)議提供的面向非連接、不可靠的數(shù)據(jù)傳輸服務(wù)基礎(chǔ)上(IP協(xié)議運行在互聯(lián)層,只報告不負(fù)責(zé)糾正),因此必須實現(xiàn)可靠傳輸。可靠性問題即包括數(shù)據(jù)丟失后的恢復(fù)問題,又包括連接的可靠性建立問題。
    (3)數(shù)據(jù)丟失與重發(fā)
    TCP建立在一顆不可靠的虛擬通信系統(tǒng)上,數(shù)據(jù)的丟失可能經(jīng)常發(fā)生,一般發(fā)送方利用重發(fā)技術(shù)補(bǔ)償數(shù)據(jù)報的丟失。需要通信雙發(fā)協(xié)同解決。
    接收方正確接收數(shù)據(jù)包,要回復(fù)一個確認(rèn)信息給發(fā)送方;而發(fā)送方發(fā)送數(shù)據(jù)是啟動一個定時器,在定時器到時之前,如果沒有收到確認(rèn)信息,則重發(fā)該數(shù)據(jù)。
    (4)連接的可靠建立與優(yōu)雅關(guān)閉
    為確保連接建立和終止的可靠性,TCP使用了“三次握手”法。簡單說在建立和終止過程中,通信雙方需要交換3個報文。
    三次握手的過程:第一次,主機(jī)A向主機(jī)B發(fā)出連接請求,其中保護(hù)主機(jī)A選擇的初始序列號x。第二次,主機(jī)B收到請求后,發(fā)回連接確認(rèn),其中包含主機(jī)B選擇的初始序列號y和對主機(jī)A初始序列號x的確認(rèn)。第三次,主機(jī)A想主機(jī)B發(fā)送序列號x的數(shù)據(jù),包括對主機(jī)B初始序列號y的確任。
    為保證關(guān)閉連接前所有數(shù)據(jù)都可靠到達(dá)目的地,TCP使用第三次握手,一方發(fā)出關(guān)閉請求并不立即關(guān)閉,而要等待對方確認(rèn),只有收到對方確認(rèn)信息,才能關(guān)閉連接。
    (5)TCP緩沖、流控與窗口
    TCP使用窗口機(jī)制進(jìn)行流量控制。當(dāng)連接建立時,連接的每一端分配一塊緩沖區(qū)存儲接收的數(shù)據(jù),并將緩沖區(qū)的尺寸(大?。┌l(fā)給另一端。當(dāng)數(shù)據(jù)到達(dá)時,接收方發(fā)送確認(rèn),其中包含自己剩余的緩沖區(qū)尺寸。將剩余的緩沖區(qū)空間的數(shù)量稱為窗口。
    如果發(fā)生方操作的速度快于接收方的速度,最終接收方的緩沖區(qū)必滿,導(dǎo)致接收方向發(fā)送方通告一個零窗口,發(fā)送方收到零窗口通告后,必須停止發(fā)送,直到接收方重新通告一個非零窗口。
    窗口和窗口通告可以有效控制TCP的流量,使發(fā)送方的數(shù)據(jù)不會溢出接收方的緩沖空間。
    (6)TCP連接與端口
    一個TCP連接的兩端稱為端口,端口用16位的二進(jìn)制數(shù)表示。TCP可利用端口提供多路復(fù)用功能。
    3、UDP(用戶數(shù)據(jù)報協(xié)議)
    從用戶角度看,UDP雖處于傳輸層,但UDP提供了面向非連接,不可靠的傳輸服務(wù)。(相似互聯(lián)層的IP協(xié)議)
    UDP面向非連接,它可以將數(shù)據(jù)直接封裝在IP數(shù)據(jù)報中進(jìn)行發(fā)送。它不使用確認(rèn)信息對數(shù)據(jù)的到達(dá)進(jìn)行確認(rèn),也不對收到的數(shù)據(jù)排序。因此UDP協(xié)議傳輸?shù)臄?shù)據(jù)可能丟失、亂序或重復(fù)現(xiàn)象。
    優(yōu)點:運行高效和實現(xiàn)簡單。
    與TCP相同,有很多端口號被指派給一些的應(yīng)用程序,用戶使用時應(yīng)避免使用。