• <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>
            aurain
            技術(shù)文摘
            posts - 137,  comments - 268,  trackbacks - 0
            /usr/src/linux/include/linux/tcp.h

            struct tcphdr {
                __be16 source;
                __be16 dest;
                __be32 seq;
                __be32 ack_seq;
            #if defined(__LITTLE_ENDIAN_BITFIELD)
                __u16   res1:4,
                        doff:4,
                        fin:1,
                        syn:1,
                        rst:1,
                        psh:1,
                        ack:1,
                        urg:1,
                        ece:1,
                        cwr:1;
            #elif defined(__BIG_ENDIAN_BITFIELD)
                __u16   doff:4,
                        res1:4,
                        cwr:1,
                        ece:1,
                        urg:1,
                        ack:1,
                        psh:1,
                        rst:1,
                        syn:1,
                        fin:1;
            #else
            #error "Adjust your <asm/byteorder.h> defines"
            #endif

                __be16 window;
                __be16 check;
                __be16 urg_ptr;
            };


                 |----------------|----------------|-------------
                 |     source     |     dest       |
                 |----------------|----------------|
                 |               seq               |
                 |---------------------------------|
                 |               ack_seq           | 20 Bytes
                 |----|----|------|----------------|
                 |doff|res1|      |     window     |
                 |----|----|------|----------------|
                 |     check      |     urg_ptr    |
                 |----------------|----------------|-------------
                 |             options             | 4 Bytes
                 |---------------------------------|  

                                TCP頭




            tcphdr->source
                16位源端口號(hào)

            tcphdr->dest
                16位目的端口號(hào)

            tcphdr->seq
                表示此次發(fā)送的數(shù)據(jù)在整個(gè)報(bào)文段中的起始字節(jié)數(shù)。序號(hào)是32 bit的無(wú)符號(hào)數(shù)。
            為了安全起見(jiàn),它的初始值是一個(gè)隨機(jī)生成的數(shù),它到達(dá)32位最大值后,又從零開(kāi)始。

            tcphdr->
            ack_seq

                指定的是下一個(gè)期望接收的字節(jié),而不是已經(jīng)正確接收到的最后一個(gè)字節(jié)。

            tcphdr->doff
                TCP頭長(zhǎng)度,指明了在TCP頭部包含多少個(gè)32位的字。此信息是必須的,因?yàn)閛ptions域的長(zhǎng)度是可變的,所以整個(gè)TCP頭部的長(zhǎng)度也是變化的。從技術(shù)上講,這個(gè)域?qū)嶋H上指明了數(shù)據(jù)部分在段內(nèi)部的其起始地址(以32位字作為單位進(jìn)行計(jì)量),因?yàn)檫@個(gè)數(shù)值正好是按字為單位的TCP頭部的長(zhǎng)度,所以,二者的效果是等同的

            tcphdr->res1為保留位

            tcphdr->window
                是16位滑動(dòng)窗口的大小,單位為字節(jié),起始于確認(rèn)序列號(hào)字段指明的值,這個(gè)值是接收端正期望接收的字節(jié)數(shù),其最大值是63353字節(jié)。
                TCP中的流量控制是通過(guò)一個(gè)可變大小的滑動(dòng)窗口來(lái)完成的。window域指定了從被確認(rèn)的字節(jié)算起可以接收的多少個(gè)字節(jié)。window = 0也是合法的,這相當(dāng)于說(shuō),到現(xiàn)在為止多達(dá)
            ack_seq-1個(gè)字節(jié)已經(jīng)接收到了,但是接收方現(xiàn)在狀態(tài)不佳,需要休息一下,等一會(huì)兒再繼續(xù)接收更多的數(shù)據(jù),謝謝。以后,接收方可以通過(guò)發(fā)送一個(gè)同樣ack_seq但是window不為0的數(shù)據(jù)段,告訴發(fā)送方繼續(xù)發(fā)送數(shù)據(jù)段。

            tcphdr->check
                是檢驗(yàn)和,覆蓋了整個(gè)的TCP報(bào)文段,這是一個(gè)強(qiáng)制性的字段,一定是由發(fā)送端計(jì)算和存儲(chǔ),并由接收端進(jìn)行驗(yàn)證。

            tcphdr->urg_ptr
                這個(gè)域被用來(lái)指示緊急數(shù)據(jù)在當(dāng)前數(shù)據(jù)段中的位置,它是一個(gè)相對(duì)于當(dāng)前序列號(hào)的字節(jié)偏移值。這個(gè)設(shè)施可以代替中斷信息。
              
            fin, syn, rst, psh, ack, urg為6個(gè)標(biāo)志位
                這6個(gè)位域已經(jīng)保留了超過(guò)四分之一個(gè)世紀(jì)的時(shí)間而仍然原封未動(dòng),這樣的事實(shí)正好也說(shuō)明了TCP的設(shè)計(jì)者們考慮的是多么的周到。它們的含義如下:
                tcphdr->fin fin位被用于釋放一個(gè)連接。它表示發(fā)送方已經(jīng)沒(méi)有數(shù)據(jù)要傳輸了。
                tcphdr->syn 同步序號(hào),用來(lái)發(fā)起一個(gè)連接。syn位被用于建立連接的過(guò)程。在連接請(qǐng)求中,syn=1; ack=0表示該數(shù)據(jù)段沒(méi)有使用捎帶的確認(rèn)域。連接應(yīng)答捎帶了一個(gè)確認(rèn),所以有syn=1; ack=1。本質(zhì)上,syn位被用來(lái)表示connection request和connection accepted,然而進(jìn)一步用ack位來(lái)區(qū)分這兩種情況。
                tcphdr->rst 該為用于重置一個(gè)已經(jīng)混亂的連接,之所以會(huì)混亂,可能是由于主機(jī)崩潰,或者其他的原因。該位也可以被用來(lái)拒絕一個(gè)無(wú)效的數(shù)據(jù)段,或者拒絕一個(gè)連接請(qǐng)求。一般而言,如果你得到的數(shù)據(jù)段設(shè)置了rst位,那說(shuō)明你這一端有了問(wèn)題。
                tcphdr->psh 接收方在收到數(shù)據(jù)后應(yīng)立即請(qǐng)求將數(shù)據(jù)遞交給應(yīng)用程序,而不是將它緩沖起來(lái)直到整個(gè)緩沖區(qū)接收滿為止(這樣做的目的可能是為了效率的原因)
                tcphdr->ack ack位被設(shè)置為1表示
            tcphdr->ack_seq是有效的。如果ack為0,則該數(shù)據(jù)段不包含確認(rèn)信息,所以,tcphdr->ack_seq域應(yīng)該被忽略。
                tcphdr->urg 緊急指針有效

                tcphdr->ece 用途暫時(shí)不明
                tcphdr->cwr 用途暫時(shí)不明
                內(nèi)核源代碼在函數(shù)tcp_transmit_skb()中建立tcp首部。
            posted on 2008-11-21 10:48 閱讀(1566) 評(píng)論(0)  編輯 收藏 引用 所屬分類: tcp/ip

            <2008年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網(wǎng)絡(luò)開(kāi)發(fā)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 497412
            • 排名 - 36

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            99热精品久久只有精品| 国内精品久久久久久久97牛牛| 亚洲午夜精品久久久久久人妖| 99久久精品国产毛片| 久久99这里只有精品国产| 午夜天堂精品久久久久| 99久久亚洲综合精品网站| 一极黄色视频久久网站| 人妻少妇久久中文字幕一区二区| 久久午夜电影网| 人人妻久久人人澡人人爽人人精品| 久久精品国产99久久久| 日韩久久久久中文字幕人妻| 一本久久a久久精品亚洲| 久久国产免费直播| 久久91精品久久91综合| 久久亚洲熟女cc98cm| 久久久久久青草大香综合精品| 久久婷婷五月综合色奶水99啪| 久久亚洲AV永久无码精品| AV无码久久久久不卡蜜桃| 亚洲色欲久久久综合网东京热| 久久夜色撩人精品国产| 久久久久久a亚洲欧洲aⅴ| 亚洲AV日韩AV天堂久久| 亚洲性久久久影院| 欧美伊人久久大香线蕉综合69| 国内精品久久久久| 国产精品一区二区久久不卡| 亚洲AV无一区二区三区久久| 欧美精品一区二区久久| 久久国产视频99电影| 久久久久女教师免费一区| 国产精品欧美亚洲韩国日本久久 | 国产精品久久久久aaaa| 久久人人爽人人爽人人片AV麻烦 | 久久久精品久久久久特色影视| 亚洲中文字幕无码久久2017| 精品熟女少妇AV免费久久| 久久精品亚洲AV久久久无码| 欧美日韩精品久久久久|