資源描述:
《_54 _________傳輸控制協(xié)議TCP》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、5.4傳輸控制協(xié)議TCP5.4.1TCP概述TransmissionControlProtocol為應用進程提供可靠的、端到端的、面向連接的字節(jié)流通信的協(xié)議利用網(wǎng)絡層IP協(xié)議提供的不可靠的分組傳輸服務,解決分組的重傳和排序問題由RFC793正式定義為Internet的許多著名應用提供傳輸服務TCP概述示圖?端口…發(fā)送TCP報文段TCP…TCP接收緩存發(fā)送緩存報文段…報文段報文段端口發(fā)送端接收端向發(fā)送緩存寫入數(shù)據(jù)塊從接收緩存讀取數(shù)據(jù)塊應用進程應用進程?5.4.2TCP報文段的首部TCP數(shù)據(jù)部分TCP首部TCP報文段首部各字段及作用源端口和目的端口字段——各占2字節(jié)。端口是運輸層與應用層的服務接
2、口。運輸層的復用和分用功能都要通過端口才能實現(xiàn)。序號字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。確認號字段——占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。TCP保留端口舉例應用層傳輸層FTPTELNETSMTPHTTPDNSPOP32123258053110PortFTP應用連接端口舉例主機A主機B(128.6.4.194:1234)(18.22.67.7:21)建立端到端的連接ClientServer眾所周知端口臨時端口應用:ftp18.22.67.7TCP序號和確認號源端口目標端口
3、…順序號#確認號#SourceDest.Seq.Ack.102823101我發(fā)送#10.TCP序號和確認號我已收到#10,現(xiàn)在我需要#11.源端口目標端口…順序號#確認號#102823SourceDest.10Seq.1Ack.102823SourceDest.11Seq.1Ack.我發(fā)送#10.TCP序號和確認號源端口目標端口…順序號#確認號#102823SourceDest.11Seq.2Ack.102823SourceDest.10Seq.1Ack.102823SourceDest.11Seq.1Ack.我已收到#10,現(xiàn)在我需要#11.我發(fā)送#11.TCP序號和確認號源端口目標端口…
4、順序號#確認號#102823SourceDest.11Seq.2Ack.102823SourceDest.10Seq.1Ack.102823SourceDest.11Seq.1Ack.102823SourceDest.12Seq.2Ack.我已收到#11,現(xiàn)在我需要#12.我發(fā)送#11首部各字段及作用(續(xù))數(shù)據(jù)偏移——占4bit,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠,實際上即TCP首部長度?!皵?shù)據(jù)偏移”的單位不是字節(jié)而是32bit字(4字節(jié)為計算單位)。保留字段——占6bit,保留為今后使用,但目前應置為0。緊急比特URG——當URG?1時,表明緊急指針字段有效。它告
5、訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應盡快傳送(相當于高優(yōu)先級的數(shù)據(jù))。首部各字段及作用(續(xù))確認比特ACK——只有當ACK?1時確認號字段才有效。當ACK?0時,確認號無效。推送比特PSH(PuSH)——接收TCP收到推送比特置1的報文段,就盡快地交付給接收應用進程,而不再等到整個緩存都填滿了后再向上交付。復位比特RST(ReSeT)——當RST?1時,表明TCP連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立傳輸連接。首部各字段及作用(續(xù))同步比特SYN——同步比特SYN置為1,就表示這是三次握手的一個連接請求或連接接受報文。終止比特FIN(FINal)——用來釋放一
6、個連接。當FIN?1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放傳輸連接。窗口字段——占2字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發(fā)送窗口的上限。首部各字段及作用(續(xù))校驗和——占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部。緊急指針字段——占16bit。緊急指針指出在本報文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。選項字段——長度可變。TCP只規(guī)定了一種選項,即最大報文段長度MSS(MaximumSegmentSize)。MS
7、S告訴對方TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是MSS個字節(jié)?!碧畛渥侄巍@是為了使整個首部長度是4字節(jié)的整數(shù)倍。5.4.3TCP的數(shù)據(jù)編號與確認TCP協(xié)議是面向字節(jié)的。TCP將所要傳送的報文看成是字節(jié)組成的數(shù)據(jù)流,并使每一個字節(jié)對應于一個序號。在連接建立時,雙方要商定初始序號。TCP每次發(fā)送的報文段的首部中的序號字段數(shù)值表示該報文段中的數(shù)據(jù)部分的第一個字節(jié)的序號。TCP的確認是對接收到的