再看這個問題之前,先了解一下tcp。說起tcp大家並不陌生,它是運輸層的通訊協議,位於ip層之上,應用層之下。傳輸層以下的層都不提供可靠的通訊,只有傳輸層的tcp提供可靠的服務和通訊。
一、tcp簡介:
1.tcp是什麼?
即傳輸控制協議,它是運輸層的通訊協議,位於ip層之上,應用層之下。傳輸層以下的層都不提供可靠的通訊,只有傳輸層的tcp提供可靠的服務和通訊。
2.tcp的可靠性主要體現在以下方面:
1) 請求與應答;
2) 按序到達;
3) 重發機制;
4) 面向連線;
5) 流量控制;
6) 超時傳送;
7) 網路擁塞避免;
3.tcp的主要特點:
1) 面向連線的運輸層協議;
2) 每一條連線鬥志點對點的(一對一);
3) 面向位元組流的;
4) 提供可靠交付;
5) 提供全雙工通訊;
4.tcp報頭:
1)源埠和目的埠:各佔2個位元組,分別寫入源主機和目的主機的埠號;
2)32位序號:自己為了保證自己發的資料按序到達的確認;
3)32位確認號:確認對方的資料按序到達的確認;
4)資料偏移:指tcp報文段的資料起始位置距tcp報文段的起始位置有多遠,即tcp的報文段的首部長度;
5)保留:目前置為0,位日後使用;
6)緊急urg:當urg=1時,緊急指標有效,即此報文時緊急報文優先傳送,不再按序傳送。此時與後面的緊急指標配合,向後偏移至此報文處,傳送此報文;
7)ack確認:當ack=1確認字段有效,一般建立連線之後ack為1;當ack=0時,確認字段無效;
8)psh推送:當tcp收到psh=1的報文時時,不等緩衝區填滿就把訊息推送給一方;
9)rst復位:為保證出現錯誤或者長時間連線但不用,tcp就會將之斷開連線,然後其會退出或者重新連線;
10)syn同步:建立連線時,當syn=1,ack=0時表示這是乙個連線請求報文段;當syn和ack都為1時,則雙方都同意建立連線;
11)fin終止:釋放乙個連線;
12)16位視窗:傳送本報文段的一方的接收視窗;
13)16位檢驗和:tcp檢驗和包含首部和資料部分;
14)16位緊急指標:只有的那個urg=1時才有效,即此報文時緊急報文優先傳送,不再按序傳送;
15)選項:長度可變,當不使用選項時,tcp首部長度為20個位元組;
二、urg和psh
1、 什麼是urg?
urg是緊急標誌位。當urg=1時,表示緊急指標有效,即此報文時緊急報文優先傳送,不再按序傳送。此時與後面的緊急指標配合,向後偏移至此報文處,傳送此報文。
2、 urg的特點:
其緊急資料僅在報文中。
3、如何使用?
應與psh配合使用。
4、什麼是psh?
催促標誌位。當傳送端將psh置為1時,tcp就會立即建立乙個報文並傳送。接收端收到psh為1的報文後就立即將接受緩衝區資料向上交付給應用程式,而不是等緩衝區滿了才交付。
5、psh的特點:
psh的緊急報文不僅在報文中還在緩衝區內。
6、如何使用?
應與urg配合使用。
7、urg和psh的區別:
urg是緊急標誌位,當urg=1時,表示此報文段中含有緊急資料,並且緊急資料排在其他資料前面傳送,當接收端收到此資料時必須先優先傳送緊急資料,然後處理普通資料,而不是再按序傳送。
psh是催促標誌位。當傳送端將psh置為1時,tcp就會立即建立乙個報文並傳送。接收端收到psh為1的報文後就立即將接受緩衝區資料向上交付給應用程式,而不是等緩衝區滿了才交付。
兩者只是處理方法不一樣而已。urg緊急資料僅在報文中,而psh的緊急報文不僅在報文中還在緩衝區內。
TCP首部的URG和PSH
緊急資料的起始點 序號 緊急資料的終止點 序號 緊急指標 綜上,urg 緊急指標就是記錄緊急資料的位元組數,緊急指標永遠為正數 1 在緊急資料後面的資料為普通資料,需要按序快取 2 視窗為0也可以傳送緊急資料 3 緊急資料都處理完成後,tcp就告訴程序恢復到正常操作 例如,已經傳送了很長的乙個程式要...
TCP報文首部URG和PSH的區別
tcp報文首部 urg 緊急位 當urg 1時表明緊急指標字段有效,他告訴系統此報文段中有緊急資料,應盡快傳送,而不要按原來的排隊順序來傳送,傳送方的tcp就把緊急資料放到本報文段資料的最前面。urg標誌位要與首部中的緊急指標字段配合使用,緊急指標指向包內資料段的某個位元組 資料從第一位元組到指標所...
TCP首部中的URG和PSH概念以及區別
1 緊急urg 當urg 1時,表明緊急指標字段有效。它告訴此系統此報文段中有緊急資料,應盡快傳送,而不要按原來的排隊順序傳送。urg設定為一時,傳送方tcp就把緊急資料插入到本報文資料的最前面,在緊急資料後面的資料仍然是普通資料。緊急資料起點 序號 緊急資料終點 序號 緊急指標 2 推送psh 當...