日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

TCP/IP協(xié)議的三次握手及實現(xiàn)原理( 三 )


建立新的socket:當(dāng)處于監(jiān)聽狀態(tài)的socket收到該分段時,會建立一個子socket,同時還有socket{},tcpcb{}和pub{}建立 。這時假如有錯誤發(fā)生,會通過標志位來拆除相應(yīng)的socket和釋放內(nèi)存,TCP連接失敗 。假如緩存隊列處于填滿狀態(tài),TCP認為有錯誤發(fā)生,所有的后續(xù)連接請求會被拒絕 。這里可以看出SYN Flood攻擊是如何起作用的 。
丟棄:假如該分段中的標志為RST或ACK,或者沒有SYN標志,則該分段丟棄 。并釋放相應(yīng)的內(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 : 初始接收序列號
當(dāng)前段變量
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)收到了 。
③決定下一個段中應(yī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 = 接收到的最后一個序列號.

推薦閱讀