詳解TCPIP協(xié)議總結(jié)_第1頁(yè)
詳解TCPIP協(xié)議總結(jié)_第2頁(yè)
詳解TCPIP協(xié)議總結(jié)_第3頁(yè)
詳解TCPIP協(xié)議總結(jié)_第4頁(yè)
詳解TCPIP協(xié)議總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、TCP/IP協(xié)議TCP/IP不是一個(gè)協(xié)議,而是一個(gè)協(xié)議族的統(tǒng)稱。里面包括IP協(xié)議、 IMCP協(xié)議、TCP協(xié)議。這里有兒個(gè)需要注意的知識(shí)點(diǎn):互聯(lián)網(wǎng)地址:也就是IP地址,一般為網(wǎng)絡(luò)號(hào)+子網(wǎng)號(hào)+主機(jī)號(hào)域名系統(tǒng):通俗的來(lái)說(shuō),就是一個(gè)數(shù)據(jù)庫(kù),可以將主機(jī)名轉(zhuǎn)換成IP地址 RFC: TCP/IP協(xié)議的標(biāo)準(zhǔn)文檔端口號(hào):一個(gè)邏輯號(hào)碼,IP包所帶有的標(biāo)記 Socket:應(yīng)用編程接口數(shù)據(jù)鏈路層的工作特性:為IP模塊發(fā)送和接收IP數(shù)據(jù)報(bào)為ARP模塊發(fā)送ARP請(qǐng)求和接收ARP應(yīng)答(ARP:地址解析協(xié)議,將IP地 址轉(zhuǎn)換成MAC地址) 為RARP發(fā)送RARP請(qǐng)求和接收RARP應(yīng)答 接下來(lái)我們了解一下TCP/IP的工作流程

2、:數(shù)據(jù)鏈路層從ARP得到數(shù)據(jù)的傳遞信息,再?gòu)腎P得到具體的數(shù)據(jù)信息 IP協(xié)議IP數(shù)據(jù)報(bào)發(fā)送在前版本首部長(zhǎng)圍區(qū)分服務(wù)總長(zhǎng)度標(biāo)識(shí)標(biāo)志片偏移生存時(shí)間協(xié)議首部檢驗(yàn)利源地址目的地址可選字段(長(zhǎng)度可變)填充I482431部分1619數(shù) 據(jù) 部 分固皆定部分IP協(xié)議頭當(dāng)中,最重要的就是TTL (IP允許通過(guò)的最大網(wǎng)段數(shù)量)字 段(八位),規(guī)定該數(shù)據(jù)包能穿過(guò)兒個(gè)路山之后才會(huì)被拋棄。IP路由選擇優(yōu)元??M匹配SEE失匹杞同孑協(xié)1的跨用器成切發(fā)送冷總民避丿1丿V/、Z、匹配同網(wǎng)號(hào)杓路Fh器或6發(fā)送ipSS冕包繪跑國(guó)器1丿1丿芨索SKIAB田發(fā)迭IP數(shù)據(jù)給淫呂器艾敗丟棄擔(dān)個(gè)ARP協(xié)議工作原理(e*AwarWARprs

3、爸旁豐0榜ommeu箝古畫帕igiKMudeuICMP協(xié)議(網(wǎng)絡(luò)控制文協(xié)議)將IP數(shù)據(jù)包不能傳送的錯(cuò)誤信息傳送給主機(jī)查詢報(bào)文1. ping査詢:主機(jī)是否可達(dá),通過(guò)計(jì)算間隔時(shí)間和傳送多少個(gè)包的數(shù)量2. 子網(wǎng)掩碼3. 時(shí)間戳:獲得當(dāng)詢時(shí)間差錯(cuò)報(bào)文不產(chǎn)生的悄況:1. ICMP差錯(cuò)報(bào)文不產(chǎn)生差錯(cuò)報(bào)文2. 源地址為零地址、環(huán)U地址、廣播地址、多播地址 IP路由器選擇協(xié)議靜態(tài)路由選擇靜態(tài)路由選擇1配置接口以默認(rèn)方武生成路山表項(xiàng),或者使用route add手動(dòng)添加表項(xiàng)2. ICMP報(bào)文(ICHPA定向報(bào)文)更新表項(xiàng)3. 動(dòng)態(tài)路山選擇(只使用在路山之間)RIP (路由信息協(xié)議)分布式的基于距離向量(路由器到每

4、一個(gè)tl的網(wǎng)絡(luò)的距離記錄)的路山選 擇協(xié)議rout er承擔(dān)的工作:1. 給每一個(gè)已知路山器發(fā)送RIP請(qǐng)求報(bào)文,要求給出完整的路山表2. 如果接受請(qǐng)求,就將自己的路由表交給請(qǐng)求者;如果沒有,就處理IP請(qǐng) 求表項(xiàng)(自己部分+跳數(shù)/沒有的部分+16)3. 接受回應(yīng),更新路山表4. 定期更新路山表(一般為30s,只能說(shuō)太頻繁、)OSPF (開放最短路徑優(yōu)先協(xié)議)分布式鏈路狀態(tài)(和這兩個(gè)路山器都有接口的網(wǎng)絡(luò))協(xié)議1. 當(dāng)鏈路狀態(tài)發(fā)生變化時(shí),釆用可幕的洪泛法,向所有的路山器發(fā)送信息(相鄰的所有路山器的鏈路狀態(tài))2. 最終會(huì)建立一個(gè)全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖TCP/IP的三次握手,四次分手首先我們先來(lái)了解TCP報(bào)文

5、段首免我們先來(lái)了第TCP報(bào)文最糠端目的端口序號(hào) wq序毛 啟沏氏53?字節(jié)託_確認(rèn)號(hào) Ack二 1J7砲 Ackz:;窗口檢驗(yàn)和緊急指針選項(xiàng)(長(zhǎng)度収)TCP%字節(jié)的 國(guó)定首都TCP首卻TCP報(bào)文段挪!躺分IP首詔IP數(shù)據(jù)報(bào)的數(shù)抿咅於重要的標(biāo)志我在圖中也有標(biāo)記,重點(diǎn)了解標(biāo)志位ACK:RST:SYN:FIN:確認(rèn)丿了:號(hào)有效 重置連接發(fā)起了一個(gè)新連接 釋放一個(gè)連接三次握手的過(guò)程(客戶端我們用A表示,服務(wù)器端用B表示) 前提:A主動(dòng)打開,B被動(dòng)打開前!長(zhǎng):A主動(dòng)?丁開.B被勁打開&i動(dòng)門開動(dòng)桿開svH-a sea”SYN-lCX-l,wx)-v,rx-lcLoseoLISTEHSYN-RCVOEST

6、A9LISHCO1.在建立連接之前,B先創(chuàng)建TCB (傳輸控制塊),準(zhǔn)備接受客戶進(jìn)程的連 接請(qǐng)求,處于LISTEN (監(jiān)聽)狀態(tài)2. A首先創(chuàng)建TCB,然后向B發(fā)出連接請(qǐng)求,SYN置1,同時(shí)選擇初始序號(hào) seq=Xr進(jìn)入SYN-SEND (同步已發(fā)送)狀態(tài)3. B收到連接請(qǐng)求后向A發(fā)送確認(rèn),SYN置1, ACK置1,同時(shí)產(chǎn)生一個(gè)確認(rèn) 序號(hào)ack=x+lo同時(shí)隨機(jī)選擇初始序號(hào)seq=y,進(jìn)入SYN-RCVD (同步收至IJ)狀態(tài)4. A收到確認(rèn)連接請(qǐng)求后,ACK置1,確認(rèn)號(hào)ack=y+l, seq=x+l進(jìn)入到 ESTABLISHED (已建立連接)狀態(tài)。向B發(fā)出確認(rèn)連接,最后B也進(jìn)入到 EST

7、ABLISHED (已建立連接)狀態(tài)。簡(jiǎn)單來(lái)說(shuō),就是1. 建立連接時(shí),客戶端發(fā)送SYN包(SYN=i )到服務(wù)器,并進(jìn)入到SYN-SEND 狀態(tài),等待服務(wù)器確認(rèn)2. 服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN (ack=i + l),同時(shí)自己也發(fā)送一 個(gè)SYN包(SYN=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYX-RECV狀態(tài)3. 客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)報(bào)ACK (ack=k+l) 此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手 在此穿插一個(gè)知識(shí)點(diǎn)就是SYN攻擊,那么什么是SYN攻擊?發(fā)生的條件是 什么?怎么避免?在三次握乎過(guò)程中,Se

8、rver發(fā)送SYN-ACK之后,收到Client的ACK 之前的TCP連接稱為半連接(half-open connect),此時(shí)Server處于 SYN.RCVD狀態(tài),當(dāng)收到ACK后,Server轉(zhuǎn)入ESTABLISHED狀態(tài)。SYN攻擊 就是Client在短時(shí)間內(nèi)偽造大量不存在的IP地址,并向Server不斷地 發(fā)送SYN包,Server回復(fù)確認(rèn)包,并等待Client的確認(rèn),山于源地址 是 不存在的,因此,Server需要不斷重發(fā)直至超時(shí),這些偽造的SYN包將產(chǎn) 時(shí)間占用未連接隊(duì)列,導(dǎo)致正常的SYN請(qǐng)求因?yàn)殛?duì)列滿而被丟弄,從而引 起網(wǎng) 絡(luò)堵塞其至系統(tǒng)癱瘓。SYN攻擊時(shí)一種典型的DDOS攻擊,

9、檢測(cè)SY 攻擊的方式非常簡(jiǎn)單,即當(dāng)Server上有大量半連接狀態(tài)且源IP地址是隨 機(jī)的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現(xiàn)行:#netstat -nap I grep SYN_RECV四次分手的過(guò)程(客戶端我們用A表示,服務(wù)器端用B表示)山于TCP連接時(shí)是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這 一原則是當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后,發(fā)送一個(gè)FIN來(lái)終止這一方向的鏈 接。收到一個(gè)FIN只是意味著這一方向上沒有數(shù)據(jù)流動(dòng),既不會(huì)在收到數(shù) 據(jù),但是在這個(gè)TCP連接上仍然能夠發(fā)送數(shù)據(jù),知道這一方向也發(fā)送了 FIN.首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而殲一方則執(zhí)行被動(dòng)關(guān)閉。 詢提:A主動(dòng)

10、關(guān)閉,B被動(dòng)關(guān)閉CLOSEDCLOSED為什么連接的時(shí)候是三次握手,而斷開連接的時(shí)候需有人可能會(huì)問(wèn), 要四次揮手?這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到建立連接請(qǐng)求的SY報(bào)文 后,把ACK和SYN放在一個(gè)報(bào)文里發(fā)送給客戶端。而關(guān)閉連接時(shí),當(dāng)收到 對(duì)方的FIX報(bào)文時(shí),僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),己 方也未必全部數(shù)據(jù)都發(fā)送給對(duì)方了,所以己方可以立即close,也可以發(fā) 送一些數(shù)據(jù)給對(duì)方后,再 發(fā)送FI報(bào)文給對(duì)方來(lái)表示同意現(xiàn)在關(guān)閉連 接,因此,己方ACK和FIN-般都會(huì)分開發(fā)送。1. A發(fā)送一個(gè)FIN,用來(lái)關(guān)閉A到B的數(shù)據(jù)傳送,A進(jìn)入FIN_WAIT_1狀態(tài)。2. B收到FIX后,

11、發(fā)送一個(gè)ACK給A,確認(rèn)序號(hào)為收到序號(hào)+ 1 (與SYN相 同,一個(gè)FIX占用一個(gè)序號(hào)),B進(jìn)入CLOSE_WAIT狀態(tài)。3. B發(fā)送一個(gè)FIN,用來(lái)關(guān)閉B到A的數(shù)據(jù)傳送,B進(jìn)入LAST.ACK狀態(tài)。4. A收到FIX后,A進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個(gè)ACK給B,確認(rèn)序號(hào) 為收到序號(hào)+ 1, B進(jìn)入CLOSED狀態(tài),完成四次揮手。簡(jiǎn)單來(lái)說(shuō)就是用來(lái)關(guān)閉客戶A到服務(wù)器B的數(shù)據(jù)傳送(報(bào)文段1. 客戶端A發(fā)送一個(gè)它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1 (報(bào) 一個(gè)FIX將占用一個(gè)序號(hào)。4) O2. 服務(wù)器B收到這個(gè)FIX,文段5) C和SYN樣,3. 服務(wù)器B關(guān)閉與客戶端A的連接,發(fā)送一

12、個(gè)FIX給客戶端A (報(bào)文段6) O4. 客戶端A發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1 (報(bào)文段7) OA在進(jìn)入到TIME-WAIT狀態(tài)后,并不會(huì)馬上釋放TCP,必須經(jīng)過(guò)時(shí)間 等待訃時(shí)器設(shè)置的時(shí)間2MSL (最長(zhǎng)報(bào)文段壽命),A才進(jìn)入到CLOSED狀 態(tài)為什么?1. 話了保證A發(fā)送的最后一個(gè)ACK報(bào)文段能夠到達(dá)B2. 防止“已失效的連接請(qǐng)求報(bào)文段出現(xiàn)在本連接中0K是不是很難懂的感覺?那我們來(lái)說(shuō)的“人性化點(diǎn)的”吧 三次握手流程1. 客戶端發(fā)個(gè)請(qǐng)求“開門吶,我要進(jìn)來(lái)給服務(wù)器2. 服務(wù)器發(fā)個(gè)“進(jìn)來(lái)吧,我去給你開門給客戶端3. 客戶端有很客氣的發(fā)個(gè)“謝謝,我要進(jìn)來(lái)了”給服務(wù)器 四次揮手流

13、程1. 客戶端發(fā)個(gè)“時(shí)間不早了,我要走了”給服務(wù)器,等服務(wù)器起身送他2. 服務(wù)器聽到了,發(fā)個(gè)“我知道了,那我送你出門吧給客戶端,等客戶端 走3. 服務(wù)器把門關(guān)上后,發(fā)個(gè)“我關(guān)門了給客戶端,然后等客戶端走(尼瑪 、矯悄?。?. 客戶端發(fā)個(gè)“我知道了,我走了”,之后自己就走了三次握手置位概念:根據(jù)TCP的包頭字段,存在3個(gè)巫要的標(biāo)識(shí)ACK、SY廠 FIXACK:表示驗(yàn)證字段SYN:位數(shù)置1,表示建立TCP連接FIN:位數(shù)置1,表示斷開TCP連接三次握手過(guò)程說(shuō)明:1山客戶端發(fā)送建立TCP連接的請(qǐng)求報(bào)文,其中報(bào)文中包含seq序列 號(hào),是山發(fā)送端隨機(jī)生成的,并且將報(bào)文中的SYN字段置為1,表示需要 建立

14、TCP連接。(SYX=1, seq=x, x為隨機(jī)生成數(shù)值)2山服務(wù)端回復(fù)客 戶端發(fā)送的TCP連接請(qǐng)求報(bào)文,其中包含seq序列號(hào),是山回復(fù)端隨機(jī)生 成的,并且將SYN置為1,而且會(huì)產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶端 發(fā)送過(guò)來(lái)的序列號(hào)seq的基礎(chǔ)上加1進(jìn)行回復(fù),以便客戶端收到信息時(shí), 知曉自己的TCP建立請(qǐng)求已得到驗(yàn)證。(SYE, ACK=x+l, seq=y, y為隨 機(jī)生成數(shù)值)這里的ack加1可以理解為是確認(rèn)和誰(shuí)建立連接。3客戶端 收到服務(wù)端發(fā)送的TCP建立驗(yàn)證請(qǐng)求后,會(huì)使自己的序列號(hào)加1表示,并 且再次回復(fù)ACK驗(yàn)證請(qǐng)求,在服務(wù)端發(fā)過(guò)來(lái)的seq加1進(jìn)行回復(fù)。(SYN=1, ACK=

15、y+b seq=x+l)I四次揮手四次揮手過(guò)程說(shuō)明:1客戶端發(fā)送斷開TCP連接請(qǐng)求的報(bào)文,其中報(bào)文中包含seq序列號(hào),是 山發(fā)送端隨機(jī)生成的,并且還將報(bào)文中的FIN字段置為1,表示需要斷開 TCP連接。(FIX=1, seq=x, x山客戶端隨機(jī)生成)2服務(wù)端會(huì)回復(fù)客戶端 發(fā)送的TCP斷開請(qǐng)求報(bào)文,其包含seq序列號(hào),是由回復(fù)端隨機(jī)生成的, 而且會(huì)產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶端發(fā)過(guò)來(lái)的seq序列號(hào)基礎(chǔ) 上加1進(jìn)行回復(fù),以便客戶端收到信息時(shí),知曉自己的TCP斷開請(qǐng)求已經(jīng) 得到驗(yàn)證。(FIX=1, ACK=x+l, seq=y, y山服務(wù)端隨機(jī)生成)3服務(wù)端在 回復(fù)完客戶端的TCP斷開請(qǐng)

16、求后,不會(huì)馬上進(jìn)行TCP連接的斷開,服務(wù)端 會(huì)先確保斷開前,所有傳輸?shù)紸的數(shù)據(jù)是否已經(jīng)傳輸完畢,一旦確認(rèn)傳輸 數(shù)據(jù)完畢,就會(huì)將回復(fù)報(bào)文的F叮字段置1,并且產(chǎn)生隨機(jī)seq序列號(hào)。(FIN=b ACK=x+l, seq=z, z山服務(wù)端隨機(jī)生成)4客戶端收到服務(wù)端的 TCP斷開請(qǐng)求后,會(huì)回復(fù)服務(wù)端的斷開請(qǐng)求,包含隨機(jī)生成的seq字段和 ACK字段,ACK字段會(huì)在服務(wù)端的TCP斷開請(qǐng)求的seq基礎(chǔ)上加1,從而完 成服務(wù)端請(qǐng)求的驗(yàn)證回復(fù)。(FIN=1, ACK=z+l, seq二h, h為客戶端隨機(jī)生 成)至此TCP斷開的4次揮手過(guò)程完畢I 11種狀態(tài)1一開始,建立連接之前服務(wù)器和客戶端的狀態(tài)都為CL

17、OSED; 2服務(wù)器創(chuàng) 建socket后開始監(jiān)聽,變?yōu)長(zhǎng)ISTEN狀態(tài);3客戶端請(qǐng)求建立連接,向服 務(wù)器發(fā)送SYN報(bào)文,客戶端的狀態(tài)變味SYN_SENT: 4服務(wù)器收到客戶端的 報(bào)文后向客戶端發(fā)送ACK和SYN報(bào)文,此時(shí)服務(wù)器的狀態(tài)變?yōu)镾YN_RCVD; 5然后,客戶端收到ACK、SYN,就向服務(wù)器發(fā)送ACK,客戶端狀態(tài)變?yōu)?ESTABLISHED; 6服務(wù)器端收到客戶端的ACK后變?yōu)镋STABLISHED。此時(shí)3 次握手完成,連接建立!由于TCF連接是全雙工的,斷開連接會(huì)比建立連接麻煩一點(diǎn)點(diǎn)1.;/戶端先向服務(wù)器發(fā)送FIX報(bào)文,請(qǐng)求斷開連接,其狀態(tài)變?yōu)?FIN.WAITl: 2.服務(wù)器收到F

18、IN后向客戶端發(fā)送ACK,服務(wù)器的狀態(tài)W邊 CLOSEJVAIT: 3.客戶端收到ACK后就進(jìn)入FIN_ffAIT2狀態(tài),此時(shí)連接已經(jīng) 斷開7 半了。如果服務(wù)器還有數(shù)據(jù)要發(fā)送給客戶端,就會(huì)繼續(xù)發(fā)送;4. 直到發(fā)完數(shù)據(jù),就會(huì)發(fā)送FI報(bào)文,此時(shí)服務(wù)器進(jìn)入LAST_ACK狀態(tài);5客 戶端收到服務(wù)器的FIN后,馬上發(fā)送ACK給服務(wù)器,此時(shí)客戶端進(jìn)入 TIME.WAIT狀態(tài);6.再過(guò)了 2MSL長(zhǎng)的時(shí)間后進(jìn)入CLOSED狀態(tài)。服務(wù)器收 到客戶端的ACK就進(jìn)入CLOSED狀態(tài)至此,還有一個(gè)狀態(tài)沒有出來(lái):CLOSING狀態(tài)。CLOSING狀態(tài)表示; 客戶端發(fā)送了 FIN,但是沒有收到服務(wù)器 的ACK,卻收到了服務(wù)器的FIN,這種情況發(fā)生在服務(wù)器發(fā)送的 ACK丟包的時(shí)候,因?yàn)榫W(wǎng)絡(luò)傳輸有時(shí)會(huì)有童外。LISTEN:等待從任何遠(yuǎn)端TCP和端口的連接請(qǐng)求。SYN.SENT:發(fā)送完一 個(gè)連接請(qǐng)求后等待一個(gè)匹配的連接請(qǐng)求。-SYNRECEIVED:發(fā)送連接請(qǐng)求并 且接收到匹配的連接請(qǐng)求以后等待連接請(qǐng)求確認(rèn)。-ESTABLISHED:表示一 個(gè)打開的連接,接收到的數(shù)據(jù)可以被投遞給用戶。連接的數(shù)據(jù)傳輸階段的 正常狀態(tài)。FINff

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論