а天堂在线中文,玩性感骚逼视频,色先锋AV影音先锋在线,香蕉网综合视频在线观看

什么是TCP協(xié)議

發(fā)布時間:2018/7/13 9:40:00

TCP協(xié)議

TCP協(xié)議基本定義;
   TCP位于TCP/IP模型的傳輸層,它是一種面向連接的端到端協(xié)議。TCP作為傳輸控制協(xié)議,可以為主機提供可靠的數(shù)據(jù)傳輸。

TCP協(xié)議連接方式;
   TCP允許一個主機同時運行多個應用進程。每臺主機可以擁有多個應用端口,每對端口號、源和目標IP地址的組合唯一地標識了一個會話。
   TCP通常使用IP作為網(wǎng)絡層協(xié)議,這時TCP數(shù)據(jù)段被封裝在IP數(shù)據(jù)包內。TCP數(shù)據(jù)段由TCP Header(頭部)和TCP Data(數(shù)據(jù))組成。TCP最多可以有60個字節(jié)的頭部,如果沒有Options字段,正常的長度是20字節(jié)。(TCP是一種可靠的,面向連接的全雙工傳輸層協(xié)議)
   TCP連接的建立是一個三次握手的過程。
1. 主機A(通常也稱為客戶端)發(fā)送一個標識了SYN的數(shù)據(jù)段,表示期望與服務器A建立連接,此數(shù)據(jù)段的序列號(seq)為a。

2. 服務器A回復標識了SYN+ACK的數(shù)據(jù)段,此數(shù)據(jù)段的序列號(seq)為b,確認序列號為主機A的序列號加1(a+1),以此作為對主機A的SYN報文的確認。

3. 主機A發(fā)送一個標識了ACK的數(shù)據(jù)段,此數(shù)據(jù)段的序列號(seq)為a+1,確認序列號為服務器A的序列號加1(b+1),以此作為對服務器A的SYN報文的確認。
(目的設備接收到源設備發(fā)送的數(shù)據(jù)段時,會向源端發(fā)送確認報文,源設備收到確認報文后,繼續(xù)發(fā)送數(shù)據(jù)段,如此重復)
注:TCP支持全雙工模式傳輸數(shù)據(jù),這意味著同一時刻兩個方向都可以進行數(shù)據(jù)的傳輸。在傳輸數(shù)據(jù)之前,TCP通過三次握手建立的實際上是兩個方向的連接,因此在傳輸完畢后,兩個方向的連接必須都關閉。
TCP連接的建立是一個三次握手的過程,而TCP連接的終止則要經(jīng)過四次握手。

TCP狀態(tài)
1.CLOSED:表示初始狀態(tài).

2.LISTEN:表示服務器端的某個SOCKET處于監(jiān)聽狀態(tài),可以接受連接。

3.SYN_RCVD:這個狀態(tài)表示接受到了SYN報文,在正常情況下,這個狀態(tài)是服務器端的SOCKET在建立TCP連接時的三次握手會話過程中的一個中間狀態(tài),很短暫,基本上用netstat你是很難看到這種狀態(tài)的,除非你特意寫了一個客戶端測試程序,故意將三次TCP握手 過程中最后一個ACK報文不予發(fā)送。因此這種狀態(tài)時,當收到客戶端的ACK報文后,它會進入到ESTABLISHED狀態(tài)。

4.SYN_SENT:這個狀態(tài)與SYN_RCVD有關,當客戶端發(fā)送SYN報文,因此也隨即會進入到了SYN_SENT狀態(tài),并等待服務端的發(fā)送三次握手中的第2個報文。SYN_SENT狀態(tài)表示客戶端已發(fā)送SYN報文。

5.ESTABLISHED:表示連接已經(jīng)建立了。

6.FIN_WAIT_1:其實FIN_WAIT_1和FIN_WAIT_2狀態(tài)的真正含義都是表示等待對方的FIN報文。FIN_WAIT_1狀態(tài)實際上是當SOCKET在ESTABLISHED狀態(tài)時,它想主動關閉連接,向對方發(fā)送了FIN報文,此時該SOCKET即進入到FIN_WAIT_1狀態(tài)。而當接受到對方回應ACK報文后,則進入到FIN_WAIT_2狀態(tài)。

7.FIN_WAIT_2:實際上FIN_WAIT_2狀態(tài)下的SOCKET,表示半連接,也即有一方要求關閉連接,另外還告訴對方,我暫時還有點數(shù)據(jù)需要傳送給你,稍后再關閉連接。

8.TIME_WAIT:表示收到了對方的FIN報文,并發(fā)送出了ACK報文,就等2MSL后即可回到CLOSED可用狀態(tài)了。如果FIN_WAIT_1狀態(tài)下,收到了對方同時帶FIN標 志和ACK標志的報文時,可以直接進入到TIME_WAIT狀態(tài),而無須經(jīng)過FIN_WAIT_2狀態(tài)。

9.CLOSING:這種狀態(tài)比較特殊,正常情況下,當你發(fā)送FIN報文后,按理來說是應該先收到(或同時收到)對方的ACK報文,再收到對方的FIN報文。但是CLOSING狀態(tài)表示你發(fā)送FIN報文后,并沒有收到對方的ACK報文,反而卻收到了對方的FIN報文。(如果雙方幾乎在同時close一 個SOCKET的話,那么就出現(xiàn)了雙方同時發(fā)送FIN報文的情況,也即會出現(xiàn)CLOSING狀態(tài),表示雙方都正在關閉SOCKET連接)。

10.CLOSE_WAIT:這種狀態(tài)的含義其實是表示在等待關閉。當對方close一個SOCKET后發(fā)送FIN報文給自己,系統(tǒng)毫無疑問地會回應一個ACK報文給對方,此時則進入到CLOSE_WAIT狀態(tài)。并確認是否還有數(shù)據(jù)發(fā)送給對方,如果沒有的話, 就可以close這個SOCKET,發(fā)送FIN報文給對方,也即關閉連接。在CLOSE_WAIT狀態(tài)下,需要完成的事情是等待你去關閉連接。

11.LAST_ACK: 被動關閉一方在發(fā)送FIN報文后,最后等待對方的ACK報文。當收到ACK報文后,即可以進入到CLOSED可用狀態(tài)。

全部11種狀態(tài)
1. 客戶端獨有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT 。
2. 服務器獨有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK 。
3. 共有的:(1)CLOSED (2)ESTABLISHED 。

LISTEN - 偵聽來自遠方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攻擊方式

1.完成三次握手后,不發(fā)送任何報文,一直維持這些TCP連接。
2.完成三次握手后,立刻發(fā)送FIN或RST報文,釋放本端連接,同時快速發(fā)起新的連接。
3.連接過程中呈現(xiàn)給服務器端很小的TCP windows size,導致服務器TCP協(xié)議棧資源耗盡。
4.發(fā)送大量TCP重傳請求,以很小的流量即可導致被攻擊網(wǎng)絡上行鏈路擁塞。



Copyright© 2004-2020 河南海騰電子技術有限公司 版權所有   經(jīng)營性ICP/ISP證 備案號:B1-20180452   豫公網(wǎng)安備 41019702002018號    電子營業(yè)執(zhí)照