• <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

            低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

            tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念

            Author : Kevin Lynx 

            TCP是TCP/IP協(xié)議簇中傳輸層上的一種網(wǎng)絡(luò)協(xié)議,它是一種面向連接的、可靠的協(xié)議。為了提供這種可靠性,
            TCP實(shí)現(xiàn)了各種有效的機(jī)制、算法。為了從一種宏觀的角度去了解這個(gè)協(xié)議,這里先大致地提一下與之相關(guān)
            的概念。

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

            2. 什么是‘三次握手’?
               在建立TCP連接之前,兩個(gè)使用TCP的應(yīng)用需要交換三次網(wǎng)絡(luò)數(shù)據(jù)。這三個(gè)數(shù)據(jù)包的來(lái)往也就是所謂的‘
               三次握手’。

            3. 報(bào)文段segment
               我們說(shuō)TCP是流式的網(wǎng)絡(luò)協(xié)議,那是因?yàn)椋瑧?yīng)用程序可以一直往TCP寫(xiě)數(shù)據(jù),無(wú)論你是逐byte,還是write
               a chunk,TCP對(duì)應(yīng)用傳給它的數(shù)據(jù)進(jìn)行緩沖,直到緩沖數(shù)據(jù)達(dá)到一定尺寸才發(fā)送??梢钥闯?,對(duì)于應(yīng)用
               而言,TCP就像是stream的。但事實(shí)上,在TCP層,數(shù)據(jù)還是以塊為單位的。這個(gè)塊也就是所謂的報(bào)文段
               segment。

            4. 什么是MTU?
               MTU即最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通信協(xié)議的某一層上面所能通過(guò)的
               大數(shù)據(jù)報(bào)大?。ㄒ宰止?jié)為單位)。我個(gè)人目前的理解認(rèn)為,MTU是一個(gè)網(wǎng)絡(luò)在硬件層次上所允許的最大
               數(shù)據(jù)包大小,例如以太網(wǎng)大概是1500字節(jié)。

            5. 什么是MSS?
               MSS即最大報(bào)文段大?。∕aximum Segment Size),它是指TCP中一個(gè)報(bào)文段上附加的用戶(hù)數(shù)據(jù)的最大大小。
               這里稍微說(shuō)下應(yīng)用層發(fā)送某個(gè)數(shù)據(jù)包時(shí)整個(gè)TCP/IP協(xié)議棧的操作過(guò)程:應(yīng)用層將自己的用戶(hù)數(shù)據(jù)傳給TCP
               層(傳輸層),TCP在這些數(shù)據(jù)前添加自己的協(xié)議頭(簡(jiǎn)單地理解為附加一些數(shù)據(jù)),然后將數(shù)據(jù)交給
               IP層(網(wǎng)絡(luò)層),IP層附加自己的協(xié)議頭,以此類(lèi)推。
               雖然MSS意思是最大報(bào)文段大小,但事實(shí)上它是排除了協(xié)議頭的用戶(hù)數(shù)據(jù)。

            6. MTU and MSS ?
               可以簡(jiǎn)單地給你一個(gè)這樣的公示:mss = mtu - tcp_header_size - ip_header_size。
               而通常,IP協(xié)議附加的協(xié)議頭大小和TCP的協(xié)議頭大小都是20字節(jié),所以通常的MSS為1460字節(jié)。
               注意,這里說(shuō)的數(shù)字并不見(jiàn)得正確,因?yàn)镸SS是可以被協(xié)商的。各種協(xié)議頭也可能被添加附加數(shù)據(jù),但是
               他們的關(guān)系是這樣的。

            7. 什么是窗口大?。?/strong>
               找本TCP的書(shū)看下TCP數(shù)據(jù)包的包頭(本文多次使用數(shù)據(jù)包、報(bào)文的概念,我這里說(shuō)的都是一樣的),你會(huì)
               發(fā)現(xiàn)那個(gè)16位的窗口大小。
               窗口這個(gè)域?qū)τ谡麄€(gè)TCP協(xié)議都很重要。簡(jiǎn)單地說(shuō),窗口大小是指接收端的接收緩存的大小。上面說(shuō)了,應(yīng)用
               在發(fā)數(shù)據(jù)的時(shí)候,TCP會(huì)緩存這些數(shù)據(jù),稍后發(fā)送。接收數(shù)據(jù)時(shí)也一樣,TCP接收數(shù)據(jù)并緩存起來(lái),直到應(yīng)用
               調(diào)用recv之類(lèi)的函數(shù)取數(shù)據(jù)時(shí),TCP才將這些緩存數(shù)據(jù)清除。

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

            8. 提供可靠性的方法之一:ACK確認(rèn)?
               這里還不敢提序號(hào)、確認(rèn)號(hào)、延時(shí)ACK等亂七八糟的東西。我只能告訴你,當(dāng)TCP發(fā)送某些數(shù)據(jù)給TCP接收方
               時(shí),TCP接收方會(huì)發(fā)回一個(gè)確認(rèn)報(bào)文。TCP發(fā)送方收到這個(gè)確認(rèn)報(bào)文后,就可以確認(rèn)剛才發(fā)送的數(shù)據(jù)包成功到達(dá)。

               為什么這個(gè)確認(rèn)報(bào)文叫ACK確認(rèn)(貌似是我臨時(shí)給的概念:D)?再翻到TCP包頭結(jié)構(gòu)那張圖,ACK是TCP包頭中
               的1bit標(biāo)志位,如同SYN、PSH、RST之類(lèi)的標(biāo)志一樣,這些標(biāo)志都有一個(gè)專(zhuān)有的用途。當(dāng)ACK標(biāo)志位被設(shè)置為1
               時(shí),我就稱(chēng)其為ACK確認(rèn)標(biāo)志,因?yàn)锳CK就是用于確認(rèn)報(bào)文段的。

               在上面所說(shuō)的窗口大小中,我提到,發(fā)送方如何知道接收方的接收緩存大小呢?這也是通過(guò)確認(rèn)報(bào)文段實(shí)現(xiàn):
               當(dāng)接收方接收到數(shù)據(jù)后,發(fā)送ACK確認(rèn)數(shù)據(jù)包給發(fā)送方,就設(shè)置包頭中的窗口域。

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

            10.什么是全雙工?
               全雙工就是你可以同時(shí)在一個(gè)TCP連接上進(jìn)行數(shù)據(jù)的發(fā)送和接收。這種雙工特性也促使了關(guān)閉TCP連接時(shí)的四次
               握手。

            11.TODO : more concepts...


            這里我盡量簡(jiǎn)單地介紹一些TCP中的概念,希望可以讓你有概括性的了解。預(yù)計(jì)下一節(jié)我會(huì)講講建立TCP連接的相關(guān)細(xì)節(jié)。
            除了Stevens的<TCP/IP詳解>,我推薦<The TCP/IP Guide>,據(jù)說(shuō)是另一部TCP的權(quán)威之作。

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

            評(píng)論

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2008-05-09 17:20 Xw.Y

            學(xué)習(xí)筆記贊~順便提一下,MTU是硬件層的嘛?我記得在PPPoE寫(xiě)一下MTU通常是1492,就這個(gè)來(lái)說(shuō),MTU更像是協(xié)議層的東西。。。我不確定。。。需要查一下資料:-)  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2008-05-09 18:08 Kevin Lynx

            @Xw.Y
            我的意思是硬件那一層(網(wǎng)絡(luò)協(xié)議棧)中的東西(鏈路層)  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2008-05-09 19:55 true

            總結(jié)的不錯(cuò):)  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念[未登錄](méi) 2008-05-09 21:16 杜中偉

            不錯(cuò),能有毅力看下去.  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2008-05-10 10:35 zhang某人

            看到21章沒(méi)?  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2008-05-11 23:42 look&think

            mark....  回復(fù)  更多評(píng)論   

            # re: tcp要點(diǎn)學(xué)習(xí)-基礎(chǔ)概念 2010-02-11 09:50 tcpcoder

            so good.i study tcp/ip too.thanks!  回復(fù)  更多評(píng)論   

            91精品日韩人妻无码久久不卡| 国产高清美女一级a毛片久久w| 99蜜桃臀久久久欧美精品网站| 色诱久久久久综合网ywww| 国产精品久久久久久福利69堂| 国产成人无码精品久久久久免费| 久久伊人中文无码| 久久99亚洲网美利坚合众国| 国产亚州精品女人久久久久久 | 亚洲AV日韩精品久久久久久| 精品久久一区二区| 伊人久久精品无码二区麻豆| 精品久久久久久久中文字幕| 亚洲狠狠婷婷综合久久久久 | 中文字幕人妻色偷偷久久 | 婷婷久久精品国产| 99久久精品免费看国产免费| 亚洲第一极品精品无码久久| 久久久久国产精品嫩草影院 | 久久国产成人| 国产精品久久久久久影院 | 最新久久免费视频| 国产精品美女久久久久av爽| 久久婷婷五月综合97色一本一本| 人妻无码久久精品| 狠狠色伊人久久精品综合网| 2021少妇久久久久久久久久| 一本一道久久综合狠狠老| 久久午夜福利电影| 精品久久久久久国产三级| 久久国产一区二区| 韩国无遮挡三级久久| 久久人人爽人人爽人人AV | 久久久精品日本一区二区三区| 狠狠干狠狠久久| 国产精品久久成人影院| 久久久久无码精品国产| 亚洲中文字幕无码久久精品1| 国产精品久久久久蜜芽| 亚洲午夜无码AV毛片久久| 亚洲欧洲中文日韩久久AV乱码|