乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      TCP/IP的傳輸層協(xié)議(3)

       wangxuqin 2010-10-10
      TCP
      在上文中已經(jīng)提到UDP為應用程序提供的是一種不可靠的、非連接的分組的交付服務。當網(wǎng)絡硬件失效
      或者負擔太重時,數(shù)據(jù)段可能會產(chǎn)生丟失、重復、時延、亂序等現(xiàn)象,這些都會導致通信不正常。如果
      讓應用程序來負擔差錯檢測和恢復的工作,將給程序員帶來很多復雜的工作,所以使用獨立的通信協(xié)議
      來保證通信的可靠性是非常必要的。
       
      傳輸控制協(xié)議TCP是在RFC793中定義的,它是一個面向連接的可靠的通信協(xié)議??偟膩碚f,TCP主要提
      供主要提供一下服務。
       
      面向連接的虛電路:這有些和打電話相似,在開始傳輸之前,通信雙方要進行三次握手來建立連接,以保
      證連接的可靠性。在傳輸過程中,通信雙方的協(xié)議模塊繼續(xù)進行通信,以確保正確到達(例如,接收會用
      ACK應答發(fā)送方的報文段,發(fā)送方對未被應答的報文段提供重傳)。如果在傳輸過程中通信失敗了(例如傳
      輸路徑上的某個網(wǎng)絡接口失效),通信雙方都會收到錯誤報告。在通信結(jié)束時,通信雙方會使用改進的三次
      握手來關(guān)閉連接。
       
      面向流:當通信雙方傳輸大量數(shù)據(jù)時,TCP將數(shù)據(jù)流看作可分為字節(jié)的流,進行分段(分組),接收方將收到
      的報文段按原有順序復原。
      流量控制,避免擁塞;為了提高傳輸效率和減少網(wǎng)絡通信量(協(xié)議之間的通信),TCP會盡量一次傳輸足夠多
      的數(shù)據(jù)。
       
      多路分解技術(shù)(多路復用技術(shù)):用端口號來實現(xiàn)。
      全雙工連接:TCP提供全雙工連接,可以在一條連接上同時傳輸兩個獨立的、流向相反的數(shù)據(jù)流。
       
      TCP頭格式
      TCP頭共占用了20個字節(jié)
      名稱
      描述
      源端口
      調(diào)用的端口號
      目的端口
      被調(diào)用的端口號
      序號
      確保數(shù)據(jù)到達的序列正確的編號
      應答號
      期望下一個TCP數(shù)據(jù)段
      數(shù)據(jù)偏移(頭長度)
      以32位為單位的報頭長度
      保留
      置為0
      編碼號
      開始、終止會話之類的控制功能
      窗口
      用來控制流量
      校驗和
      頭標和數(shù)據(jù)域計算的校驗和
      緊急
      指示緊急數(shù)據(jù)的末端
      可選項
      當前定義項:TCP端的最大值
      數(shù)據(jù)
      上層協(xié)議的數(shù)據(jù)

      建立TCP連接:三次握手
      TCP是面向連接的,在面向連接的環(huán)境中,開始傳輸數(shù)據(jù)之前,在兩個終端之間必須先建立一個連接。建立
      連接的過程可以卻確保通信雙方在發(fā)送應用數(shù)據(jù)包之前靜靜準備好了傳送和接收數(shù)據(jù)。對于一個要建立的連
      接,通信雙方必須用彼此的初始化序列號seq和來自對方成功傳輸確認的應答號ack來同步。(ack號致命希望收
      到的下一個八位組的編號)習慣上將同步信號寫為SYN,應答信號為ACK。整個同步的過程稱為三次握手。
       
       
      1)主機A發(fā)送SYN給主機B:我的序列號seq是X。
      2)主機B發(fā)送SYN、ACK給主機A:我的序列號seq是X+1,應答號是X+1(等待接收第X+1號八位組)。
      3)主機B發(fā)送SYN、ACK給主機B:我的序列號seq是X+1,應答號是Y+1.
         通過以上3個步驟(三次握手),TCP連接連接建立,開始傳輸數(shù)據(jù)。任何機器上的TCP都能被動地
         等待握手或主動地發(fā)起握手。一旦連接建立,數(shù)據(jù)可以對等地雙向流動。
       
      如果TCP使用1作為每次建立連接的初始化序列號,當本地系統(tǒng)重啟后,遠程系統(tǒng)會認為以前的連接依然存
      在。所以每次連接時,主機都會隨機選擇一個初始化序列號,用它來辨別所傳輸?shù)陌宋唤M在數(shù)據(jù)流中的位
      置。然后雙方要對各自的序列號進行協(xié)商,因為接收收到第一個SYN時,他并不知道這是否一個被延遲的
      舊信號。所以它必須要求發(fā)送驗證這個SYN。
       
      一般情況下,TCP使用最少信息的報文段來實現(xiàn)三次握手,這對減少網(wǎng)絡通信流量是有效的。總之,三次握
      手使通信雙方做好了傳輸數(shù)據(jù)的準備,并且使通信通信雙方統(tǒng)一了初始化序列號。
       
      關(guān)閉TCP連接:改進的三次握手
      對于一個已經(jīng)建立的連接,TCP使用改進的三次握手來結(jié)束通話(使用一個帶有FIN附加標記的報文段)。
      1)當主機A的應用程序通知TCP數(shù)據(jù)已經(jīng)完畢時,TCP向主機B發(fā)送一個帶有FIN附加標記的報文段(FIN理解為
         finish)。
      2)主機B收到這個FIN報文段之后,并不立即用FIN報文段回復主機A,而是向主機A發(fā)送一個確認ACK,同時
         同時通知自己相應的應用程序:對方要求關(guān)閉連接(先發(fā)送ACK為了防止在這段時間內(nèi),對方重傳FIN報文段)。
      3)主機B的應用程序告訴TCP:我要徹底的關(guān)閉的關(guān)閉連接,TCP向主機A送第二個FIN報文段。
      4)主機A收到第二個FIN報文段后,向主機B發(fā)送一個ACK表示連接徹底關(guān)閉。 
       
       
      TCP的可靠性
      TCP是面向流的,即數(shù)據(jù)段被當作字節(jié)的序列化進行傳輸。
      在通過三次握手建立連接時,序列號被初始化。在傳輸過程中,TCP繼續(xù)使用這個序列號來標記每一個發(fā)送的數(shù)據(jù)段
      沒發(fā)送一個數(shù)據(jù)段,序列號加1.接收站點一句序列號重新組裝縮所收到數(shù)據(jù)段。為什么要依靠序列號來重組數(shù)據(jù)段呢?
      例如,在一個告訴高速鏈路與低速鏈路并存的網(wǎng)絡上,可能會出現(xiàn)高速鏈路比低速鏈路上的數(shù)據(jù)段提前到達的情況,
      此時就必須依靠序列號來重組數(shù)據(jù)段,這就是序列號的作用之一。
       
      在傳輸過程中,確認號ACK的作用是告訴發(fā)送端那些數(shù)據(jù)包已經(jīng)成功接收,并且確認號會向發(fā)送端指出了接收端希望
      收到的下一個數(shù)據(jù)段的序列號,這種機制稱為預期確認,即確認號等于下一個預期的位元組。
       
      在TCP/IP網(wǎng)絡中,存在超時與重傳兩種現(xiàn)象。如果在傳輸過程中丟失了某個序列號的數(shù)據(jù)段,導致發(fā)送端在給定時間
      間隔內(nèi)得不到那個數(shù)據(jù)段的應答,那么那個丟失數(shù)據(jù)段就會被要求重發(fā)。數(shù)據(jù)段會被保存在發(fā)送端的緩沖區(qū)中,直
      到發(fā)送端接收到應答號,它才會釋放這個緩沖區(qū)。這種機制被稱為肯定確認與重新傳輸(Positive Acknowledgement and
      Retransimission,PAR),他是虛脫通信協(xié)議用來確??尚哦鹊囊环N技術(shù)。
       
      序列號的第二個作用就是消除網(wǎng)絡中的重復包(同步復制)。例如在網(wǎng)絡擁塞時,發(fā)送端遲遲沒有收到接收端某個數(shù)據(jù)段
      的ACK包,它可能會認為這個序列號的數(shù)據(jù)段丟失了,于是它會重新發(fā)送,這種情況可能會導致接收端在網(wǎng)絡恢復正
      常后收到兩個同樣序列號的數(shù)據(jù)段,此時接收端會自動丟棄第二個一樣數(shù)據(jù)段。
       
      序列號和應答號為TCP提供了一種糾錯機制,提高了TCP的可靠性。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多