數(shù)據(jù)偏移
發(fā)布時間:2014/9/5 21:09:25 訪問次數(shù):3633
確認號 占4字節(jié),是期望OPA547F收到對方下一個報文段的第一個數(shù)據(jù)字節(jié)的序號。例如,B正確收到了A發(fā)送過來的一個報文段,其序號字段值是501,而數(shù)據(jù)長度是200字節(jié)(序號501~700),這表明B正確收到了A發(fā)送的到序號700為止的數(shù)據(jù)。因此,B期望
收到A的下一個數(shù)據(jù)序號是701,于是B在發(fā)送給A的確認報文段中把確認號置為701。請注意,現(xiàn)在的確認號不是501,也不是700,而是701。
總之,應(yīng)當記住:
由于序號字段有32位長,可對4 GB(即4千兆字節(jié)l的數(shù)據(jù)進行編號。在一般情況下可保證當序號重復(fù)使用時,1日序號的數(shù)據(jù)早已通過網(wǎng)絡(luò)到達終點了。
數(shù)據(jù)偏移 占4位,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠。這個字段實際上是指出TCP報文段的首部長度。由于首部中還有長度不確定的選項字段,因此數(shù)據(jù)偏移字段是必要的。但應(yīng)注意,“數(shù)據(jù)偏移”的單位是32位字(即以4字節(jié)長的字為計算單位)。由于4位二進制數(shù)能夠表示的最大十進制數(shù)字是15,因此數(shù)搌偏移的最大值是60字節(jié),這也是TCP首部的最大長度(即選項長度不能超過40字節(jié))。
保留 占6位,保留為今后使用,但目前應(yīng)置為O。
下面有6個控制位說明本報文段的性質(zhì),它們的意義見下面的(7)~(12)。
緊急URG (URGent) 當URG=1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當于高優(yōu)先級的數(shù)據(jù)),而不要按原來的排隊順序來傳送。例如,已經(jīng)發(fā)送了很長的一個程序要在遠地的主機上運行。但后來發(fā)現(xiàn)了一些問題,需要取消該程序的運行。因此用戶從鍵盤發(fā)出中斷命令(Control+C)。如果不使用緊急數(shù)據(jù),那么這兩個字符將存儲在接收TCP的緩存末尾。只有在所有的數(shù)據(jù)被處理完畢后這兩個字符才被交付接收方的應(yīng)用進程。這樣做就浪費了許多時間。
當URG置1時,發(fā)送應(yīng)用進程就告訴發(fā)送方的TCP有緊急數(shù)據(jù)要傳送。于是發(fā)送方TCP就把緊急數(shù)據(jù)插入到本報文段數(shù)據(jù)的最前面,而在緊急數(shù)據(jù)后面的數(shù)據(jù)仍是普通數(shù)據(jù)。這時要與首部中緊急指針(Urgent Pointer)字段配合使用。
確認ACK (ACKnowlegment) 僅當ACK=1時確認號字段才有效。當ACK=0時,確認號無赦。TCP規(guī)定,在連接建立后所有傳送的報文段都必須把ACK置1。
推送PSH (PuSH) 當兩個應(yīng)用進程進行交互式的通信時,有時在一端的應(yīng)用進程希望在鍵入一個命令后立即就能夠收到對方的響應(yīng)。在這種情況下,TCP就可以使用推送(push)操作。這時,發(fā)送方TCP把PSH置1,并立即創(chuàng)建一個報文段發(fā)送出去。接收方
TCP收到PSH:l的報文段,就盡快地(即“推送”向前)交付接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。
確認號 占4字節(jié),是期望OPA547F收到對方下一個報文段的第一個數(shù)據(jù)字節(jié)的序號。例如,B正確收到了A發(fā)送過來的一個報文段,其序號字段值是501,而數(shù)據(jù)長度是200字節(jié)(序號501~700),這表明B正確收到了A發(fā)送的到序號700為止的數(shù)據(jù)。因此,B期望
收到A的下一個數(shù)據(jù)序號是701,于是B在發(fā)送給A的確認報文段中把確認號置為701。請注意,現(xiàn)在的確認號不是501,也不是700,而是701。
總之,應(yīng)當記。
由于序號字段有32位長,可對4 GB(即4千兆字節(jié)l的數(shù)據(jù)進行編號。在一般情況下可保證當序號重復(fù)使用時,1日序號的數(shù)據(jù)早已通過網(wǎng)絡(luò)到達終點了。
數(shù)據(jù)偏移 占4位,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠。這個字段實際上是指出TCP報文段的首部長度。由于首部中還有長度不確定的選項字段,因此數(shù)據(jù)偏移字段是必要的。但應(yīng)注意,“數(shù)據(jù)偏移”的單位是32位字(即以4字節(jié)長的字為計算單位)。由于4位二進制數(shù)能夠表示的最大十進制數(shù)字是15,因此數(shù)搌偏移的最大值是60字節(jié),這也是TCP首部的最大長度(即選項長度不能超過40字節(jié))。
保留 占6位,保留為今后使用,但目前應(yīng)置為O。
下面有6個控制位說明本報文段的性質(zhì),它們的意義見下面的(7)~(12)。
緊急URG (URGent) 當URG=1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當于高優(yōu)先級的數(shù)據(jù)),而不要按原來的排隊順序來傳送。例如,已經(jīng)發(fā)送了很長的一個程序要在遠地的主機上運行。但后來發(fā)現(xiàn)了一些問題,需要取消該程序的運行。因此用戶從鍵盤發(fā)出中斷命令(Control+C)。如果不使用緊急數(shù)據(jù),那么這兩個字符將存儲在接收TCP的緩存末尾。只有在所有的數(shù)據(jù)被處理完畢后這兩個字符才被交付接收方的應(yīng)用進程。這樣做就浪費了許多時間。
當URG置1時,發(fā)送應(yīng)用進程就告訴發(fā)送方的TCP有緊急數(shù)據(jù)要傳送。于是發(fā)送方TCP就把緊急數(shù)據(jù)插入到本報文段數(shù)據(jù)的最前面,而在緊急數(shù)據(jù)后面的數(shù)據(jù)仍是普通數(shù)據(jù)。這時要與首部中緊急指針(Urgent Pointer)字段配合使用。
確認ACK (ACKnowlegment) 僅當ACK=1時確認號字段才有效。當ACK=0時,確認號無赦。TCP規(guī)定,在連接建立后所有傳送的報文段都必須把ACK置1。
推送PSH (PuSH) 當兩個應(yīng)用進程進行交互式的通信時,有時在一端的應(yīng)用進程希望在鍵入一個命令后立即就能夠收到對方的響應(yīng)。在這種情況下,TCP就可以使用推送(push)操作。這時,發(fā)送方TCP把PSH置1,并立即創(chuàng)建一個報文段發(fā)送出去。接收方
TCP收到PSH:l的報文段,就盡快地(即“推送”向前)交付接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。
上一篇:TCP報文段的首部格式
上一篇:MSS5131-123MLC