• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            loop_in_codes

            低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

            tcp要點學習-基礎概念

            Author : Kevin Lynx 

            TCP是TCP/IP協議簇中傳輸層上的一種網絡協議,它是一種面向連接的、可靠的協議。為了提供這種可靠性,
            TCP實現了各種有效的機制、算法。為了從一種宏觀的角度去了解這個協議,這里先大致地提一下與之相關
            的概念。

            1. 什么是‘面向連接的’?
               引用<TCP/IP協議詳解>中的概念:
               面向連接意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據之前必須先建立
               一個TCP連接。

            2. 什么是‘三次握手’?
               在建立TCP連接之前,兩個使用TCP的應用需要交換三次網絡數據。這三個數據包的來往也就是所謂的‘
               三次握手’。

            3. 報文段segment
               我們說TCP是流式的網絡協議,那是因為,應用程序可以一直往TCP寫數據,無論你是逐byte,還是write
               a chunk,TCP對應用傳給它的數據進行緩沖,直到緩沖數據達到一定尺寸才發送。可以看出,對于應用
               而言,TCP就像是stream的。但事實上,在TCP層,數據還是以塊為單位的。這個塊也就是所謂的報文段
               segment。

            4. 什么是MTU?
               MTU即最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協議的某一層上面所能通過的
               大數據報大小(以字節為單位)。我個人目前的理解認為,MTU是一個網絡在硬件層次上所允許的最大
               數據包大小,例如以太網大概是1500字節。

            5. 什么是MSS?
               MSS即最大報文段大小(Maximum Segment Size),它是指TCP中一個報文段上附加的用戶數據的最大大小。
               這里稍微說下應用層發送某個數據包時整個TCP/IP協議棧的操作過程:應用層將自己的用戶數據傳給TCP
               層(傳輸層),TCP在這些數據前添加自己的協議頭(簡單地理解為附加一些數據),然后將數據交給
               IP層(網絡層),IP層附加自己的協議頭,以此類推。
               雖然MSS意思是最大報文段大小,但事實上它是排除了協議頭的用戶數據。

            6. MTU and MSS ?
               可以簡單地給你一個這樣的公示:mss = mtu - tcp_header_size - ip_header_size。
               而通常,IP協議附加的協議頭大小和TCP的協議頭大小都是20字節,所以通常的MSS為1460字節。
               注意,這里說的數字并不見得正確,因為MSS是可以被協商的。各種協議頭也可能被添加附加數據,但是
               他們的關系是這樣的。

            7. 什么是窗口大小?
               找本TCP的書看下TCP數據包的包頭(本文多次使用數據包、報文的概念,我這里說的都是一樣的),你會
               發現那個16位的窗口大小。
               窗口這個域對于整個TCP協議都很重要。簡單地說,窗口大小是指接收端的接收緩存的大小。上面說了,應用
               在發數據的時候,TCP會緩存這些數據,稍后發送。接收數據時也一樣,TCP接收數據并緩存起來,直到應用
               調用recv之類的函數取數據時,TCP才將這些緩存數據清除。

               TCP發送端會根據TCP接收端那個接收緩存大小決定發送多少數據(如何知道這個緩存大小?稍后給概念)。
               這樣,TCP接收端的接收緩存才不至于緩沖溢出。

            8. 提供可靠性的方法之一:ACK確認?
               這里還不敢提序號、確認號、延時ACK等亂七八糟的東西。我只能告訴你,當TCP發送某些數據給TCP接收方
               時,TCP接收方會發回一個確認報文。TCP發送方收到這個確認報文后,就可以確認剛才發送的數據包成功到達。

               為什么這個確認報文叫ACK確認(貌似是我臨時給的概念:D)?再翻到TCP包頭結構那張圖,ACK是TCP包頭中
               的1bit標志位,如同SYN、PSH、RST之類的標志一樣,這些標志都有一個專有的用途。當ACK標志位被設置為1
               時,我就稱其為ACK確認標志,因為ACK就是用于確認報文段的。

               在上面所說的窗口大小中,我提到,發送方如何知道接收方的接收緩存大小呢?這也是通過確認報文段實現:
               當接收方接收到數據后,發送ACK確認數據包給發送方,就設置包頭中的窗口域。

            9. 提供可靠性的方法之二:各種定時器
               TCP中會設置很多計時器,這些定時器大多用于超時重傳(老半天得不到回應,所以重傳數據)。

            10.什么是全雙工?
               全雙工就是你可以同時在一個TCP連接上進行數據的發送和接收。這種雙工特性也促使了關閉TCP連接時的四次
               握手。

            11.TODO : more concepts...


            這里我盡量簡單地介紹一些TCP中的概念,希望可以讓你有概括性的了解。預計下一節我會講講建立TCP連接的相關細節。
            除了Stevens的<TCP/IP詳解>,我推薦<The TCP/IP Guide>,據說是另一部TCP的權威之作。

            posted on 2008-05-09 16:30 Kevin Lynx 閱讀(2920) 評論(7)  編輯 收藏 引用

            評論

            # re: tcp要點學習-基礎概念 2008-05-09 17:20 Xw.Y

            學習筆記贊~順便提一下,MTU是硬件層的嘛?我記得在PPPoE寫一下MTU通常是1492,就這個來說,MTU更像是協議層的東西。。。我不確定。。。需要查一下資料:-)  回復  更多評論   

            # re: tcp要點學習-基礎概念 2008-05-09 18:08 Kevin Lynx

            @Xw.Y
            我的意思是硬件那一層(網絡協議棧)中的東西(鏈路層)  回復  更多評論   

            # re: tcp要點學習-基礎概念 2008-05-09 19:55 true

            總結的不錯:)  回復  更多評論   

            # re: tcp要點學習-基礎概念[未登錄] 2008-05-09 21:16 杜中偉

            不錯,能有毅力看下去.  回復  更多評論   

            # re: tcp要點學習-基礎概念 2008-05-10 10:35 zhang某人

            看到21章沒?  回復  更多評論   

            # re: tcp要點學習-基礎概念 2008-05-11 23:42 look&think

            mark....  回復  更多評論   

            # re: tcp要點學習-基礎概念 2010-02-11 09:50 tcpcoder

            so good.i study tcp/ip too.thanks!  回復  更多評論   

            人妻少妇精品久久| 久久香蕉国产线看观看乱码| 精品无码久久久久久国产| 国产精自产拍久久久久久蜜| 久久综合九色欧美综合狠狠 | 久久无码AV一区二区三区| 久久综合亚洲色一区二区三区| 18岁日韩内射颜射午夜久久成人| 精品综合久久久久久97超人 | 国产福利电影一区二区三区久久久久成人精品综合 | 国产精品内射久久久久欢欢 | 99久久中文字幕| 亚洲国产精品一区二区三区久久| 囯产精品久久久久久久久蜜桃 | 欧美一区二区三区久久综合| 青青青国产精品国产精品久久久久| 免费一级做a爰片久久毛片潮| 欧洲成人午夜精品无码区久久 | 国产亚洲精久久久久久无码77777| 亚洲AV无码久久精品成人| 国产女人aaa级久久久级| 亚洲AV无一区二区三区久久| 欧美久久一区二区三区| 91精品国产高清久久久久久91| 7777精品伊人久久久大香线蕉| 久久福利青草精品资源站| 久久这里只有精品18| 亚洲欧美另类日本久久国产真实乱对白| 国产精品一区二区久久国产| 亚洲∧v久久久无码精品| 7777精品伊人久久久大香线蕉| 成人亚洲欧美久久久久 | 久久久精品2019免费观看| 狠狠色丁香久久婷婷综合_中| 久久影院亚洲一区| 日韩va亚洲va欧美va久久| 久久久WWW成人免费精品| 国产精品九九久久免费视频| 99久久国产主播综合精品 | 狠狠色丁香婷婷久久综合五月| 天天综合久久一二三区|