欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Wireshark抓包分析TCP協(xié)議

版權聲明:本文為作者原創(chuàng )文章,可以隨意轉載,但必須在明確位置表明出處?。?!

之前有一篇文章介紹了http協(xié)議初識http協(xié)議」,http協(xié)議協(xié)議是基于tcp協(xié)議的,所以作者覺(jué)得有必要針對tcp協(xié)議做一個(gè)介紹,希望各位讀者能夠靜下心來(lái)認真閱讀,也可以自己去看看TCP/IP協(xié)議詳解這本書(shū),一定要讓自己成為那20%的人。

TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協(xié)議,對TCP協(xié)議的文章網(wǎng)上已經(jīng)很成熟了,今天我只是想總結一下知識,加深印象,所謂好記心不如爛筆頭麻。

TCP/IP分層結構

TCP/IP協(xié)議棧主要分為4層:應用層,傳輸層,網(wǎng)絡(luò )層,數據鏈路層

  • 應用層

應用層負責處理特定的應用程序細節,像遠程登陸,FTP傳輸,SMTP郵件傳輸,SNMP簡(jiǎn)單網(wǎng)絡(luò )管理。

  • 傳輸層

運輸層主要提供兩臺主機之間端到端的通信,在TCP/IP協(xié)議族中,TCP和UPD是兩種截然不同的傳輸協(xié)議,TCP(傳輸控制協(xié)議)為主機之間提供可靠傳輸,它把從應用層得到的數據分成適當的數據包交給下面的(IP)網(wǎng)絡(luò )層,確定接收到的分組,設置發(fā)送最后確認分組的超時(shí)時(shí)鐘等,因運輸層提供了高可靠性的端到端的通信,應用層就不需要再去關(guān)注這些細節,而UDP(用戶(hù)數據協(xié)議)提供的是不可能性的傳輸,它只負責從一臺主機發(fā)送到另一臺主機,并不保證此數據一定到達另一端主機,任何必需的可靠性必須由應用層來(lái)提供。

  • 網(wǎng)絡(luò )層

網(wǎng)絡(luò )層主要處理分組在網(wǎng)絡(luò )中的活動(dòng),網(wǎng)絡(luò )層協(xié)議包涵IP,ICMP,IGMP協(xié)議。

  • 鏈路層

鏈路層組要包涵網(wǎng)卡驅動(dòng)程序,它處理和電纜或者其它傳輸介質(zhì)的物理接口細節。鏈路層的主要目的有三個(gè)

  1. 為IP模塊接收和發(fā)送IP數據報

  2. 為ARP模塊發(fā)送ARP請求和接收ARP應答

  3. 為RARP模塊接收RARP應答和發(fā)送RARP請求

所謂的協(xié)議就是通信雙方都需要遵守的規則,這樣才能明白對方要表達什么,就像兩個(gè)人打電話(huà)一樣,A說(shuō)的是重慶話(huà),B說(shuō)的是廣東話(huà),這兩人打電話(huà)肯定不知道對方說(shuō)的是什么,這就叫他們沒(méi)有遵守協(xié)議,若是都讓他們說(shuō)普通話(huà)這樣倆兒人就都能聽(tīng)懂對方說(shuō)的是什么意識了,普通話(huà)這里就相當于協(xié)議大家都要遵守。下面我將結合Wireshark抓包工具來(lái)分析TCP/IP協(xié)議

封裝

數據進(jìn)入協(xié)議棧的封裝過(guò)程

當經(jīng)過(guò)以太網(wǎng)層的封裝后,就要通過(guò)網(wǎng)線(xiàn)或者其它傳輸介質(zhì)把此封裝好的數據報文發(fā)送到另一端去,另一段收到數據報后最先接觸的是以太網(wǎng)層也就是我們的數據鏈路層協(xié)議,該層協(xié)議復制把以太網(wǎng)首部解析掉,讓后把解析后的數據報上送到IP層,IP層把IP首部解析掉,然后上傳到TCP層,依次類(lèi)推每層協(xié)議解析其首部并判斷其首部中的協(xié)議標識以確定接收數據的上層協(xié)議,然后上送到他的上一層。這就是封層結構的好處之一,每層協(xié)議只做自己的事,不是自己的事就交給別人去做。

TCP報文格式

Wireshark的抓包結果

原端口/目的端口(16bit):

我們都知道網(wǎng)絡(luò )之前的通信是不通主機之間的通信,就windows系統而言通過(guò)查看任務(wù)管理器我們可以知道一臺主機有許多進(jìn)程,當我們發(fā)送數據時(shí)怎么知道要發(fā)送到對方主機那個(gè)進(jìn)程里呢,所以這就是端口號的作用,在TCP報文中包涵了源端口/目的端口,源端口標識了發(fā)送進(jìn)程,目的端口標識了接收方進(jìn)程。在此報文中我們的源端口號是0x8572 = 34162, 目的端口是0x01bb = 443如下圖所示

序列號(32bit)

Sequence Number這個(gè)是發(fā)送序列號,用來(lái)標識從源端向目的端發(fā)送的數據字節流,它表示在這個(gè)報文端中的第一個(gè)數據字節的順序號,系列好是32位的無(wú)符號類(lèi)型,序號表達達到2^32 - 1后又從0開(kāi)始, 當建立一個(gè)新的連接時(shí),SYN標志為1,系列號將由主機隨機選擇一個(gè)順序號ISN(Initial Sequence Number)。此報文中的序列號是0x9e546d6b早已超過(guò)了2^32 - 1 所以這里的序列號為0,如下圖

確認號(32bit)

Acknowledgment Number它包涵了發(fā)送確認一端所期望收到的下一個(gè)順序號。因此確認序列號應當是上次成功接收到數據的順序號加1。只有ACK標志為1時(shí)確認序號字段才有效。TCP為應用層提供全雙工服務(wù),這意味著(zhù)數據能在兩個(gè)方向上獨立的進(jìn)行傳輸,因此連接的兩斷必須要保證每個(gè)方向上的傳輸數據順序。

偏移(4bit)

這里的偏移實(shí)際指的是TCP首部的長(cháng)度,它用來(lái)表明TCP首部中32bit字的數目,通過(guò)它可以知道一個(gè)TCP包它的用戶(hù)數據從哪里開(kāi)始,這個(gè)字段占4bit,若此字段的值為1000,則說(shuō)明TCP首部的長(cháng)度是8 * 4 = 32字節,所以TCP首部的最大長(cháng)度是該字段的值為1111 = 15, 15 * 4 =60字節。此報文我們的偏移量在0x80中,又因它占4bit,0x80等于二進(jìn)制的1000 0000 所以我們的偏移量是 1000 = 8,所以我們的TCP報文頭為8 * 4 = 32字節。

Reserved(6bit)

目前沒(méi)有使用,它的值都為0

標志(6bit)

在TCP首部中有6個(gè)標志比特,他們中的多個(gè)可同時(shí)被置為1

  • URG(Urgent Pointer Field Significant):緊急指針標志,用來(lái)保證TCP連接不被中斷,并且督促中間設備盡快處理這些數據

  • ACK(Acknowledgement Field Signigicant):確認號字段,該字段為1時(shí)表示應答字段有效,即TCP應答號將包含在TCP報文中。

  • PSH(Push Function): 推送功能,所謂推送功能指的是接收端在接收到數據后立即推送給應用程序,而不是在緩沖區中排隊。

  • RST(Reset the connection): 重置連接,不過(guò)一搬表示斷開(kāi)一個(gè)連接,如下圖,主機192.168.3.27 訪(fǎng)問(wèn)主機211.150.84.8;但主機84.8并沒(méi)有監聽(tīng)對于端口,這時(shí)它會(huì )向主機3.27發(fā)送一個(gè)RST位置的TCP包斷開(kāi)連接。

  • SYN(Synchronize sequence numbers):同步序列號,用來(lái)發(fā)起一個(gè)連接請求

  • FIN(No more data from sender):表示發(fā)送端發(fā)送任務(wù)已經(jīng)完成(既斷開(kāi)連接)

窗口大小(16bit)

表示源主機最大能接收多少字節。

校驗和(16bit)

包含TCP首部和TCP數據段,這是一個(gè)強制性的字段,一定是由發(fā)送端計算和存儲,由接收端進(jìn)行驗證

緊急指針(16bit)

只有當URG標志置為1時(shí)該字段才有效,緊急指針是一個(gè)正的偏移量,和序號字段中的值相加表示緊急數據最后一個(gè)字節的序號。TCP的緊急方式是發(fā)送端向另一段發(fā)送緊急數據的一種方式。

TCP選項

至少1個(gè)字節的可變長(cháng)字段,標識哪個(gè)選項有效。Kind=0:選項表結束, Kind=1:無(wú)操作, Kind=2:最大報文段長(cháng)度,Kind=3:窗口擴大因子, Kind=8:時(shí)間戳。

TCP的三次握手和四次揮手

整個(gè)過(guò)程如下圖所示

TCP的三次握手

TCP的三次握手過(guò)程如下圖所示,我們通過(guò)數據包來(lái)分析一下握手過(guò)程是不是和圖中所畫(huà)一致。

第一次握手

主機192.168.3.27向主機111.13.100.91發(fā)起連接請求,可以看在這時(shí)的SYN被置為1了,序列號Seq = 0,如下圖

第二次握手

主機111.13.100.91應答主機192.168.3.27,可以看到這個(gè)時(shí)候的應答包含了SYN,ACK,ACK = Seq + 1 = 1, 這里的Seq是第一次握手發(fā)起請求的Seq值,并不是下圖報文中紅框表示的Seq值。

第三次握手

主機192.168.3.27應答主機111.13.100.91,可以看到這個(gè)時(shí)候的應答包是ACK, ACK = Seq + 1 = 1,這里的Seq是第二次握手主機111.13.100.91產(chǎn)生的序列值

在回頭看看我們的svr4.1037主機和bsdi.discard之前的連接建立是不是和我們的報文分析的一致,第一次握手 SYN Seq = 1415531521; 第二次握手 SYN ack = 1415531521 + 1 = 1415531522 Seq = 1823083521;第三次握手 ack = 1823083521 + 1 = 1823083522;到這里就可以看出此過(guò)程和我們的報文分析是一致的。

可以看到三次握手后確定了雙方包的序列號,最大接收數據的大小以及MSS(Maximum Segment Size)最大分片大小 MSS = MTU - IP頭部長(cháng)度 - TCP頭部長(cháng)度,MTU最大傳輸單元一班為1500字節,若TCP/IP報文都不帶選項時(shí)MSS = 1500 - 20 - 20 = 1460,MSS的意思是最大分片大小,這里若是1460的話(huà),那么若是應用程序發(fā)送大于1460個(gè)字節那么超過(guò)1460個(gè)字節數會(huì )分片為下一個(gè)包,下圖是應用層發(fā)送4096個(gè)字節。

由于數據大小是4096個(gè)字節,所以用了三次進(jìn)行傳遞(1448 + 1448 + 1200)。細心的人會(huì )問(wèn)為什么每次傳送的最大數據大小不是1460個(gè)字節呢?因為這里的TCP攜帶可選項,TCP頭長(cháng)度 = 20 + 12(可選選項大?。?= 32字節。 這樣能傳輸的最大數據為:1500 - 20 - 32 = 1448個(gè)字節。

TCP四次揮手

第一次揮手

將設客戶(hù)端首先發(fā)起斷開(kāi)連接,那么客戶(hù)端回想服務(wù)端發(fā)送FIN置為1的TCP包,請求斷開(kāi)連接,意思就是我要斷開(kāi)和你的連接了,但是如果你還有數據沒(méi)有發(fā)送完給我你不必立即關(guān)閉連接。

第二次揮手

服務(wù)端收到客戶(hù)端的斷開(kāi)連接請求立即響應一個(gè)ACK報文,意思是告訴客戶(hù)端你發(fā)起的斷開(kāi)連接請求我已經(jīng)收到了,但是我還沒(méi)有準備好,你在等一會(huì ),這個(gè)時(shí)候服務(wù)器端可能還有數據要發(fā)送給客戶(hù)端,也可能正在準備釋放資源。這個(gè)時(shí)候客戶(hù)端進(jìn)入FIN_WAIT狀態(tài),繼續等待服務(wù)端的FIN報文。

第三次揮手

服務(wù)端確認已經(jīng)發(fā)往客戶(hù)端的數據已經(jīng)發(fā)送完成,則向客戶(hù)端發(fā)送FIN報文,告訴客戶(hù)端我已準備好關(guān)閉連接了。

第四次揮手

客戶(hù)端收到服務(wù)端的FIN報文后就知道可以關(guān)閉連接了,當時(shí)它還是不確定,怕服務(wù)端還是不知道我要關(guān)閉連接了,所以發(fā)送一個(gè)ACK包后進(jìn)入TIME_WAIT狀態(tài),如果服務(wù)端沒(méi)有收到ACK那么服務(wù)端則可以發(fā)起重傳,如果收到了ACK報文,客戶(hù)端等待2MSL后已然沒(méi)有收到回復,則證明服務(wù)端已經(jīng)正常關(guān)閉了,那我也就可以關(guān)閉連接了。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
IP網(wǎng)絡(luò )協(xié)議抓包分析
wireshark抓包圖解 TCP三次握手/四次揮手詳解
TCP/IP的傳輸層協(xié)議(3)
一篇文章讓你搞懂什么是TCP/IP協(xié)議
用協(xié)議分析工具學(xué)習TCP/IP
第08章 TCPUDP協(xié)議
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久