溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

tcp協(xié)議相關(guān)知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-11-17 11:50:30 來(lái)源:億速云 閱讀:223 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“tcp協(xié)議相關(guān)知識(shí)點(diǎn)有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“tcp協(xié)議相關(guān)知識(shí)點(diǎn)有哪些”吧!

##1. tcp三次握手            

發(fā)送端發(fā)送一個(gè)SYN=1,ACK=0標(biāo)志的數(shù)據(jù)包給接收端,請(qǐng)求進(jìn)行連接,這是第一次握手;接收端收到請(qǐng)求并且允許連接的話,就會(huì)發(fā)送一個(gè)SYN=1,ACK=1標(biāo)志的數(shù)據(jù)包給發(fā)送端,告訴它,可以通訊了,并且讓發(fā)送端發(fā)送一個(gè)確認(rèn)數(shù)據(jù)包,這是第二次握手;最后,發(fā)送端發(fā)送一個(gè)SYN=0,ACK=1的數(shù)據(jù)包給接收端,告訴它連接已被確認(rèn),這就是第三次握手。之后,一個(gè)TCP連接建立,開(kāi)始通訊。

##tcp連接狀態(tài)               

SYN:同步標(biāo)志。同步序列編號(hào)(Synchronize Sequence Numbers)欄有效。該標(biāo)志僅在三次握手建立TCP連接時(shí)有效。它提示TCP連接的服務(wù)端檢查序列編號(hào),該序列編號(hào)為TCP連接初始端(一般是客戶端)的初始序列編號(hào)。在這里,可以把 TCP序列編號(hào)看作是一個(gè)范圍從0到4,294,967,295的32位計(jì)數(shù)器。通過(guò)TCP連接交換的數(shù)據(jù)中每一個(gè)字節(jié)都經(jīng)過(guò)序列編號(hào)。在TCP報(bào)頭中的序列編號(hào)欄包括了TCP分段中第一個(gè)字節(jié)的序列編號(hào)。

ACK:確認(rèn)標(biāo)志。確認(rèn)編號(hào)(Acknowledgement Number)欄有效。大多數(shù)情況下該標(biāo)志位是置位的。TCP報(bào)頭內(nèi)的確認(rèn)編號(hào)欄內(nèi)包含的確認(rèn)編號(hào)(w+1,F(xiàn)igure-1)為下一個(gè)預(yù)期的序列編號(hào),同時(shí)提示遠(yuǎn)端系統(tǒng)已經(jīng)成功接收所有數(shù)據(jù)。

RST:復(fù)位標(biāo)志。復(fù)位標(biāo)志有效。用于復(fù)位相應(yīng)的TCP連接。

URG:緊急標(biāo)志。緊急(The urgent pointer) 標(biāo)志有效。緊急標(biāo)志置位,

PSH:推標(biāo)志。該標(biāo)志置位時(shí),接收端不將該數(shù)據(jù)進(jìn)行隊(duì)列處理,而是盡可能快將數(shù)據(jù)轉(zhuǎn)由應(yīng)用處理。在處理 telnet 或 rlogin 等交互模式的連接時(shí),該標(biāo)志總是置位的。

FIN:結(jié)束標(biāo)志。帶有該標(biāo)志置位的數(shù)據(jù)包用來(lái)結(jié)束一個(gè)TCP回話,但對(duì)應(yīng)端口仍處于開(kāi)放狀態(tài),準(zhǔn)備接收后續(xù)數(shù)據(jù)。

.TCP的幾個(gè)狀態(tài)對(duì)于我們分析所起的作用。在TCP層,有個(gè)FLAGS字段,這個(gè)字段有以下幾個(gè)標(biāo)識(shí):SYN, FIN, ACK, PSH, RST, URG.其中,對(duì)于我們?nèi)粘5姆治鲇杏玫木褪乔懊娴奈鍌€(gè)字段。它們的含義是: SYN表示建立連接 FIN表示關(guān)閉連接 ACK表示響應(yīng) PSH表示有 DATA數(shù)據(jù)傳輸 RST表示連接重置          其中,ACK是可能與SYN,F(xiàn)IN等同時(shí)使用的,比如SYN和ACK可能同時(shí)為1,它表示的就是建立連接之后的響應(yīng),如果只是單個(gè)的一個(gè)SYN,它表示的只是建立連接。TCP的幾次握手就是通過(guò)這樣的ACK表現(xiàn)出來(lái)的。但SYN與FIN是不會(huì)同時(shí)為1的,因?yàn)榍罢弑硎镜氖墙⑦B接,而后者表示的是斷開(kāi)連接。RST一般是在FIN之后才會(huì)出現(xiàn)為1的情況,表示的是連接重置。一般地,當(dāng)出現(xiàn)FIN包或RST包時(shí),我們便認(rèn)為客戶端與服務(wù)器端斷開(kāi)了連接;而當(dāng)出現(xiàn)SYN和SYN+ACK包時(shí),我們認(rèn)為客戶端與服務(wù)器建立了一個(gè)連接。PSH為1的情況,一般只出現(xiàn)在 DATA內(nèi)容不為0的包中,也就是說(shuō)PSH為1表示的是有真正的TCP數(shù)據(jù)包內(nèi)容被傳遞。TCP的連接建立和連接關(guān)閉,都是通過(guò)請(qǐng)求-響應(yīng)的模式完成的。

###tcp常見(jiàn)錯(cuò)誤狀態(tài)

  1. Tcp previous segment lost(tcp先前的分片丟失)

  2. Tcpacked lost segment(tcp應(yīng)答丟失)

  3. Tcp window update(tcp窗口更新)

  4. Tcp dup ack(tcp重復(fù)應(yīng)答)

  5. Tcp keep alive(tcp保持活動(dòng))

  6. Tcp retransmission(tcp重傳)

  7. Tcp ACKed unseen segument (tcp看不見(jiàn)確認(rèn)應(yīng)答)

  8. tcp port numbers reused(tcp端口重復(fù)使用)

  9. tcp retransmission(tcp重傳)

  10. tcp fast retransmission (tcp快速重傳)

  11. TCP  Previoussegment lost(發(fā)送方數(shù)據(jù)段丟失)

  12. tcp spurious retransmission(tcp偽重傳) ###tcp抓包工具tcpdump和wireshark

在linux下tcpdump是一個(gè)很強(qiáng)大的tcp抓包工具,但是由于linux分析不方便,因此可以將抓包數(shù)據(jù)保存到.cap文件中,然后在windos下使用wireshark進(jìn)行分析,非常方便。 tcpdump抓包命令

     tcpdump tcp -i eth3 -t -s 0 -c 100 and port 20058 -w /home/pjroot/attence.cap 
    tcpdump tcp -i eth3 -s 0 and port 20058 and host 125.77.252.211 -w ./attence.cap -i eth3

指定數(shù)據(jù)包經(jīng)過(guò)的網(wǎng)卡

-s 0 抓取數(shù)據(jù)包時(shí)默認(rèn)抓取長(zhǎng)度為68字節(jié)。加上-S 0 后可以抓到完整的數(shù)據(jù)包

port  指定端口 可以加上src 和dst表示現(xiàn)在為源端口還是目的端口

host 指定主機(jī)可以加上src和dst表示源地址還是目的地址

-w 表示要寫(xiě)入到文件中

-t 表示不顯示時(shí)間戳

-c 100 表示只抓取初始的100個(gè)數(shù)據(jù)包

打印所有進(jìn)入或離開(kāi)sundown的數(shù)據(jù)包.

tcpdump host sundown 也可以指定ip,例如截獲所有210.27.48.1 的主機(jī)收到的和發(fā)出的所有的數(shù)據(jù)包

tcpdump host 210.27.48.1 打印helios 與 hot 或者與 ace 之間通信的數(shù)據(jù)包

tcpdump host helios and ( hot or ace ) 截獲主機(jī)210.27.48.1 和主機(jī)210.27.48.2 或210.27.48.3的通信

tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 ) 打印ace與任何其他主機(jī)之間通信的IP 數(shù)據(jù)包, 但不包括與helios之間的數(shù)據(jù)包.

tcpdump ip host ace and not helios 如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包,使用命令:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2 截獲主機(jī)hostname發(fā)送的所有數(shù)據(jù)

tcpdump -i eth0 src host hostname 監(jiān)視所有送到主機(jī)hostname的數(shù)據(jù)包

tcpdump -i eth0 dst host hostname 如果想要獲取主機(jī)210.27.48.1接收或發(fā)出的telnet包,使用如下命令

tcpdump tcp port 23 and host 210.27.48.1 tcpdump -XvvennSs 0 -i eth0 tcp\[20:2\]=0x4745 or tcp\[20:2\]=0x4854 0x4745 為"GET"前兩個(gè)字母"GE",0x4854 為"HTTP"前兩個(gè)字母"HT"。

tcpudp命令參數(shù)說(shuō)明

  1. -i any : 監(jiān)聽(tīng)所有接口

  2. -n : 不解析主機(jī)名

  3. -nn : 不解析主機(jī)名和端口名

  4. -X : 以16進(jìn)制和ascii格式顯示包

  5. -XX : 和-X一樣,但會(huì)顯示以太網(wǎng)頭

  6. -v, -vv, -vvv : 獲取包含信息量更多的包

  7. -c : 獲取指定數(shù)量的包,達(dá)到該數(shù)量后tcpdump停止

  8. -S : 顯示絕對(duì)序列號(hào)

  9. -e : 獲取以太網(wǎng)頭

  10. -q : 顯示少量的協(xié)議信息

  11. -E : 通過(guò)密鑰來(lái)解密IPSEC交互

  12. -s : 設(shè)置snaplength(snaplength是抓取的字節(jié)數(shù))

  • host // 根據(jù)ip地址查詢交互(不用"-n"也能根據(jù)主機(jī)名查詢交互)

tcpdump host 1.2.3.4

  • src,dst // 找出指定源地址或目的地址的交互

tcpdump src 2.3.4.5

tcpdump dst 3.4.5.6

  • net // 根據(jù)網(wǎng)絡(luò)號(hào)抓取整個(gè)網(wǎng)絡(luò)

tcpdump net 1.2.3.0/24

  • proto // 工作在tcp,udp,和icmp。注意你不用必須輸入proto

tcpdump icmp

  • port // 查看經(jīng)過(guò)指定端口的交互

tcpdump port 3389

src,dst port // 找出指定源端口或目的端口的交互

tcpdump src port 1025     # tcpdump dst port 389

  • src/dst, port, protocol // 將三個(gè)聯(lián)合在一起

tcpdump src port 1025 and tcp

tcpdump udp and src port 53

你也可以用選項(xiàng)來(lái)找出多個(gè)端口而不用一一指定,也可以僅查看大于或小于某一字節(jié)大小的包.

  • Port Ranges // 查看經(jīng)過(guò)范圍內(nèi)端口的交互 tcpdump portrange 21-23

  • Packet Size Filter 查看大于或小于某一字節(jié)大小的包   tcpdump less 32     tcpdump greater 128

也可以用符號(hào)來(lái)代替     tcpdump > 32     tcpdump <= 128

寫(xiě)到一個(gè)文件     tcpdump用"-w"選項(xiàng)可以將抓到的內(nèi)容存入文件,再用"-r"選項(xiàng)讀回來(lái),這個(gè)功能非常好,可以抓取原始交互之后再用其他工具運(yùn)行它。     以這種方式抓取到的交互會(huì)存成tcpdump格式的文件,現(xiàn)在網(wǎng)絡(luò)分析圈內(nèi)基本都用這種格式,因此文件可以被所有工具讀取,包括Wireshark, Snort等。     - 抓取所有經(jīng)過(guò)端口80的交互存入一個(gè)文件     # tcpdump -s 1514 port 80 -w capture_file     - 以后可以再讀回來(lái)    

tcpdump -r capture_file

更多的例子     # 從10.5.2.3到端口3389的tcp交互     tcpdump -nnvvS and src 10.5.2.3 and dst port 3389     # 從網(wǎng)絡(luò)192.168到網(wǎng)絡(luò)10或172.16的交互     tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16     # 從192.168.0.2到網(wǎng)絡(luò)172.16的非icmp交互     tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net and not icmp    

從Mars或Pluto到非SSH端口的交互     tcpdump -vv src Mars or Pluto and not dst port 22

分組     如果你試圖運(yùn)行這個(gè)本來(lái)非常有用的命令,因?yàn)槔ㄌ?hào)的原因會(huì)報(bào)錯(cuò),可以對(duì)括號(hào)進(jìn)行轉(zhuǎn)義(前面加"/")或者將整個(gè)命令放在單引號(hào)中:     # 從10.0.2.4到端口3389或22的交互(正確的表達(dá))     tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

感謝各位的閱讀,以上就是“tcp協(xié)議相關(guān)知識(shí)點(diǎn)有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)tcp協(xié)議相關(guān)知識(shí)點(diǎn)有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

tcp
AI