TCP/IP總結(jié)

????????很多人都把TCP/IP理解為TCP和IP,其實(shí)不是。TCP/IP其實(shí)是一個(gè)協(xié)議族群包括了TCP協(xié)議,UDP協(xié)議,IP協(xié)議,DHCP協(xié)議(動(dòng)態(tài)IP),SSH(遠(yuǎn)程登錄協(xié)議),HTTP協(xié)議(超文本傳輸協(xié)議),PPP協(xié)議(點(diǎn)對(duì)點(diǎn)通信協(xié)議)。

? ? ? ? 首先說一下OSI七層模型

分別是 1,物理層,主要負(fù)責(zé)電子信號(hào)與比特流之間的轉(zhuǎn)換

? ? ? ? ? ? 2,數(shù)據(jù)鏈路層,主要是負(fù)責(zé)比特流與數(shù)據(jù)幀之間的轉(zhuǎn)換

? ? ? ? ? ? 3,網(wǎng)絡(luò)層,主要是數(shù)據(jù)幀與數(shù)據(jù)包之間的轉(zhuǎn)換,已經(jīng)數(shù)據(jù)經(jīng)過那個(gè)路由器傳到那個(gè)IP地址去。

? ? ? ? ? ? 4, 傳輸層,檢查數(shù)據(jù)是否有丟失

? ? ? ? ? ? 5,會(huì)話層,什么時(shí)候建立連接,連接多久,以及什么時(shí)候斷開連接

? ? ? ? ? ? 6,表示層,接收文字,圖片以及聲音

? ? ? ? ? ? 7,應(yīng)用層,提供針對(duì)應(yīng)用的協(xié)議(DHCP(動(dòng)態(tài)主機(jī)協(xié)議),HTTP協(xié)議,F(xiàn)TP協(xié)議(文件傳輸),遠(yuǎn)程登錄協(xié)議(SSH,TELNET),域名解析協(xié)議(DNS))

然后說一下TCP/IP中的四層分層

? ? ? ? ? ? 1,網(wǎng)絡(luò)接口層,? 表示以太網(wǎng),無線網(wǎng)LAN什么的,PPP協(xié)議也是這一層面的

? ? ? ? ? ? 2,網(wǎng)際層,對(duì)應(yīng)OSI中的網(wǎng)絡(luò)層

? ? ? ? ? ? 3,傳輸層,對(duì)應(yīng)OSI中的傳輸層

? ? ? ? ? ? 4,應(yīng)用層,對(duì)應(yīng)OSI中的最上面三層

TCP/IP技術(shù)是一種分組交換技術(shù),可以讓連接到通信電路的計(jì)算機(jī)將數(shù)據(jù)分成很多數(shù)據(jù)包,按照一定的順序發(fā)送出去,這樣計(jì)算機(jī)可以一齊接收發(fā)數(shù)據(jù),分組的首部寫入了發(fā)送端和接收端。之前使用的通信技術(shù)類似于打電話的情景,只能連接一個(gè)。而分組可以同時(shí)連接多個(gè)

這其中IP協(xié)議的作用就是把各種數(shù)據(jù)包發(fā)送給對(duì)方,IP協(xié)議是一種面向無連接的協(xié)議(主要是為了簡(jiǎn)化與提速),其大致分為三大模塊,IP尋址(IP地址具有層次性,就是為了方便尋址),IP分包與組包,以及路由。路由控制是指將數(shù)據(jù)發(fā)送到目標(biāo)地址的功能,為了將數(shù)據(jù)發(fā)送到指定主機(jī),所有的主機(jī)都維護(hù)了一張路由表。

TCP協(xié)議是一種面向連接的可靠流協(xié)議。流就是指不斷的數(shù)據(jù)結(jié)構(gòu)。下面看一看TCP的報(bào)文格式


TCP報(bào)文中沒有報(bào)文長(zhǎng)度,因?yàn)門CP的報(bào)文長(zhǎng)度可以從IP報(bào)文中獲取。

緊急指針用于暫時(shí)中斷通信或者中斷通信。

選項(xiàng),選項(xiàng)字段用于控制TCP的性能

TCP傳輸數(shù)據(jù)的基本單位是MSS(最大消息長(zhǎng)度),在傳輸大量數(shù)據(jù)時(shí),是以MSS的大小將數(shù)據(jù)切割發(fā)送的,進(jìn)行重發(fā)時(shí)也是一樣。在三次握手階段,雙方會(huì)把接口能夠接受的MSS卸載首部報(bào)文中,在使用時(shí)選取小的哪一個(gè)投入使用。

再來說一說TCP的三次握手。每一次建立TCP連接,都會(huì)有連接建立,數(shù)據(jù)傳輸和連接斷開三個(gè)階段,

三次握手就發(fā)生在第一個(gè)階段,TCP確認(rèn)應(yīng)答的機(jī)制來保證數(shù)據(jù)傳輸?shù)目煽啃?。?dāng)發(fā)送端把數(shù)據(jù)發(fā)送出去后,如果有確認(rèn)應(yīng)答,那么就說明數(shù)據(jù)傳輸成功,如果沒有。那么很大的可能就是數(shù)據(jù)發(fā)送失敗。在一定時(shí)間內(nèi)沒有接收到應(yīng)答,發(fā)送端就會(huì)進(jìn)行數(shù)據(jù)重發(fā)。但是要是一直重發(fā)的話對(duì)于目標(biāo)主機(jī)的負(fù)擔(dān)太大,這是就引入了一種三次握手的機(jī)制,這就是三次機(jī)制。這種機(jī)制就是給數(shù)據(jù)包編號(hào),通過序列號(hào)和確認(rèn)應(yīng)答號(hào),TCP就可以完成可靠傳輸。


? ? 三次握手以及四次揮手圖

三次握手的意義:

client發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒有丟失,而是在某個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)長(zhǎng)時(shí)間的滯留了,以致延誤到連接釋放以后的某個(gè)時(shí)間才到達(dá)server。本來這是一個(gè)早已失效的報(bào)文段。但server收到此失效的連接請(qǐng)求報(bào)文段后,就誤認(rèn)為是client再次發(fā)出的一個(gè)新的連接請(qǐng)求。于是就向client發(fā)出確認(rèn)報(bào)文段,同意建立連接。假設(shè)不采用三次握手,那么只要server發(fā)出確認(rèn),新的連接就建立了。由于現(xiàn)在client并沒有發(fā)出建立連接的請(qǐng)求,因此不會(huì)理睬server的確認(rèn),也不會(huì)向server發(fā)送數(shù)據(jù)。但server卻以為新的運(yùn)輸連接已經(jīng)建立,并一直等待client發(fā)來數(shù)據(jù)。這樣,server的很多資源就白白浪費(fèi)掉了。采用三次握手的辦法可以防止上述現(xiàn)象發(fā)生。例如剛才那種情況,client不會(huì)向server的確認(rèn)發(fā)出確認(rèn)。server由于收不到確認(rèn),就知道client并沒有要求建立連接。

三次握手的理解:這個(gè)問題的本質(zhì)是,信道本身是不可靠的,但是通信的雙方需要就某個(gè)問題達(dá)成一致,而要解決這個(gè)問題,無論是在消息中包含什么,三次通信時(shí)候理論上的最小值。所以三次握手不是TCP本身的需求,而是為了滿足在不可靠的信道上可靠的通行這一需求所導(dǎo)致的。


TCP四次揮手:

為什么TCP協(xié)議終止鏈接要四次?

1、當(dāng)主機(jī)A確認(rèn)發(fā)送完數(shù)據(jù)且知道B已經(jīng)接受完了,想要關(guān)閉發(fā)送數(shù)據(jù)口(當(dāng)然確認(rèn)信號(hào)還是可以發(fā)),就會(huì)發(fā)FIN給主機(jī)B。

2、主機(jī)B收到A發(fā)送的FIN,表示收到了,就會(huì)發(fā)送ACK回復(fù)。

3、但這是B可能還在發(fā)送數(shù)據(jù),沒有想要關(guān)閉數(shù)據(jù)口的意思,所以FIN與ACK不是同時(shí)發(fā)送的,而是等到B數(shù)據(jù)發(fā)送完了,才會(huì)發(fā)送FIN給主機(jī)A。

4、A收到B發(fā)來的FIN,知道B的數(shù)據(jù)也發(fā)送完了,回復(fù)ACK,A等待2MSL以后,沒有收到B傳來的任何消息,知道B已經(jīng)收到自己的ACK了,A就關(guān)閉鏈接,B也關(guān)閉鏈接了。


下面來看一看UDP協(xié)議,一種面向無連接的不可靠的數(shù)據(jù)包協(xié)議。雖然可以指定消息傳輸?shù)拇笮?,但是卻不一定保證消息一定會(huì)到達(dá)(用于高速傳輸和對(duì)實(shí)時(shí)性要求比較高的通信或者廣播)

下面是UDP的報(bào)文格式


UDP報(bào)文格式

校驗(yàn)和:用于校驗(yàn)數(shù)據(jù)是否有丟失

包長(zhǎng)度:數(shù)據(jù)的長(zhǎng)度(單位字節(jié))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,195評(píng)論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,375評(píng)論 6 174
  • 協(xié)議基礎(chǔ) 協(xié)議就是計(jì)算機(jī)之間通過網(wǎng)絡(luò)實(shí)現(xiàn)通信時(shí)實(shí)現(xiàn)所達(dá)成的一種“約定”,這種約定使得那些由不同廠商的設(shè)備,不同的C...
    d9fc24a0c9a9閱讀 2,536評(píng)論 0 6
  • TCP/IP概述 TCP/IP起源于1969年美國國防部(DOD:The United States Depart...
    zhf_Zachariah閱讀 5,913評(píng)論 6 114
  • 狂風(fēng)起虎門,大江出鐵艦。 巨人始開敗,洪獸際無邊。 折節(jié)保殘喘,陳吳舉事泛。 漢兵勢(shì)雄起,秀全國歸天。 矢志師西方...
    桃花仙與桃花仙閱讀 619評(píng)論 0 1

友情鏈接更多精彩內(nèi)容