搜索
登錄
注冊
網(wǎng)絡優(yōu)化工程師招聘專欄
4G/LTE通信工程師最新職位列表
通信實習生/應屆生招聘職位
MSCBSC 移動通信論壇
»
資料大雜燴(免威望)
» tcp三次握手及原理
討論帖
資料帖
投票帖
懸賞帖
閱讀:
3321
回復:
4
關(guān)注樓主
[HUWEI]
tcp三次握手及原理
qiugl
金牌會員
發(fā)短消息
關(guān)注Ta
積分 5374
帖子 532
威望 1229 個
禮品券 10 個
專家指數(shù) 20
注冊 2007-9-9
專業(yè)方向 網(wǎng)優(yōu)
回答問題數(shù)
0
回答被采納數(shù)
0
回答采納率
0%
#1
大
中
小
使用道具
發(fā)表于 2007-09-10 20:48:23
只看樓主
TCP/IP 是很多的不同的協(xié)議組成,實際上是一個協(xié)議組,TCP 用戶數(shù)據(jù)報表協(xié)議(也
稱作TCP 傳輸控制協(xié)議,Transport Control Protocol。可靠的主機到主機層協(xié)議。這里要先
強調(diào)一下,傳輸控制協(xié)議是OSI 網(wǎng)絡的第四層的叫法,TCP 傳輸控制協(xié)議是TCP/IP 傳輸?shù)?br /> 6 個基本協(xié)議的一種。兩個TCP 意思非相同。)。TCP 是一種可靠的面向連接的傳送服務。
它在傳送數(shù)據(jù)時是分段進行的,主機交換數(shù)據(jù)必須建立一個會話。它用比特流通信,即數(shù)據(jù)
被作為無結(jié)構(gòu)的字節(jié)流。通過每個TCP 傳輸?shù)淖侄沃付樞蛱枺垣@得可靠性。是在OSI
參考模型中的第四層,TCP 是使用IP 的網(wǎng)間互聯(lián)功能而提供可靠的數(shù)據(jù)傳輸,IP 不停的把
報文放到網(wǎng)絡上,而TCP 是負責確信報文到達。在協(xié)同IP 的操作中TCP 負責:握手過程、
報文管理、流量控制、錯誤檢測和處理(控制),可以根據(jù)一定的編號順序?qū)Ψ钦m樞虻?br /> 報文給予從新排列順序。關(guān)于TCP 的RFC 文檔有RFC793、RFC791、RFC1700。
在TCP 會話初期,有所謂的“三握手”:對每次發(fā)送的數(shù)據(jù)量是怎樣跟蹤進行協(xié)商使
數(shù)據(jù)段的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確定的數(shù)據(jù)確認數(shù)及數(shù)據(jù)發(fā)送、接收完
畢后何時撤消聯(lián)系,并建立虛連接。為了提供可靠的傳送,TCP 在發(fā)送新的數(shù)據(jù)之前,以
特定的順序?qū)?shù)據(jù)包的序號,并需要這些包傳送給目標機之后的確認消息。TCP 總是用來
發(fā)送大批量的數(shù)據(jù)。當應用程序在收到數(shù)據(jù)后要做出確認時也要用到TCP。由于TCP 需要
時刻跟蹤,這需要額外開銷,使得TCP 的格式有些顯得復雜。下面就讓我們看一個TCP 的
經(jīng)典案例,這是后來被稱為MITNICK 攻擊中KEVIN 開創(chuàng)了兩種攻擊技術(shù):
TCP 會話劫持
SYN FLOOD(同步洪流)
在這里我們討論的時TCP 會話劫持的問題。
先讓我們明白TCP 建立連接的基本簡單的過程。為了建設(shè)一個小型的模仿環(huán)境我們假
設(shè)有3 臺接入互聯(lián)網(wǎng)的機器。A 為攻擊者操縱的攻擊機。B 為中介跳板機器(受信任的服務
器)。C 為受害者使用的機器(多是服務器),這里把C 機器鎖定為目標機器。A 機器向B
機器發(fā)送SYN 包,請求建立連接,這時已經(jīng)響應請求的B 機器會向A 機器回應SYN/ACK
表明同意建立連接,當A 機器接受到B 機器發(fā)送的SYN/ACK 回應時,發(fā)送應答ACK 建立
A 機器與B 機器的網(wǎng)絡連接。這樣一個兩臺機器之間的TCP 通話信道就建立成功了。
B 終端受信任的服務器向C 機器發(fā)起TCP 連接,A 機器對服務器發(fā)起SYN 信息,使
C 機器不能響應B 機器。在同時A 機器也向B 機器發(fā)送虛假的C 機器回應的SYN 數(shù)據(jù)包,
接收到SYN 數(shù)據(jù)包的B 機器(被C 機器信任)開始發(fā)送應答連接建立的SYN/ACK 數(shù)據(jù)包,
這時C 機器正在忙于響應以前發(fā)送的SYN 數(shù)據(jù)而無暇回應B 機器,而A 機器的攻擊者預
測出B 機器包的序列號(現(xiàn)在的TCP 序列號預測難度有所加大)假冒C 機器向B 機器發(fā)送
應答ACK 這時攻擊者騙取B 機器的信任,假冒C 機器與B 機器建立起TCP 協(xié)議的對話連
接。這個時候的C 機器還是在響應攻擊者A 機器發(fā)送的SYN 數(shù)據(jù)。
TCP 協(xié)議棧的弱點:TCP 連接的資源消耗,其中包括:數(shù)據(jù)包信息、條件狀態(tài)、序列
號等。通過故意不完成建立連接所需要的三次握手過程,造成連接一方的資源耗盡。
通過攻擊者有意的不完成建立連接所需要的三次握手的全過程,從而造成了C 機器的
資源耗盡。序列號的可預測性,目標主機應答連接請求時返回的SYN/ACK 的序列號時可預
測的。(早期TCP 協(xié)議棧,具體的可以參見1981 年出的關(guān)于TCP 雛形的RFC793 文檔)
TCP 頭結(jié)構(gòu)
TCP 協(xié)議頭最少20 個字節(jié),包括以下的區(qū)域(由于翻譯不禁相同,文章中給出
相應的英文單詞):
TCP 源端口(Source Port):16 位的源端口其中包含初始化通信的端口。源端口和
源IP 地址的作用是標示報問的返回地址。
TCP 目的端口(Destination port):16 位的目的端口域定義傳輸?shù)哪康。這個端口指
明報文接收計算機上的應用程序地址接口。
TCP 序列號(序列碼,Sequence Number):32 位的序列號由接收端計算機使用,重
新分段的報文成最初形式。當SYN 出現(xiàn),序列碼實際上是初始序列碼(ISN),而第一個數(shù)
據(jù)字節(jié)是ISN+1。這個序列號(序列碼)是可以補償傳輸中的不一致。
TCP 應答號(Acknowledgment Number):32 位的序列號由接收端計算機使用,重
組分段的報文成最初形式。,如果設(shè)置了ACK 控制位,這個值表示一個準備接收的包的序
列碼。
數(shù)據(jù)偏移量(HLEN):4 位包括TCP 頭大小,指示何處數(shù)據(jù)開始。
保留(Reserved):6 位值域,這些位必須是0。為了將來定義新的用途所保留。
標志(Code Bits):6 位標志域。表示為:緊急標志、有意義的應答標志、推、重置
連接標志、同步序列號標志、完成發(fā)送數(shù)據(jù)標志。按照順序排列是:URG、ACK、PSH、
RST、SYN、FIN。
窗口(Window):16 位,用來表示想收到的每個TCP 數(shù)據(jù)段的大小。
校驗位(Checksum):16 位TCP 頭。源機器基于數(shù)據(jù)內(nèi)容計算一個數(shù)值,收信息機
要與源機器數(shù)值結(jié)果完全一樣,從而證明數(shù)據(jù)的有效性。
優(yōu)先指針(緊急,Urgent Pointer):16 位,指向后面是優(yōu)先數(shù)據(jù)的字節(jié),在URG
標志設(shè)置了時才有效。如果URG 標志沒有被設(shè)置,緊急域作為填充。加快處理標示為緊急
的數(shù)據(jù)段。
選項(Option):長度不定,但長度必須以字節(jié)。如果沒有選項就表示這個一字節(jié)
的域等于0。
填充:不定長,填充的內(nèi)容必須為0,它是為了數(shù)學目的而存在。目的是確?
間的可預測性。保證包頭的結(jié)合和數(shù)據(jù)的開始處偏移量能夠被32 整除,一般額外的零以保
證TCP 頭是32 位的整數(shù)倍。
標志控制功能
URG:緊急標志
緊急(The urgent pointer) 標志有效。緊急標志置位,
ACK:確認標志
確認編號(Acknowledgement Number)欄有效。大多數(shù)情況下該標志位是置位的。
TCP 報頭內(nèi)的確認編號欄內(nèi)包含的確認編號(w+1,F(xiàn)igure:1)為下一個預期的序列編號,同
時提示遠端系統(tǒng)已經(jīng)成功接收所有數(shù)據(jù)。
PSH:推標志
該標志置位時,接收端不將該數(shù)據(jù)進行隊列處理,而是盡可能快將數(shù)據(jù)轉(zhuǎn)由應用
處理。在處理telnet 或rlogin 等交互模式的連接時,該標志總是置位的。
RST:復位標志
復位標志有效。用于復位相應的TCP 連接。
SYN:同步標志
同步序列編號(Synchronize Sequence Numbers)欄有效。該標志僅在三次握手建立
TCP 連接時有效。它提示TCP 連接的服務端檢查序列編號,該序列編號為TCP 連接初始端
(一般是客戶端)的初始序列編號。在這里,可以把TCP 序列編號看作是一個范圍從0 到4,
294,967,295 的32 位計數(shù)器。通過TCP 連接交換的數(shù)據(jù)中每一個字節(jié)都經(jīng)過序列編號。
在TCP 報頭中的序列編號欄包括了TCP 分段中第一個字節(jié)的序列編號。
FIN:結(jié)束標志
帶有該標志置位的數(shù)據(jù)包用來結(jié)束一個TCP 回話,但對應端口仍處于開放狀態(tài),
準備接收后續(xù)數(shù)據(jù)。
服務端處于監(jiān)聽狀態(tài),客戶端用于建立連接請求的數(shù)據(jù)包(IP packet)按照TCP/IP
協(xié)議堆棧組合成為TCP 處理的分段(segment)。
分析報頭信息: TCP 層接收到相應的TCP 和IP 報頭,將這些信息存儲到內(nèi)存中。
檢查TCP 校驗和(checksum):標準的校驗和位于分段之中(Figure:2)。如果檢驗
失敗,不返回確認,該分段丟棄,并等待客戶端進行重傳。
查找協(xié)議控制塊(PCB{}):TCP 查找與該連接相關(guān)聯(lián)的協(xié)議控制塊。如果沒有找
到,TCP 將該分段丟棄并返回RST。(這就是TCP 處理沒有端口監(jiān)聽情況下的機制) 如果該
協(xié)議控制塊存在,但狀態(tài)為關(guān)閉,服務端不調(diào)用connect()或listen()。該分段丟棄,但不返
回RST?蛻舳藭䥽L試重新建立連接請求。
建立新的socket:當處于監(jiān)聽狀態(tài)的socket 收到該分段時,會建立一個子socket,
同時還有socket{},tcpcb{}和pub{}建立。這時如果有錯誤發(fā)生,會通過標志位來拆除相應
的socket 和釋放內(nèi)存,TCP 連接失敗。如果緩存隊列處于填滿狀態(tài),TCP 認為有錯誤發(fā)生,
所有的后續(xù)連接請求會被拒絕。這里可以看出SYN Flood 攻擊是如何起作用的。
丟棄:如果該分段中的標志為RST 或ACK,或者沒有SYN 標志,則該分段丟棄。
并釋放相應的內(nèi)存。
發(fā)送序列變量
SND.UNA : 發(fā)送未確認
SND.NXT : 發(fā)送下一個
SND.WND : 發(fā)送窗口
SND.UP : 發(fā)送優(yōu)先指針
SND.WL1 : 用于最后窗口更新的段序列號
SND.WL2 : 用于最后窗口更新的段確認號
ISS : 初始發(fā)送序列號
接收序列號
RCV.NXT : 接收下一個
RCV.WND : 接收下一個
RCV.UP : 接收優(yōu)先指針
IRS : 初始接收序列號
當前段變量
SEG.SEQ : 段序列號
SEG.ACK : 段確認標記
SEG.LEN : 段長
SEG.WND : 段窗口
SEG.UP : 段緊急指針
SEG.PRC : 段優(yōu)先級
CLOSED 表示沒有連接,各個狀態(tài)的意義如下:
LISTEN : 監(jiān)聽來自遠方TCP 端口的連接請求。
SYN-SENT : 在發(fā)送連接請求后等待匹配的連接請求。
SYN-RECEIVED : 在收到和發(fā)送一個連接請求后等待對連接請求的確認。
ESTABLISHED : 代表一個打開的連接,數(shù)據(jù)可以傳送給用戶。
FIN-WAIT-1 : 等待遠程TCP 的連接中斷請求,或先前的連接中斷請求的確認。
FIN-WAIT-2 : 從遠程TCP 等待連接中斷請求。
CLOSE-WAIT : 等待從本地用戶發(fā)來的連接中斷請求。
CLOSING : 等待遠程TCP 對連接中斷的確認。
LAST-ACK : 等待原來發(fā)向遠程TCP 的連接中斷請求的確認。
TIME-WAIT : 等待足夠的時間以確保遠程TCP 接收到連接中斷請求的確認。
CLOSED : 沒有任何連接狀態(tài)。
TCP 連接過程是狀態(tài)的轉(zhuǎn)換,促使發(fā)生狀態(tài)轉(zhuǎn)換的是用戶調(diào)用:OPEN,SEND,
RECEIVE,CLOSE,ABORT 和STATUS。傳送過來的數(shù)據(jù)段,特別那些包括以下標記的數(shù)
據(jù)段SYN,ACK,RST 和FIN。還有超時,上面所說的都會時TCP 狀態(tài)發(fā)生變化。
序列號
請注意,我們在TCP 連接中發(fā)送的字節(jié)都有一個序列號。因為編了號,所以可以
確認它們的收到。對序列號的確認是累積性的。TCP 必須進行的序列號比較操作種類包括
以下幾種:
①決定一些發(fā)送了的但未確認的序列號。
②決定所有的序列號都已經(jīng)收到了。
③決定下一個段中應該包括的序列號。
對于發(fā)送的數(shù)據(jù)TCP 要接收確認,確認時必須進行的:
SND.UNA = 最老的確認了的序列號。
SND.NXT = 下一個要發(fā)送的序列號。
SEG.ACK = 接收TCP 的確認,接收TCP 期待的下一個序列號。
SEG.SEQ = 一個數(shù)據(jù)段的第一個序列號。
SEG.LEN = 數(shù)據(jù)段中包括的字節(jié)數(shù)。
SEG.SEQ+SEG.LEN-1 = 數(shù)據(jù)段的最后一個序列號。
如果一個數(shù)據(jù)段的序列號小于等于確認號的值,那么整個數(shù)據(jù)段就被確認了。而
在接收數(shù)據(jù)時下面的比較操作是必須的:
RCV.NXT = 期待的序列號和接收窗口的最低沿。
RCV.NXT+RCV.WND:1 = 最后一個序列號和接收窗口的最高沿。
SEG.SEQ = 接收到的第一個序列號。
SEG.SEQ+SEG.LEN:1 = 接收到的最后一個序列號。
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
1、回復“
YD5GAI
”免費領(lǐng)取《
中國移動:5G網(wǎng)絡AI應用典型場景技術(shù)解決方案白皮書
》
2、回復“
5G6G
”免費領(lǐng)取《
5G_6G毫米波測試技術(shù)白皮書-2022_03-21
》
3、回復“
YD6G
”免費領(lǐng)取《
中國移動:6G至簡無線接入網(wǎng)白皮書
》
4、回復“
LTBPS
”免費領(lǐng)取《
《中國聯(lián)通5G終端白皮書》
》
5、回復“
ZGDX
”免費領(lǐng)取《
中國電信5G NTN技術(shù)白皮書
》
6、回復“
TXSB
”免費領(lǐng)取《
通信設(shè)備安裝工程施工工藝圖解
》
7、回復“
YDSL
”免費領(lǐng)取《
中國移動算力并網(wǎng)白皮書
》
8、回復“
5GX3
”免費領(lǐng)取《
R16 23501-g60 5G的系統(tǒng)架構(gòu)1
》
對本帖內(nèi)容的看法?
我要點評
作者的更多帖子
劉謙、董卿這段對話絕對不能往深處想!
2011-05-14
[
充值威望,立即自動到帳
] [
VIP貴賓權(quán)限+威望套餐
] 另有大量優(yōu)惠贈送活動,請光臨充值中心
充值擁有大量的威望和最高的下載權(quán)限,下載站內(nèi)資料無憂
dingshipeng
論壇元老
發(fā)短消息
關(guān)注Ta
積分 22675
帖子 31
威望 684 個
禮品券 0 個
專家指數(shù) 0
注冊 2007-8-30
專業(yè)方向
回答問題數(shù)
0
回答被采納數(shù)
0
回答采納率
0%
#2
大
中
小
使用道具
發(fā)表于 2007-09-13 08:39:50
技術(shù)問題,回答得專家指數(shù),快速升級
這個論壇沒有辦法查看發(fā)的帖子的閱讀量嗎
在線,15天前提問
微信號綁定錯誤怎么辦
在線,38天前提問
這個紙質(zhì)版,怎么買啊
在線,46天前提問
聯(lián)通的手機不能訪問論壇,解釋論壇的地址是加拿大地.
在線,64天前提問
有沒有做基站覆蓋仿真的軟件?
在線,92天前提問
技術(shù)創(chuàng)新與市場策略的調(diào)整,將成為決定企業(yè)能否在全.
在線,95天前提問
終端熄屏進入 Idle 態(tài)?
在線,105天前提問
有些資料能幫忙找嗎
在線,123天前提問
大陸版谷歌打不開,有什么辦法嘛
在線,129天前提問
華為GSC高級和網(wǎng)優(yōu)高級有什么區(qū)別
在線,139天前提問
請問客服在嗎?
在線,156天前提問
信號好,volte通話雜音可能原因
在線,185天前提問
有幾個月了。
在線,193天前提問
為什么訪問你的論壇老出這個無訪問登
在線,193天前提問
怎樣解綁微信?
在線,226天前提問
數(shù)通有哪些產(chǎn)品
在線,246天前提問
學習了,雖然有點看不懂
努力哈
對本帖內(nèi)容的看法?
我要點評
[
立即成為VIP會員,百萬通信專業(yè)資料立即下載,支付寶、微信付款,簡單、快速!
]
ll19190504
銀牌會員
發(fā)短消息
關(guān)注Ta
積分 3383
帖子 305
威望 19214 個
禮品券 5 個
專家指數(shù) 0
注冊 2007-12-17
專業(yè)方向 通信
回答問題數(shù)
0
回答被采納數(shù)
0
回答采納率
0%
#3
大
中
小
使用道具
發(fā)表于 2009-07-20 17:01:12
好文要頂!
我頂!
對本帖內(nèi)容的看法?
我要點評
最新通信職位:
廣東通信人才網(wǎng)
|
北京通信人才網(wǎng)
|
上海通信人才網(wǎng)
|
南京通信人才網(wǎng)
|
西安通信人才網(wǎng)
|
重慶通信人才網(wǎng)
|
中國通信人才網(wǎng)
瀟瀟東哥
高級會員
發(fā)短消息
關(guān)注Ta
積分 1760
帖子 352
威望 4301 個
禮品券 0 個
專家指數(shù) 0
注冊 2010-4-29
專業(yè)方向 網(wǎng)優(yōu)
回答問題數(shù)
0
回答被采納數(shù)
0
回答采納率
0%
#4
大
中
小
使用道具
發(fā)表于 2010-05-16 20:46:21
學習了,雖然有點看不懂
努力
對本帖內(nèi)容的看法?
我要點評
[
2分鐘擁有VIP權(quán)限和充足威望,可下載站內(nèi)任何資料
] [
快速找到一份高薪的通信行業(yè)職位
]
tongzhizhe
銀牌會員
發(fā)短消息
關(guān)注Ta
積分 2914
帖子 586
威望 1721 個
禮品券 0 個
專家指數(shù) -16
注冊 2010-5-17
專業(yè)方向 網(wǎng)優(yōu)
回答問題數(shù)
0
回答被采納數(shù)
0
回答采納率
0%
#5
大
中
小
使用道具
發(fā)表于 2010-08-03 10:14:04
有點看不懂
對本帖內(nèi)容的看法?
我要點評
最新通信職位:
廣東通信人才網(wǎng)
|
北京通信人才網(wǎng)
|
上海通信人才網(wǎng)
|
南京通信人才網(wǎng)
|
西安通信人才網(wǎng)
|
重慶通信人才網(wǎng)
|
中國通信人才網(wǎng)
討論帖
資料帖
投票帖
懸賞帖
快速回復主題
標題
[HUWEI] tcp三次握手及原理" tabindex="1">
內(nèi)容
上傳資料請點左側(cè)【添加附件】
您即將訪問其它網(wǎng)站
關(guān)閉
您即將訪問的地址是其它網(wǎng)站的內(nèi)容,MSCBSC將不再對其安全性和可靠性負責,請自行判斷是否繼續(xù)前往
繼續(xù)訪問
取消訪問,關(guān)閉
當前時區(qū) GMT+8, 現(xiàn)在時間是 2025-01-26 01:16:33
渝ICP備11001752號
Copyright @ 2006-2016 mscbsc.com
本站統(tǒng)一服務郵箱:mscbsc@163.com
Processed in 0.679983 second(s), 20 queries , Gzip enabled
TOP
清除 Cookies
-
聯(lián)系我們
-
移動通信網(wǎng)
-
移動通信論壇
-
通信招聘網(wǎng)
-
Archiver