日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TCP概述

發(fā)布時間:2024/9/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TCP概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

建議看本篇文章前先看流水線可靠數(shù)據(jù)傳輸協(xié)議,因為那篇知識點忘記寫了,現(xiàn)在剛補上。看完之后再回過來看TCP

一、TCP特點

TCP特點:
(1)點對點:只有一個發(fā)送方、一個接收方,連接狀態(tài)與端系統(tǒng)有關(guān),不為路由器所知。
(2)全雙工數(shù)據(jù)的數(shù)據(jù)傳輸:是同一連接上的雙向數(shù)據(jù)流,可以傳輸最大報文段長度,有最大的傳輸單元。
(3)可靠按序的字節(jié)流:沒有”信息邊界“。
(4)流量控制機制:發(fā)送方要控制它的流量,不會淹沒接收方
(5)面向連接傳輸:在數(shù)據(jù)交換前握手(交換控制信息)初始化發(fā)送方和接收方的狀態(tài)。
(6)采用了流水線協(xié)議:為TCP擁塞和流量控制設(shè)置相應(yīng)的窗口滑動協(xié)議。
TCP發(fā)送緩存和接收緩存:

客戶進程通過套接字傳遞數(shù)據(jù)流,數(shù)據(jù)一旦通過套接字,它就由客戶運行中的TCO控制了。TCP將這些數(shù)據(jù)引導(dǎo)到該連接的發(fā)送緩存里,數(shù)據(jù)緩沖區(qū)以報文段的方式發(fā)到對端主機,對端主機接收到數(shù)據(jù)報文段之后通過TCP接收數(shù)據(jù)緩存取出數(shù)據(jù),再經(jīng)過上層套接字通過進程讀取數(shù)據(jù)到應(yīng)用層。在這個過程中我們可以看到TCP是一個面向流的可靠有序的字節(jié)流協(xié)議,即沒有報文邊界。

二、TCP報文格式


如圖所示,TCP報文段由首部字段和一個數(shù)據(jù)字段組成,數(shù)據(jù)字段包含一塊應(yīng)用數(shù)據(jù)。
首部格式如下:

TCP的首部一般是20個字節(jié),由以下組成:
(1)源端口和目的端口字段:各占2字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。
(2)序號字段:占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。
(3)確認號字段:占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。
(4)數(shù)據(jù)偏移:也就是首部長度,占4位,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠。”數(shù)據(jù)偏移“的單位是32位字(以4字節(jié)為計算單位)。
(5)保留字段:占6位,保留為今后使用,但目前應(yīng)置為0。
1)緊急URG:當URG=1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當于高級優(yōu)先級的數(shù)據(jù))。
2)確認ACK:只有當ACK=1時確認號字段才有效。當ACK=0時確認號無效。
3)復(fù)位RST:當RST=1時,表明TCP連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其它原因),必須釋放連接,然后再重新建立運輸連接。
4)同步SYN:同步SYN=1表示這是一個連接請求或連接接受報文。
5)終止FIN:用來釋放一個連接。FIN=1表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。
(6)窗口字段:占2字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。
(7)校驗和:占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算校驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部。
(8)緊急指針字段:占16位,指出在本報文端中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)。
(9)填充字段:是為了使整個首部長度是4字節(jié)的整數(shù)倍。

三、TCP序號和確認

(1)序號:數(shù)據(jù)段中第一個字節(jié)在數(shù)據(jù)中的位置編號。
(2)確認:確認就是期望從另外一邊收到的下一個字節(jié)的序號,在這個過程中要進行累計ACK即累計應(yīng)答。
這時就會有一個問題:接收方如何處理失序的數(shù)據(jù)段呢?這里TCP規(guī)范并沒有明確的規(guī)定,需要編程人員處理。
最后我們舉個簡單的序號與確認的例子:

主機A在鍵盤上輸入C,Seq的值等于42,ACK的值等于79,發(fā)送的數(shù)據(jù)是C,將數(shù)據(jù)發(fā)給主機B,主機B收到信息之后將數(shù)據(jù)改位確認顯示C,確認顯示C中Seq的值就是上層ACK的值,ACK確認它上一次收到數(shù)據(jù),在42的基礎(chǔ)上加上1變?yōu)?3,把確認的數(shù)據(jù)發(fā)給主機A之后,主機A對接收到的字母C回顯,給出確認,ACK的值是上面Sep的值又加1變?yōu)?0,Seq值為43,確認值收到。

總結(jié)

以上是生活随笔為你收集整理的TCP概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。